Expire an order
Cancels a pending order now instead of waiting out its window, releasing any reserved stock and firing the order.expired webhook. Requires the orders:write scope.
Only pending orders can be expired, and an order with a payment in progress is refused until that attempt lapses.
Authorizations
A store API key, sent as Authorization: Bearer <key>.
A key looks like tbrn_live_ followed by 48 hex characters, e.g. tbrn_live_4f2a...c91b. Mint one in the Taberna dashboard under Developers → API Keys, tick the scopes the integration needs, and copy it there and then — the full value is shown once and only its hash is stored, so a lost key is replaced rather than recovered.
One key belongs to one store and carries a fixed scope set. Send it from a server, never from a browser: it can create orders and invoices and read every order the store has.
Path Parameters
The order to act on. Base58 short id, 21–22 characters (never 0, O, I or l), e.g. 7Kq2mVn8pRt3XwYz5Bd4L — the value that appears in checkout and invoice links, and the one this API takes as a path id.
^[1-9A-HJ-NP-Za-km-z]{21,22}$"7Kq2mVn8pRt3XwYz5Bd4L"
Response
The order, now expired.
An order as the merchant API reports it.
The order's id. Base58 short id, 21–22 characters (never 0, O, I or l), e.g. 7Kq2mVn8pRt3XwYz5Bd4L — the value that appears in checkout and invoice links, and the one this API takes as a path id.
"7Kq2mVn8pRt3XwYz5Bd4L"
Where the order is in its lifecycle. pending — created, waiting for the buyer to pay. completed — paid in full; any digital delivery has been released. partial — funds arrived but fell short of the locked quote. expired — the payment window closed without full payment, and any reserved stock went back to the pool.
pending, completed, partial, expired "pending"
Total the buyer owes. Decimal string in the resource's fiat currency, e.g. "49.99" — a string, never a JSON number, so no precision is lost in transit.
"49.99"
The fiat currency every amount on this resource is priced in. Crypto is quoted against it at payment time.
usd, eur "usd"
Where the hosted checkout sends the buyer after a successful payment. Null when none was set at creation.
"https://example.com/thanks"
Where the hosted checkout sends the buyer if they back out. Null when none was set at creation.
"https://example.com/cart"
Buyer email for the receipt and any digital delivery, either supplied at creation or entered on the checkout page. Null when neither happened.
"buyer@example.com"
The arbitrary JSON object you attached at creation, returned untouched. Taberna never interprets it — use it to carry your own order or user reference.
The token and chain the buyer pays with, named <asset>_<chain>; a bare sol, eth, matic or bnb is that chain's native coin. So usdc_base is USDC on Base and eth is ether on Ethereum mainnet. The matic key is Polygon's native coin, now called POL — the key keeps its original name and does not change. Null until the buyer picks one.
sol, usdc_solana, eth_base, usdc_base, usdt_base, eth, usdc_ethereum, usdt_ethereum, matic, usdc_polygon, usdt_polygon, bnb, usdt_bnb The quoted amount for the attempt this order is reported against. Null until the buyer starts one. Integer string in the asset's own smallest unit, NOT a decimal token amount: lamports for SOL (1 SOL = "1000000000"), wei for ETH/POL/BNB (1 ETH = "1000000000000000000"), base units for USDC/USDT (1 USDC = "1000000").
How much of that quote actually arrived. Integer string in the asset's own smallest unit, NOT a decimal token amount: lamports for SOL (1 SOL = "1000000000"), wei for ETH/POL/BNB (1 ETH = "1000000000000000000"), base units for USDC/USDT (1 USDC = "1000000").
On-chain transfers for the payment attempt this order is reported against. Empty until funds are seen.
The products bought, one entry per line.
The hosted checkout page to send the buyer to. Safe to share; it is what the short id unlocks.
"https://taberna.io/checkout/7Kq2mVn8pRt3XwYz5Bd4L"
When the order was created. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"
When the order stops accepting payment. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"
When the order was paid in full. Null until it is. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"