# Listar pagamentos

## Visão geral

O serviço encontra automaticamente todos os pagamentos que chegam às suas carteiras cripto, mas somente enquanto existem cobranças com uma busca ativa. A busca funciona enquanto uma cobrança está em aberto e continua por mais uma hora depois do prazo de pagamento — para levar em conta redes lentas. Se não existir nenhuma cobrança assim, uma transação recebida não entra no sistema.

## Requisição

```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 da requisição

| Parâmetro   | Tipo de dado | Descrição                                               | Exemplo                              | Obrigatório? | Padrão  |
| ----------- | --------- | ------------------------------------------------------- | ------------------------------------ | --------- | ------- |
| `walletId`  | UUID      | ID da carteira no formato UUID                          | 1c48b092-9878-48f5-b441-07a8a48e7b54 | não        |         |
| `invoiceId` | UUID      | ID da cobrança no formato UUID                          | 1c48b092-9878-48f5-b441-07a8a48e7b54 | não        |         |
| `startDate` | String    | Data inicial da transação on-chain, no formato Y-m-d    | 2000-01-01                           | não        |         |
| `endDate`   | String    | Data final da transação on-chain, no formato Y-m-d      | 2030-01-01                           | não        |         |
| `offset`    | Integer   | Índice do primeiro registro a retornar                  | 0                                    | não        | 0       |
| `limit`     | Integer   | Número de registros que você quer receber               | 50                                   | não        | 10      |

## Exemplo de resposta

Um pagamento já vinculado a uma cobrança:

```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"
         }
      }
   ]
}
```

**Um pagamento** que o serviço encontrou mas **ainda não vinculou a uma cobrança** vem sem o bloco invoice. Esses pagamentos são os candidatos à vinculação 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 da resposta

| Parâmetro                   | Descrição                                                                                                                                                                                                                                                                                                |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                        | ID do pagamento no formato UUID                                                                                                                                                                                                                                                                          |
| `amount`                    | Valor do pagamento em criptomoeda                                                                                                                                                                                                                                                                        |
| `hash`                      | O hash da transação on-chain                                                                                                                                                                                                                                                                             |
| `transactionDatetime`       | Data e hora da transação on-chain (UTC)                                                                                                                                                                                                                                                                  |
| `invoice`                   | Bloco com os parâmetros da cobrança. Presente se uma cobrança está vinculada ao pagamento                                                                                                                                                                                                                |
| `invoice.id`                | ID da cobrança no formato UUID                                                                                                                                                                                                                                                                           |
| `invoice.uid`               | ID da cobrança (para o cliente)                                                                                                                                                                                                                                                                          |
| `invoice.projectId`         | ID do projeto no formato UUID                                                                                                                                                                                                                                                                            |
| `invoice.createDatetime`    | Data e hora de criação da cobrança (UTC)                                                                                                                                                                                                                                                                 |
| `invoice.timeToPayDatetime` | Data e hora até as quais a cobrança é válida (UTC)                                                                                                                                                                                                                                                       |
| `invoice.commissionFiatUSD` | Valor da taxa do serviço. Calculado a partir do valor `invoice.amountFiatUSD`                                                                                                                                                                                                                            |
| `invoice.amountFiatUSD`     | O valor da cobrança convertido para USD. Na criação da cobrança, é calculado a partir de `invoice.amountFiat` pela cotação atual. No momento do pagamento, é sobrescrito com o valor efetivamente recebido, convertido para USD pela cotação daquele momento. A taxa em `invoice.commissionFiatUSD` também é recalculada a partir dele |
| `invoice.amountFiat`        | O valor original da cobrança em moeda fiat. Não muda                                                                                                                                                                                                                                                     |
| `invoice.currencyFiat`      | Moeda fiat                                                                                                                                                                                                                                                                                               |
| `invoice.description`       | A descrição definida na criação da cobrança                                                                                                                                                                                                                                                              |
| `invoice.serviceData`       | Os dados de serviço definidos na criação da cobrança                                                                                                                                                                                                                                                     |
| `invoice.views`             | Número de visualizações da página de pagamento                                                                                                                                                                                                                                                           |
| `invoice.status`            | Status da cobrança                                                                                                                                                                                                                                                                                       |
| `wallet`                    | Bloco com os parâmetros da carteira                                                                                                                                                                                                                                                                      |
| `wallet.id`                 | ID da carteira no formato UUID                                                                                                                                                                                                                                                                           |
| `wallet.name`               | Nome da carteira                                                                                                                                                                                                                                                                                         |
| `wallet.blockchain`         | O blockchain da carteira cripto                                                                                                                                                                                                                                                                          |
| `wallet.cryptocurrency`     | A criptomoeda da carteira                                                                                                                                                                                                                                                                                |
| `wallet.address`            | O endereço da carteira cripto                                                                                                                                                                                                                                                                            |
