Skip to main content
POST
Create Invoice
For the complete documentation index, see llms.txt. Creates an invoice and returns the full invoice object together with a payment_url the customer opens to complete payment.
Set up private payments before sending private invoices. To receive a "private" invoice you must first register private payments in the Shakesco app for the specific coin you want to receive. If you create an invoice with type: "private" without that setup, the invoice is created but payment fails when the customer tries to pay.
Request at least $1. Because of how private transactions settle, every invoice total should be a minimum of $1. If you need to charge less than $1, contact us first.

Request Body

string
"public" or "private". Private mode uses stealth addresses. Defaults to your account’s privacy setting.Private invoices require that you have already registered private payments for the coin you want to receive in the Shakesco app. Without that setup, a "private" invoice fails at payment time.
string
required
Currency code for the invoice amount (e.g. "USD", "KES"). See all codes
array
required
Line items (at least one required)
string
Customer’s email address. Omit or pass null for walk-in customers.
string
Customer’s display name (optional)
string
Two-letter country code of the payer (optional)
number
Tax percentage (e.g. 16 for 16%). Defaults to 0.
array
Optional array of store item objects to link catalogue items to this invoice.
string
Preferred payment asset: "BTC", "ETH", "USDT", or "SATS". Can be deferred and set by the payer.We recommend receiving "USDT" or "SATS": both settle fast and cheap. For "USDT", use a private invoice where possible so your financial activity stays confidential.
string
Optional URL the customer is sent to after they finish paying. Must be a valid URL. Use it to return the payer to your own confirmation or order page.

Response

Returns the full invoice object with line items.
string
Unique invoice identifier (e.g. "INV-2026-a1b2c3d4")
string
Encrypted URL the customer opens to complete payment
string
"pending" on creation
string
Invoice currency code
number
Tax percentage applied
string
ISO 8601 datetime after which the invoice expires
null
Deferred. Set to null until the payer initiates payment.
string | null
Payment asset, null until chosen by the payer
string | null
The redirect URL you supplied, or null if none was set
boolean | null
Whether the transaction originated from the Shakesco store. true for store transactions, false for a standard invoice you created through the API, and null when it does not apply. Use this to tell store sales apart from your own invoices.
array
Line items on the invoice. Each has description, unit, price, and image.