> ## 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.

# Overview

> Visão geral do domínio Billing: pagamentos, recebíveis, contas bancárias e transferências.

O domínio Billing gerencia o **ciclo financeiro** das vendas de passagens: pagamento, conciliação de recebíveis, saldo e transferência para contas bancárias das empresas.

## Entidades

<CardGroup cols={2}>
  <Card title="Payment Lifecycle" icon="credit-card" href="/domain/billing/payment-lifecycle">
    Métodos, status e fluxos de pagamento; confirmação via webhook do provedor.
  </Card>

  <Card title="Billing Provider" icon="plug" href="/domain/billing/billing-provider">
    Contrato genérico de integração e configuração externa por Company.
  </Card>

  <Card title="Receivables" icon="file-invoice-dollar" href="/domain/billing/receivables">
    Recebíveis sincronizados do provider para conciliação financeira.
  </Card>

  <Card title="Transfers" icon="money-bill-transfer" href="/domain/billing/transfers">
    Saques do saldo da empresa para sua conta bancária.
  </Card>
</CardGroup>

## Fluxo de Billing

```mermaid theme={null}
flowchart TD
    O[Order] --> P[Payment]
    P -->|"pagamento confirmado"| PAID["Payment.status = PAID"]
    PAID --> SYNC["Sincroniza Receivables do provedor"]
    SYNC --> R["Receivables atualizados"]
    R --> BAL["Saldo disponível no provider"]

    BAL --> T["Transfer → BankAccount da Company"]
```

## Conceitos-Chave

* **Payment** é o pagamento único de um Order (relação 1:1). A confirmação chega via webhook do provedor (`PaymentStatus = PAID`) ou pode nascer confirmada em POS com dinheiro.
* **Billing Provider** define a superfície de integração para pagamentos, recebíveis, contas bancárias e transferências.
* **PaymentMethod** pertence ao Customer e funciona como proxy local do gateway.
* **CompanyPaymentSettings** guarda a configuração externa de billing da empresa, incluindo a API key criptografada.
* **Receivable** é o registro de conciliação de valores a receber por empresa, sincronizado do provedor. O `gatewayFee` é reportado pelo provedor.
* **BankAccount** é a conta bancária cadastrada por cada empresa.
* **Transfer** é o saque do saldo disponível (consultado no provedor) para a conta bancária.
* Entidades de billing carregam `organizationId` e `companyId` para deixar explícita a empresa beneficiária.
* Os métodos aceitos no modelo atual são dinheiro, PIX, cartão de crédito e cartão de débito.
* Cooperative não participa do fluxo financeiro.

<Info>
  Todos os valores monetários são armazenados em **centavos** (integer). O gateway fee é reportado pelo provider e pode ter rate derivado para conciliação.
</Info>
