Orders
List and read orders with their money, lines, payment and delivery; deliver a service line.
GET
/v1/orders Your shop’s API keyorders:read The shop’s orders, newest first, up to 100 a page. Page with starting_after = the last order id you got.
- statusstringquerypending, paid, cancelled, expired or refunded.
- viastringqueryshop or api.
- created_afterstringqueryISO date-time.
- limitintegerquery1–100 (default 25).
- starting_afterstringqueryAn order id from the previous page.
Errors
403missing_scope— The key lacks orders:read.401invalid_key— No key, a wrong key, or a revoked / expired key (key_revoked, key_expired).429rate_limited— Over the key’s requests per minute — wait for RateLimit-Reset.
curl -X GET 'https://api.tocler.com/v1/orders' \
-H 'Authorization: Bearer tk_live_…'{
"object": "list",
"data": [
{
"id": "TRX8F2K1",
"object": "order",
"status": "pending",
"created_at": "2026-11-03T10:00:00.000Z",
"paid_at": null,
"expires_at": "2026-11-03T10:40:00.000Z",
"via": "api",
"buyer": {
"email": "bu•••@exa•••.com",
"guest": true
},
"currency": "EUR",
"totals": {
"subtotal": {
"amount": "19.98",
"currency": "EUR"
},
"discount": {
"amount": "0.00",
"currency": "EUR"
},
"tax": {
"amount": "0.00",
"currency": "EUR"
},
"tax_inclusive": false,
"shipping": {
"amount": "0.00",
"currency": "EUR"
},
"buyer_fee": {
"amount": "0.00",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"store_credit": {
"amount": "0.00",
"currency": "EUR"
},
"refunded": {
"amount": "0.00",
"currency": "EUR"
}
},
"charge": {
"amount": "21.72",
"currency": "USD"
},
"discount": null,
"payment": {
"method": "tocler_pay",
"status": "waiting"
},
"fulfilment": null,
"shipping_status": null,
"lines": [
{
"index": 0,
"product_id": "665f1c2e9b1e8a00aaaaaaaa",
"variant_id": "665f1c2e9b1e8a00bbbbbbbb",
"name": "Game top-up",
"variant_name": "500 gems",
"sku": "TOPUP-500",
"type": "dynamic",
"quantity": 2,
"unit_price": {
"amount": "9.99",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"delivery": null
}
]
}
],
"has_more": false
} GET
/v1/orders/{id} Your shop’s API keyorders:read An order with its money (in the order’s currency), its lines, payment and delivery. Follow a Tocler Pay payment here: status becomes paid once Tocler confirmed it on the blockchain.
- idstringpathrequiredThe order id.
Errors
403missing_scope— The key lacks orders:read.404not_found— No such order in this shop.401invalid_key— No key, a wrong key, or a revoked / expired key (key_revoked, key_expired).429rate_limited— Over the key’s requests per minute — wait for RateLimit-Reset.
curl -X GET 'https://api.tocler.com/v1/orders/{id}' \
-H 'Authorization: Bearer tk_live_…'{
"id": "TRX8F2K1",
"object": "order",
"status": "pending",
"created_at": "2026-11-03T10:00:00.000Z",
"paid_at": null,
"expires_at": "2026-11-03T10:40:00.000Z",
"via": "api",
"buyer": {
"email": "bu•••@exa•••.com",
"guest": true
},
"currency": "EUR",
"totals": {
"subtotal": {
"amount": "19.98",
"currency": "EUR"
},
"discount": {
"amount": "0.00",
"currency": "EUR"
},
"tax": {
"amount": "0.00",
"currency": "EUR"
},
"tax_inclusive": false,
"shipping": {
"amount": "0.00",
"currency": "EUR"
},
"buyer_fee": {
"amount": "0.00",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"store_credit": {
"amount": "0.00",
"currency": "EUR"
},
"refunded": {
"amount": "0.00",
"currency": "EUR"
}
},
"charge": {
"amount": "21.72",
"currency": "USD"
},
"discount": null,
"payment": {
"method": "tocler_pay",
"status": "waiting"
},
"fulfilment": null,
"shipping_status": null,
"lines": [
{
"index": 0,
"product_id": "665f1c2e9b1e8a00aaaaaaaa",
"variant_id": "665f1c2e9b1e8a00bbbbbbbb",
"name": "Game top-up",
"variant_name": "500 gems",
"sku": "TOPUP-500",
"type": "dynamic",
"quantity": 2,
"unit_price": {
"amount": "9.99",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"delivery": null
}
]
} POST
/v1/orders/{id}/lines/{index}/deliver Your shop’s API keyorders:write Mark a paid service line delivered, with a note the buyer sees (the same as “Mark delivered” in the Dashboard; the buyer is emailed). Physical goods are shipped in the Dashboard (Shipments). Send an Idempotency-Key header.
- Idempotency-Keystringheaderrequired1–64 letters, digits,
_ - : .— the same one when you retry. The same key with another body → 409 idempotency_mismatch. - idstringpathrequiredThe order id.
- indexintegerpathrequiredThe line’s index (from
lines). - messagestringbodyA note for the buyer (2–5,000 characters).
Errors
403missing_scope— The key lacks orders:write.404not_found— No such order.409conflict— This line is not waiting for delivery (not paid, already delivered, or shipped goods).401invalid_key— No key, a wrong key, or a revoked / expired key (key_revoked, key_expired).429rate_limited— Over the key’s requests per minute — wait for RateLimit-Reset.
curl -X POST 'https://api.tocler.com/v1/orders/{id}/lines/{index}/deliver' \
-H 'Authorization: Bearer tk_live_…' \
-H 'Content-Type: application/json' \
-d '{
"message": "Your account was boosted to level 40. Enjoy!"
}'{
"message": "Your account was boosted to level 40. Enjoy!"
}{
"id": "TRX8F2K1",
"object": "order",
"status": "pending",
"created_at": "2026-11-03T10:00:00.000Z",
"paid_at": null,
"expires_at": "2026-11-03T10:40:00.000Z",
"via": "api",
"buyer": {
"email": "bu•••@exa•••.com",
"guest": true
},
"currency": "EUR",
"totals": {
"subtotal": {
"amount": "19.98",
"currency": "EUR"
},
"discount": {
"amount": "0.00",
"currency": "EUR"
},
"tax": {
"amount": "0.00",
"currency": "EUR"
},
"tax_inclusive": false,
"shipping": {
"amount": "0.00",
"currency": "EUR"
},
"buyer_fee": {
"amount": "0.00",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"store_credit": {
"amount": "0.00",
"currency": "EUR"
},
"refunded": {
"amount": "0.00",
"currency": "EUR"
}
},
"charge": {
"amount": "21.72",
"currency": "USD"
},
"discount": null,
"payment": {
"method": "tocler_pay",
"status": "waiting"
},
"fulfilment": null,
"shipping_status": null,
"lines": [
{
"index": 0,
"product_id": "665f1c2e9b1e8a00aaaaaaaa",
"variant_id": "665f1c2e9b1e8a00bbbbbbbb",
"name": "Game top-up",
"variant_name": "500 gems",
"sku": "TOPUP-500",
"type": "dynamic",
"quantity": 2,
"unit_price": {
"amount": "9.99",
"currency": "EUR"
},
"total": {
"amount": "19.98",
"currency": "EUR"
},
"delivery": null
}
]
} Was this page helpful?