/
API ReferenceCollections

Collections

Create and manage payment collections from customers.

POST/v1/collections

Create a new payment collection

Parameters

NameTypeInRequiredDescription
amountintegerbodyRequiredAmount in smallest currency unit (e.g., cents)
currencystringbodyRequiredISO 4217 currency code
customer_idstringbodyOptionalExisting customer ID
payment_methodstringbodyRequiredPayment method type: card, bank_transfer, stablecoin
descriptionstringbodyOptionalInternal description for this collection
metadataobjectbodyOptionalKey-value pairs for your reference
idempotency_keystringheaderRequiredUnique key to prevent duplicate charges

Response Codes

201Collection created400Invalid parameters402Payment failed409Duplicate idempotency key422Unprocessable payment method
1{
2  "id": "col_a1b2c3d4",
3  "object": "collection",
4  "amount": 5000,
5  "currency": "USD",
6  "status": "pending",
7  "customer_id": "cus_8a3b7c9d",
8  "payment_method": "card",
9  "description": "Monthly subscription - Pro plan",
10  "metadata": {
11    "order_id": "ord_12345",
12    "plan": "pro"
13  },
14  "created_at": "2026-05-01T14:30:00Z",
15  "client_secret": "col_a1b2c3d4_secret_xyz..."
16}
GET/v1/collections/{id}

Retrieve a collection by ID

Parameters

NameTypeInRequiredDescription
idstringpathRequiredCollection ID

Response Codes

200Collection retrieved404Collection not found
1{
2  "id": "col_a1b2c3d4",
3  "object": "collection",
4  "amount": 5000,
5  "currency": "USD",
6  "status": "succeeded",
7  "customer_id": "cus_8a3b7c9d",
8  "payment_method": "card",
9  "captured_at": "2026-05-01T14:30:05Z",
10  "created_at": "2026-05-01T14:30:00Z"
11}
GET/v1/collections

List all collections with pagination and filters

Parameters

NameTypeInRequiredDescription
limitintegerqueryOptionalNumber of results (1-100, default 25)
starting_afterstringqueryOptionalCursor for pagination
statusstringqueryOptionalFilter by status: pending, succeeded, failed, refunded
created_gtestringqueryOptionalFilter by creation date (ISO 8601)
created_ltestringqueryOptionalFilter by creation date (ISO 8601)

Response Codes

200List of collections
1{
2  "object": "list",
3  "data": [
4    {
5      "id": "col_a1b2c3d4",
6      "object": "collection",
7      "amount": 5000,
8      "currency": "USD",
9      "status": "succeeded",
10      "created_at": "2026-05-01T14:30:00Z"
11    }
12  ],
13  "has_more": true,
14  "next_cursor": "col_e5f6g7h8"
15}
POST/v1/collections/{id}/capture

Capture a previously authorized collection

Parameters

NameTypeInRequiredDescription
idstringpathRequiredCollection ID
amountintegerbodyOptionalAmount to capture. Defaults to full authorized amount

Response Codes

200Collection captured400Collection not in capturable state404Collection not found
1{
2  "id": "col_a1b2c3d4",
3  "object": "collection",
4  "amount": 4500,
5  "currency": "USD",
6  "status": "succeeded",
7  "captured_at": "2026-05-01T14:35:00Z"
8}