Cobranças
Cobranças Pix imediatas ou com vencimento (cobv), com QR Code dinâmico, Pix Copia e Cola e página de pagamento hospedada.
Criar cobrança
POST /v1/charges
Cria uma cobrança Pix junto ao banco e devolve o Pix Copia e Cola e o QR Code.
O txid é gerado pela plataforma. Requer o escopo charges:write.
Cobrança com vencimento (cobv): informe due_date (e, opcionalmente, days_after_due, fine,
interest, discount e rebate); o pagador passa a ser obrigatório. Vencimento em dia não útil é
prorrogado para o primeiro dia útil. O valor final pago é calculado pelo banco do pagador na data do
pagamento; due.amount_due_today é uma estimativa. O pagamento traz components com o detalhamento.
Exige o cabeçalho Idempotency-Key (os SDKs enviam automaticamente).
Corpo da requisição
| Campo | Tipo | Descrição | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amount obrigatório | string (valor) | Valor em reais, duas casas decimais, separador ponto. | ||||||||||||||||||||||||||||||||||||
expires_in | integer | Validade em segundos (de 1 minuto a 7 dias). | ||||||||||||||||||||||||||||||||||||
payer | Payer | Campos de payer
| ||||||||||||||||||||||||||||||||||||
description | string | Texto exibido ao pagador no app do banco (solicitacaoPagador). | ||||||||||||||||||||||||||||||||||||
external_ref | string | Referência do seu sistema (ex.: número do pedido). Única por unidade. | ||||||||||||||||||||||||||||||||||||
additional_info | array de object | |||||||||||||||||||||||||||||||||||||
allow_amount_change | boolean | Permite ao pagador alterar o valor (modalidadeAlteracao = 1). Não vale com | ||||||||||||||||||||||||||||||||||||
metadata | Metadata | Até 20 pares chave/valor livres do integrador (chave ≤ 40, valor ≤ 500 caracteres). Não use para dados pessoais. | ||||||||||||||||||||||||||||||||||||
return_url | string (uri) | Endereço da sua loja para o botão "Voltar para a loja" do checkout hospedado, depois do pagamento.
Em produção, só | ||||||||||||||||||||||||||||||||||||
due_date | string (date) | Vencimento (horário de Brasília). Torna a cobrança com vencimento ( | ||||||||||||||||||||||||||||||||||||
days_after_due | integer | Dias corridos após o vencimento em que ainda é possível pagar (validadeAposVencimento). | ||||||||||||||||||||||||||||||||||||
fine | DueFine | Multa por atraso, cobrada uma vez após o vencimento (valor fixo ou percentual do valor original). Campos de fine
| ||||||||||||||||||||||||||||||||||||
interest | DueInterest | Juros por dia de atraso a partir do vencimento (dias corridos, ou úteis com Campos de interest
| ||||||||||||||||||||||||||||||||||||
discount | DueDiscount | Desconto para pagamento até o vencimento: fixo ou percentual até 3 datas ( Campos de discount
| ||||||||||||||||||||||||||||||||||||
rebate | DueFine | Abatimento concedido em qualquer data (valor fixo ou percentual do valor original). Campos de rebate
| ||||||||||||||||||||||||||||||||||||
boleto | boolean | Cobrança híbrida: registra também um boleto com o mesmo vencimento e valor — o cliente paga pelo QR/Copia
e Cola ou pela linha digitável, o que for mais fácil. Exige | ||||||||||||||||||||||||||||||||||||
fiscal_documents | array de FiscalDocument | Split tributário (preparação, reforma tributária — LC 214/2025): documentos fiscais da venda. A chave é conferida (tamanho, modelo, dígito verificador e, nos modelos de 44 posições, emitente = CNPJ da unidade). Hoje só é guardada; quando o split entrar em produção (2027), segue ao banco junto com a cobrança. |
Respostas
201Cobrança criada e ativa.400Requisição inválida (formato ou campos).401Chave ausente, inválida, expirada ou revogada.403Operação não permitida: escopo insuficiente (`insufficient-scope`), IP fora da lista permitida409Conflito de estado: `idempotency-key-in-progress`, `charge-not-active`, `payment-not-unmatched`,422Regra de negócio violada: `idempotency-key-reused`, `refund-exceeds-available`,429Limite de requisições (`rate-limited`) ou cota diária de cobranças (`quota-exceeded`) excedidos.500Erro interno. É seguro repetir com a mesma `Idempotency-Key`.503O banco está temporariamente indisponível. Repita com a mesma `Idempotency-Key` após `Retry-After`.
Exemplo
curl -X POST "https://api.exemplo.com.br/v1/charges" \
-H "Authorization: Bearer $PIX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"amount": "149.90",
"expires_in": 3600,
"description": "Pedido 10293 — Loja Exemplo",
"external_ref": "pedido-10293",
"payer": {
"name": "Maria Souza",
"document": "12345678909"
},
"metadata": {
"canal": "site",
"cupom": "PRIMAVERA10"
}
}'Identificador nos logs: api.charges.create
Listar cobranças
GET /v1/charges
Requer o escopo charges:read.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
limit | consulta | integer | |
starting_after | consulta | string | Cursor — ID do último objeto da página anterior. |
ending_before | consulta | string | Cursor — ID do primeiro objeto da página seguinte. |
created_gte | consulta | string (date-time) | |
created_lte | consulta | string (date-time) | |
status | consulta | ChargeStatus | |
external_ref | consulta | string | |
txid | consulta | string |
Respostas
200Lista paginada de cobranças.400Requisição inválida (formato ou campos).401Chave ausente, inválida, expirada ou revogada.403Operação não permitida: escopo insuficiente (`insufficient-scope`), IP fora da lista permitida429Limite de requisições (`rate-limited`) ou cota diária de cobranças (`quota-exceeded`) excedidos.500Erro interno. É seguro repetir com a mesma `Idempotency-Key`.
Exemplo
curl -X GET "https://api.exemplo.com.br/v1/charges?limit=20" \
-H "Authorization: Bearer $PIX_API_KEY"Identificador nos logs: api.charges.list
Consultar cobrança
GET /v1/charges/{charge_id}
Retorna a cobrança com o status atualizado. Use esta consulta como confirmação
antes de liberar mercadoria. Requer o escopo charges:read.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
charge_id obrigatório | caminho | string |
Respostas
200Cobrança.401Chave ausente, inválida, expirada ou revogada.403Operação não permitida: escopo insuficiente (`insufficient-scope`), IP fora da lista permitida404Recurso não encontrado (ou pertencente a outra unidade).429Limite de requisições (`rate-limited`) ou cota diária de cobranças (`quota-exceeded`) excedidos.500Erro interno. É seguro repetir com a mesma `Idempotency-Key`.
Exemplo
curl -X GET "https://api.exemplo.com.br/v1/charges/ch_01J9Z3F0A1B2C3D4E5F6G7H8J9" \
-H "Authorization: Bearer $PIX_API_KEY"Identificador nos logs: api.charges.retrieve
Cancelar cobrança
POST /v1/charges/{charge_id}/cancel
Cancela uma cobrança active. Um Pix pago após o cancelamento é registrado como pagamento
unmatched (ver Pagamentos). Requer o escopo charges:write.
Exige o cabeçalho Idempotency-Key (os SDKs enviam automaticamente).
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
charge_id obrigatório | caminho | string |
Respostas
200Cobrança cancelada.401Chave ausente, inválida, expirada ou revogada.403Operação não permitida: escopo insuficiente (`insufficient-scope`), IP fora da lista permitida404Recurso não encontrado (ou pertencente a outra unidade).409Conflito de estado: `idempotency-key-in-progress`, `charge-not-active`, `payment-not-unmatched`,429Limite de requisições (`rate-limited`) ou cota diária de cobranças (`quota-exceeded`) excedidos.500Erro interno. É seguro repetir com a mesma `Idempotency-Key`.503O banco está temporariamente indisponível. Repita com a mesma `Idempotency-Key` após `Retry-After`.
Exemplo
curl -X POST "https://api.exemplo.com.br/v1/charges/ch_01J9Z3F0A1B2C3D4E5F6G7H8J9/cancel" \
-H "Authorization: Bearer $PIX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"Identificador nos logs: api.charges.cancel