API reference · Orders
List an order's change requests
/orders/{orderId}/change-requestsRead every change request on the order, pending and resolved, oldest first: a buyer asking to ship to another address, a buyer asking to remove lines or end the order, and a fulfillment report the seller filed. Use it to recover a missed order.change_request.* event: each event carries one of these items. Answer a pending buyer request with POST /orders/{orderId}/change-requests/{requestId}/accept or .../decline.
Example
These examples send requests to the sandbox.
Replace the example orderId in the URL with your own.
curl --request GET \
--url 'https://api-sandbox.snapcaster.ca/api/v1/marketplace/orders/ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW/change-requests' \
--header "Authorization: Bearer $MARKETPLACE_API_KEY"{
"success": true,
"data": {
"items": [
{
"id": 381,
"order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
"kind": "address_change",
"status": "pending",
"proposed_by_party": "buyer",
"created_at": "2026-09-04T19:01:12.000Z",
"resolved_at": null,
"lines": null,
"amount_cents": null,
"note": null,
"credits": null,
"address": {
"line1": "99 Elm Ave",
"line2": "Unit 4",
"city": "Ottawa",
"province": "ON",
"postal_code": "K1P 5G4",
"country": "CA"
},
"previous_address": {
"line1": "123 Main St",
"line2": null,
"city": "Toronto",
"province": "ON",
"postal_code": "M5V 2T6",
"country": "CA"
}
}
]
}
}Endpoint
| Environment | URL |
|---|---|
| Sandbox | https://api-sandbox.snapcaster.ca/api/v1/marketplace |
| Production | https://api.snapcaster.ca/api/v1/marketplace |
marketplaceApiKey-http bearer. Send the seller's marketplace API key asAuthorization: Bearer mp_{sellerCode}_{hex}. Themp_{sellerCode}_prefix identifies the seller; the trailing hex is the secret. The seller generates the key and supplies it to your platform.
Request
Path parameters
orderIdstring requiredThe opaque public order id (the webhook/poll
order_id).Constraints: minimum length: 1 Example
ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW
Headers
X-Snapcaster-Api-VersionstringOverride the platform pin for this request only. Webhook versions and the platform pin do not change.
Constraints: allowed values:
2026-10Example2026-10
Response
200
The order's change requests.
Response body: Change
successboolean requiredWhether the operation completed as requested.
Constraints: allowed values:
trueExampletruedataobject requiredThe operation or event payload.
Show child fieldsHide child fields
data.items ChangerequiredRequest[] Every change request on the order, oldest first.
Show child fieldsHide child fields
data.integer requireditems[]. id The change request id, stable for the life of the request and the
{requestId}of its answers (STABLE).Constraints: exclusive minimum: 0 Example
381data.string requireditems[]. order_id The order the request is about (STABLE).
Example
ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VWdata.string requireditems[]. kind address_change: the buyer asks to ship toaddressinstead ofprevious_address.cancel_lines: the buyer asks to removelines, or every remaining line to end the order.fulfillment_report: the seller reports thatlinescannot ship as sold, and the buyer answers it (STABLE).Constraints: allowed values:
cancel_lines,fulfillment_report,address_changeExampleaddress_changedata.string requireditems[]. status pendinguntil it is answered; a request has no deadline.accepted: the change ran.declined: the answering party refused it and nothing changed.withdrawn: the party who raised it took it back.voided: the order shipped, was cancelled or refunded, its address was corrected, or Snapcaster closed the support conversation the request belonged to, before anyone answered.removed_insteadandorder_cancelledare the buyer answers to afulfillment_reportthat remove every affected line or end the order.expiredappears only on requests from before requests stopped lapsing (STABLE).Constraints: allowed values:
pending,accepted,removed_instead,order_cancelled,declined,withdrawn,voided,expiredExamplependingdata.string requireditems[]. proposed_by_party Who raised it. The seller answers a
buyerrequest by accepting or declining it; the buyer answers asellerrequest (STABLE).Constraints: allowed values:
buyer,seller,operator,systemExamplebuyerdata.string requireditems[]. created_at When the request was raised (STABLE).
Constraints: format: date-time Example
2026-09-04T19:01:12.000Zdata.string or null requireditems[]. resolved_at When the request left
pending; null while it is pending (STABLE).Constraints: format: date-time Example
nulldata.items[]. lines Changeor null requiredRequest Line[] The lines a
cancel_linesorfulfillment_reportrequest names; null on anaddress_change(STABLE).Show child fieldsHide child fields
data.string requireditems[]. lines[]. line_ref The purchase line the request names, the same
line_refthe order carries (STABLE).data.string requireditems[]. lines[]. name The line title, or
SKU <sku_id>when the catalog had none (STABLE).data.integer requireditems[]. lines[]. quantity How many units of the line the request covers (STABLE).
Constraints: exclusive minimum: 0
data.integer requireditems[]. lines[]. sku_id The SKU the line was sold as (STABLE).
data.integer or null requireditems[]. lines[]. product_id The product that SKU belongs to; null on a request recorded before it was kept (STABLE).
data.object requireditems[]. lines[]. ordered The card the buyer ordered, as the request recorded it. A fact the request never recorded is null (STABLE).
Show child fieldsHide child fields
data.string or null requireditems[]. lines[]. ordered. name The card title (STABLE).
data.string or null requireditems[]. lines[]. ordered. set The set the printing belongs to; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. ordered. language The printing language; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. ordered. finish The printing or finish, such as
Foil; null when never recorded (STABLE).data.string or null requireditems[]. lines[]. ordered. rarity The rarity; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. ordered. condition The condition grade; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. ordered. collector_number The collector number as the catalog states it, such as
161/302; null when never recorded (STABLE).
data.string requireditems[]. lines[]. action removeon everycancel_linesline and on a report line that removes units.substituteon a report line that ships a replacement named insubstituteat a per-unitcredit_cents.spliton a report line whose units go several ways, listed indispositions(STABLE).Constraints: allowed values:
remove,substitute,splitdata.items[]. lines[]. substitute Changeor null requiredRequest Substitute The replacement on a
substituteline; null on every other line (STABLE).Show child fieldsHide child fields
data.integer requireditems[]. lines[]. substitute. listing_id Snapcaster's id for the seller listing offered in place of the line (STABLE).
data.integer requireditems[]. lines[]. substitute. sku_id The SKU the line ships as once the report is accepted (STABLE).
data.integer requireditems[]. lines[]. substitute. product_id The product, the same one the replaced line belongs to (STABLE).
data.string or null requireditems[]. lines[]. substitute. external_ref Your platform's reference on that listing when the report was filed; null when none was sent (STABLE).
data.string or null requireditems[]. lines[]. substitute. name The card title (STABLE).
data.string or null requireditems[]. lines[]. substitute. set The set the printing belongs to; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. substitute. language The printing language; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. substitute. finish The printing or finish, such as
Foil; null when never recorded (STABLE).data.string or null requireditems[]. lines[]. substitute. rarity The rarity; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. substitute. condition The condition grade; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. substitute. collector_number The collector number as the catalog states it, such as
161/302; null when never recorded (STABLE).data.string or null requireditems[]. lines[]. substitute. printing The same fact as
finish, under the catalog name (STABLE).
data.integer or null requireditems[]. lines[]. credit_cents The credit per unit on a
substituteline, in cents; null on every other line (STABLE).data.array of object or null requireditems[]. lines[]. dispositions On a
splitline, each portion in the order the seller listed them; null on every other line (STABLE).Show child fieldsHide child fields
data.string requireditems[]. lines[]. dispositions[]. action What happens to this portion (STABLE).
Constraints: allowed values:
remove,substitutedata.integer requireditems[]. lines[]. dispositions[]. quantity How many of the line units go this way (STABLE).
Constraints: exclusive minimum: 0
data.items[]. lines[]. dispositions[]. substitute Changeor null requiredRequest Substitute The replacement on a
substituteline; null on every other line (STABLE).Show child fieldsHide child fields
data.integer requireditems[]. lines[]. dispositions[]. substitute. listing_id Snapcaster's id for the seller listing offered in place of the line (STABLE).
data.integer requireditems[]. lines[]. dispositions[]. substitute. sku_id The SKU the line ships as once the report is accepted (STABLE).
data.integer requireditems[]. lines[]. dispositions[]. substitute. product_id The product, the same one the replaced line belongs to (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. external_ref Your platform's reference on that listing when the report was filed; null when none was sent (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. name The card title (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. set The set the printing belongs to; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. language The printing language; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. finish The printing or finish, such as
Foil; null when never recorded (STABLE).data.string or null requireditems[]. lines[]. dispositions[]. substitute. rarity The rarity; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. condition The condition grade; null when it was never recorded (STABLE).
data.string or null requireditems[]. lines[]. dispositions[]. substitute. collector_number The collector number as the catalog states it, such as
161/302; null when never recorded (STABLE).data.string or null requireditems[]. lines[]. dispositions[]. substitute. printing The same fact as
finish, under the catalog name (STABLE).
data.integer or null requireditems[]. lines[]. dispositions[]. credit_cents The credit per unit for a
substituteportion; null for a removal (STABLE).
data.integer or null requireditems[]. amount_cents The refund, tax included, that accepting a
cancel_linesrequest returns to the buyer, or the refund afulfillment_reportreturns when the buyer accepts it. Fixed when the request was raised. Null on anaddress_changeand on an order with no payment (STABLE).Example
nulldata.string or null requireditems[]. note The seller's note to the buyer on a
fulfillment_report; null when none was given and on every other kind (STABLE).Example
nulldata.object or null requireditems[]. credits The refund behind each buyer answer to a
fulfillment_report, fixed when it was raised; null on every other kind and on an order with no payment (STABLE).Show child fieldsHide child fields
data.integer requireditems[]. credits. accept_cents The refund if the buyer accepts the report; repeats
amount_cents(STABLE).data.integer requireditems[]. credits. remove_instead_cents The refund if the buyer has every affected line removed instead (STABLE).
data.integer requireditems[]. credits. cancel_order_cents The refund if the buyer ends the whole order instead (STABLE).
data.items[]. address Orderor null requiredWebhook Shipping Address The shipping address an
address_changeasks for. Set only on anaddress_change; null on every other kind (STABLE).Show child fieldsHide child fields
data.string requireditems[]. address. line1 The street address.
Example
99 Elm Avedata.string or null requireditems[]. address. line2 The unit, suite, or second address line, if supplied.
Example
Unit 4data.string requireditems[]. address. city The city in the shipping address.
Example
Ottawadata.string requireditems[]. address. province The Canadian province or territory in the delivery address.
Example
ONdata.string requireditems[]. address. postal_code The Canadian postal code in the delivery address.
Example
K1P 5G4data.string requireditems[]. address. country ISO 3166-1 alpha-2 country code.
Example
CA
data.items[]. previous_address Orderor null requiredWebhook Shipping Address The shipping address the order had when the
address_changewas raised. Set only on anaddress_change; null on every other kind (STABLE).Show child fieldsHide child fields
data.string requireditems[]. previous_address. line1 The street address.
Example
123 Main Stdata.string or null requireditems[]. previous_address. line2 The unit, suite, or second address line, if supplied.
Example
nulldata.string requireditems[]. previous_address. city The city in the shipping address.
Example
Torontodata.string requireditems[]. previous_address. province The Canadian province or territory in the delivery address.
Example
ONdata.string requireditems[]. previous_address. postal_code The Canadian postal code in the delivery address.
Example
M5V 2T6data.string requireditems[]. previous_address. country ISO 3166-1 alpha-2 country code.
Example
CA
Errors
Errors return a Marketplace body, except HTTP 500 (Api). Error codes explains both error bodies and lists every code.
400
INVALID_REQUESTUNSUPPORTED_API_VERSIONThe request failed validation (
INVALID_REQUEST). Unknown or retired API-version override (UNSUPPORTED_API_VERSION).Do this: Correct the fields named in the error details, then retry the request. For UNSUPPORTED_API_VERSION, choose a supported version from the API versioning guide.
401
UNAUTHORIZEDMissing or invalid marketplace API key (
UNAUTHORIZED).Do this: Send the marketplace API key for this seller as a Bearer token, then retry.
403
SUBSCRIPTION_EXCLUDES_ORDERSThe platform's subscription is
inventory, which does not include orders (SUBSCRIPTION_EXCLUDES_ORDERS). Onlyordersandbothsubscriptions read and act on orders.Do this: Do not retry. Ask Snapcaster to change the platform subscription to
ordersorbothif the platform should handle orders.404
ORDER_NOT_FOUNDNo order matches this id for the authenticated seller (
ORDER_NOT_FOUND). Another seller's order also returns 404, so the response does not reveal whether it exists.Do this: Check the order_id against GET /orders for the authenticated seller, then retry with that id.
500
INTERNAL_ERRORAn unexpected failure (
INTERNAL_ERROR).Do this: Retry with bounded retries and jitter. If the failure persists, contact Snapcaster with the X-Correlation-ID response header.