list_subscriptions
Retrieve a paginated list of subscriptions processed through your Checkout Page account. Pass livemode: false to read test-mode records.
For questions about a customer's full purchase history query the other transaction tools.
Example uses:
"Show me recent subscriptions" — use no filters or narrow with
createdAfter"Find the subscription for order ORD-9182" — filter by
orderId"Show me subscriptions for checkout page X" — filter by
pageId"Find subscriptions for jane@example.com" — use
search(contains match on email)"Find subscriptions for Jane Smith" — use
search: "Jane Smith"(matchescustomerName)"Show me Galactic Coffee subscriptions" — use
search: "Galactic Coffee"(matchesproductTitle)"How many active subscriptions do I have?" — filter by
status: "active", readtotal. Note: also querystatus: "past_due"separately — past_due subscriptions are still active but at risk (see status guidance below)."Show me canceled subscriptions" — filter by
status: "canceled""What's my MRR?" — Tell the merchant they can see their MRR in the Checkout Page dashboard.
"Show me abandoned subscription checkouts" — use
abandonmentStatus: "abandoned"
Money amounts: All monetary amounts are returned in the smallest currency unit (for example, 10661 USD = $106.61, 299 EUR = €2.99, 500 JPY = ¥500). Divide by 100 before displaying amounts to merchants or customers, noting that some currencies such as JPY do not use decimal minor units.
Example customer support uses:
Customer asking if their subscription is active —
searchby email ororderIdlookup. Checkstatus: ifactive, the subscription is healthy. Ifpast_due, the subscription is still active but the payment method is failing — tell the customer to update their payment method through the customer portal. Ifcanceled, report when it was canceled (canceledAt).Customer asking when their next payment is — check
currentPeriodEndfor the next billing date,amountfor the charge amount,intervalandintervalCountfor the billing frequency (e.g. interval: "year", intervalCount: 1 = annual billing). Note: if the subscription has a coupon, the actual charge may be less thanamount— checkcouponSnapshotfor discount details.Customer saying their payment keeps failing —
searchby email. Checkstatusforpast_dueorfailed. Check thepaymentErrorfield for a specific error message. Note: the troubleshooting depends on context — if this is the first payment to activate the subscription, the customer may need to retry with a different payment method. If it's a recurring payment failing, the customer should update their payment method through the customer portal. If the customer has multiple subscriptions, only some may be failing — distinguish them clearly.Customer wanting to cancel —
orderIdor email lookup, confirm what's on file (status, billing details, current period end). Subscription cancellation can be done by the merchant in the Checkout Page dashboard or by the customer through the customer portal.Customer claiming they cancelled but are still being charged - check
statusandcanceledAt. Ifstatus: "canceled"andcanceledAtis set, the subscription was indeed canceled on that date. ThecurrentPeriodEndmay still be in the future (the customer paid for the period). For the individual charges, uselist_subscription_payments(subscriptionId: ...).Customer asking for a refund on their subscription — confirm the subscription details (status, amount, how long active). If a refund has already been issued, report
lastRefundAt(date),lastRefundReason(reason code), andlastRefundReasonNote(merchant notes). Refunds can be processed by the merchant in the Checkout Page dashboard.Customer asking what plan they're on — check
productTitle(human-readable product name, e.g. "Galactic Coffee Subscription"),amount,interval, andintervalCount. If the subscription has a coupon, also report the discount. Present the plan name with amount and billing frequency (e.g. "Galactic Coffee Subscription — $100/month").Customer asking about their trial — check
trialStart,trialEnd, andstatus. IfstatusistrialingorscheduledandtrialEndis in the future, the trial is still active (trialing= free trial;scheduled= setup fee paid, billing starts later). IftrialEndis in the past, the trial has ended (billing should have started atstartDate).Customer asking about their total payments - this tool reports the current recurring charge (
amount), billing frequency (interval+intervalCount), and how long the subscription has been active (fromcreatedAt). For what was actually charged each cycle, uselist_subscription_payments(subscriptionId: ...)and add up the payments.Customer asking about a discount on their subscription — check
couponSnapshotfor the coupon code, label, and discount amount (amountOfforpercentOff). CheckcouponSnapshot.durationto see how long the discount lasts (forever,repeatingwithdurationInMonths, oronce). Setup fee discounts are visible insetupFeeDiscountAmount.Customer saying the name on their subscription is wrong — check
customerName,billing.name(from the payment card),shipping.name, and thefieldsarray forcustomer_name(from the checkout form). These often don't match. The merchant can update the name in the Checkout Page dashboard; the customer can update it through the portal.
Data limitations for common support questions:
Charge/payment history: For per-payment history of a subscription (when each charge happened, amount per cycle, refund details), use
list_subscription_payments(subscriptionId: ...).Refund details:
lastRefundAt,lastRefundReason,lastRefundReasonNoteavailable but only reflect the most recent refund. Per-refund history requires the dashboard.Historical refund limitation: for records created before
2026-04-09T08:47:59.000Z, full subscription refund transaction history may be incomplete. A subscription can still show refund-related fields or a refunded state while older refund history is incomplete or missing. When reviewing older subscription records, only quote exact refund timing or refund details when the record explicitly includes them.Email delivery: No email delivery data available through this tool. Email delivery can be verified and emails can be resent from the Checkout Page dashboard.
Access/entitlement: No content access or login status data.
Payment method updates: The merchant can update in the dashboard; the customer can update through the portal.
Cancellation metadata:
canceledAtpresent on canceled records.canceledByandreasonare optional.
Date filters: Always use UTC timestamps with the Z suffix (e.g. 2026-03-01T00:00:00Z). Never use local timezone offsets — dates are stored and compared in UTC.
Limit and large response handling:
Use the right limit for the task:
Single-record lookups (order lookup, customer search): use
limit: 10or less.
Tips for common questions:
For count questions, use the
statusfilter and readtotal. Remember:past_duesubscriptions are still active — include them in "active" counts.For single-customer lookups, use
searchwith email ororderId.A customer may have multiple subscription records (e.g. a failed attempt followed by a successful signup). Always check all returned records, not just the first one.
Subscriptions are returned sorted newest-first. Use cursor-based pagination (starting_after / ending_before) to page through large result sets. starting_after and ending_before cannot be used simultaneously. Max limit is 100, default is 10.
Cross-tool routing:
Records do NOT overlap between tools — a transaction only appears in one tool. Payments, bookings, and subscriptions are separate record sets. No risk of double-counting when combining results.
Order lookup: If "look up order 12345" returns 0 results here, try list_payments(orderId: "12345") and list_bookings(orderId: "12345").
Full customer history: For "show me everything this customer has bought," query list_payments and list_bookings tools with the same customerId or search email and combine results.
Customer profile: For profile data (company, phone, billing email, tax ID), use list_customers or get_customer — subscription records have customerName, customerId, customerEmail, billing.name, and shipping.name but not the full profile fields.
This tool is read-only. You cannot cancel subscriptions, process refunds, update payment methods, change billing details, pause/resume billing, or switch plans. For these actions, explain what's currently on file. The merchant can manage subscriptions in the Checkout Page dashboard by navigating to the subscription record. The customer can manage their subscription through the customer portal.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records per page (integer, max 100, default 10). | |
| pageId | No | Filter subscriptions by page ID. | |
| search | No | Search by customerEmail, customerName, productTitle, or orderId. Contains match. | |
| status | No | Filter by subscription lifecycle status. Valid values: draft, draft_expired, incomplete, incomplete_expired, trialing, paused, scheduled, active, past_due, canceled, unpaid, failed, completed. | |
| orderId | No | Filter by exact order ID. | |
| livemode | No | Set to false to read test-mode records (created while a page was in test mode). Defaults to live records. | |
| customerId | No | Filter subscriptions by customer ID. | |
| createdAfter | No | Filter by lower bound of createdAt. | |
| createdBefore | No | Filter by upper bound of createdAt. | |
| ending_before | No | Cursor-based pagination. Pass a record `id` to return results before it. Cannot be used with `starting_after`. | |
| starting_after | No | Cursor-based pagination. Pass a record `id` to return results after it. Cannot be used with `ending_before`. | |
| abandonmentStatus | No | Filter by `abandoned` or `recovered` subscriptions. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| total | Yes | Total number of records matching the query across all pages. | |
| has_more | Yes | Whether more records exist beyond the current page. |