API
Orders
An order is a request for one specific payment. You create it, hand the buyer a checkout link, and listen for the webhook that fires when the on-chain settlement lands.
Create an order
POST /v1/orders
Authorization: Bearer sk_live_…
Content-Type: application/json
{
"amount": "12.50",
"currency": "USDC",
"chain": "base",
"recipient": "@yourhandle",
"expires_in": 1800,
"metadata": { "order_id": "A-1042" }
}→ 201 Created
{
"id": "ord_8H3kZ…",
"status": "awaiting_payment",
"checkout_url": "https://pay.thetab.bar/c/8H3kZ",
"amount": "12.50",
"currency": "USDC",
"chain": "base",
"recipient_address": "0x…",
"expires_at": "2026-05-17T13:42:00Z",
"metadata": { "order_id": "A-1042" }
}Retrieve an order
GET /v1/orders/ord_8H3kZ…
List orders
GET /v1/orders?status=completed&limit=50&cursor=…
Pagination is cursor-based; the response includes has_more and next_cursor.
Order statuses
awaiting_payment— created, waiting for the buyer.processing— the relayer has submitted; waiting for on-chain confirmation.completed— settled on-chain, indexed, and refunded to your dashboard.expired— the deadline passed before payment.cancelled— you cancelled the order via API or dashboard before payment.
Cancel
POST /v1/orders/ord_8H3kZ…/cancel
Cancellation only works while the order is awaiting_payment. Once a transaction is signed and in-flight, you can't unring the bell on-chain.