API reference · Orders
Get one order
/orders/{orderId}Read complete current order state, identical to a poll item. Original line quantities and checkout totals remain frozen. Use cancelled_quantity and refunded_quantity for cumulative adjustments; histories identify individual operations and payment outcomes. A cancellation resolves every pending request it covers; decline one with POST /orders/{orderId}/cancellation-requests/{requestId}/decline. ship_to and address_verification hold the current values: the newest seller correction and the latest verdict, where order.created carried the snapshot and pending.
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' \
--header "Authorization: Bearer $MARKETPLACE_API_KEY"{
"success": true,
"data": {
"order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
"seller_id": 42,
"created_at": "2026-09-04T18:42:17.000Z",
"currency": "CAD",
"customer": {
"name": "Alex Morgan",
"email": "alex.morgan@example.test",
"shipping_address": {
"line1": "123 Sandbox Avenue",
"line2": "Unit 4",
"city": "Toronto",
"province": "ON",
"postal_code": "M5V 2T6",
"country": "CA"
}
},
"ship_to": {
"name": "Alex Morgan",
"shipping_address": {
"line1": "123 Sandbox Avenue",
"line2": "Unit 4",
"city": "Toronto",
"province": "ON",
"postal_code": "M5V 2T6",
"country": "CA"
}
},
"address_verification": {
"status": "pending",
"suggested_address": null
},
"lines": [
{
"line_ref": "oln_1f0c8a4d7e2b45c9a1d6f3b8e07c9241",
"sku_id": 14602,
"product_id": 86,
"quantity": 1,
"unit_price": 2499,
"name": "Abyssal Nightstalker",
"set": "Portal Second Age",
"condition": "NM",
"external_ref": "platform-listing-1042",
"collector_number": null,
"language": "English",
"finish": "Non-Foil",
"cancelled_quantity": 0,
"refunded_quantity": 0,
"substitution_credit_cents": 0,
"substitution": null,
"reported_line_ref": null
}
],
"totals": {
"subtotal": 2499,
"shipping": 599,
"tax": 403,
"grand_total": 3501
},
"tax": {
"lines": [
{
"label": "HST",
"rate": 0.13,
"amount": 403
}
]
},
"shipping": {
"method": "Tracked parcel",
"cost": 599,
"is_tracked": true
},
"buyer_notes": "Please protect the card with a top loader.",
"status": "created",
"updated_at": "2026-09-04T18:42:17.000Z",
"dispatch": {
"deadline_at": "2026-09-08T23:59:59.000Z",
"dispatched_at": null,
"overdue_at": null,
"payout_paused": false
},
"cancellations": [],
"refunds": [],
"substitutions": [],
"pending_cancellation_requests": []
}
}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 requested order.
Response body: Order
successboolean requiredWhether the operation completed as requested.
Constraints: allowed values:
trueExampletruedataPartnerrequiredOrder Data The operation or event payload.
Show child fieldsHide child fields
data.string requiredorder_id The Snapcaster order id. Use this stable id to reconcile events and poll results for the same seller order (STABLE).
Example
ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VWdata.integer requiredseller_id The seller that owns the API key. Use this id to route the event to the right store (STABLE).
Example
42data.string requiredcreated_at ISO-8601 UTC instant the order was created (STABLE).
Example
2026-09-04T18:42:17.000Zdata.string requiredcurrency ISO 4217 currency code, e.g. CAD (STABLE).
Example
CADdata.customer OrderrequiredWebhook Customer The buyer details saved when the order was created.
Show child fieldsHide child fields
data.string requiredcustomer. name Example
Alex Morgandata.string requiredcustomer. email The contact email address.
Example
alex.morgan@example.testdata.customer. shipping_address OrderrequiredWebhook Shipping Address The shipping address saved when the order was created.
Show child fieldsHide child fields
data.string requiredcustomer. shipping_address. line1 The street address.
Example
123 Sandbox Avenuedata.string or null requiredcustomer. shipping_address. line2 The unit, suite, or second address line, if supplied.
Example
Unit 4data.string requiredcustomer. shipping_address. city The city in the shipping address.
Example
Torontodata.string requiredcustomer. shipping_address. province The Canadian province or territory in the delivery address.
Example
ONdata.string requiredcustomer. shipping_address. postal_code The Canadian postal code in the delivery address.
Example
M5V 2T6data.string requiredcustomer. shipping_address. country ISO 3166-1 alpha-2 country code.
Example
CA
data.ship_to OrderrequiredShip To Where the order ships: the newest seller address correction if one exists, otherwise the
customersnapshot. Always present. Print from this block, not fromcustomer. Onorder.createdit always equals the snapshot; a later correction reaches you throughGET /orders(the order reappears with a newupdated_at), never by changing that event’s bytes (STABLE).Show child fieldsHide child fields
data.string requiredship_to. name The recipient name to print on the label.
Example
Alex Morgandata.ship_to. shipping_address Orderor null requiredWebhook Shipping Address The six-field §6.1 address to print on the label.
nullonly for an order minted without a shipping address (an operator-seeded or legacy row), which checkout never produces.Show child fieldsHide child fields
data.string requiredship_to. shipping_address. line1 The street address.
Example
123 Sandbox Avenuedata.string or null requiredship_to. shipping_address. line2 The unit, suite, or second address line, if supplied.
Example
Unit 4data.string requiredship_to. shipping_address. city The city in the shipping address.
Example
Torontodata.string requiredship_to. shipping_address. province The Canadian province or territory in the delivery address.
Example
ONdata.string requiredship_to. shipping_address. postal_code The Canadian postal code in the delivery address.
Example
M5V 2T6data.string requiredship_to. shipping_address. country ISO 3166-1 alpha-2 country code.
Example
CA
data.address_verification OrderrequiredAddress Verification The post-order address verification verdict on the
customersnapshot, and the suggested address when one differs from it. Always present;pendinguntil a verdict lands. Onorder.createdit is alwayspending: the check runs after the order is placed, and a retried event stays byte-identical. A landed verdict reaches you throughGET /orders(the order reappears with a newupdated_at) (STABLE).Show child fieldsHide child fields
data.string requiredaddress_verification. status The verification status of the
customershipping address.pendinguntil a verdict lands (a fresh order always readspending);verified/verified_unitmean deliverable;missing_unit/unit_unconfirmed/not_foundare address problems worth a look before shipping;failedmeans the check itself could not run and says nothing about the address. Closed vocabulary, extended additively (STABLE).Constraints: allowed values:
pending,verified,verified_unit,missing_unit,unit_unconfirmed,not_found,failedExamplependingdata.address_verification. suggested_address Orderor null requiredWebhook Shipping Address The standardized address the verification suggests, present only when a verdict landed with a suggestion that differs from the
customersnapshot;nullotherwise. Advisory: the seller decides where to ship, and that decision isship_to(STABLE).Show child fieldsHide child fields
data.string requiredaddress_verification. suggested_address. line1 The street address.
data.string or null requiredaddress_verification. suggested_address. line2 The unit, suite, or second address line, if supplied.
data.string requiredaddress_verification. suggested_address. city The city in the shipping address.
data.string requiredaddress_verification. suggested_address. province The Canadian province or territory in the delivery address.
data.string requiredaddress_verification. suggested_address. postal_code The Canadian postal code in the delivery address.
data.string requiredaddress_verification. suggested_address. country ISO 3166-1 alpha-2 country code.
data.array of object requiredlines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string requiredlines[]. line_ref The purchase-line reference, for example
oln_1f0c…. It identifies WHICH PURCHASE this line is, wheresku_ididentifies which card. One order can hold two lines of the samesku_idbought at different times and prices, so key your fulfillment records on this field. It is also what you send back inlines[].lineRefwhen you cancel or refund a line.Example
oln_1f0c8a4d7e2b45c9a1d6f3b8e07c9241data.integer requiredlines[]. sku_id Canonical TCGplayer SKU id (STABLE).
Example
14602data.integer requiredlines[]. product_id Canonical TCGplayer product id (STABLE).
Example
86data.integer requiredlines[]. quantity The number of units.
Example
1data.integer requiredlines[]. unit_price Integer minor units (cents) in the order currency (STABLE).
Example
2499data.string or null requiredlines[]. name Descriptive snapshot, frozen at order time (STABLE).
Example
Abyssal Nightstalkerdata.string or null requiredlines[]. set The card set or expansion.
Example
Portal Second Agedata.string or null requiredlines[]. condition The normalized condition assigned to the card.
Example
NMdata.string or null requiredlines[]. external_ref The seller's listing reference, returned unchanged; null if none was supplied (STABLE).
Example
platform-listing-1042data.string or null requiredlines[]. collector_number The card's catalog collector number, saved when the order was created, for example
161/302. Null if the catalog had no number or the order predates this field. An additive field on the STABLE line.Example
nulldata.string or nulllines[]. language The language of the card printing.
Example
Englishdata.string or nulllines[]. finish The physical finish or foil treatment of the card.
Example
Non-Foildata.objectlines[]. disclosures Provenance, grading, and authenticity statements shown to the buyer.
Show child fieldsHide child fields
data.string requiredlines[]. disclosures. image_source Who supplied the product image shown to the buyer.
Constraints: allowed values:
catalogdata.string requiredlines[]. disclosures. condition_source Who assigned the displayed card condition.
Constraints: allowed values:
seller_declareddata.string requiredlines[]. disclosures. authenticity_source Who supplied the authenticity determination.
Constraints: allowed values:
seller_attestationdata.boolean requiredlines[]. disclosures. snapcaster_inspected Whether Snapcaster physically inspected the card.
Constraints: allowed values:
falsedata.boolean requiredlines[]. disclosures. snapcaster_graded Whether Snapcaster assigned the displayed grade.
Constraints: allowed values:
falsedata.boolean requiredlines[]. disclosures. snapcaster_authenticated Whether Snapcaster authenticated the card.
Constraints: allowed values:
falsedata.string requiredlines[]. disclosures. grading_standard The grading standard used for the declared grade.
data.string or null requiredlines[]. disclosures. declared_grade The grade declared for the card under the named standard.
data.string requiredlines[]. disclosures. buyer_protection The buyer-protection coverage attached to this offering.
data.objectlines[]. fulfillment_obligation The exact item characteristics the seller must fulfill.
Show child fieldsHide child fields
data.string requiredlines[]. fulfillment_obligation. sku The SKU that identifies the card variant.
Constraints: allowed values:
exactdata.string requiredlines[]. fulfillment_obligation. printing The card printing the seller must supply.
Constraints: allowed values:
exactdata.string requiredlines[]. fulfillment_obligation. language The language of the card printing.
Constraints: allowed values:
exactdata.string requiredlines[]. fulfillment_obligation. finish The physical finish or foil treatment of the card.
Constraints: allowed values:
exactdata.string requiredlines[]. fulfillment_obligation. condition The normalized condition assigned to the card.
Constraints: allowed values:
declared-or-better
data.integer requiredlines[]. cancelled_quantity Constraints: minimum: 0 Example
0data.integer requiredlines[]. refunded_quantity Constraints: minimum: 0 Example
0data.integer requiredlines[]. substitution_credit_cents The credit per unit every accepted substitution of this line returned to the buyer, summed.
unit_pricenever changes, so the line is worthunit_price - substitution_credit_centsper unit. 0 on a line never substituted.Constraints: minimum: 0 Example
0data.object or null requiredlines[]. substitution Present once a substitution has rewritten this line:
sku_idand the card details now name the card that ships. Null on a line that ships as sold.Show child fieldsHide child fields
data.integer requiredlines[]. substitution. request_id The fulfillment report that last rewrote this line.
data.object or null requiredlines[]. substitution. original The card the line carried before that report rewrote it, as the report recorded it. A fact the report did not record is null.
Show child fieldsHide child fields
data.integer requiredlines[]. substitution. original. sku_id See Canonical catalog in Core concepts.
data.integer or null requiredlines[]. substitution. original. product_id See Canonical catalog in Core concepts.
data.string or null requiredlines[]. substitution. original. name data.string or null requiredlines[]. substitution. original. set The card set or expansion.
data.string or null requiredlines[]. substitution. original. condition The normalized condition assigned to the card.
data.string or null requiredlines[]. substitution. original. language The language of the card printing.
data.string or null requiredlines[]. substitution. original. finish The physical finish or foil treatment of the card.
data.string or null requiredlines[]. substitution. original. rarity The rarity assigned to the card printing.
data.string or null requiredlines[]. substitution. original. collector_number
data.string or null requiredlines[]. reported_line_ref The
line_refof the line a substitution split this line from. Always null today: substitutions replace whole lines.Example
null
data.objecttotals Order totals in integer cents in the order currency. When present, includes all four values:
subtotal,shipping,tax, andgrand_total, wheregrand_total = subtotal + shipping + tax(STABLE).Show child fieldsHide child fields
data.integer requiredtotals. subtotal The line-item total before shipping and tax, in minor currency units.
Example
2499data.integer requiredtotals. shipping The shipping charge or delivery details for the order.
Example
599data.integer requiredtotals. tax The tax total or breakdown applied to the order.
Example
403data.integer requiredtotals. grand_total The complete order total including shipping and tax, in minor currency units.
Example
3501
data.objecttax One
{label, rate, amount}line per applied tax. This block is absent if and only iftotals.taxis zero (STABLE).Show child fieldsHide child fields
data.array of object requiredtax. lines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string requiredtax. lines[]. label Example
HSTdata.number requiredtax. lines[]. rate The decimal tax rate applied to the taxable amount.
Example
0.13data.integer requiredtax. lines[]. amount The monetary amount in minor currency units.
Example
403
data.objectshipping The shipping charge or delivery details for the order.
Show child fieldsHide child fields
data.string requiredshipping. method Example
Tracked parceldata.integer requiredshipping. cost The shipping cost in minor currency units.
Example
599data.boolean or null requiredshipping. is_tracked Example
true
data.stringbuyer_notes Optional free-text buyer note; absent when the buyer left none (STABLE).
Example
Please protect the card with a top loader.data.string requiredstatus Constraints: allowed values:
created,accepted,shipped,delivered,cancelled,refundedExamplecreateddata.fulfillment OrderFulfillment Tracking details, present once tracking has been added during fulfillment (STABLE).
Show child fieldsHide child fields
data.string requiredfulfillment. tracking_company Carrier/company name, as the fulfiller entered it (STABLE).
data.string requiredfulfillment. tracking_number Carrier tracking number (STABLE).
data.string or null requiredfulfillment. tracking_url Tracking link; null if the fulfiller supplied none (STABLE).
data.string requiredupdated_at Constraints: format: date-time Example
2026-09-04T18:42:17.000Zdata.object requireddispatch Show child fieldsHide child fields
data.string or null requireddispatch. deadline_at The ship-by deadline: the end of the third Toronto business day after the order was placed, fixed when the order is created. Null on an order Snapcaster created without one (STABLE).
Constraints: format: date-time Example
2026-09-08T23:59:59.000Zdata.string or null requireddispatch. dispatched_at Constraints: format: date-time Example
nulldata.string or null requireddispatch. overdue_at When Snapcaster marked the order overdue because it had not shipped by
deadline_at, which also sendsorder.dispatch_overdue. Null until then (STABLE).Constraints: format: date-time Example
nulldata.boolean requireddispatch. payout_paused True while the seller payout for this order is paused. An overdue dispatch pauses it, and so can a Snapcaster review of the order; shipping does not lift it, only Snapcaster releasing the payout does (STABLE).
Example
false
data.array of object requiredcancellations Show child fieldsHide child fields
data.string requiredcancellations[]. id data.string requiredcancellations[]. created_at Constraints: format: date-time
data.array of object requiredcancellations[]. lines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string or null requiredcancellations[]. lines[]. line_ref The purchase-line reference of the line this cancellation or refund terminated, the same
line_refthe order line and the matchingorder.cancelledororder.refundedline carry. Reconcile on this field: an order can hold two lines of onesku_id. Null only on a cancellation recorded before Snapcaster kept an order event log, when itssku_idnames more than one line on the order or a substitution has rewritten a line on the order.data.integer requiredcancellations[]. lines[]. sku_id See Canonical catalog in Core concepts.
data.integer requiredcancellations[]. lines[]. quantity The number of units.
Constraints: exclusive minimum: 0
data.object or null requiredcancellations[]. payment_refund Show child fieldsHide child fields
data.integer requiredcancellations[]. payment_refund. amount The monetary amount in minor currency units.
data.string requiredcancellations[]. payment_refund. currency The ISO 4217 currency code used for monetary amounts.
data.string requiredcancellations[]. payment_refund. status failedif any payment the refund came back on refused it,succeededonce every one settled, otherwisepending. It can change in either direction, after a bank return or a retry; each change sendsorder.updatedwithreason: payment_refund_updated.Constraints: allowed values:
pending,succeeded,failed
data.array of object requiredrefunds Show child fieldsHide child fields
data.string requiredrefunds[]. id data.string requiredrefunds[]. created_at Constraints: format: date-time
data.array of object requiredrefunds[]. lines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string or null requiredrefunds[]. lines[]. line_ref The purchase-line reference of the line this cancellation or refund terminated, the same
line_refthe order line and the matchingorder.cancelledororder.refundedline carry. Reconcile on this field: an order can hold two lines of onesku_id. Null only on a cancellation recorded before Snapcaster kept an order event log, when itssku_idnames more than one line on the order or a substitution has rewritten a line on the order.data.integer requiredrefunds[]. lines[]. sku_id See Canonical catalog in Core concepts.
data.integer requiredrefunds[]. lines[]. quantity The number of units.
Constraints: exclusive minimum: 0
data.object or null requiredrefunds[]. payment_refund Show child fieldsHide child fields
data.integer requiredrefunds[]. payment_refund. amount The monetary amount in minor currency units.
data.string requiredrefunds[]. payment_refund. currency The ISO 4217 currency code used for monetary amounts.
data.string requiredrefunds[]. payment_refund. status failedif any payment the refund came back on refused it,succeededonce every one settled, otherwisepending. It can change in either direction, after a bank return or a retry; each change sendsorder.updatedwithreason: payment_refund_updated.Constraints: allowed values:
pending,succeeded,failed
data.boolean requiredrefunds[]. restock Whether fulfilled units return to on-hand inventory.
data.array of object requiredsubstitutions Every accepted fulfillment report that substituted at least one line, oldest first. A report that only removed lines is a cancellation and appears in
cancellations. Empty when there is none.Show child fieldsHide child fields
data.string requiredsubstitutions[]. id The substitution id, also the
adjustmentIdSnapcaster stamps on the payment refund it issued.data.integer requiredsubstitutions[]. request_id The fulfillment report the buyer accepted.
data.string requiredsubstitutions[]. created_at When the buyer accepted the report.
Constraints: format: date-time
data.array of object requiredsubstitutions[]. lines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string or null requiredsubstitutions[]. lines[]. line_ref The purchase-line reference the report named. Null only when no retained record names the purchase.
data.integer requiredsubstitutions[]. lines[]. original_sku_id The SKU the line carried when the seller filed the report.
data.integer requiredsubstitutions[]. lines[]. quantity The number of units.
Constraints: exclusive minimum: 0
data.string requiredsubstitutions[]. lines[]. action How to resolve this issue.
Constraints: allowed values:
remove,substitutedata.integer or null requiredsubstitutions[]. lines[]. substitute_sku_id The SKU that ships instead. Null on a removal.
data.integer or null requiredsubstitutions[]. lines[]. credit_cents The credit per unit this substitution returned to the buyer. Null on a removal, which returns what the units were worth.
Constraints: minimum: 0
data.object or null requiredsubstitutions[]. payment_refund The money the substitution returned to the buyer, across every payment it came back on: every credit plus any removed units, with their share of the purchase fee and tax. Null when it moved no money.
Show child fieldsHide child fields
data.integer requiredsubstitutions[]. payment_refund. amount The monetary amount in minor currency units.
data.string requiredsubstitutions[]. payment_refund. currency The ISO 4217 currency code used for monetary amounts.
data.string requiredsubstitutions[]. payment_refund. status failedif any payment the refund came back on refused it,succeededonce every one settled, otherwisepending. It can change in either direction, after a bank return or a retry; each change sendsorder.updatedwithreason: payment_refund_updated.Constraints: allowed values:
pending,succeeded,failed
data.array of object requiredpending_cancellation_requests Show child fieldsHide child fields
data.string requiredpending_cancellation_requests[]. id data.string requiredpending_cancellation_requests[]. created_at Constraints: format: date-time
data.string or null requiredpending_cancellation_requests[]. reason data.array of object or null requiredpending_cancellation_requests[]. lines The line items in this request, response, or event.
Show child fieldsHide child fields
data.string requiredpending_cancellation_requests[]. lines[]. line_ref data.integer requiredpending_cancellation_requests[]. lines[]. sku_id See Canonical catalog in Core concepts.
data.integerpending_cancellation_requests[]. lines[]. quantity The number of units.
Constraints: exclusive minimum: 0
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.