Pular para o conteúdo principal

kobana banking payments

Pagamentos (unificado)

Comandos de kobana banking payments. Toda opção global (Opções globais) vale aqui.

ComandoHTTPDescrição
payments listGET /v2/paymentsListar Pagamentos
payments createPOST /v2/paymentsCriar um Pagamento
payments barcodePOST /v2/payments/barcodeCriar um Pagamento por código de barras
payments getGET /v2/payments/{uid}Visualizar um Pagamento
payments approvePUT /v2/payments/{uid}/approveLiberar (aprovar) um Pagamento
payments cancelPUT /v2/payments/{uid}/cancelCancelar um Pagamento

payments list​

Listar Pagamentos

kobana banking payments list [OPÇÕES]

GET /v2/payments

Lista todos os pagamentos de qualquer tipo (PIX, Boleto, DARF, Tributos, Contas). Suporta filtros e paginação. Este é um endpoint unificado que retorna payments de todos os tipos através de uma única consulta.

Parâmetros de consulta

NomeTipoObrigatórioDescrição
pageintegernãoNúmero da Página
per_pageintegernãoQuantidade de registros por página
kindstringnãoFiltrar por tipo de pagamento Valores: bank_billet, darf, utility, gru, pix, tax.
statusstringnãoFiltrar por status Valores: pending, scheduled, confirmed, rejected, canceled.
created_fromstringnãoFiltrar por data de criação inicial (formato: YYYY-MM-DD, inclusivo)
created_tostringnãoFiltrar por data de criação final (formato: YYYY-MM-DD, inclui o dia inteiro)
updated_fromstringnãoFiltrar por data de atualização inicial (formato: YYYY-MM-DD, inclusivo)
updated_tostringnãoFiltrar por data de atualização final (formato: YYYY-MM-DD, inclui o dia inteiro)
scheduled_fromstringnãoFiltrar por data de agendamento inicial (formato: YYYY-MM-DD)
scheduled_tostringnãoFiltrar por data de agendamento final (formato: YYYY-MM-DD)
scheduledbooleannãoFiltrar apenas pagamentos agendados (true) ou não agendados (false)
identifierstringnãoBuscar por identificador (busca parcial)
external_idstringnãoFiltrar por ID externo

Respostas

HTTPDescrição
200Pagamentos encontrados

payments create​

Criar um Pagamento

kobana banking payments create [OPÇÕES]

POST /v2/payments

Endpoint genérico para criação de pagamentos de qualquer tipo. O tipo deve ser especificado no campo kind.

Pré-requisitos

Para emitir um pagamento é necessário ter uma Conta Financeira, informada em financial_account_uid. A conta de pagamento que registra a operação é definida em payment_account_uid; se omitida, usa-se a mais antiga vinculada à conta financeira; se informada, deve pertencer à financial_account_uid.

Tipos Suportados

PIX Usar kind: "pix" e fornecer a chave pix:

{
"kind": "pix",
"financial_account_uid": "...",
"amount": 100.0,
"pix": {
"qrcode": "00020126330014br.gov.bcb.pix..."
}
}

Boleto Bancário Usar kind: "bank_billet" e fornecer a chave bank_billet:

{
"kind": "bank_billet",
"financial_account_uid": "...",
"amount": 200.0,
"bank_billet": {
"code": "81770000001-8 00005659970-7 41131079703-9 0014334-8"
}
}

Tributos (Tax) Usar kind: "tax" e fornecer a chave tax com código de barras:

{
"kind": "tax",
"financial_account_uid": "...",
"amount": 400.0,
"tax": {
"kind": "iptu",
"code": "81770000001-8 00005659970-7..."
}
}

DARF com campos estruturados usa tax.kind: "darf" e tax.format: "data":

{
"kind": "tax",
"financial_account_uid": "...",
"amount": 300.0,
"tax": {
"kind": "darf",
"format": "data",
"data": {
"tax_code": "0107",
"taxpayer_type": "cnpj",
"taxpayer_number": "16.974.923/0001-84",
"taxpayer_name": "Empresa Exemplo LTDA",
"calculation_date": "2024-12-31",
"expire_at": "2025-01-10"
}
}
}

Contas de Consumo (Utility) Usar kind: "utility" e fornecer a chave utility:

{
"kind": "utility",
"financial_account_uid": "...",
"amount": 500.0,
"utility": {
"code": "81770000001-8 00005659970-7..."
}
}

Eventos de Webhook

O evento payment.db.created é disparado nesta operação.

Endpoint Unificado: Este endpoint unifica a criação de todos os tipos de pagamento. Para criar pagamentos de um tipo específico, você também pode usar os endpoints dedicados em /api/v2/payment/{type}.

Corpo da requisição

O corpo não é um objeto simples (ou tem variantes). Veja kobana schema banking.payments.create.

Respostas

HTTPDescrição
201Pagamento Conta de Consumo criado
422Tributo com format=code e código ausente

payments barcode​

Criar um Pagamento por código de barras

kobana banking payments barcode [OPÇÕES]

POST /v2/payments/barcode

Cria um pagamento a partir só do código de barras ou da linha digitável. O tipo do pagamento é resolvido pelo próprio código, seguindo o layout FEBRABAN v08, e devolvido no campo kind da resposta:

