# Lista de pagos

## Descripción general

El servicio encuentra automáticamente todos los pagos que llegan a tus billeteras cripto, pero solo mientras existan facturas con una búsqueda activa. La búsqueda funciona mientras una factura está sin pagar y continúa durante una hora más después del plazo de pago —para tener en cuenta las redes lentas. Si no existen tales facturas, una transacción entrante no entra en el sistema.

## Solicitud

```bash
curl -X POST https://api.bitsby.app/payments/list \
  -H "Authorization: Token MSvL2ltaDZdWVjmZURURMVWhqSJLT2NURjhL2Fla1Z1T1IxQTltKs1T3Ay" \
	-F "startDate=2000-01-01" \
	-F "endDate=2030-01-01" \
	-F "offset=0" \
	-F "limit=10"
```

## Parámetros de la solicitud

| Parámetro   | Tipo de dato | Descripción                                                 | Ejemplo                              | ¿Obligatorio? | Por defecto |
| ----------- | ------------ | ----------------------------------------------------------- | ------------------------------------ | ------------- | ----------- |
| `walletId`  | UUID         | ID de la billetera en formato UUID                          | 1c48b092-9878-48f5-b441-07a8a48e7b54 | no            |             |
| `invoiceId` | UUID         | ID de la factura en formato UUID                            | 1c48b092-9878-48f5-b441-07a8a48e7b54 | no            |             |
| `startDate` | String       | Fecha inicial de la transacción on-chain, en formato Y-m-d  | 2000-01-01                           | no            |             |
| `endDate`   | String       | Fecha final de la transacción on-chain, en formato Y-m-d    | 2030-01-01                           | no            |             |
| `offset`    | Integer      | Índice del primer registro a devolver                       | 0                                    | no            | 0           |
| `limit`     | Integer      | Número de registros que quieres recibir                     | 50                                   | no            | 10          |

## Ejemplo de respuesta

Un pago ya asociado a una factura:

```json
{
   "result":"success",
   "data":[
      {
         "id":"f986ad8d-2298-473d-982a-efbc817b975d",
         "amount":12,
         "hash":"f09352627039c088688806821b864895ff237558612d834861621fc026de5f68",
         "transactionDatetime":"2024-02-27 21:05:36",
         "invoice":{
            "id":"f31c61f6-407f-4999-95cf-56477eff06d4",
            "uid":"riUZBnNvd2rX",
            "projectId":"9deea1e2-0c08-41a3-bdc2-a34eada3892d",
            "createDatetime":"2024-02-27 20:57:23",
            "timeToPayDatetime":"2024-02-28 08:57:23",
            "commissionFiatUSD":0.12,
            "amountFiatUSD":12,
            "amountFiat":12,
            "currencyFiat":"USD",
            "description":null,
            "serviceData":"orderId:2444",
            "views":1,
            "status":"paid"
         },
         "wallet":{
            "id":"47aa71e2-07a0-482e-9172-7114d7376ba0",
            "name":"usdt-tron",
            "blockchain":"tron",
            "cryptocurrency":"usdt",
            "address":"TKbstUwMzLrfTAGL4erYb7gc7ghmHQ9zG7"
         }
      },
      {
         "id":"f3195184-9a6f-4c82-928b-d7fe7c015b7b",
         "amount":5.02,
         "hash":"74763b65e43bcc9492a6ce9a7f26fbfdbd7635aecd3454420b5e9534cba50ee6",
         "transactionDatetime":"2024-02-26 13:32:57",
         "invoice":{
            "id":"fac8ef03-2c41-4ce0-a432-7c33b928f16f",
            "uid":"AFhygKX21ecd",
            "projectId":"9deea1e2-0c08-41a3-bdc2-a34eada3892d",
            "createDatetime":"2024-02-26 13:29:24",
            "timeToPayDatetime":"2024-02-27 01:29:24",
            "commissionFiatUSD":0.05,
            "amountFiatUSD":5.02, 
            "amountFiat":5,
            "currencyFiat":"USD",
            "description":null,
            "serviceData":"orderId:3419",
            "views":3,
            "status":"paid"
         },
         "wallet":{
            "id":"47aa71e2-07a0-482e-9172-7114d7376ba0",
            "name":"usdt-tron",
            "blockchain":"tron",
            "cryptocurrency":"usdt",
            "address":"TKbstUwMzLrfTAGL4erYb7gc7ghmHQ9zG7"
         }
      }
   ]
}
```

