Saltar al contenido principal

kobana banking payments

Pagos (unificado)

Comandos de kobana banking payments. Toda opción global (Opciones globales) vale aquí.

ComandoHTTPDescripción
payments listGET /v2/paymentsListar Pagos
payments createPOST /v2/paymentsCrear un Pago
payments barcodePOST /v2/payments/barcodeCrear un Pago por código de barras
payments getGET /v2/payments/{uid}Ver un Pago
payments approvePUT /v2/payments/{uid}/approveLiberar (aprobar) un Pago
payments cancelPUT /v2/payments/{uid}/cancelCancelar un Pago

payments list​

Listar Pagos

kobana banking payments list [OPCIONES]

GET /v2/payments

Lista todos los pagos de cualquier tipo (PIX, Boleto, DARF, Tributos, Cuentas). Admite filtros y paginación. Este es un endpoint unificado que devuelve pagos de todos los tipos a través de una sola consulta.

Parámetros de consulta

NombreTipoObligatorioDescripción
pageintegernoNúmero de Página
per_pageintegernoCantidad de registros por página
kindstringnoFiltrar por tipo de pago Valores: bank_billet, darf, utility, gru, pix, tax.
statusstringnoFiltrar por estado Valores: pending, scheduled, confirmed, rejected, canceled.
created_fromstringnoFiltrar por fecha de creación inicial (formato: YYYY-MM-DD, inclusivo)
created_tostringnoFiltrar por fecha de creación final (formato: YYYY-MM-DD, incluye el día completo)
updated_fromstringnoFiltrar por fecha de actualización inicial (formato: YYYY-MM-DD, inclusivo)
updated_tostringnoFiltrar por fecha de actualización final (formato: YYYY-MM-DD, incluye el día completo)
scheduled_fromstringnoFiltrar por fecha de programación inicial (formato: YYYY-MM-DD)
scheduled_tostringnoFiltrar por fecha de programación final (formato: YYYY-MM-DD)
scheduledbooleannoFiltrar solo pagos programados (true) o no programados (false)
identifierstringnoBuscar por identificador (búsqueda parcial)
external_idstringnoFiltrar por ID externo

Respuestas

HTTPDescripción
200pagos encontrados

payments create​

Crear un Pago

kobana banking payments create [OPCIONES]

POST /v2/payments

Endpoint genérico para la creación de pagos de cualquier tipo. El tipo debe especificarse en el campo kind.

Requisitos previos

Para emitir un pago, es necesario tener una Cuenta Financiera, informada en financial_account_uid. La cuenta de pago que registra la operación se define en payment_account_uid; si se omite, se usa la más antigua vinculada a la cuenta financiera; si se especifica, debe pertenecer a financial_account_uid.

Tipos Soportados

PIX Utilizar kind: "pix" y proporcionar la clave pix:

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

Boleto Bancario Utilizar kind: "bank_billet" y proporcionar la clave bank_billet:

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

DARF Utilizar kind: "darf" y proporcionar la clave darf:

{
"kind": "darf",
"financial_account_uid": "...",
"amount": 300.0,
"darf": {
"tax_code": "0107",
"calculation_date": "2024-12-31",
"expire_at": "2025-01-10"
}
}

Tributos (Impuesto) Utilizar kind: "tax" y proporcionar la clave tax con código de barras:

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

Cuentas de Consumo (Servicio) Utilizar kind: "utility" y proporcionar la clave utility:

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

Eventos de Webhook

El evento payment.db.created se dispara en esta operación.

Endpoint Unificado: Este endpoint unifica la creación de todos los tipos de pago. Para crear pagos de un tipo específico, también puede usar los endpoints dedicados en /api/v2/payment/{type}.

Cuerpo de la solicitud

El cuerpo no es un objeto simple (o tiene variantes). Mira kobana schema banking.payments.create.

Respuestas

HTTPDescripción
201Pago de Cuenta de Consumo creado
422Tributo con formato=code y código ausente

payments barcode​

Crear un Pago por código de barras

kobana banking payments barcode [OPCIONES]

POST /v2/payments/barcode

Crea un pago a partir solo del código de barras o de la línea digitable. El tipo del pago se resuelve por el propio código, siguiendo el layout FEBRABAN v08, y se devuelve en el campo kind de la respuesta:

Códigokind
47 posiciones, o 44 que no comienzan con 8bank_billet
comienza con 8, segmento 2, 3, 4, 6 o 7utility
comienza con 8, segmento 1 o 5tax, con tax.kind = "unknown" y tax.format = "code"

El código se rechaza con 422 cuando un dígito verificador no coincide (el general, en el boleto y en la recaudación, y los de campo o de bloque de la línea digitable), cuando usa el segmento 9, 0 u 8, cuando el tamaño no corresponde con el primer dígito (47 posiciones comenzando con 8, 48 que no comienzan con 8), o cuando es una guía de FGTS (segmento 5 con convenio 0181 o 0182 en las posiciones 16 a 19).

