> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Payment Method Object

> Attributes and structure of a saved payment method

PaymentMethod objects represent your user's payment instruments. You can use them with any of the Crossmint products like Checkout, Onramp, and Offramp.

## Type Values

`type` names the **account identifier** (the capture schema Crossmint collects and validates) — never the payment rail, scheme, or clearing house. The same saved account can be paid over multiple rails; rail selection happens at payment execution time.

| Value                    | Description                                                              |
| ------------------------ | ------------------------------------------------------------------------ |
| `card`                   | Credit or debit card.                                                    |
| `bank-account-us`        | US bank account (routing number + account number).                       |
| `bank-account-mx-clabe`  | Mexican bank account, identified by an 18-digit CLABE.                   |
| `bank-account-co`        | Colombian bank account (bank code + account number + national document). |
| `bank-account-sepa-iban` | Bank account identified by an IBAN within the supported SEPA scope.      |

## Attributes

<ResponseField name="paymentMethodId" type="string" required>
  Unique identifier for the payment method.
</ResponseField>

<ResponseField name="default" type="boolean" required>
  Whether this is the user's default payment method.
</ResponseField>

<ResponseField name="displayName" type="string" required>
  Human-readable label for the payment method (e.g. `"Visa ••1111"`, `"Chime ••6259"`).
</ResponseField>

<ResponseField name="type" type="string" required>
  Payment method type. One of `card`, `bank-account-us`, `bank-account-mx-clabe`, `bank-account-co`, or `bank-account-sepa-iban`.
</ResponseField>

<ResponseField name="card" type="object">
  Card details. Present when `type` is `card`.

  <Expandable title="properties">
    <ResponseField name="brand" type="string" required>
      Card brand. Can be `visa`, `mastercard`, `amex`, `discover`, `jcb`, `unionpay`, or `diners-club`.
    </ResponseField>

    <ResponseField name="last4" type="string" required>
      Last four digits of the card number.
    </ResponseField>

    <ResponseField name="expiration" type="object" required>
      <Expandable title="properties">
        <ResponseField name="month" type="string">
          Two-digit expiration month.
        </ResponseField>

        <ResponseField name="year" type="string">
          Four-digit expiration year.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="billing" type="object" required>
      Billing details for the cardholder.

      <Expandable title="properties">
        <ResponseField name="name" type="string" required>
          Full name.
        </ResponseField>

        <ResponseField name="phone" type="string">
          Phone number (E.164 format).
        </ResponseField>

        <ResponseField name="address" type="object">
          Billing address.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="fundingType" type="string">
      Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
    </ResponseField>

    <ResponseField name="bin" type="string">
      Bank Identification Number (first 6-8 digits of the card number).
    </ResponseField>

    <ResponseField name="country" type="string">
      Two-letter country code of the card issuer.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="bankAccount" type="object">
  Bank account details. Present when `type` is `bank-account-us`, `bank-account-mx-clabe`, `bank-account-co`, or `bank-account-sepa-iban`.

  <Expandable title="common properties">
    <ResponseField name="billing" type="object" required>
      Billing details for the account holder.

      <Expandable title="properties">
        <ResponseField name="name" type="string" required>
          Full name.
        </ResponseField>

        <ResponseField name="phone" type="string">
          Phone number (E.164 format).
        </ResponseField>

        <ResponseField name="address" type="object">
          <Expandable title="properties">
            <ResponseField name="line1" type="string" required />

            <ResponseField name="line2" type="string" />

            <ResponseField name="city" type="string" required />

            <ResponseField name="stateOrRegion" type="string" />

            <ResponseField name="postalCode" type="string" required />

            <ResponseField name="country" type="string" required>
              ISO 3166-1 alpha-2 country code.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bankName" type="string | null">
      Name of the bank. `null` if not resolvable.
    </ResponseField>

    <ResponseField name="accountSuffix" type="string" required>
      Last four digits of the account number, CLABE, or IBAN.
    </ResponseField>

    <ResponseField name="currency" type="string" required>
      ISO 4217 currency code (e.g. `usd`, `mxn`, `eur`, `cop`).
    </ResponseField>

    <ResponseField name="country" type="string" required>
      ISO 3166-1 alpha-2 country code.
    </ResponseField>

    <ResponseField name="entityType" type="string">
      Account holder type. `individual` or `business`. Required on creation. May be absent on records created before the field was enforced.
    </ResponseField>
  </Expandable>

  <Expandable title="US-specific properties (bank-account-us)">
    <ResponseField name="bankAddress" type="object">
      Bank branch address.
    </ResponseField>

    <ResponseField name="routingNumber" type="string">
      Nine-digit ABA routing number.
    </ResponseField>

    <ResponseField name="accountType" type="string">
      `checking` or `savings`.
    </ResponseField>
  </Expandable>

  <Expandable title="MX-specific properties (bank-account-mx-clabe)">
    <ResponseField name="bankCode" type="string">
      Three-digit bank code derived from the CLABE.
    </ResponseField>
  </Expandable>

  <Expandable title="CO-specific properties (bank-account-co)">
    <ResponseField name="bankCode" type="string">
      Bank code assigned by Banco de la República.
    </ResponseField>

    <ResponseField name="accountType" type="string">
      `checking` or `savings`.
    </ResponseField>
  </Expandable>

  <Expandable title="SEPA-specific properties (bank-account-sepa-iban)">
    <ResponseField name="bic" type="string">
      BIC/SWIFT code (8 or 11 characters).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="lastPayoutAt" type="string">
  Read-only. Bank accounts only. ISO 8601 timestamp of the most recent successful offramp payout funded by this account. Absent until the first payout.
