> ## Documentation Index
> Fetch the complete documentation index at: https://yn-c9bb3266.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# The Payment Method Object

> Represents a saved (vaulted) payment method associated with a customer for reuse across transactions.

The Payment Method object represents a payment credential that has been enrolled (vaulted) for a customer. Vaulted methods enable one-click checkout, recurring payments, and subscription billing without requiring the customer to re-enter their details.

<Info>
  **Unified object**. In Yuno API v2, payment methods use a single unified object regardless of whether they were enrolled through the checkout flow or the direct enrollment flow. In v1, these were separate objects. If you are migrating, see [Migration Guide](/guides/migration/v1-to-v2).
</Info>

## Object Fields

<ResponseField name="id" type="string">
  The unique identifier for this payment method (UUID).

  Example: `pm_3f4e5d6c-7b8a-9012-3456-789abcdef012`
</ResponseField>

<ResponseField name="customer_id" type="string">
  The ID of the [Customer Object](/api-reference/customers/object) this payment method belongs to.

  Example: `c9d0e1f2-3a4b-5c6d-7e8f-9a0b1c2d3e4f`
</ResponseField>

<ResponseField name="type" type="string">
  The payment method type.

  Values: `CARD`, `PIX`, `BOLETO`, `OXXO`, `PSE`, `BANK_TRANSFER`, `WALLET`, `BNPL`, `NEQUI`, `SPEI`

  Example: `CARD`
</ResponseField>

<ResponseField name="status" type="string">
  Current status of the payment method.

  Values: `ACTIVE`, `DISABLED`

  Example: `ACTIVE`
</ResponseField>

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

  <Expandable title="card">
    <ResponseField name="first_six" type="string">
      First six digits of the card number (BIN). Used for routing and issuer identification.

      Example: `411111`
    </ResponseField>

    <ResponseField name="last_four" type="string">
      Last four digits of the card number. Safe to display to the customer.

      Example: `1111`
    </ResponseField>

    <ResponseField name="brand" type="string">
      Card brand.

      Values: `VISA`, `MASTERCARD`, `AMEX`, `DINERS`, `ELO`, `DISCOVER`, `HIPERCARD`

      Example: `VISA`
    </ResponseField>

    <ResponseField name="type" type="string">
      Card type.

      Values: `CREDIT`, `DEBIT`, `PREPAID`

      Example: `CREDIT`
    </ResponseField>

    <ResponseField name="expiration_month" type="integer">
      Card expiration month (1-12).

      Example: `12`
    </ResponseField>

    <ResponseField name="expiration_year" type="integer">
      Card expiration year (four digits).

      Example: `2028`
    </ResponseField>

    <ResponseField name="holder_name" type="string">
      Name of the cardholder as printed on the card.

      Example: `JOHN A SMITH`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="vaulted_token" type="string">
  The token reference for this vaulted payment method. Use this token in payment requests to charge the saved method without collecting card details again.

  Example: `vtok_9f8e7d6c-5b4a-3210-fedc-ba9876543210`
</ResponseField>

<ResponseField name="country" type="string">
  Country associated with this payment method. For cards, this is the issuer country. ISO 3166-1 alpha-2 code.

  Example: `US`
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp of when the payment method was enrolled.

  Example: `2026-02-15T09:30:00.000Z`
</ResponseField>

## Example

```json theme={"theme":{"light":"github-dark","dark":"github-dark"}}
{
  "id": "pm_3f4e5d6c-7b8a-9012-3456-789abcdef012",
  "customer_id": "c9d0e1f2-3a4b-5c6d-7e8f-9a0b1c2d3e4f",
  "type": "CARD",
  "status": "ACTIVE",
  "card": {
    "first_six": "411111",
    "last_four": "1111",
    "brand": "VISA",
    "type": "CREDIT",
    "expiration_month": 12,
    "expiration_year": 2028,
    "holder_name": "JOHN A SMITH"
  },
  "vaulted_token": "vtok_9f8e7d6c-5b4a-3210-fedc-ba9876543210",
  "country": "US",
  "created_at": "2026-02-15T09:30:00.000Z"
}
```

## Enrollment Contexts

Payment methods can be enrolled in two contexts:

| Context               | Description                                                                                         | How                                                                   |
| --------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| **Checkout flow**     | Customer saves their method during a payment. Set `vault_on_success: true` in the checkout session. | Via [Checkout Session](/api-reference/checkout-sessions/create)       |
| **Direct enrollment** | Customer enrolls a method without making a payment (e.g., account settings page).                   | Via [Customer Session](/api-reference/customer-sessions/create) + SDK |

Both contexts produce the same Payment Method object. The `vaulted_token` can be used interchangeably regardless of how it was created.

## Related Endpoints

* [Enroll Payment Method](/api-reference/payment-methods/enroll). `POST /v1/customers/{customer_id}/payment-methods`
* [List Payment Methods](/api-reference/payment-methods/list). `GET /v1/customers/{customer_id}/payment-methods`
* [Get Payment Method](/api-reference/payment-methods/get). `GET /v1/customers/{customer_id}/payment-methods/{payment_method_id}`
* [Unenroll Payment Method](/api-reference/payment-methods/unenroll). `DELETE /v1/customers/{customer_id}/payment-methods/{payment_method_id}`

## Related Concepts

* [Tokens](/core-concepts/tokens). How vaulted tokens work and their lifecycle
* [One-Click Checkout](/guides/one-click). Using vaulted methods for returning customers
* [Enrollment Guide](/guides/enrollment). Step-by-step guide to payment method vaulting
* [Migration Guide](/guides/migration/v1-to-v2). Differences between v1 and v2 payment method objects