Códigokind
47 posições, ou 44 que não começam com 8bank_billet
começa com 8, segmento 2, 3, 4, 6 ou 7utility
começa com 8, segmento 1 ou 5tax, com tax.kind = "unknown" e tax.format = "code"

O código é recusado com 422 quando um dígito verificador não confere (o geral, no boleto e na arrecadação, e os de campo ou de bloco da linha digitável), quando usa o segmento 9, 0 ou 8, quando o tamanho não combina com o primeiro dígito (47 posições começando com 8, 48 que não começam com 8), ou quando é guia de FGTS (segmento 5 com convênio 0181 ou 0182 nas posições 16 a 19).

Pré-requisitos

payment_account_uid é obrigatório e define a conta financeira de origem. financial_account_uid não é aceito neste endpoint.

amount é opcional quando o código traz o valor a pagar: arrecadação com identificador de valor 6 ou 8 (3ª posição) e boleto com valor diferente de zero. Sem amount, o pagamento usa o valor do código; no boleto, é o valor nominal, sem juros, multa ou desconto. É obrigatório na arrecadação com identificador 7 ou 9, em que o valor do código é só de referência, e quando o código vem com valor zerado.

Eventos de Webhook

O evento payment.db.created é disparado nesta operação.

Corpo da requisição

NomeTipoObrigatórioDescrição
codestringsimCódigo de barras (44 posições) ou linha digitável (47 ou 48 posições). Espaço, ponto, hífen e barra são descartados.
payment_account_uidstring (uuid)simUID da Conta de Pagamento de origem. Obrigatório: não há escolha automática.
amountnumbernãoQuantia. Opcional quando o código traz o valor a pagar (arrecadação com identificador de valor 6 ou 8, ou boleto com valor diferente de zero): sem ela, vale o valor do código, que no boleto é o nominal, sem juros, multa ou desconto. Obrigatória na arrecadação com identificador 7 ou 9 e quando o código vem com valor zerado. Quando enviada, sempre prevalece sobre o valor do código: para pagar boleto vencido com encargos, envie a quantia com eles.
scheduled_tostring (date)nãoData de Agendamento
beneficiaryobjectnãoInformações do beneficiário. Obrigatório quando o código for de boleto e a conta financeira for BB.
identifierstringnãoIdentificação do pagamento no comprovante do provedor financeiro.
external_idstringnãoID no seu sistema. Opcional para controle interno.
custom_dataobjectnãoHash com chave e valor no formato JSON.
tagsarray<string>nãoTags associadas

Outros campos e objetos aninhados: kobana schema banking.payments.barcode.

Respostas

HTTPDescrição
201Pagamento de boleto criado
422Código com valor de referência, sem amount

payments get​

Visualizar um Pagamento

kobana banking payments get [UID] [OPÇÕES]

GET /v2/payments/{uid}

Consulta informações específicas de um Pagamento de qualquer tipo. O tipo é identificado automaticamente e a resposta é serializada adequadamente.

Argumentos do caminho: uid

Respostas

HTTPDescrição
200Tributo GRU com format=data
404Pagamento não encontrado

payments approve​

Liberar (aprovar) um Pagamento

kobana banking payments approve [UID] [OPÇÕES]

PUT /v2/payments/{uid}/approve

Processamento Assíncrono: cria um comando de liberação (approve) para um Pagamento registrado que está aguardando aprovação.

A liberação é feita assincronamente: ao receber a requisição, criamos um Comando que é processado em segundo plano. Você recebe o ID do comando criado na resposta e pode consultá-lo a qualquer momento.

⚠️ Suporte por banco: nem todos os provedores expõem liberação individual de pagamento via API. Quando o provedor não suporta a operação, a resposta é 422.

ℹ️ Pagamento de lote: este endpoint libera um pagamento de um lote sem aprovar o lote inteiro (ver PUT /api/v2/payment/batches/{uid}/approve).

Argumentos do caminho: uid

Respostas

HTTPDescrição
200Comando de liberação criado com sucesso
422Pagamento não está em estado que permita liberação ou provedor não suporta

payments cancel​

Cancelar um Pagamento

kobana banking payments cancel [UID] [OPÇÕES]

PUT /v2/payments/{uid}/cancel

Processamento Assíncrono: Este endpoint é processado assincronamente e cria um comando de cancelamento para o Pagamento. O cancelamento de um Pagamento é feito assincronamente, ou seja, ao receber a requisição, a nossa API guarda a solicitação e cria um Comando. Esse comando é processado em segundo plano e depois de confirmado, o Pagamento tem seu status alterado para Cancelado. Você recebe na resposta desta requisição o ID do comando criado e pode consultá-lo a qualquer momento.

Eventos de Webhook

Quando a requisição é realizada, um evento payment.{type}.cancel.requested é disparado (onde {type} pode ser pix, bank_billet, etc). O nosso servidor então começa as tentativas de envio do cancelamento para a instituição financeira. Somente depois de confirmado na instituição financeira, aí então o pagamento é marcado como cancelado em nosso banco de dados. Neste momento o evento payment.{type}.cancel.confirmed é disparado.

⚠️ Atenção ao status Cancelado: O status de Cancelado é terminal. O pagamento não poderá mais ser processado após o cancelamento.

Argumentos do caminho: uid

Respostas

HTTPDescrição
200Pagamento cancelado sem interação com provedor
422Pagamento já foi confirmado, rejeitado ou cancelado