> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Cobranças

> Como as cobranças Pix funcionam no Plugin Pix Indireto (BTG) — cobranças imediatas (COB) e com vencimento (COBV), seu ciclo de vida, vínculo de pagamento e eventos de webhook.

Uma **cobrança** é uma cobrança Pix dinâmica e de uso único que solicita um pagamento específico. O Plugin Pix Indireto (BTG) suporta dois tipos, ambos renderizados como QR Codes dinâmicos:

* **Imediata (COB)** — `cobrança imediata`: uma cobrança de curta duração com valor fixo. Use para checkout e pagamentos únicos.
* **Com vencimento (COBV)** — `cobrança com vencimento`: uma cobrança semelhante a um boleto, com data de vencimento e multa, juros, desconto e abatimento opcionais. Use para contas, parcelamentos e faturamento B2B.

Este guia cobre o ciclo de vida da cobrança e o fluxo de pagamento. Para detalhes de geração de QR Code e validação campo a campo, consulte o [guia de QR Codes](/pt/midaz/plugins/pix/indirect/indirect-pix-qrcodes).

# Ciclo de vida

***

Ambos os tipos de cobrança compartilham o mesmo modelo de status:

| Status                | Significado                                    |
| --------------------- | ---------------------------------------------- |
| `ACTIVE`              | Criada e disponível para pagamento             |
| `CONCLUDED`           | Pagamento recebido — a cobrança está liquidada |
| `REMOVED_BY_RECEIVER` | Cancelada pelo lojista (`DELETE`)              |
| `REMOVED_BY_PSP`      | Cancelada pelo PSP (sistema ou política)       |

Uma cobrança passa por: **criada → `ACTIVE` → `CONCLUDED`** (paga) ou **expirada / removida**. Na criação, o plugin agenda um **job de expiração**:

* **Imediata (COB):** expira após `expirationInSeconds`.
* **Com vencimento (COBV):** expira em `dueDate + validAfterDue` dias (padrão 30).

Depois de expirada ou `CONCLUDED`, uma cobrança não pode mais ser paga, e uma cobrança `CONCLUDED` não pode ser excluída (`PIX-0104`) nem atualizada (`PIX-0022`).

# Campos principais

***

| Campo                                                 | Obrigatório em          | Observações                                                                            |
| ----------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------- |
| `txId`                                                | COB + COBV              | Identificador único entre todas as cobranças; usado para vincular o pagamento recebido |
| `amount`                                              | COB + COBV              | Decimal com 2 casas, maior que 0                                                       |
| `receiverKey`                                         | COB + COBV              | Chave Pix que recebe o pagamento; deve pertencer à conta                               |
| `expirationInSeconds`                                 | Somente COB             | Janela de validade para cobranças imediatas                                            |
| `dueDate` / `validAfterDue`                           | Somente COBV            | Data de vencimento e período de tolerância após o vencimento                           |
| `debtor`                                              | COBV (opcional em COB)  | Nome + CPF/CNPJ; restringe quem pode pagar                                             |
| `amount.fine` / `interest` / `discount` / `abatement` | Somente COBV (opcional) | Regras de cobrança exclusivas de COBV                                                  |

Para COBV, o valor final liquidado depende do **momento do pagamento** — o pagamento antecipado aplica descontos, o pagamento no prazo usa o valor original e o pagamento em atraso adiciona multa e juros (descontado qualquer abatimento).

# Criar, recuperar, atualizar, excluir

***

| Ação      | Imediata (COB)                          | Com vencimento (COBV)                |
| --------- | --------------------------------------- | ------------------------------------ |
| Criar     | `POST /v1/collections/immediate`        | `POST /v1/collections/duedate`       |
| Listar    | `GET /v1/collections/immediate`         | `GET /v1/collections/duedate`        |
| Recuperar | `GET /v1/collections/immediate/{id}`    | `GET /v1/collections/duedate/{id}`   |
| Atualizar | `PATCH /v1/collections/immediate/{id}`  | `PATCH /v1/collections/duedate/{id}` |
| Excluir   | `DELETE /v1/collections/immediate/{id}` | —                                    |

