OnLink
API reference

Open a collection

Mints a reference and returns the USD deposit instructions a contributor pays to. expectedAmount is advisory — stored with the collection and never used to refuse anything.

POST
/v1/collections

Authorization

partner-key
X-OnLink-Key<token>

In: header

Header Parameters

Idempotency-Key?string

Retrying a create with the same key returns the same collection. A different body with the same key is refused IDEMPOTENCY_KEY_REUSED (422). The key is compared with the collection as it stands now: if the collection was edited since, a retry of the original create is refused IDEMPOTENCY_KEY_REUSED. 8 to 64 characters from A-Z, a-z, 0-9, _ and -; anything else is 400 INVALID_IDEMPOTENCY_KEY.

Match^[A-Za-z0-9_-]{8,64}$

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/collections" \  -H "Content-Type: application/json" \  -d '{    "currency": "USD",    "partnerReference": "campaign-2026-09",    "payerLabel": "September community appeal"  }'
{  "id": "a1b2c3d4-0000-4000-8000-000000000001",  "reference": "DEMO-7K3Q2M",  "status": "open",  "currency": "USD",  "partnerReference": "campaign-2026-09",  "label": "September community appeal",  "depositInstructions": {    "beneficiaryName": "Sandbox Business",    "bankName": "Bank of Nowhere",    "routingNumber": "000000000",    "accountNumber": "00000000123456",    "rails": [      "ach_push",      "fednow",      "wire"    ],    "depositMessage": "SBX0DEPOSITMESSAGE"  },  "fee": {    "percentBps": 100,    "flatMinor": 50,    "capMinor": 2000,    "currency": "USD"  },  "expectedAmount": "100.00",  "grossAmount": "100.00",  "feeAmount": "1.50",  "netAmount": "98.50",  "createdAt": "2026-09-22T17:38:46.915Z"}