scheduled → open → paid, com desvios para past_due, unpaid, canceled e refunded).
Esta API expõe a leitura das faturas, ações administrativas de reconciliação (pagamento fora do gateway e cancelamento) e a página de fatura hospedada — o link público que o pagador anônimo abre para pagar via PIX, boleto ou cartão.
Todos os endpoints autenticados usam o header
x-api-key (veja Autenticação). Os endpoints sob /public/invoices/* são públicos — a credencial é a posse do token de alta entropia gerado na emissão da fatura. Valores monetários são sempre inteiros em centavos (ex: 18990 = R$ 189,90).Endpoints
| Método | Rota | Descrição |
|---|---|---|
GET | /invoices | Lista faturas com filtros e paginação |
GET | /invoices/:id | Detalha uma fatura |
GET | /invoices/:id/line-items | Lista os itens (line items) de uma fatura |
POST | /admin/invoices/:id/mark-paid-out-of-band | Reconcilia um pagamento feito fora do gateway |
POST | /admin/invoices/:id/void | Cancela (void) uma fatura antes do pagamento |
GET | /public/invoices/:token | (Público) Obtém a fatura para a página hospedada |
POST | /public/invoices/:token/pay | (Público) Gera a slip de PIX/boleto |
POST | /public/invoices/:token/pay-card | (Público) Cobra a fatura com cartão tokenizado |
Estados da fatura
O campostatus da fatura segue este ciclo de vida:
| Estado | Significado |
|---|---|
scheduled | Criada com antecedência; ativa quando o chargeAt chega (emissão da slip adiada) |
suspended | Congelada por pausa da assinatura — fora dos ciclos de cobrança |
open | Ativa, aguardando pagamento (slip de PIX/boleto já existe quando aplicável) |
paid | Totalmente paga |
past_due | Cobrança falhou; em processo de retentativa (dunning) |
unpaid | Retentativas esgotadas — cobrança abandonada |
canceled | Cancelada (void) pelo lojista antes do pagamento |
refunded | Reembolsada após o pagamento |
Estados terminais (
paid, canceled, refunded, unpaid) rejeitam ações de cancelamento. A reconciliação fora do gateway só aceita faturas em open, past_due ou unpaid.Listar faturas
Filtra por um ou mais estados. Aceita CSV (
status=open,past_due) ou repetido (status=open&status=past_due). Valores: scheduled, suspended, open, paid, past_due, unpaid, canceled, refunded.Filtra pelas faturas de uma assinatura específica.
Filtra pelas faturas de um cliente específico.
Filtra por forma de pagamento (CSV ou repetido). Valores:
card, pix, boleto, other.Busca livre por nome/email/documento do cliente ou pelo código da fatura (prefixo).
Busca parcial pelo número formatado da fatura (ex:
2026-0007, 2026-, 42). Máx. 20 caracteres.Busca parcial por nome, email ou documento do cliente. Máx. 255 caracteres.
Valor total mínimo da fatura, em centavos.
Valor total máximo da fatura, em centavos.
Campo de data ao qual aplicar
dateFrom/dateTo. Valores: issued, due, paid, created, charge.Início do intervalo de datas. ISO 8601 com timezone (ex:
2026-06-01T00:00:00-03:00) ou data simples (2026-06-01).Fim do intervalo de datas. Mesmo formato de
dateFrom.Campo de ordenação. Valores:
createdAt (padrão), dueAt, code, customer, paidAt, value.Direção da ordenação:
asc ou desc (padrão).Página da paginação.
Itens por página.
O formato exato do envelope de paginação segue a convenção da API — consulte Convenções.
Detalhar uma fatura
ID da fatura (prefixo
inv_).ID da fatura (
inv_).Número da fatura:
{ year, sequence }. Único e sequencial por empresa/ano.Estado atual (veja a tabela de estados).
Natureza da fatura:
enrollment (adesão), recurring (ciclo regular) ou manual (avulsa). Imutável.ID do cliente (
cust_).Nome do cliente (snapshot).
Email do cliente (snapshot).
Documento do cliente (snapshot).
Moeda ISO de 3 letras (ex:
BRL).Assinatura de origem (
sub_), quando aplicável.Quando a fatura deixa de ser
scheduled e fica pagável. ISO 8601.Data de vencimento. ISO 8601.
Data de emissão. ISO 8601.
Data do pagamento. ISO 8601.
Data do cancelamento. ISO 8601.
Soma dos itens, em centavos.
Total de impostos, em centavos.
Valor total da fatura, em centavos.
Valor já pago, em centavos.
Valor restante a pagar, em centavos.
Valor acumulado reembolsado, em centavos.
Parcelas no cartão para a cobrança (1-12; 1 = à vista).
Início do período de serviço. Nulo para
kind=manual. ISO 8601.Fim do período de serviço. Nulo para
kind=manual. ISO 8601.Data de criação. ISO 8601.
Data da última atualização. ISO 8601.
200— fatura encontrada404— fatura não encontrada
Listar line items
Retorna os itens (linhas de cobrança) de uma fatura.ID da fatura (
inv_).Tipo do item:
subscription, proration, one_time ou metered_usage.Quantidade.
Valor unitário, em centavos.
Valor total do item, em centavos.
Reconciliar pagamento fora do gateway
Marca a fatura comopaid quando o pagamento foi recebido por fora (transferência bancária, dinheiro, cheque). Não passa pelo gateway. Aceita faturas em open, past_due ou unpaid.
Este endpoint é idempotente: envie o header Idempotency-Key para evitar reprocessamento em retries. Veja Convenções.
ID da fatura (
inv_).Valor recebido, em centavos. Inteiro positivo.
Forma do pagamento off-channel:
bank_transfer, cash, check ou other.Data/hora do recebimento, ISO 8601 em UTC (com sufixo
Z, ex: 2026-06-22T17:30:00.000Z). Opcional.Observação livre (máx. 500 caracteres). Opcional.
200— fatura atualizada (status=paid)409— fatura em estado terminal (não permite a reconciliação)
Cancelar (void) fatura
Cancela uma fatura antes do pagamento. Aceitascheduled, open ou past_due. Estados terminais e unpaid são rejeitados. reason e reasonDetails são obrigatórios.
Este endpoint é idempotente: envie o header Idempotency-Key.
ID da fatura (
inv_).Motivo do cancelamento:
duplicate, wrong_amount, customer_agreement, issued_by_mistake ou other.Detalhes do motivo (1 a 500 caracteres).
200— fatura cancelada (status=canceled)409— fatura em estado terminal/unpaid (não permite cancelamento)
Página de fatura hospedada (pública)
Em vez de enviar a slip de PIX/boleto por email (que expira), a Z2Pay gera um link de fatura hospedada no formato/i/{token}. O pagador anônimo abre o link e a slip é gerada na hora. Estes endpoints não usam x-api-key — a credencial é a posse do token (gerado na emissão, de alta entropia). Eles têm rate limit contra abuso.
O
token é o public_access_token da fatura. A página faz polling no GET para exibir a slip e detectar o pagamento (a fatura passa de open para paid).Obter a fatura para pagamento
Retorna os dados seguros da fatura (sem IDs internos nemcompanyId sensível) e a slip atual, se já gerada.
Token público da fatura.
Slip da tentativa de cobrança pendente.
null enquanto ainda não gerada. Quando presente, contém paymentMethod, status, pixUrl, pixCopyPaste, boletoUrl, boletoDigitableLine, boletoBarcode e expiresAt.Métodos permitidos para esta fatura.
null = sem restrição (a página decide pelo método padrão da assinatura).Config de parcelamento para cartão:
{ maxInstallments, freeInstallments?, interestRate? }. null = à vista.200 (view da fatura), 404 (token inválido).
Gerar a slip de PIX/boleto
Garante uma slip válida para a fatura. O corpo é opcional: o campomethod força PIX ou boleto (entre os métodos permitidos). Sem method, usa o padrão da assinatura.
Token público da fatura.
pix ou boleto. Opcional.GET acima. A slip pode levar ~1-2s para aparecer (persistência assíncrona) — a página deve continuar fazendo polling no GET.
Status declarados: 200 (view, slip pode ainda não estar populada), 404 (token inválido), 409 (método não permitido pela fatura).
Cobrar com cartão tokenizado
Cobra a fatura com um cartão tokenizado pelo Tokenizer no front (pode ser cartão de terceiro). Cobrança eager — o resultado reflete noGET no próximo polling.
Token público da fatura.
Token do cartão emitido pelo tokenizador.
Número de parcelas escolhido pelo pagador (1 a 12; 1 = à vista). Opcional.
200 (view atualizada), 404 (token inválido), 409 (cartão não permitido ou fatura não pagável).
Ações disponíveis no painel
Algumas operações de fatura — criar fatura avulsa, gerar link de pagamento, reagendar e forçar nova cobrança (retry) — são realizadas pelo painel do lojista (sessão de usuário), e não estão expostas na API pública porx-api-key. Os corpos abaixo documentam a forma desses dados para referência.
Criar fatura avulsa (manual)
Criar fatura avulsa (manual)
Lança uma cobrança ad-hoc atrelada a uma assinatura, fora do ciclo recorrente. Corpo:
subscriptionId(string, obrigatório)description(string, 1-200, obrigatório)amount(integer em centavos, positivo, obrigatório) — valor unitárioquantity(integer positivo, padrão1)dueAt(ISO 8601, obrigatório, estritamente no futuro)reason(obrigatório):extra_service,adjustment,penalty,ad_hocouotherreasonDetails(string, 1-500, obrigatório)allowedPaymentMethods(array decard/pix/boleto, 1-3 itens, opcional) — métodos oferecidos na página hospedadainstallmentsConfig(objeto, opcional/nulo):{ maxInstallments (1-12), freeInstallments? (1-12), interestRate? (0-100) }.freeInstallmentsnão pode excedermaxInstallments.
kind=manual, sem período de serviço (periodStart/periodEnd nulos).Gerar link de pagamento
Gerar link de pagamento
Transiciona uma fatura
scheduled para open antes do chargeAt e disponibiliza o link da página hospedada. Nenhuma cobrança é executada — o pagador escolhe o método ao abrir o link. Corpo:methods(array decard/pix/boleto, 1-3 itens, obrigatório) — métodos oferecidos na páginainstallmentsConfig(objeto, opcional/nulo, mesma forma da fatura avulsa)
Reagendar fatura
Reagendar fatura
Altera a data de cobrança (
chargeAt) de uma fatura scheduled. O dueAt desloca pelo mesmo intervalo. Corpo:chargeAt(ISO 8601, obrigatório)
Forçar nova cobrança (retry)
Forçar nova cobrança (retry)
Dispara uma nova cobrança em fatura
open/past_due sem esperar o ciclo de dunning. Sem corpo. Veja Ciclos.Veja também
Assinaturas
Crie e gerencie os contratos que geram as faturas.
Ciclos de cobrança
Como cada ciclo emite uma fatura e o fluxo de dunning.
Planos e preços
Defina os valores que compõem os itens da fatura.
Tokenizer
Tokenize cartões no front para a página de fatura hospedada.