Todas as requisições exigem o cabeçalho `X-Account-Id`. Atualizações e exclusões só são permitidas enquanto a cobrança estiver `ACTIVE`.

# Fluxo de pagamento

***

Uma cobrança é paga por um **Pix recebido (cash-in)** que carrega o `txId` da cobrança:

1. O lojista cria uma cobrança e apresenta seu QR Code (ou `txId`) ao pagador.
2. O pagador liquida a cobrança; o BTG notifica o plugin sobre o cash-in recebido.
3. O plugin **vincula o cash-in à cobrança** comparando o `txId` do pagamento com o `txId` da cobrança **e** o documento do recebedor. (`FindByTxID(txId, receiverDocument)`.)
4. Quando há correspondência, a cobrança passa para `CONCLUDED` e o cash-in é lançado no Midaz como uma transação de ledger.
5. O plugin emite um **webhook de cobrança paga** para que seu sistema seja notificado em tempo real.

<Note>
  Quando um `debtor` é definido na cobrança, somente um pagamento desse CPF/CNPJ a liquida. Essa é a principal defesa contra a conclusão de uma cobrança pelo pagador errado.
</Note>

# Evento de webhook ao pagar

***

Quando uma cobrança é liquidada, o plugin enfileira um **webhook de saída** descrevendo o pagamento e o novo status `CONCLUDED`, entregue de forma assíncrona pelo worker de webhooks de saída. Configure o destino por meio das URLs de webhook de cash-in (`WEBHOOK_TRANSFER_CASHIN_URL`, com fallback para `WEBHOOK_DEFAULT_URL`). Para tipos de eventos, payloads, retentativas e resolução de URL, consulte o [guia de Webhooks](/pt/midaz/plugins/pix/indirect/indirect-pix-webhooks).

# Casos de erro

***

| Caso                                      | Comportamento                                                                                                                                    |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Expirada**                              | A cobrança não pode mais ser paga; um pagamento recebido em atraso não é vinculado e segue o fluxo padrão de cash-in não correspondido           |
| **Divergência de valor**                  | Um pagamento cujo valor não corresponde à cobrança é rejeitado/tratado conforme as regras do BACEN e não conclui a cobrança                      |
| **Divergência de pagador (debtor)**       | Um pagamento de um CPF/CNPJ diferente do `debtor` configurado não liquida a cobrança (`PIX-0073` cobre erros de formato do documento do pagador) |
| **`txId` duplicado**                      | A criação falha — o `txId` deve ser único entre todas as cobranças                                                                               |
| **Atualização/exclusão após a conclusão** | Rejeitada (`PIX-0022` / `PIX-0104`) — uma cobrança `CONCLUDED` é imutável                                                                        |

# Referência

***

**Imediata (COB):** [Criar](/pt/reference/midaz/plugins/indirect-pix/create-an-immediate-charge) · [Listar](/pt/reference/midaz/plugins/indirect-pix/list-immediate-charges) · [Recuperar](/pt/reference/midaz/plugins/indirect-pix/retrieve-immediate-charge-details) · [Atualizar](/pt/reference/midaz/plugins/indirect-pix/update-an-immediate-charge) · [Excluir](/pt/reference/midaz/plugins/indirect-pix/delete-an-immediate-charge)

**Com vencimento (COBV):** [Criar](/pt/reference/midaz/plugins/indirect-pix/create-a-dynamic-charge-with-due-date) · [Listar](/pt/reference/midaz/plugins/indirect-pix/list-dynamic-charges-with-due-date) · [Recuperar](/pt/reference/midaz/plugins/indirect-pix/retrieve-dynamic-charge-with-due-date-details) · [Atualizar](/pt/reference/midaz/plugins/indirect-pix/update-a-dynamic-charge-with-due-date)

# Próximos passos

***

* [QR Codes](/pt/midaz/plugins/pix/indirect/indirect-pix-qrcodes) — Tipos de QR Code e o decodificador
* [Transferências Intra-PSP](/pt/midaz/plugins/pix/indirect/indirect-pix-intra-psp) — Liquidação interna quando pagador e recebedor compartilham o mesmo ISPB
* [Webhooks](/pt/midaz/plugins/pix/indirect/indirect-pix-webhooks) — Notificações de pagamento e status