Requisitos previos

payment_account_uid es obligatorio y define la cuenta financiera de origen. financial_account_uid no se acepta en este endpoint.

amount es opcional cuando el código trae el valor a pagar: recaudación con identificador de valor 6 u 8 (3ª posición) y boleto con valor distinto de cero. Sin amount, el pago usa el valor del código; en el boleto, es el valor nominal, sin intereses, multa ni descuento. Es obligatorio en la recaudación con identificador 7 o 9, en la que el valor del código es solo de referencia, y cuando el código viene con valor cero.

Eventos de Webhook

El evento payment.db.created se dispara en esta operación.

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
codestringsíCódigo de barras (44 posiciones) o línea digitable (47 o 48 posiciones). Se descartan espacios, puntos, guiones y barras.
payment_account_uidstring (uuid)síUID de la Cuenta de Pago de origen. Obligatorio: no hay selección automática.
amountnumbernoCantidad. Opcional cuando el código trae el valor a pagar (recaudación con identificador de valor 6 u 8, o boleto con valor distinto de cero): sin ella, vale el valor del código, que en el boleto es el nominal, sin intereses, multa ni descuento. Obligatoria en la recaudación con identificador 7 o 9 y cuando el código viene con valor cero. Cuando se envía, siempre prevalece sobre el valor del código: para pagar un boleto vencido con cargos, envíe la cantidad con ellos.
scheduled_tostring (date)noFecha de Programación
beneficiaryobjectnoInformación del beneficiario. Obligatorio cuando el código sea de boleto y la cuenta financiera sea BB.
identifierstringnoIdentificación del pago en el comprobante del proveedor financiero.
external_idstringnoID en su sistema. Opcional para control interno.
custom_dataobjectnoHash con clave y valor en formato JSON.
tagsarray<string>noEtiquetas asociadas

Otros campos y objetos anidados: kobana schema banking.payments.barcode.

Respuestas

HTTPDescripción
201Pago de boleto creado
422Código con valor de referencia, sin amount

payments get​

Ver un Pago

kobana banking payments get [UID] [OPCIONES]

GET /v2/payments/{uid}

Consulta información específica de un Pago de cualquier tipo. El tipo se identifica automáticamente y la respuesta se serializa adecuadamente.

Argumentos de la ruta: uid

Respuestas

HTTPDescripción
200Tributo GRU con formato=data
404pago en lo encontrado

payments approve​

Liberar (aprobar) un Pago

kobana banking payments approve [UID] [OPCIONES]

PUT /v2/payments/{uid}/approve

Procesamiento Asincrónico: crea un comando de liberación (approve) para un Pago registrado que está esperando aprobación.

La liberación se realiza de forma asincrónica: al recibir la solicitud, creamos un Comando que se procesa en segundo plano. Recibe en la respuesta el ID del comando creado y puede consultarlo en cualquier momento.

⚠️ Soporte por banco: no todos los proveedores exponen la liberación individual de pago a través de API. Cuando el proveedor no admite la operación, la respuesta es 422.

Argumentos de la ruta: uid

Respuestas

HTTPDescripción
200Comando de liberación creado con éxito
422El pago no está en un estado que permita liberación o el proveedor no lo admite

payments cancel​

Cancelar un Pago

kobana banking payments cancel [UID] [OPCIONES]

PUT /v2/payments/{uid}/cancel

Procesamiento Asincrónico: Este endpoint se procesa de forma asincrónica y crea un comando de cancelación para el Pago. La cancelación de un Pago se realiza de forma asincrónica, es decir, al recibir la solicitud, nuestra API guarda la solicitud y crea un Comando. Este comando se procesa en segundo plano y después de ser confirmado, el Pago cambia su estado a Cancelado. Recibe en la respuesta de esta solicitud el ID del comando creado y puede consultarlo en cualquier momento.

Eventos de Webhook

Cuando se realiza la solicitud, se dispara un evento payment.{type}.cancel.requested (donde {type} puede ser pix, bank_billet, etc). Nuestro servidor entonces comienza los intentos de envío de la cancelación a la institución financiera. Solo después de ser confirmado en la institución financiera, entonces el pago se marca como cancelado en nuestra base de datos. En este momento se dispara el evento payment.{type}.cancel.confirmed.

⚠️ Atención al estado Cancelado: El estado de Cancelado es terminal. El pago no podrá ser procesado después de la cancelación.

Argumentos de la ruta: uid

Respuestas

HTTPDescripción
200pago cancelado sin interacción con proveedor
422El pago ya fue confirmado, rechazado o cancelado