Coinland PayDocs
API reference

Payments

GET/api/pay/v1/payments

Newest first, cursor-paginated.

Authorization

bearerKey
AuthorizationBearer <token>

Authorization: Bearer clpay_live_<64 hex> for the checkout routes, Authorization: Bearer clpay_payout_<64 hex> for the payout routes. The wrong class on a route is PAY_WRONG_KEY_KIND (403).

A key may additionally carry an IP allowlist set in the business console. Empty (the default) places no restriction; with entries, a call from an unlisted address is UNAUTHORIZED (401).

In: header

Query Parameters

limit?integer
Range1 <= value <= 100
Default25
cursor?string

next_cursor from the previous page.

currency?string

Filter by coin slug (e.g. usdt).

from?string

ISO 8601 lower bound on paid_at.

Formatdate-time
to?string
Formatdate-time

Response Body

application/json

curl -X GET "https://example.com/api/pay/v1/payments"
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "receipt_no": "string",      "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",      "reference_id": "string",      "status": "completed",      "currency": "string",      "amount": "string",      "charged_amount": "string",      "fee_amount": "string",      "fee_bearer": "merchant",      "net_amount": "string",      "usd_value": "string",      "payer_id": "7bded2ff-6743-4a0e-a147-77540fb16606",      "metadata": {},      "receipt": "string",      "paid_at": "2019-08-24T14:15:22Z"    }  ],  "next_cursor": "string"}
GET/api/pay/v1/payments/{id}

The authoritative record — what webhooks tell you to come read.

Authorization

bearerKey
AuthorizationBearer <token>

Authorization: Bearer clpay_live_<64 hex> for the checkout routes, Authorization: Bearer clpay_payout_<64 hex> for the payout routes. The wrong class on a route is PAY_WRONG_KEY_KIND (403).

A key may additionally carry an IP allowlist set in the business console. Empty (the default) places no restriction; with entries, a call from an unlisted address is UNAUTHORIZED (401).

In: header

Path Parameters

id*string

Payment id (UUID) or receipt number (CLP-…).

Response Body

application/json

application/json

curl -X GET "https://example.com/api/pay/v1/payments/string"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "receipt_no": "string",  "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",  "reference_id": "string",  "status": "completed",  "currency": "string",  "amount": "string",  "charged_amount": "string",  "fee_amount": "string",  "fee_bearer": "merchant",  "net_amount": "string",  "usd_value": "string",  "payer_id": "7bded2ff-6743-4a0e-a147-77540fb16606",  "metadata": {},  "receipt": "string",  "paid_at": "2019-08-24T14:15:22Z"}
POST/api/pay/v1/receipts/verify

Checks the token's signature against YOUR receipt signing secret and that the payment exists with matching facts. Prefer offline verification (same HMAC, your secret, no network hop) — this endpoint is for stacks that would rather not implement it.

It also accepts a token signed with your PREVIOUS receipt secret while that rotation window is open, and it stays authoritative for older tokens after the window closes: it verifies against the payment record, not against a key you hold.

Authorization

bearerKey
AuthorizationBearer <token>

Authorization: Bearer clpay_live_<64 hex> for the checkout routes, Authorization: Bearer clpay_payout_<64 hex> for the payout routes. The wrong class on a route is PAY_WRONG_KEY_KIND (403).

A key may additionally carry an IP allowlist set in the business console. Empty (the default) places no restriction; with entries, a call from an unlisted address is UNAUTHORIZED (401).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/api/pay/v1/receipts/verify" \  -H "Content-Type: application/json" \  -d '{    "receipt": "string"  }'
{  "valid": true,  "payment": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "receipt_no": "string",    "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",    "reference_id": "string",    "status": "completed",    "currency": "string",    "amount": "string",    "charged_amount": "string",    "fee_amount": "string",    "fee_bearer": "merchant",    "net_amount": "string",    "usd_value": "string",    "payer_id": "7bded2ff-6743-4a0e-a147-77540fb16606",    "metadata": {},    "receipt": "string",    "paid_at": "2019-08-24T14:15:22Z"  }}