list_checkouts
List the checkouts a project's members started on the portal or in a bot — the member, the plan, the rail, when it stalled and what became of it. Read-only. Paginated, narrowed to the stalled or the recovered ones, one plan or one member.
Read the checkout ledger behind Lead nurture's stalled-checkout trigger: every checkout a member
started on the portal or in a bot, newest first, with the member, the plan they were buying, the
rail (provider) and where they started (surface), the order reference the rail was given, when
it started, when the hourly sweep counted it as stalled (stalled_at, once the project's checkout
window passed with no settled charge) and when a charge finished it (completed_at with
payment_id), summed up as outcome. enrollment_id names the stalled-checkout sequence passage
the stall opened.
Read-only. Never mutates anything.
Four outcomes, three stamps
open while nothing has settled and the sweep has not counted it; stalled once the project's
checkout window passed with no settled charge; recovered when a charge settled after that;
completed when a charge settled before it could stall, or the sweep closed it quietly because
the member already held a live membership. An access code redemption or a free trial start is not
a checkout and never appears here.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
project_id*stringUUID of the project whose checkouts to list.
stalledbooleanoptionalOptional: true for the checkouts the hourly sweep counted as stalled, false for the ones it never did.
recoveredbooleanoptionalOptional: true for the stalled checkouts a charge finished after all, false for the stalled ones still open.
plan_idstringoptionalOptional: UUID of one plan, to keep the checkouts of that plan.
member_idstringoptionalOptional: UUID of one member, to keep their checkouts.
limitintegeroptionalMaximum rows to return per page (1..100).
1max100pageintegeroptional1-indexed page number.
1What it returns
{ "data": [ { "id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "member": { "id": "a7b8c9d0-e1f2-4a3b-8c4d-5e6f7a8b9c0d", "name": "Ada Lovelace" }, "plan": { "id": "2e4f6a8c-1b3d-4e5f-8a9b-0c1d2e3f4a5b", "name": "Inner Circle" }, "provider": "stripe", "surface": "portal", "reference": "cs_test_a1B2c3D4", "method_id": "6f7a8b9c-0d1e-4f2a-9b3c-4d5e6f7a8b9c", "outcome": "recovered", "started_at": "2026-10-12T09:00:00+00:00", "stalled_at": "2026-10-12T10:00:00+00:00", "completed_at": "2026-10-12T15:30:00+00:00", "payment_id": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f", "enrollment_id": "d4e5f6a7-b8c9-4d0e-8f1a-2b3c4d5e6f7a" } ], "meta": { "page": 1, "limit": 25, "total": 1, "has_more": false }}stalled and recovered are booleans (recovered reads among the stalled rows, so
stalled: true, recovered: false is the stalled checkouts still open); plan_id and member_id
keep one plan or one member. A member is counted as stalled at most once a day however many
checkouts they started: the older open ones are stamped stalled without a second
checkout.stalled or a second passage.
How it fails
VALIDATION_FAILEDa stalled or recovered that is not a boolean, a plan_id or member_id that is not a UUID, or limit outside 1..100.
RESOURCE_NOT_FOUNDunknown project_id, or the project is outside the token's scope.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-subscription:view-any.
How is this guide?
Last updated on
list_cancellation_feedback
List the cancellation screens a project's members reached — the reason they gave, their own words, the offer shown and whether they took it, and where they answered. Read-only. Paginated, narrowed by reason or surface.
list_retention_activity
List a project's Revenue Recovery ledger — one row per notice, offer, feedback and win-back message, with the member, the channel, and whether a charge settled afterwards. Read-only. Paginated, narrowed by kind.