Skip to content

Hosted HTTP API

Run pnpm dev:billing-api (default :8788) or deploy apps/billing-api.

Authenticate with x-autlantic-api-key (or Authorization: Bearer). Mode follows the key:

  • abk_test_… → Test · Base Sepolia
  • abk_live_… → Live · Base mainnet

Catalog, subscriptions, invoices, payments, payment links, and webhooks are scoped to that mode.

Machine-readable

ArtifactURL
OpenAPI 3.1OpenAPI guide · raw /openapi.yaml
Postman collectionPostman guide · raw JSON

Import either into Postman, Insomnia, Speakeasy, or your codegen tool. Production server: https://billing.autlantic.com.

Public checkout (no API key)

MethodPathPurpose
GET/checkout/subscribe/:idHosted HTML subscription checkout
GET/checkout/subscribe/:id.jsonSession JSON
POST/checkout/subscribe/:id/activateActivate (test or live with { onChainSubscriptionId })
GET/checkout/pay/:idHosted one-time payment checkout
GET/checkout/pay/:id/statusPayment session JSON
POST/checkout/pay/:id/confirmConfirm payment ({ txHash? })
GET/checkout/link/:idPayment link landing (URL / QR target)
GET/checkout/link/:id/statusPayment link status JSON
POST/checkout/link/:id/openMint a one-time payment from the link ({ customerWallet? })

Authenticated (X-Autlantic-Api-Key)

MethodPathPurpose
GET/v1/productsList active catalog products and prices
POST/v1/paymentsCreate one-time payment (priceId once or amountUsdc)
GET/v1/payments/:idFetch payment
POST/v1/payment-linksCreate shareable payment link (returns url)
GET/v1/payment-linksList payment links
GET/v1/payment-links/:idFetch payment link
POST/v1/payment-links/:id/disableDisable a payment link
GET/v1/subscriptionsList (?status=active)
POST/v1/subscriptionsCreate (priceId or amountUsdc + interval)
GET/v1/subscriptions/:idFetch
PATCH/v1/subscriptions/:idUpdate
POST/v1/subscriptions/:id/completeComplete mandate
POST/v1/subscriptions/:id/activateActivate
POST/v1/subscriptions/:id/cancelCancel
GET/v1/invoicesList (?subscriptionId=)
GET/v1/invoices/:idFetch
POST/v1/invoices/:id/chargeCharge
POST/v1/invoices/:id/refundRefund
POST/v1/invoices/:id/voidVoid
json
{
  "amountUsdc": 42,
  "merchantRefPrefix": "invoice",
  "description": "Consulting",
  "maxUses": 1,
  "expiresAt": null,
  "payoutAddressEvm": "0x…"
}

Or pass a catalog priceId with interval "once" instead of amountUsdc. Response includes paymentLink and url (/checkout/link/:id). Encode url as a QR for in-person or shareable pay.

Idempotency

Pass Idempotency-Key on POST requests. Replays return the cached response for 24 hours.

Renewals

Due invoices are processed by apps/billing-worker. Test invoices sandbox-charge; live invoices use the mainnet vault/relayer path.

Autlantic Payments SDK