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.
Auto-pagination
Section titled “Auto-pagination”// 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);}for intent, err := range client.PaymentIntents.All(ctx, &gryphempay.PaymentIntentListParams{Limit: 100}) { if err != nil { return err } fmt.Println(intent.ID)}for intent in gp.payment_intents.list_all(limit=100): print(intent["id"])Filtering
Section titled “Filtering”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.