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

# Payment Status Reconciliation

> Rotina que reconcilia pagamentos pendentes com o provider de billing

Payment Status Reconciliation é a rotina periódica que corrige drift entre o estado local de [Payment](/data-modelling/billing/payment) e o estado do provider.

## Objetivo

A rotina complementa webhooks e filas assíncronas, garantindo que pagamentos pendentes ou em processamento não fiquem presos em estado antigo.

## Execução

Ao rodar, a rotina:

1. Busca pagamentos com `externalProvider` e `externalProviderId`.
2. Filtra pagamentos em estados não terminais, como `PENDING`, `PROCESSING` e estados de antifraude.
3. Consulta o provider de billing.
4. Atualiza `status`, `paidAt`, `overdueAt`, `canceledAt` e demais campos aplicáveis conforme resposta do provider.

## Regras

| Regra             | Comportamento                                                                                                     |
| ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| Fonte externa     | O provider é a fonte de verdade para status de cobrança externa.                                                  |
| Estados terminais | Pagamentos `PAID`, `CANCELED`, `PAYMENT_FAILED`, `REFUNDED` ou `CHARGEDBACK` não devem ser reabertos pela rotina. |
| Vencimento        | `dueDate` e `overdueAt` representam vencimento local quando aplicável.                                            |
| Idempotência      | Reprocessar o mesmo status não deve gerar efeitos duplicados.                                                     |
| Escopo            | A rotina atua apenas em pagamentos conhecidos pelo DEVMOB.                                                        |
