Void an invoice
Marks an open invoice as voided so it can no longer be paid. Requires the invoices:write scope.
Only open invoices can be voided, and an invoice with a payment in progress is refused until that attempt lapses. Voiding first settles any attempt that is still being watched, so no deposit address outlives the invoice; if funds had already landed on one, the invoice becomes partial instead and the call fails with Only open invoices can be voided. An unknown invoice is also reported here as a 400.
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 invoice 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 invoice, now voided.
An invoice as the merchant API reports it.
The invoice'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"
Human-facing invoice number, counting up per store from 1. Distinct from id, which is what the API and the payment link use.
-9007199254740991 <= x <= 90071992547409911042
Where the invoice is in its lifecycle. open — issued and payable. paid — settled in full. partial — funds arrived but fell short. expired — the payment window closed unpaid. voided — cancelled by the merchant, no longer payable.
open, paid, partial, expired, voided "open"
The hosted payment page for this invoice — what a customer opens to pay it.
"https://taberna.io/invoice/7Kq2mVn8pRt3XwYz5Bd4L"
The billed lines, in the order they were entered.
Sum of every line. 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"
Who the invoice is addressed to, shown on the payment page. Null when unset.
"Acme GmbH"
The only address the send endpoint will email; it cannot be overridden per send. Null when unset, which also makes the invoice unsendable.
"billing@acme.example"
Free-text note shown to the customer on the payment page. Null when unset.
"Net 14. Thanks!"
The arbitrary JSON object you attached at creation, returned untouched. Merchant-only: it never reaches the customer's payment page.
Where the payment page sends the customer once the invoice is paid. Null when none was set.
"https://example.com/thanks"
Where the payment page sends the customer if they back out. Null when none was set.
"https://example.com/billing"
Where the invoice came from. api — this API. dashboard — a human created it in the Taberna dashboard.
api, dashboard "api"
When the invoice stops accepting payment. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"
When the invoice was settled 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"
When the merchant voided the invoice. Null unless voided. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"
When the invoice was issued. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.
"2026-07-29T14:30:00.000Z"
The invoice's remaining email allowance.