Final invoices

The payable invoice object, its payUrl, x402Url and statusUrl links, and the invoice lifecycle statuses.

A final invoice is the payable object. It is created only after wallet approval for the AI-assistant flow, or through a verified merchant account/API key flow. Final invoices have payUrl, x402Url, and statusUrl.

Post-approval · payable

GET/api/v1/invoices/:invoiceId

With the platform action key, this endpoint returns public-safe invoice status for a final invoice. With a merchant API key, it returns the merchant-owned invoice shape from the developer API.

Post-approval · payable

{
  "invoiceId": "inv_abc123",
  "status": "OPEN",
  "payUrl": "https://sollection.xyz/pay/pay_abc123",
  "x402Url": "https://sollection.xyz/api/x402/pay/pay_abc123",
  "statusUrl": "https://sollection.xyz/invoice/inv_abc123/status",
  "amount": "250",
  "tokenSymbol": "USDC",
  "tokenName": "USD Coin",
  "tokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "tokenDecimals": 6,
  "cluster": "mainnet-beta"
}

Invoice lifecycle statuses in the database are DRAFT, OPEN, PAID, and CANCELLED.

Creating final invoices directly

A verified merchant account or API key can create a final invoice directly, without the wallet-approval intent flow. Beyond items, add chargesfor costs that aren't a line item — a rush fee, a processing fee, a discount as a negative amount. Charges add to the invoice total the same way items do.

Post-approval · payable

POST/api/v1/invoices

Post-approval · payable

{
  "recipientId": "rcp_abc123",
  "payerEmail": "client@example.com",
  "token": "USDC",
  "items": [
    { "label": "Landing page website", "amount": "200.00", "qty": 1 }
  ],
  "charges": [
    { "label": "Rush fee", "amount": "25.00" }
  ],
  "dueDate": "2026-07-20"
}
createInvoiceIntent also accepts a charges array with the same { label, amount } shape. See InvoiceIntent above.