# Lista de facturas

## Solicitud

```bash
curl -X POST https://api.bitsby.app/invoices/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 |
| ------------ | ------------ | -------------------------------------------------------------------------- | ------------------------------------ | ------------- | ----------- |
| `invoiceId`  | UUID         | ID de la factura en formato UUID                                           | 1c48b092-9878-48f5-b441-07a8a48e7b54 | no            |             |
| `invoiceUid` | String       | ID de la factura (para el cliente)                                         | F7ncQviM1N92                         | no            |             |
| `projectId`  | UUID         | ID del proyecto en formato UUID                                            | 1c48b092-9878-48f5-b441-07a8a48e7b54 | no            |             |
| `startDate`  | String       | Fecha inicial de creación de la factura, en formato Y-m-d                  | 2000-01-01                           | no            |             |
| `endDate`    | String       | Fecha final de creación de la factura, en formato Y-m-d                    | 2030-01-01                           | no            |             |
| `status`     | String       | Estado de la factura. Valores permitidos: unpaid, canceled, paid, expired  | paid                                 | 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

```json
{
    "result": "success",
    "data": [
        {
            "id": "59302b02-d1be-4e10-960f-d6ec24bfcaaf",
            "uid": "F7nYgvxM1N92",
            "projectId": "9deea1e2-0c08-41a3-bdc2-a34eada3892d",
            "createDatetime": "2024-02-29 10:49:56",
            "timeToPayDatetime": "2024-02-29 22:49:56",
            "commissionFiatUSD": 1,
            "amountFiatUSD": 100,
            "amountFiat": 100,
            "currencyFiat": "USD",
            "description": null,
            "serviceData": null,
            "views": 0,
            "status": "canceled"
        },
        {
            "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": 3,
            "status": "paid",
            "payment": {
                "id": "f986ad8d-2298-473d-982a-efbc817b975d",
                "amount": 12,
                "hash": "f09352627039c088688806821b864895ff237558612d834861621fc026de5f68",
                "transactionDatetime": "2024-02-27 21:05:36"
            },
            "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 de la factura en formato UUID                                                                                                                                                                                                                                                         |
| `uid`                         | ID de la factura (para el cliente)                                                                                                                                                                                                                                                       |
| `projectId`                   | ID del proyecto en formato UUID                                                                                                                                                                                                                                                          |
| `createDatetime`              | Fecha y hora de creación de la factura (UTC)                                                                                                                                                                                                                                             |
| `timeToPayDatetime`           | Fecha y hora hasta la que la factura es válida (UTC). El cliente debe pagar la factura antes de esa hora                                                                                                                                                                                 |
| `commissionFiatUSD`           | Importe de la comisión del servicio. Se calcula a partir del importe `amountFiatUSD`                                                                                                                                                                                                     |
| `amountFiatUSD`               | El importe de la factura convertido a USD. Al crear la factura se calcula a partir de `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 `commissionFiatUSD` también se recalcula a partir de él |
| `amountFiat`                  | El importe original de la factura en moneda fiat. No cambia                                                                                                                                                                                                                              |
| `currencyFiat`                | Moneda fiat                                                                                                                                                                                                                                                                              |
| `description`                 | La descripción establecida al crear la factura. Se muestra al cliente                                                                                                                                                                                                                    |
| `serviceData`                 | Los datos de servicio establecidos al crear la factura. No se muestran al cliente. Sirven para identificar la factura y el pago en la tienda del comercio                                                                                                                                |
| `views`                       | Número de vistas de la página de pago                                                                                                                                                                                                                                                    |
| `status`                      | Estado de la factura                                                                                                                                                                                                                                                                     |
| `payment`                     | Bloque con los parámetros del pago. Presente si la factura fue pagada                                                                                                                                                                                                                    |
| `payment.id`                  | ID del pago en formato UUID                                                                                                                                                                                                                                                              |
| `payment.amount`              | Importe del pago en criptomoneda                                                                                                                                                                                                                                                         |
| `payment.hash`                | Hash de la transacción on-chain                                                                                                                                                                                                                                                          |
| `payment.transactionDatetime` | Fecha y hora de la transacción on-chain (UTC)                                                                                                                                                                                                                                            |
| `wallet`                      | Bloque con los parámetros de la billetera que recibió el pago. Presente si la factura fue pagada                                                                                                                                                                                         |
| `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                                                                                                                                                                                                                                                         |
