Docs
API ReferenceCheckoutGet Public Invoice

Get Public Invoice

GET/checkout/api/v1/invoices/{id}Recommended

Everything the payment page renders: the merchant company name in full, the buyer email and name masked, the amount, and the blockchain/currency matrix the buyer picks from. Stamps viewedAt on the first call. Returns 400 with code INVOICE_EXPIRED or INVOICE_CANCELLED β€” not 200 β€” when the invoice is no longer payable, and 404 INVOICE_NOT_FOUND otherwise.

Authentication

Signature Pattern

None β€” public endpoint, no signature required.
HeaderValueDescription
Acceptapplication/jsonNo API key, signature or idempotency key β€” the checkout surface is public

Request Parameters

NameTypeRequiredDescription
idstringRequiredPath parameter β€” invoice CUID, as returned by the gateway create-invoice call

Response Parameters

FieldTypeExample
idstring"clx7k2p9a0001qz8fh3n2v4m6"
referenceIdstring"INV-260826-041B"
amountstring"12500"
currencystring"USD"
descriptionstring"Order #4471 β€” annual plan"
merchantobject{…}
merchant.namestring"Northwind Digital LLC"
availableBlockchainsarray["ethereum","polygon","bsc","bitcoin","tr…
availableCurrenciesobject{…}
availableCurrencies.ethereumarray["ETH","USDT","USDC"]
availableCurrencies.polygonarray["POL","USDT","USDC"]
availableCurrencies.bscarray["BNB","USDT","USDC"]
availableCurrencies.bitcoinarray["BTC"]
availableCurrencies.tronarray["TRX","USDT"]
availableCurrencies.solanaarray["SOL","USDC"]
availableCurrencies.tonarray["TON","USDT"]
availableCurrencies.arbitrumarray["ETH","USDT","USDC"]
availableCurrencies.optimismarray["ETH","USDT","USDC"]
availableCurrencies.basearray["ETH","USDC"]
availableCurrencies.avalanchearray["AVAX","USDT","USDC"]
customerEmailstring"a***@example.com"
customerNamestring"A*** N***"
statusstring"OPEN"
expiresAtstring"2026-08-26T14:30:00.000Z"
returnUrlstring"https://shop.example.com/orders/4471/tha…
cancelUrlstring"https://shop.example.com/orders/4471"

Response Example

JSONResponse
{
  "success": true,
  "data": {
    "id": "clx7k2p9a0001qz8fh3n2v4m6",
    "referenceId": "INV-260826-041B",
    "amount": "12500",
    "currency": "USD",
    "description": "Order #4471 β€” annual plan",
    "merchant": {
      "name": "Northwind Digital LLC"
    },
    "availableBlockchains": [
      "ethereum",
      "polygon",
      "bsc",
      "bitcoin",
      "tron",
      "solana",
      "ton",
      "arbitrum",
      "optimism",
      "base",
      "avalanche"
    ],
    "availableCurrencies": {
      "ethereum": [
        "ETH",
        "USDT",
        "USDC"
      ],
      "polygon": [
        "POL",
        "USDT",
        "USDC"
      ],
      "bsc": [
        "BNB",
        "USDT",
        "USDC"
      ],
      "bitcoin": [
        "BTC"
      ],
      "tron": [
        "TRX",
        "USDT"
      ],
      "solana": [
        "SOL",
        "USDC"
      ],
      "ton": [
        "TON",
        "USDT"
      ],
      "arbitrum": [
        "ETH",
        "USDT",
        "USDC"
      ],
      "optimism": [
        "ETH",
        "USDT",
        "USDC"
      ],
      "base": [
        "ETH",
        "USDC"
      ],
      "avalanche": [
        "AVAX",
        "USDT",
        "USDC"
      ]
    },
    "customerEmail": "a***@example.com",
    "customerName": "A*** N***",
    "status": "OPEN",
    "expiresAt": "2026-08-26T14:30:00.000Z",
    "returnUrl": "https://shop.example.com/orders/4471/thanks",
    "cancelUrl": "https://shop.example.com/orders/4471"
  },
  "timestamp": "2026-08-26T13:41:02.477Z",
  "requestId": "req_V1StGXR8_Z5j"
}

Error shape

JSONError
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  },
  "timestamp": "2026-08-26T13:41:02.477Z",
  "requestId": "req_V1StGXR8_Z5j"
}

Status Codes

200Success
201Created
400Bad Request
401Unauthorized
404Not Found
429Rate Limited
Try itMockapi2.havala.io
GEThttps://api2.havala.io