List subscriptions
Returns subscriptions for the account, newest first. Cursor-paginated, and filterable by customer, status and renewal state.
Parameters
| Parameter | Description |
|---|---|
| customer_idstring | null · queryoptional | Only subscriptions of this customer. At most 64 characters. |
| statusarray of enum · queryoptional | Only subscriptions in these statuses, comma-separated. An unknown value is a 400. A paused subscription is active: filter it with renewal_state. |
| renewal_statearray of enum · queryoptional | Only subscriptions in these renewal states, comma-separated. An unknown value is a 400. |
| limitinteger · queryoptional | Maximum number of objects to return. Defaults to 10. Between 1 and 100. |
| starting_afterstring | null · queryoptional | Cursor for pagination: the id of the last object on the previous page. Returns the objects listed after it. An id that names no such object is a 400. At most 128 characters. |
| expandstring | null · queryoptional | Comma-separated related objects to include in the response. Expandable here: customer, price, refund_eligibility. An unknown name is a 400, and embedding another resource needs that resource's read scope. At most 256 characters. |
Cursor-paginated. limit caps a page and starting_after takes the last id you saw.
Returns
A list object: data holds the page and has_more says whether another one exists. Page forward by passing the last id of the page as starting_after; a short page is not the end of the list.
Paging is forward-only. To go back, keep the cursors you have already used.
status and renewal_state each take a comma-separated list, such as status=active,past_due. An unknown value is a 400 naming the valid ones. There is no paused status: find paused subscriptions with renewal_state=paused.
Test it
Filter to status=past_due against a sandbox with an advanced test clock to see the dunning cohort your retry job would pick up.
Errors
| Status | Cause |
|---|---|
| 400 | The request was refused (type: invalid_request_error): a required parameter is missing (parameter_missing), one failed validation (parameter_invalid) or is not one the operation takes (parameter_unknown), and param names it. |
| 401 | No credential, or one that does not authenticate. |
| 402 | The account is suspended (tenant_suspended), or the payment provider refused a charge or refund the call made (type: payment_error, code: payment_refused). |
| 403 | Authenticated, but not allowed: missing scope (insufficient_scope), a key of the wrong mode (mode_mismatch), or a refused origin. Needs the subscriptions:read scope. |
| 404 | No such object in this account and mode. |
| 429 | Rate limited. Retry-After says when to try again. |
| 500 | Something failed on BillKit's side (type: api_error). Retry with the same Idempotency-Key. |
| 503 | Temporarily unable to serve. reason says whether the request was attempted. |
Other subscriptions operations
- Retrieve a subscription GET /v1/subscriptions/{subscription_id}
- Cancel a subscription POST /v1/subscriptions/{subscription_id}/cancel
- Pause subscription POST /v1/subscriptions/{subscription_id}/pause
- Preview update subscription POST /v1/subscriptions/{subscription_id}/preview_update
- Reactivate subscription POST /v1/subscriptions/{subscription_id}/reactivate
- Reauthorize payment method POST /v1/subscriptions/{subscription_id}/reauthorize_payment_method
- Resume subscription POST /v1/subscriptions/{subscription_id}/resume
- Change a subscription's plan POST /v1/subscriptions/{subscription_id}/update
BillKit