Version
READ

list_transactions

Keyset-paginated transaction listing for one project with date, status, provider, plan, and currency filters. Reverse-chronological.

Row-level transaction listing scoped to a single project. Filters by date range (explicit from / to or period preset), payment status, provider, plan, and currency. Reverse-chronological by occurred_at with opaque keyset pagination via meta.next_cursor. Each row carries its owning project, plan and subscriber, so a payment can be attributed without a follow-up lookup. No raw webhook payloads are returned.

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

Read-only

It reads and never changes anything.

Arguments

project_id*string

UUID of the project whose transactions to list.

periodstringoptional

Period preset — 7d, 14d, 30d, 60d, 90d, mtd, qtd, ytd, 1y, all. Defaults to 30d.

fromstringoptional

Explicit start date (ISO YYYY-MM-DD). Overrides period when paired with "to".

tostringoptional

Explicit end date (ISO YYYY-MM-DD). Overrides period when paired with "from".

statusesarrayoptional

Optional payment-status allow-list. Values: successful, failed, pending, refunded.

provider_idsarrayoptional

Optional payment-method (provider) UUID allow-list.

plan_idsarrayoptional

Optional plan-UUID allow-list applied to the parent subscription.

currency_idsarrayoptional

Optional currency UUID allow-list.

cursorstringoptional

Opaque keyset cursor returned in a prior meta.next_cursor. Pass to continue pagination.

limitintegeroptional

Maximum rows to return (1..200, default 50).

min1max200

What it returns

{  "data": [    {      "id": "8b0c4a15-e792-4360-95d8-1f47c0b3e926",      "subscription_id": "5b7e2d40-1a86-4c39-97f2-e83d0b16c5a4",      "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",      "project_name": "Beautiful Mouths",      "plan_id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",      "plan_name": "Monthly",      "subscriber_id": "6f9b2e37-c184-4a05-8d72-30e16bc9f458",      "subscriber_name": "Ada Lovelace",      "status": "successful",      "amount": "29.00",      "currency": "USD",      "provider": "stripe",      "provider_label": "Stripe",      "method_id": "a15d70c8-3e46-4b92-b70f-58c9d2140e63",      "calculated_fee": "1.16",      "billing_reason": "subscription_cycle",      "external_payment_id": "pi_3Nxy...",      "occurred_at": "2026-04-22T10:05:00Z"    }  ],  "meta": {    "next_cursor": "MjAyNi0wNC...",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13"  }}

How it fails

VALIDATION_FAILED

missing project_id.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks project-subscription:view-any.

How is this guide?

Last updated on