invoice (fatura) representa a cobrança periódica de uma assinatura ou de itens cobrados manualmente de um cliente. Ela centraliza as informações de valores devidos e pagos, os itens cobrados, os descontos aplicados e as referências aos recursos financeiros que permitem o pagamento, como o payment_intent e o customer.
Na Chargefy, as invoices são geradas automaticamente pelo ciclo de faturamento de uma assinatura (subscription_cycle, subscription_create ou subscription_update) ou podem ser criadas de forma avulsa (manual) para cobranças específicas. Compras avulsas diretas (one-off) não geram invoices — essas passam direto pelos payment_intents para manter o fluxo leve e limpo.
Toda invoice nasce pronta para cobrança em open ou já liquidada em paid, dependendo do fluxo que a criou. Em ciclos de assinatura com cobrança pausada, a invoice pode ficar em draft até ser revisada fora da cobrança automática. Os valores, itens de linha, vencimento e snapshots do customer ficam fixos desde a criação. Para corrigir esses dados, cancele a invoice (void) e crie uma nova.
O campo hosted_invoice_url é a página pública dessa invoice em billing.chargefy.io/invoice/:token. O token é opaco e pode expirar; quando você recupera a invoice pela API, a resposta traz uma URL ativa. Enquanto a invoice está open, essa página pode receber pagamento pelos métodos permitidos em payment_method_types. Depois que a invoice é paga, cancelada ou marcada como incobrável, uma URL ativa continua servindo para visualização do estado da fatura, sem aceitar novo pagamento.
Essa URL pertence a uma invoice específica. Ela não é um payment_link: payment links são URLs reutilizáveis de oferta que materializam checkout sessions novas a cada clique.
Data Object
Este é o formato completo retornado emcreate, get, itens de list, e em data.object dos webhooks invoice.*.
string
Identificador único da invoice, com o prefixo
inv_*.string
Sempre
"invoice".integer
Valor de saldo de crédito aplicado à invoice, em centavos.
integer
Valor do desconto aplicado em centavos.
integer
Valor devido em centavos. É imutável após a criação da invoice.
integer
Valor a pagar no momento da resposta, incluindo multa e juros acumulados
quando aplicáveis.
integer
Valor pago em centavos.
integer
Valor restante devido em centavos.
integer
Subtotal em centavos, antes de descontos ou taxas.
integer
Valor de impostos/taxas calculados em centavos.
integer
Valor total em centavos, equivalente a
amount_subtotal - amount_discount + amount_tax.integer
Quantas tentativas de pagamento esta fatura acumulou, do ponto de vista da
régua de recuperação. A primeira tentativa conta como
1; depois dela, apenas
as retentativas automáticas incrementam.Cobrar a fatura manualmente — por POST /v1/invoices/:id/pay ou pelo painel —
não move a régua. Isso é proposital: uma cobrança manual não deve consumir
as tentativas automáticas que ainda restam ao cliente.Por isso o valor não é o tamanho de payments.data[]. Uma tentativa manual
cria um pagamento sem contar, e uma retentativa que a régua pula — porque a
recusa anterior foi de um tipo que repetir não resolve — conta sem criar
pagamento nenhum.string | null
O motivo de faturamento.
string
Método de cobrança.
string
Data de criação em formato ISO 8601.
string
Moeda da cobrança, em formato de 3 letras ISO (como
brl).string | null
ID do customer (
cus_*) ao qual a invoice pertence.object | null
Snapshot do endereço de cobrança do comprador.
string | null
Nome de faturamento do comprador.
string | null
Snapshot do documento fiscal (CPF/CNPJ) do comprador.
string | null
Tipo de documento fiscal do comprador.
string | null
Snapshot do e-mail do comprador.
string | null
Snapshot do nome do comprador no momento em que a invoice foi criada.
string | null
Payment method (
pm_*) escolhido para esta invoice. Quando a invoice é paga
sem payment_method explícito, a ordem de resolução é: payment_method do
request, default_payment_method da invoice, default_payment_method da
subscription, e default_payment_method do customer.string | null
Descrição interna ou observação sobre a invoice.
string | null
Data de vencimento da fatura em formato ISO 8601.
integer
Saldo final do customer após a invoice, em centavos.
string | null
URL pública ativa onde o cliente pode ver a invoice. Enquanto a invoice
está
open, a página também permite pagamento pelos métodos em
payment_method_types. O token da URL é opaco e pode ser renovado pela
Chargefy; não tente montá-lo manualmente.object | null
Configuração de juros da invoice.
integer | null
Valor de juros acumulado no momento da resposta, em centavos.
string | null
URL pública para download do PDF da fatura.
object | null
Configuração de multa por atraso da invoice, com
type e value.Valores de type:integer | null
Valor de multa acumulado no momento da resposta, em centavos.
string | null
ID do charge (
ch_*) gerado na tentativa de pagamento bem-sucedida.array
Lista de itens de linha faturados.
boolean
true se gerada em produção; false se em testes.string | null
Data em que a cobrança foi marcada como incobrável.
object
Metadata livre. Retorna
{} quando vazio.string | null
Data e hora ISO 8601 da próxima tentativa automática de cobrança.É
null quando a régua de recuperação terminou e sempre null quando
collection_method é send_invoice, já que nesse modo a Chargefy não cobra
automaticamente.string
Número legível da fatura, sequencial por cliente (ex:
K7M2-0001). Cada cliente
recebe um prefixo próprio e a numeração reinicia nele. Sempre presente: atribuído
na criação da fatura a partir do prefixo do cliente.string | null
Data de liquidação da invoice.
string | null
ID do payment intent (
pi_*) utilizado para a tentativa de pagamento mais
recente desta invoice.array
Meios de pagamento permitidos para a cobrança da invoice.
integer
Saldo inicial do customer antes da invoice, em centavos.
string | null
Descrição amigável que aparece na fatura do cartão do cliente.
string
Estado atual da invoice.
string | null
ID da assinatura (
sub_*) associada a esta invoice.string | null
Data da última atualização em formato ISO 8601.
string | null
Data em que a invoice foi cancelada.
Operações
Eventos
Mudanças nesse objeto disparam os seguintes eventos: O payload sempre carrega o objetoinvoice completo em data.object.