**Un pago** que el servicio ha encontrado pero **aún no ha asociado a una factura** llega sin el bloque invoice. Estos pagos son los candidatos a la asociación manual:

```json
{
   "result":"success",
   "data":[
      {
         "id":"c1d0f4a2-93b7-4f61-8c25-1a6f0e2b7d94",
         "amount":9.87,
         "hash":"5b1e4b1cf0a4c3d2e9f6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f708192",
         "transactionDatetime":"2024-02-28 09:14:02",
         "wallet":{
            "id":"47aa71e2-07a0-482e-9172-7114d7376ba0",
            "name":"usdt-tron",
            "blockchain":"tron",
            "cryptocurrency":"usdt",
            "address":"TKbstUwMzLrfTAGL4erYb7gc7ghmHQ9zG7"
         }
      }
   ]
}
```

## Parámetros de la respuesta

| Parámetro                   | Descripción                                                                                                                                                                                                                                                                                              |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                        | ID del pago en formato UUID                                                                                                                                                                                                                                                                              |
| `amount`                    | Importe del pago en criptomoneda                                                                                                                                                                                                                                                                         |
| `hash`                      | Hash de la transacción on-chain                                                                                                                                                                                                                                                                          |
| `transactionDatetime`       | Fecha y hora de la transacción on-chain (UTC)                                                                                                                                                                                                                                                            |
| `invoice`                   | Bloque con los parámetros de la factura. Presente si hay una factura asociada al pago                                                                                                                                                                                                                    |
| `invoice.id`                | ID de la factura en formato UUID                                                                                                                                                                                                                                                                         |
| `invoice.uid`               | ID de la factura (para el cliente)                                                                                                                                                                                                                                                                       |
| `invoice.projectId`         | ID del proyecto en formato UUID                                                                                                                                                                                                                                                                          |
| `invoice.createDatetime`    | Fecha y hora de creación de la factura (UTC)                                                                                                                                                                                                                                                             |
| `invoice.timeToPayDatetime` | Fecha y hora hasta la que la factura es válida (UTC)                                                                                                                                                                                                                                                     |
| `invoice.commissionFiatUSD` | Importe de la comisión del servicio. Se calcula a partir del importe `invoice.amountFiatUSD`                                                                                                                                                                                                             |
| `invoice.amountFiatUSD`     | El importe de la factura convertido a USD. Al crear la factura se calcula a partir de `invoice.amountFiat` al tipo de cambio actual. En el momento del pago se sobrescribe con el importe realmente recibido, convertido a USD al tipo de cambio de ese momento. La comisión en `invoice.commissionFiatUSD` también se recalcula a partir de él |
| `invoice.amountFiat`        | El importe original de la factura en moneda fiat. No cambia                                                                                                                                                                                                                                              |
| `invoice.currencyFiat`      | Moneda fiat                                                                                                                                                                                                                                                                                              |
| `invoice.description`       | La descripción establecida al crear la factura                                                                                                                                                                                                                                                           |
| `invoice.serviceData`       | Los datos de servicio establecidos al crear la factura                                                                                                                                                                                                                                                   |
| `invoice.views`             | Número de vistas de la página de pago                                                                                                                                                                                                                                                                    |
| `invoice.status`            | Estado de la factura                                                                                                                                                                                                                                                                                     |
| `wallet`                    | Bloque con los parámetros de la billetera                                                                                                                                                                                                                                                                |
| `wallet.id`                 | ID de la billetera en formato UUID                                                                                                                                                                                                                                                                       |
| `wallet.name`               | Nombre de la billetera                                                                                                                                                                                                                                                                                   |
| `wallet.blockchain`         | Blockchain de la billetera cripto                                                                                                                                                                                                                                                                        |
| `wallet.cryptocurrency`     | Criptomoneda de la billetera                                                                                                                                                                                                                                                                             |
| `wallet.address`            | Dirección de la billetera cripto                                                                                                                                                                                                                                                                         |
