Skip to main content

Emitir cobrança

Scope: invoices.write para criar, emitir e cancelar; invoices.read para listar e detalhar.

Criar​

Endpoint: POST /invoices

O header x-idempotency-key é obrigatório (1–50 caracteres). A mesma chave com o mesmo payload devolve a cobrança original. Payload diferente com a mesma chave responde 409.

curl --location 'https://secureapi.onz.finance/api/v2/invoices' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--header 'x-idempotency-key: invoice-2026-0001' \
--data '{
"payer": {
"name": "Maria Silva",
"document": "12345678901",
"email": "[email protected]",
"address": {
"address": "Rua das Flores",
"number": "100",
"district": "Centro",
"city": "São Paulo",
"zipCode": "01310100",
"uf": "SP"
}
},
"paymentMethod": "PIX_BOLETO",
"pixKey": "12345678901",
"dueDate": "2026-08-20",
"daysToPay": 5,
"amount": 150.9,
"type": "SCHEDULED",
"emit": true,
"description": "Mensalidade agosto",
"interest": { "type": 3, "amount": 1 },
"lateFee": { "type": 2, "amount": 2 },
"discount": {
"type": 2,
"value": 10,
"deadline": "2026-08-15"
}
}'
CampoObrigatórioDescrição
customerIdCondicionalId retornado em POST /customers. Envie customerId ou payer, nunca os dois.
payerCondicionalDados do pagador. O cadastro é criado ou atualizado pelo documento. Envie payer ou customerId, nunca os dois.
paymentMethodNãoPIX (padrão), BOLETO ou PIX_BOLETO
pixKeySe o método inclui PixChave Pix da conta recebedora
dueDateSimVencimento YYYY-MM-DD (America/Sao_Paulo)
daysToPayNãoValidade após o vencimento. Padrão 0. Zerado em IMMEDIATE.
amountSimValor positivo em reais
typeSimIMMEDIATE ou SCHEDULED
emitNãoRegistra na mesma chamada uma cobrança SCHEDULED via BOLETO ou PIX_BOLETO. Padrão false.
descriptionNãoAté 255 caracteres
emailToNãoDestinatário do e-mail da cobrança
sendEmailNãoEnviar e-mail ao criar/emitir. Padrão false.
interestNãoJuros. Ignorado em IMMEDIATE.
lateFeeNãoMulta. Ignorada em IMMEDIATE.
discountNãoDesconto

Juros (interest.type)​

ValorCálculo
1Valor fixo, dias corridos
2Percentual ao dia, dias corridos
3Percentual ao mês, dias corridos
4Percentual ao ano, dias corridos
5–8Equivalentes em dias úteis. Não suportados em boleto (422).

amount em juros e multa é o valor ou percentual, conforme o tipo.

Multa (lateFee.type)​

ValorCálculo
1Valor fixo
2Percentual

Desconto (discount.type)​

ValorCálculo
1Valor fixo até a data
2Percentual até a data
3Valor fixo por dia de antecipação
4Percentual por dia de antecipação
5Valor fixo até o vencimento
6Percentual até o vencimento

deadline é obrigatório nos tipos 1 e 2.

A resposta 201 inclui id, status, txId, brCode (Pix) e, após o registro do boleto, boletoBarcode / boletoDigitableLine.

Emitir rascunho​

Endpoint: POST /invoices/{invoiceId}/emit

Só faturas SCHEDULED em DRAFT. Responde a cobrança já registrada (PENDING ou REGISTERING). Para emitir na criação, envie emit: true em POST /invoices.

Listar e detalhar​

Endpoints: GET /invoices e GET /invoices/{invoiceId}

curl --location \
'https://secureapi.onz.finance/api/v2/invoices?status=PENDING&dateField=DUE_DATE&startDate=2026-08-01&endDate=2026-08-31' \
--header 'Authorization: Bearer <access_token>'
QueryDescrição
pagePágina. Padrão 1.
perPageItens por página. Padrão 20, máximo 100.
filterBusca por descrição ou nome do pagador.
statusDRAFT, REGISTERING, PENDING, OVERDUE, COMPLETED, CANCELED, FAILED ou WRITTEN_OFF. WRITTEN_OFF representa cobranças pagas por outro canal.
dateFieldCampo do período: CREATED_AT (padrão), DUE_DATE ou PAID_AT.
startDateInício inclusivo. Envie junto com endDate.
endDateFim inclusivo, igual ou posterior a startDate.

As datas aceitam YYYY-MM-DD ou ISO 8601 com Z/offset. Uma data sem horário cobre o dia inteiro em America/Sao_Paulo.

A listagem devolve { meta, data }. meta tem total, perPage, currentPage, firstPage, lastPage, nextPage e prevPage.

Obter PDF​

Endpoint: GET /invoices/{invoiceId}/pdf

curl --location 'https://secureapi.onz.finance/api/v2/invoices/42/pdf' \
--header 'Authorization: Bearer <access_token>' \
--output cobranca-42.pdf

A resposta 200 contém application/pdf e usa Content-Disposition: inline. O endpoint exige o scope invoices.read.

HTTPQuando
404Cobrança inexistente na conta.
422Cobrança ainda sem QR Code ou boleto registrado, cancelada ou já paga.
503PDF temporariamente indisponível. Faça retry com backoff.

Cancelar​

Endpoint: DELETE /invoices/{invoiceId}

Cancela a cobrança e o Pix/boleto remanescente. Responde { "success": true }.