</ResponseField>

<ResponseExample>
  ```json Card theme={null}
  {
    "paymentMethodId": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
    "default": true,
    "displayName": "Visa ••1111",
    "type": "card",
    "card": {
      "brand": "visa",
      "last4": "1111",
      "expiration": {
        "month": "12",
        "year": "2028"
      },
      "billing": {
        "name": "Alice Smith",
        "phone": "+12125551234",
        "address": {
          "line1": "123 Main St",
          "city": "Springfield",
          "stateOrRegion": "IL",
          "postalCode": "62701",
          "country": "US"
        }
      },
      "fundingType": "debit",
      "bin": "411111",
      "country": "US"
    }
  }
  ```

  ```json SEPA theme={null}
  {
    "paymentMethodId": "3323460b-d9d2-4ec6-b380-8a3e01e3f226",
    "default": false,
    "displayName": "SEPA Account ••6789",
    "type": "bank-account-sepa-iban",
    "bankAccount": {
      "billing": {
        "name": "Hans Müller",
        "phone": "+4915112345678",
        "address": {
          "line1": "Unter den Linden 1",
          "city": "Berlin",
          "stateOrRegion": "BE",
          "postalCode": "10117",
          "country": "DE"
        }
      },
      "bankName": null,
      "accountSuffix": "6789",
      "currency": "eur",
      "country": "DE",
      "entityType": "individual",
      "bic": "COBADEFFXXX"
    }
  }
  ```

  ```json US Bank Account theme={null}
  {
    "paymentMethodId": "f2ecef7e-91af-4fa7-93f9-12db856c227f",
    "default": false,
    "displayName": "Chime ••6259",
    "type": "bank-account-us",
    "bankAccount": {
      "billing": {
        "name": "Alice Smith",
        "phone": "+12125551234",
        "address": {
          "line1": "123 Main St",
          "city": "New York",
          "stateOrRegion": "NY",
          "postalCode": "10001",
          "country": "US"
        }
      },
      "bankName": "Chime",
      "accountSuffix": "6259",
      "currency": "usd",
      "country": "US",
      "entityType": "individual",
      "bankAddress": {
        "line1": "123 Main St",
        "city": "New York",
        "stateOrRegion": "NY",
        "postalCode": "10001",
        "country": "US"
      },
      "routingNumber": "091300010",
      "accountType": "checking"
    }
  }
  ```

  ```json MX Bank Account theme={null}
  {
    "paymentMethodId": "27bacbe1-d0ff-4bc3-b37a-ca91cc64fa39",
    "default": false,
    "displayName": "MX Bank Account ••9719",
    "type": "bank-account-mx-clabe",
    "bankAccount": {
      "billing": {
        "name": "Javier Toledo",
        "phone": "+525512345678",
        "address": {
          "line1": "Av. Reforma 1",
          "city": "Mexico City",
          "stateOrRegion": "CDMX",
          "postalCode": "06600",
          "country": "MX"
        }
      },
      "bankName": null,
      "accountSuffix": "9719",
      "currency": "mxn",
      "country": "MX",
      "entityType": "individual",
      "bankCode": "138"
    }
  }
  ```

  ```json CO Bank Account theme={null}
  {
    "paymentMethodId": "1cad2281-bd3d-4219-8787-7dfea94c60b1",
    "default": false,
    "displayName": "CO Bank Account ••7890",
    "type": "bank-account-co",
    "bankAccount": {
      "billing": {
        "name": "Carlos Gómez",
        "phone": "+573001234567",
        "address": {
          "line1": "Carrera 7",
          "city": "Bogotá",
          "stateOrRegion": "DC",
          "postalCode": "110010",
          "country": "CO"
        }
      },
      "bankName": null,
      "accountSuffix": "7890",
      "currency": "cop",
      "country": "CO",
      "entityType": "individual",
      "bankCode": "001",
      "accountType": "savings"
    }
  }
  ```
</ResponseExample>
