# Contas de Cartão de Crédito

A entidade **Bill** é recuperada de instituições que suportam este produto. Ela representa uma fatura (bill) associada a uma conta do tipo "Crédito", especificamente o subtipo `CREDIT_CARD`. A fatura representa cada fatura que o provedor do cartão envia ao usuário no final do mês com os detalhes da dívida, os impostos envolvidos no período e quando vence.

> **Apenas suportado em conexões Reguladas**
>
> Esta entidade é retornada obrigatoriamente para todas as instituições FI em conexões Open Finance Reguladas. Para conexões Open Finance Diretas, ela é retornada apenas em Inter PF & Itau Cartoes.

```json
{
  "id": "76edd0fa-57b4-4391-be8d-e8b6249d04b1",
  "dueDate": "2023-09-15T00:00:00.000Z",
  "totalAmount": 10000.76,
  "totalAmountCurrencyCode": "BRL",
  "minimumPaymentAmount": 3000,
  "allowsInstallments": true,
  "payments": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "valueType": "FULL_PAYMENT",
      "paymentDate": "2023-09-15T00:00:00.000Z",
      "paymentMode": "PIX",
      "amount": 10000.76,
      "currencyCode": "BRL"
    }
  ],
  "financeCharges": [
    {
      "id": "6119c3e0-706c-4a7a-a734-0fc7a0a94bdb",
      "type": "IOF",
      "amount": 7.01,
      "currencyCode": "BRL",
      "additionalInfo": "NA"
    },
    {
      "id": "3cd450a1-79d1-43fd-a5ea-f77b3fca960d",
      "type": "OTHER",
      "amount": 0,
      "currencyCode": "BRL",
      "additionalInfo": "NA"
    }
  ]
}
```

| Propriedade | Tipo | Opcional | Descrição |
|-------------|------|----------|-----------|
| id | string | Não | Identificador primário |
| dueDate | string | Não | Data de vencimento da fatura, exibida para pagamento pelo cliente |
| totalAmount | number | Não | Valor total da fatura |
| totalAmountCurrencyCode | string | Não | Código que referencia a moeda da fatura |
| minimumPaymentAmount | number | Sim | Valor mínimo de pagamento da fatura |
| allowsInstallments | boolean | Sim | Indica se a fatura permite pagamentos parcelados (true) ou não (false) |
| financeCharges | array | Não | Lista de encargos associados à fatura ([CreditCardBillFinanceCharge](#credit-card-bill-finance-charge)) |
| payments | array | Não | Lista de pagamentos associados à fatura ([CreditCardBillPayment](#credit-card-bill-payment)) |

## Encargo de Fatura de Cartão de Crédito

| Propriedade | Tipo | Opcional | Descrição |
|-------------|------|----------|-----------|
| id | string | Não | Identificador primário |
| type | string | Não | Denominação dos encargos que se aplicam à fatura da conta de pagamento pós-pago: LATE_PAYMENT_REMUNERATIVE_INTEREST, LATE_PAYMENT_FEE, LATE_PAYMENT_INTEREST, IOF, OTHER |
| amount | number | Não | Valor cobrado pelo encargo/taxa |
| currencyCode | string | Não | Código que referencia a moeda do encargo |
| additionalInfo | string | Sim | Campo livre, obrigatório preencher se o tipo de encargo 'OTHER' for selecionado |

## Pagamento de Fatura de Cartão de Crédito

| Propriedade | Tipo | Opcional | Descrição |
|-------------|------|----------|-----------|
| id | string | Não | Identificador primário |
| valueType | string | Não | Tipo de pagamento feito contra a fatura (ex: FULL_PAYMENT, MINIMUM_PAYMENT, OTHER) |
| paymentDate | string | Não | Data em que o pagamento foi feito |
| paymentMode | string | Não | Modo utilizado para realizar o pagamento (ex: PIX, débito em conta, boleto bancário) |
| amount | number | Não | Valor pago |
| currencyCode | string | Não | Código que referencia a moeda do pagamento |

### Como verificar se uma fatura anterior está quitada

O saldo de uma fatura é considerado quitado quando os pagamentos registrados no ciclo de faturamento **seguinte** cobrem o valor total da fatura anterior mais quaisquer encargos financeiros (juros, taxas, etc.) que se acumularam durante esse próximo ciclo:

```
totalAmount(Bill N) + sum(financeCharges(Bill N+1)) = sum(payments(Bill N+1))
```

Onde **N** é a fatura que você deseja verificar e **N+1** é a fatura imediatamente seguinte.

#### Exemplo: verificando a quitação da fatura de janeiro

Suponha que um cliente tenha duas faturas consecutivas: **Janeiro** (Bill N) e **Fevereiro** (Bill N+1).

Para confirmar que o saldo de janeiro foi totalmente pago, a seguinte condição deve ser atendida:

```
totalAmount(Janeiro) + sum(financeCharges(Fevereiro)) = sum(payments(Fevereiro))
```

| Campo | Fonte | Valor |
|-------|-------|-------|
| `totalAmount` | Fatura de Janeiro | R$ 500,00 |
| `sum(financeCharges)` | Fatura de Fevereiro | R$ 12,50 |
| `sum(payments)` | Fatura de Fevereiro | R$ 512,50 |

Como **500,00 + 12,50 = 512,50**, a fatura de janeiro é considerada **quitada**.