List account payment methods across accounts in this entity
Returns payment methods (cards + ACH bank accounts) for ALL accounts
in the API key’s entity, with optional filters by account, payment
type, default state, or active state. Stripe-style cursor pagination
via starting_after.
Use cases:
- Card-expiration reports across all customers in the entity.
- ACH micro-deposit verification dashboards.
- Account-360 sync resolvers (cross-account PM views).
Layer 1 (multi-tenant isolation): unlike account_addresses and
account_contacts, the account_payment_methods table HAS its
own entity_id column. Scope is enforced directly via
WHERE entity_id = $1 (no JOIN), backed by the
idx_apm_entity_account composite index. A crafted cursor pointing
at a sister-entity row returns 0 rows from the inner cursor SELECT
(which also binds entity_id), so the tuple comparison evaluates
UNKNOWN and no row leak occurs.
Sister of /v1/account-addresses and /v1/account-contacts.
Cross-refs: docs/prompts/completed/NEW-GAP-MIGRATION-API-V1-GET-ACCOUNT-PAYMENT-METHODS [COMPLETE].md.
Note: the account_payment_methods table does NOT today carry
external_source / external_id provenance columns, so migration
back-read by source-system tuple is NOT supported on this endpoint.
See NEW-GAP-ACCOUNT-PAYMENT-METHODS-EXTERNAL-PROVENANCE-COLS for
the follow-up to add those columns.
Requires accounts:read OR payments:read scope.
Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Query Parameters
Filter to payment methods belonging to this account.
Filter by payment method type.
card, ach Filter by default-PM state.
Filter by active state. Omit to return both active and soft-removed PMs.
Number of rows to return. Default 25, max 500.
1 <= x <= 500Cursor: a payment-method id from a previous response. Returns
rows ordered before this cursor by (created_at DESC, id DESC).

