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

# Listar métodos de pago

> Retorna los métodos de pago del cliente autenticado: tarjetas, billeteras y cuentas PSE.

Retorna todos los métodos de pago verificados y vigentes del cliente autenticado, agrupados por tipo: tarjetas, billeteras digitales (Nequi/Daviplata) y cuentas PSE.

<Note>
  Solo se retornan métodos de pago verificados, no expirados y del mismo modo (test/live) que el token de la empresa.
</Note>

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token de tu empresa: `Bearer sk_test_xxx` o `Bearer sk_live_xxx`.
</ParamField>

<ParamField header="X-Customer-Token" type="string" required>
  Token de sesión del cliente obtenido en [/customers/login/verify](verify-otp).
</ParamField>

### Respuesta

<ResponseField name="data" type="object">
  Objeto con los métodos de pago agrupados por tipo.

  <Expandable title="Propiedades">
    <ResponseField name="data.cards" type="array">
      Tarjetas de crédito/débito verificadas y vigentes.

      <Expandable title="Propiedades de cada tarjeta">
        <ResponseField name="id" type="string">ID de la tarjeta.</ResponseField>
        <ResponseField name="brand" type="string">Marca: `visa`, `mastercard`, `amex`, `diners`.</ResponseField>
        <ResponseField name="last_four" type="string">Últimos 4 dígitos.</ResponseField>
        <ResponseField name="label" type="string">Etiqueta legible (ej. `Visa ····1234`).</ResponseField>
        <ResponseField name="expiration_date" type="string">Fecha de expiración (`YYYY-MM-DD`).</ResponseField>
        <ResponseField name="card_name" type="string">Nombre del titular.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="data.wallets" type="array">
      Billeteras digitales conectadas (Nequi, Daviplata).

      <Expandable title="Propiedades de cada billetera">
        <ResponseField name="id" type="string">ID de la cuenta.</ResponseField>
        <ResponseField name="subtype" type="string">Tipo: `nequi` o `daviplata`.</ResponseField>
        <ResponseField name="phone" type="string">Número de teléfono asociado.</ResponseField>
        <ResponseField name="label" type="string">Etiqueta legible (ej. `NEQUI ····4567`).</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="data.pse" type="array">
      Cuentas PSE conectadas.

      <Expandable title="Propiedades de cada cuenta PSE">
        <ResponseField name="id" type="string">ID de la cuenta.</ResponseField>
        <ResponseField name="bank_name" type="string">Nombre del banco.</ResponseField>
        <ResponseField name="label" type="string">Etiqueta legible (ej. `Bancolombia - PSE`).</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/customers/session/payment-methods \
    -H "Authorization: Bearer sk_test_xxx" \
    -H "X-Customer-Token: 12|a1b2c3d4e5f6..."
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.onepay.la/v1/customers/session/payment-methods', {
    headers: {
      'Authorization': 'Bearer sk_test_xxx',
      'X-Customer-Token': '12|a1b2c3d4e5f6...'
    }
  });

  const { data } = await response.json();
  console.log(data.cards);    // Tarjetas
  console.log(data.wallets);  // Nequi/Daviplata
  console.log(data.pse);      // Cuentas PSE
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.onepay.la/v1/customers/session/payment-methods',
      headers={
          'Authorization': 'Bearer sk_test_xxx',
          'X-Customer-Token': '12|a1b2c3d4e5f6...'
      }
  )

  data = response.json()['data']
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "cards": [
        {
          "id": "bb02b2fd-154c-4c90-9fdf-cec3a0b25cf5",
          "brand": "visa",
          "last_four": "4242",
          "label": "Visa ····4242",
          "expiration_date": "2028-12-31",
          "card_name": "MARIA LOPEZ"
        }
      ],
      "wallets": [
        {
          "id": "a1b2c3d4-5678-9abc-def0-123456789abc",
          "subtype": "nequi",
          "phone": "3001234567",
          "label": "NEQUI ····4567"
        }
      ],
      "pse": [
        {
          "id": "c3d4e5f6-7890-abcd-ef01-234567890def",
          "bank_name": "Bancolombia",
          "label": "Bancolombia - PSE"
        }
      ]
    }
  }
  ```

  ```json 401 theme={null}
  {
    "message": "Token de sesión inválido o expirado."
  }
  ```
</ResponseExample>
