Coinland PayDocs

Coinland Pay

Accept payments from Coinland customers on your own site, settled instantly from their balance with no network fee

Coinland Pay lets your site take payment from anyone who holds a balance on Coinland. You create a checkout session on your server, send the customer to a hosted widget, and the amount moves from their Coinland balance into your Coinland business account.

There is no blockchain in that path. Both accounts live on Coinland, so a payment is an internal ledger transfer: it settles in one hop, it confirms in the same request the customer approves it in, and it costs no network fee at any amount. A 4 USDT payment is as economical as a 4,000 USDT one.

What the integration looks like

You create a session with POST /api/pay/v1/sessions, server-side, using your secret key. You give it your own order id, a title, and the price in each coin you are willing to accept.

The customer pays in the hosted widget. You either open it in a popup with the embed script or redirect to the session's checkout_url. They sign in to Coinland, pick one of your coins, confirm, and the transfer settles.

You are notified and you fulfil. Coinland POSTs a signed payment.completed webhook; you read the authoritative record with GET /api/pay/v1/payments/{id} and release the goods.

Start with the Quickstart for the copy-paste version of all three.

Why it is shaped this way

The widget is hosted, and that is the point. The customer authenticates and confirms on Coinland's own origin, never on yours. No Coinland password, OTP or TOTP code is ever typed into a page you serve, which means a compromise of your frontend cannot become a compromise of your customers' Coinland accounts. Your site never handles a credential and never needs to be trusted with one.

You price in coins, and Coinland converts nothing. A session carries a list of {currency, amount} options and the customer picks exactly one of them. If you list 10.5 USDT and 0.00012 BTC, then whichever they choose, that is the number that moves. This rail quotes no spot rate and applies no conversion, so the amount you asked for is the amount you can reconcile against.

Payments cannot be faked. Every completed payment carries a receipt token signed with your webhook secret. A customer cannot fabricate one without that secret, so a receipt is portable proof of payment that any of your systems can check offline. It is still not what you fulfil on -- that stays the webhook and the API.

Before you write any code

Two things have to exist first, and neither is self-serve from the API:

  1. Your account is promoted to a business. Coinland staff do this. It turns your ordinary customer account into a business, which gets its own business wallet for your takings, kept apart from your personal balance.
  2. You have an API key. You mint it yourself in the business console once you are promoted, and it is shown once.

Quickstart walks through both.

Where to go next

If you want toRead
The shortest path to a working paymentQuickstart
To embed the widget in your checkout pageWidget
To understand the session lifecycle and retriesSessions
To reconcile fees and receipt numbersPayments
To verify a receipt without calling usReceipts
To send money to a customer, or refund a paymentPayouts
To handle notifications correctlyWebhooks
Every endpoint, field by fieldAPI reference

The machine-readable versions of this site are at /llms.txt and /llms-full.txt, and every page has a Markdown twin at its own path plus .md. The OpenAPI document is published at /openapi.json.

On this page