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

> Endpoint para obtener los cargos registrados en el sistema de OnePay.

<ParamField query="filter[id]" type="string">
  ID único del cargo
</ParamField>

<ParamField query="filter[status]" type="string">
  Estado del cargo
</ParamField>

<ParamField query="filter[created_at]" type="string">
  Fecha de creación del cargo
</ParamField>

<ParamField query="filter[currency]" type="string">
  Moneda del cargo
</ParamField>

<ParamField query="filter[amount]" type="string">
  Monto exacto del cargo, en unidades mayores de la moneda (no en centavos), igual que el `amount` con el que lo creaste.
</ParamField>

<ParamField query="filter[title]" type="string">
  Título del cargo
</ParamField>

<ParamField query="filter[payment_method_type]" type="string">
  Tipo de método de pago
</ParamField>

<ParamField query="filter[external_id]" type="string">
  Identificador externo que asignaste al crear el cargo. La búsqueda es por coincidencia exacta y sólo devuelve cargos de tu empresa.
</ParamField>

<ParamField query="filter[customer_id]" type="string">
  ID del cliente al que se atribuye el cargo. Coincidencia exacta.

  <Note>
    Es la forma de saber qué cobros corresponden a un cliente final. El dinero de un cobro con
    tarjeta entra al balance de **tu empresa**, no al del cliente, así que los movimientos de saldo
    no llevan esa atribución: vive en el cobro.
  </Note>
</ParamField>

<ParamField query="sort" type="string">
  Orden de los resultados, \[-created\_at | created\_at | -paid\_at | paid\_at]
</ParamField>

<ParamField query="page" type="integer">
  Número de página a consultar. Por defecto es 1.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/charges?page=1&filter[status]=pending&sort=-created_at \
    -H "Authorization: Bearer sk_test_xxx"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.onepay.la/v1/charges?page=1&filter[status]=pending&sort=-created_at', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer sk_test_xxx'
    }
  });
  const data = await response.json();
  console.log(data.data); // Array de cargos
  console.log(data.total); // Total de cargos
  ```

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

  url = "https://api.onepay.la/v1/charges"
  headers = {
      "Authorization": "Bearer sk_test_xxx"
  }
  params = {
      "page": 1,
      "filter[status]": "pending",
      "sort": "-created_at"
  }

  response = requests.get(url, headers=headers, params=params)
  data = response.json()
  print(data["data"])  # Array de cargos
  print(data["total"])  # Total de cargos
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init();

  $url = "https://api.onepay.la/v1/charges?" . http_build_query([
      "page" => 1,
      "filter" => ["status" => "pending"],
      "sort" => "-created_at"
  ]);

  curl_setopt_array($ch, [
      CURLOPT_URL => $url,
      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 cargos
  echo $data["total"];    // Total de cargos

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

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "9e028bd9-755f-4069-8742-7727d0dc4047",
        "title": "recusandae placeat et",
        "amount": 1000,
        "amount_label": "$1.000",
        "source": "charge",
        "status": "pending",
        "currency": "COP",
        "payment_method_type": "CreditCard",
        "payment_method_id": "9e028bd9-74b0-4eda-a121-ab3d59909ce7",
        "created_at": "2025-01-20T01:48:54.000000Z",
        "paid_at": null,
        "remarks": null,
        "is_test": true
      }
    ],
    "current_page": 1,
    "from": 1,
    "last_page": 5,
    "per_page": 15,
    "to": 15,
    "total": 75
  }
  ```
</ResponseExample>
