Skip to content

Pagination

Large collections (payment intents, invoices, transactions, webhook deliveries, events) are paginated with a cursor. Lists are ordered newest first.

Parameter Default Description
limit 25 Page size, 1–100
starting_after — The id of the last object of the previous page
{
"object": "list",
"data": [{ "id": "pi_01J…", "object": "payment_intent" }],
"has_more": true,
"next_cursor": "pi_01J…"
}

To fetch the next page, pass next_cursor as starting_after. When has_more is false, next_cursor is null. Cursors are stable even while new objects are being created.

Small collections (stores, wallets, webhook endpoints, payment links) return { "object": "list", "data": [...] } without paging.

// Awaiting returns one page; iterating walks every page lazily.
const firstPage = await gp.paymentIntents.list({ limit: 50 });
for await (const intent of gp.paymentIntents.list({ status: ['confirmed', 'overpaid'] })) {
console.log(intent.id);
}

GET /v1/payment-intents also accepts status (comma-separated), store_id, search (matches the id, merchant_order_id, customer email/reference and description), created_gte, created_lt and source. Filters combine with pagination.