Invoices
Create payment requests for BTC, LTC, TRX and USDT TRC20 with hosted checkout and status notifications.
Examples use LTC unless stated otherwise. Use IDs and addresses for the selected currency.
On this page
#Create Invoice
POST
/accounts/{account}/invoices
Available
Create a payment request with a fixed or open amount. Each invoice receives a permanent payment address and a checkout URL.
- URL
https://coinzaka.com/api/v1/accounts/{account}/invoices- Content type
application/json- Authorization
- Optional.
Authorization: Bearertoken.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
account | string | Account ID returned by Create Account. | Required |
Idempotency-Key | string | Optional request identifier of 16 to 128 letters, digits, underscores or hyphens. Reuse only for an identical request. | Optional |
currency | string | Allowed: btc, ltc, trx, usdt@trx. | Required |
transfer-key | string | Optional: the account's own Transfer Key. Only lifts the undelivered-callback limit; not stored. | Optional |
amount | integer | string | null | Exact atomic units, with the same inclusive range for numbers and decimal strings: BTC 1..2100000000000000, LTC 1..8400000000000000, TRX/USDT TRC20 1..9223372036854775807. BTC/LTC have 8 decimal places per coin; TRX/USDT have 6. No fractional atomic units or rounding. Decimal strings of 1..19 ASCII digits are recommended to avoid JavaScript number precision loss; leading zeros are allowed. Zero is invalid; null or omission creates an open amount. The response amount remains an integer: parse large integers losslessly. | Optional |
lifetime | integer | Invoice lifetime in seconds. Default 3600; maximum 2592000 (30 days). | Optional |
expire | string | null | Null or omitted uses lifetime. | Optional |
callback-url | string | null | HTTP(S) URL; query names must not shadow invoice/status or reserved receipt fields such as currency/data. | Optional |
callback_url | string | null | Alias; conflicting values are invalid. | Optional |
linkback | string | null | HTTP(S) return URL after a recently verified completion in standalone checkout. Embed and QR views do not redirect. | Optional |
user-data | object | Public invoice metadata. Maximum 8192 JSON bytes; do not include secrets. | Optional |
curl --request POST "https://coinzaka.com/api/v1/accounts/${ACCOUNT_ID:?Set ACCOUNT_ID}/invoices" \
--header 'Content-Type: application/json' \
--data-binary @- <<JSON
{
"currency": "ltc",
"amount": "25000000",
"lifetime": 3600,
"user-data": {
"title": "Order 42",
"merchant": "Sample store"
}
}
JSON{
"currency": "ltc",
"amount": "25000000",
"lifetime": 3600,
"user-data": {
"title": "Order 42",
"merchant": "Sample store"
}
}Bash: set ACCOUNT_ID before running. Responses are illustrative.
#Public Invoice
GET
/invoices/{invoice}
Available
Retrieve an invoice's payment address, terms, status and payment history by its Invoice ID. No authentication is required.
- URL
https://coinzaka.com/api/v1/invoices/{invoice}- Content type
application/json
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
invoice | string | Invoice ID returned by Create Invoice. | Required |
history_limit | integer | Revisions per history page. | Optional |
history_before | integer | Exclusive revision cursor for older history. | Optional |
curl --request GET "https://coinzaka.com/api/v1/invoices/${INVOICE_ID:?Set INVOICE_ID}"Bash: set INVOICE_ID before running. Responses are illustrative.
#Private Invoice
GET
/accounts/{account}/invoices/{invoice}
Available
Retrieve the invoice, including its account and callback URL. Authorize with the account Transfer Key or access token. History uses the same revision pagination as the public read.
- URL
https://coinzaka.com/api/v1/accounts/{account}/invoices/{invoice}- Content type
application/json- Authorization
- Account
transfer-keyin the query string, or anAuthorization: Beareraccess token from Login.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
account | string | Account ID returned by Create Account. | Required |
invoice | string | Invoice ID returned by Create Invoice. | Required |
history_limit | integer | Revisions per history page. | Optional |
history_before | integer | Exclusive revision cursor for older history. | Optional |
transfer-key | string | Account Transfer Key. Omit when using a Bearer access token. | Optional |
curl --request GET "https://coinzaka.com/api/v1/accounts/${ACCOUNT_ID:?Set ACCOUNT_ID}/invoices/${INVOICE_ID:?Set INVOICE_ID}" \
--get \
--data-urlencode "transfer-key=${TRANSFER_KEY:?Set TRANSFER_KEY}"Bash: set ACCOUNT_ID, INVOICE_ID, TRANSFER_KEY before running. Responses are illustrative. Keep credentials on your server and out of shared code.
#List Invoices
GET
/accounts/{account}/invoices
Available
List the account's invoices, newest first. Filter by status, currency and date, then paginate with limit and offset.
- URL
https://coinzaka.com/api/v1/accounts/{account}/invoices- Content type
application/json- Authorization
- Account
transfer-keyin the query string, or anAuthorization: Beareraccess token from Login.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
account | string | Account ID returned by Create Account. | Required |
transfer-key | string | Account Transfer Key. Omit when using a Bearer access token. | Optional |
currency | string | Payment currency code. Allowed: btc, ltc, trx, usdt@trx. | Optional |
q | string | Comma-separated status, date_from and date_to, each at most once. | Optional |
limit | integer | Items per page. Default 10; maximum 100. | Optional |
offset | integer | Matching items to skip. Default 0; maximum 100000. | Optional |
curl --request GET "https://coinzaka.com/api/v1/accounts/${ACCOUNT_ID:?Set ACCOUNT_ID}/invoices" \
--get \
--data-urlencode "transfer-key=${TRANSFER_KEY:?Set TRANSFER_KEY}" \
--data-urlencode "currency=ltc" \
--data-urlencode "q=status:created,date_from:2026-10-13,date_to:2026-10-13" \
--data-urlencode "limit=10" \
--data-urlencode "offset=0"Bash: set ACCOUNT_ID, TRANSFER_KEY before running. Responses are illustrative. Keep credentials on your server and out of shared code.
#Invoice Status
Available
| Status | Meaning |
|---|---|
| created | Awaiting a payment. |
| partpaid | Eligible receipts are below the requested amount. |
| paid | The requested amount has arrived and awaits confirmation. |
| overpaid | More than requested has arrived and awaits confirmation. |
| completed | Eligible confirmed receipts meet the requested amount. |
| expired | The payment window ended without sufficient eligible receipts. |
#Hosted Checkout
Available
Open invoice-url for the hosted payment page. Add embed=1 for an embedded checkout or qr_only=1 for a compact QR view.