> ## 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.

# Tarjetas de un cliente

Obtiene las tarjetas de un cliente específico.

### Parámetros de Ruta

<ParamField path="customer_id" type="string" required placeholder="9dd4158b-0e45-42bc-b56f-a4c1f856814d">
  ID del cliente dueño de las tarjetas. [Crear cliente](/client/customers/create).
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/customers/9dd4158b-0e45-42bc-b56f-a4c1f856814d/cards \
    -H "Authorization: Bearer sk_test_xxx"
  ```

  ```javascript JavaScript theme={null}
  const customerId = '9dd4158b-0e45-42bc-b56f-a4c1f856814d';

  const response = await fetch(`https://api.onepay.la/v1/customers/${customerId}/cards`, {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer sk_test_xxx'
    }
  });
  const data = await response.json();
  console.log(data.data); // Array de tarjetas
  console.log(data.current_page); // Página actual
  ```

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

  customer_id = "9dd4158b-0e45-42bc-b56f-a4c1f856814d"
  url = f"https://api.onepay.la/v1/customers/{customer_id}/cards"
  headers = {
      "Authorization": "Bearer sk_test_xxx"
  }

  response = requests.get(url, headers=headers)
  data = response.json()
  print(data["data"])  # Array de tarjetas
  print(data["current_page"])  # Página actual
  ```

  ```php PHP theme={null}
  <?php
  $customerId = "9dd4158b-0e45-42bc-b56f-a4c1f856814d";
  $ch = curl_init();

  curl_setopt_array($ch, [
      CURLOPT_URL => "https://api.onepay.la/v1/customers/{$customerId}/cards",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => [
          "Authorization: Bearer sk_test_xxx"
      ]
  ]);

  $response = curl_exec($ch);
  $data = json_decode($response, true);

  print_r($data["data"]); // Array de tarjetas
  echo $data["current_page"]; // Página actual

  curl_close($ch);
  ?>
  ```
</RequestExample>

### Response

<ResponseField name="current_page" type="number">
  Número de la página actual
</ResponseField>

<ResponseField name="first_page_url" type="string">
  URL para acceder a la primera página de resultados
</ResponseField>

<ResponseField name="from" type="number">
  Índice inicial del primer elemento en la página actual
</ResponseField>

<ResponseField name="next_page_url" type="string">
  URL para acceder a la siguiente página de resultados. Será `null` si es la última página
</ResponseField>

<ResponseField name="path" type="string">
  URL base de la API sin los parámetros de paginación
</ResponseField>

<ResponseField name="per_page" type="number">
  Cantidad de elementos por página
</ResponseField>

<ResponseField name="prev_page_url" type="string">
  URL para acceder a la página anterior. Será `null` si es la primera página
</ResponseField>

<ResponseField name="to" type="number">
  Índice final del último elemento en la página actual
</ResponseField>

<ResponseField name="data" type="array">
  Datos de la página actual

  <Expandable title="data" defaultOpen name="Tarjetas">
    <ResponseField name="id" type="string">
      Identificador único de la tarjeta en formato UUID
    </ResponseField>

    <ResponseField name="brand" type="string">
      Marca de la tarjeta
    </ResponseField>

    <ResponseField name="label" type="string">
      Etiqueta de la tarjeta
    </ResponseField>

    <ResponseField name="last_four" type="string">
      Últimos cuatro dígitos de la tarjeta
    </ResponseField>

    <ResponseField name="expiration_date" type="string">
      Fecha de expiración de la tarjeta
    </ResponseField>

    <ResponseField name="customer_id" type="string">
      Identificador único del cliente en formato UUID
    </ResponseField>

    <ResponseField name="created_at" type="date">
      Fecha y hora de creación de la tarjeta
    </ResponseField>

    <ResponseField name="country" type="string">
      País de la tarjeta
    </ResponseField>
  </Expandable>
</ResponseField>

### Ejemplo de petición

<ResponseExample>
  ```json 200 theme={null}
  {
     {
     "data":[
        {
          "id": "9a7a7105-631d-4ad0-8e06-5c7bc2dfe32e",
          "brand": "mastercard",
          "label": "**** **** **** 8212",
          "last_four": "8212",
          "expiration_date": "2030-09-30",
          "customer_id": "9a708f99-fc8b-4a09-ad20-bea12f4af1b3",
          "created_at": "2024-12-12 10:30:01",
          "country": "CO"
        }
     ],
     "current_page":1,
     "first_page_url":"https:\/\/api.onepay.la\/v1\/customers\/9a7a6ccf-f75c-45f9-ad11-aae3c80971f0\/cards?page=1",
     "from":null,
     "next_page_url":null,
     "path":"https:\/\/api.onepay.la\/v1\/customers\/9a7a6ccf-f75c-45f9-ad11-aae3c80971f0\/cards",
     "per_page":20,
     "prev_page_url":null,
     "to":null
  }
  }
  ```

  ```json 422 theme={null}
  {
    "message": "Registro no encontrado, Cliente no existe",
    "code": 10002,
    "code_name": "record_not_found"
  }
  ```
</ResponseExample>
