---
title: "List payment methods by user"
method: GET
path: "/unstable/payment-methods"
tags: ["Payment Methods"]
---

# List payment methods by user

`GET /unstable/payment-methods`

Returns a paginated list of the bank account payout methods saved for a user, newest first by default. Soft-deleted methods are excluded.

**API scope required**: `payment-methods.read`

## Query parameters

- `userLocator` string
- `type` 'bank-account-us' | 'bank-account-mx-clabe' | 'bank-account-co' | 'bank-account-sepa-iban'
- `cursor` string
- `limit` integer
- `sort` 'asc' | 'desc'
- `hasPayout` 'true' | 'false'

## Response `200`

Paginated list of PaymentMethod objects. `nextCursor` and `previousCursor` are included when additional pages exist in that direction.

- PmPaginatedPaymentMethods — Paginated list of payment methods.
  - `data` PmPaymentMethod[], required — Array of payment method objects for the current page.
    - `paymentMethodId` string, uuid, required — Unique identifier (UUID v4), assigned by the server on creation.
    - `default` boolean, required — Whether this is the user's default payment method. Only one per user can be the default; setting a new default automatically unsets the previous one.
    - `displayName` string, required — Human-readable label derived by the server (e.g., "Chime ••6259", "SEPA Account ••6789"). Not settable by the client.
    - `type` 'bank-account-us' | 'bank-account-mx-clabe' | 'bank-account-co' | 'bank-account-sepa-iban', required — Payout method type. Determines the country-specific `bankAccount` fields that are present.
    - `bankAccount` object, required — Bank account details. Present when `type` is a bank type. Full account numbers and IBANs are never included.
      - `billing` object, required — Account holder billing details as provided on creation.
      - `bankName` string, nullable, required — Name of the bank, or `null` if the bank could not be identified.
      - `accountSuffix` string, required — Last four digits of the account number, CLABE, or IBAN.
      - `currency` string, required — ISO 4217 currency code in lowercase (e.g., `usd`, `eur`).
      - `country` string, required — ISO 3166-1 alpha-2 country code.
      - `entityType` 'individual' | 'business' — Account holder type. Present when provided on creation.
      - `routingNumber` string — ABA routing number. US only.
      - `accountType` 'checking' | 'savings' — Account type. US and CO only.
      - `bankAddress` object — Bank mailing address. US only.
      - `bankCode` string — Bank code. MX and CO only.
      - `bic` string — BIC/SWIFT code. SEPA only; present when provided on creation.
      - `taxId` string — Mexican tax identifier (RFC). MX only; present when provided.
      - `businessDescription` string — Business description. MX only; present when provided.
    - `lastPayoutAt` string, date-time — Read-only. ISO 8601 timestamp of the most recent successful offramp payout funded by this bank account. Absent if none.
  - `nextCursor` string, nullable — Cursor to fetch the next page. `null` when there are no more results.
  - `previousCursor` string, nullable — Cursor to fetch the previous page. `null` on the first page.

## Other responses

- `400` — Invalid query parameters.
- `401` — Missing or invalid API key.
- `403` — Authentication source not allowed.
- `404` — User not found for the given locator.

---

[API](https://skmtc.net/crossmint/apis/onramp.md) · [All operations](https://skmtc.net/crossmint/apis/onramp/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crossmint/onramp/revisions/e2143d192130/schema)
