list_payments
Retrieve a paginated list of payments 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 customer support uses:
Customer asking about order status -
orderIdlookup, reportstatusand key details (product, amount, date)Customer unsure if payment went through -
searchby email, identify which records arepaidvsfailed.Customer says they were double-charged -
searchby email, compare all records. CheckstatusandamountPaidon each.Customer asking about a coupon -
orderIdlookup, checkcouponobject and report the coupon details (code, label, discount amount).Customer asking for a receipt -
orderIdlookup, confirm the order details (product, amount, date, payment method). AninvoiceIdon a paid record means an invoice was generated;get_invoicereturns it with a link to its PDF. Invoices can be resent from the Checkout Page dashboard.Customer asking about a refund -
orderIdlookup, checkstatus. Ifrefunded: confirm the full refund, reportamountRefundedas the refund amount,lastRefundAtas the refund date, andlastRefundReasonas the reason. Ifpartial_refund: reportamountRefundedvsamountPaidso the customer knows how much was refunded and how much they retain.lastRefundReasonNotemay contain a merchant-written explanation.Customer asking about a download or delivery -
orderIdlookup, confirm the purchase is paid. No download URL or delivery tracking is available on payment records. For digital products, downloads are accessed via the customer portal. The customer should check their purchase confirmation email first; if they can't find it, sharing a link to the customer portal will let them access their downloads.Customer says checkout keeps failing -
searchby email. Look for records with problem statuses:failed,draft,draft_expired,created,pending,unpaid, orcanceled. Adraftordraft_expiredrecord may mean the customer didn't complete the checkout form. CheckpaymentErroron failed records for a specific error message.Customer wants full purchase history - this tool only covers payments. Also query the other transaction tools with the same email/customerId to get the full picture. Combine results before presenting. Do not present results from
list_paymentsalone as a complete history.Order lookup returns 0 results - try
list_bookings(orderId: "...")andlist_subscriptions(orderId: "..."). The order may be a booking or subscription, not a payment. Always try all tools before reporting an order doesn't exist.
Example uses:
"Show me failed payments" - filter by
status: 'failed'"Show me payments for checkout page X" - filter by
pageId"Show me all payments from customer X" - filter by
searchwith their name or email"Find order ORD-9182" - filter by
orderId"Show me abandoned carts" - filter by
abandonmentStatus: 'abandoned'"Show me refunds" - filter by
status: 'refunded'(also checkstatus: 'partial_refund'separately - only one status per call).
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.
Customer name fields. There are four places a name can appear: (1) customerName - the canonical customer name from the customer entity. This is the primary name field. (2) billing.name - from the payment card, may differ from the checkout form name. (3) shipping.name - from the shipping details, when provided. (4) fields array - the name entered on the checkout form. These may not all match - e.g. a spouse's card used for someone else's order. For questions about a name on an order, customerName is the best default; check the other three if there's a discrepancy.
Data limitations for common support questions:
Receipt/invoice requests:
invoiceIdconfirms an invoice was generated.get_invoicereturns the invoice and a link to its PDF. Resending an invoice is only possible in the Checkout Page dashboard.Refund details:
amountRefunded,lastRefundAt,lastRefundReason, andlastRefundReasonNoteare available on refunded/partial_refund records. Limitation: these fields only reflect the most recent refund action - earlier reasons are overwritten. Full refund history requires the Checkout Page dashboard.Historical refund limitation: for records created before
2026-01-22T06:43:28.000Z, some refund metadata may be incomplete. A record can showstatus: refunded,partial_refund, or sometimescanceledwhileamountRefundedremains0or refund detail fields are missing. When reviewing older records, treat the refund status as authoritative but only quote an exact refunded amount if the record explicitly includes it.Cancellation metadata:
canceledByandcanceledReasonare only set when a cancellation is performed from the Checkout Page dashboard. For cancellations from other flows, these fields may be empty or null, so cancellation reason analysis is often unavailable.Email delivery: No tool in the MCP exposes email delivery information. A purchase can be confirmed (via this tool) but email delivery status cannot be checked through this tool. Email delivery can be verified and emails can be resent from the Checkout Page dashboard.
Download/delivery: No download URL, delivery status, or fulfilment tracking exists on payment records. For digital products, downloads are accessed via the customer portal.
Payment failure reasons:
paymentErrorprovides the last error message but is not guaranteed to be set.paymentErrorpersists even after a successful retry - always checkstatusfirst.Address information:
billing.addressandshipping.addressare often empty objects, especially for non-physical products.
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, "has X paid?"): use
limit: 10or less.
Tips for common questions:
For count questions ("how many paid orders?"), filter by the relevant status (e.g.
status: "paid") and readtotalfrom the response. An unfilteredtotalincludes all records regardless of status (failed, draft, etc.) - always filter when counting a specific category.For "who paid?" or "has X paid?", use
searchwith the customer's email and check thestatusfield.
Payments 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. There is no risk of double-counting when combining results across tools.
Name search: search on this tool matches customerName, customer email, productTitle, and orderId. Searching by name (e.g. search: "Nelson") returns all records for customers with that name. If you need more customer profile details (company, phone, tax ID), use list_customers or get_customer.
Order lookup: If "look up order 12345" returns 0 results here, try list_bookings(orderId: "12345") and list_subscriptions(orderId: "12345") - the order may be a booking or subscription, not a payment.
Full customer history: For "show me everything this customer has bought," query all transaction 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 - payment records have customerName, customerId, customerEmail, billing.name, and shipping.name but not the full profile fields.
This tool is read-only. You cannot process refunds, resend receipts, update customer details, change shipping addresses, or resend download links. For these actions, explain what's currently on file. The merchant can manage orders in the Checkout Page dashboard. The customer can access their purchases 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 payments by page ID. | |
| search | No | Search payments by customerEmail, customerName, productTitle, or orderId. Contains match. | |
| status | No | Payment status filter. Valid values: created, pending, unpaid, partially_paid, paid, canceled, failed, partial_refund, refunded, draft, draft_expired. | |
| 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. | |
| productId | No | Filter payments by product ID. | |
| couponCode | No | Filter payments where a specific coupon code was used (e.g. 'SUMMER20'). | |
| customerId | No | Filter payments by customer ID. | |
| orderStatus | No | Order lifecycle status filter. Valid values: archived, active, canceled. | |
| 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` payments. |
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. |