API de botón integrado
Ver en POSTMAN
Creación de facturas para cobro online con el flujo botón integrado: una sola llamada genera la invoice con ítems y categorías de medios elegibles (collect_with), lista para abrir el checkout (checkout_link). Es una API simplificada para integradores; no reemplaza al POST /invoices clásico descrito en Facturas.
Identidad del pagador: solo puede enviarse una de: guest: true, customer_id o el objeto customer. Combinar guest: true con customer o customer_id produce error de ambigüedad.
Cómo probar
- Sandbox:
https://gateway.increase.app/pay-sandbox/public/v1/ - Producción:
https://gateway.increase.app/pay/public/v1/
Headers:
Content-Type: application/jsonAuthorization: Bearer <secret_api_key>(mismo criterio que el resto de la API pública)
Crear factura (un solo concepto)
POST https://gateway.increase.app/pay/public/v1/boton_integrado
Crea una invoice con un ítem: amount + description. Se resuelven collect_methods según collect_with y lo que tenga habilitada la cuenta (categorías no disponibles se ignoran; debe quedar al menos una categoría en true).
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
guest | Boolean | Si true, cliente invitado (no combinar con customer ni customer_id). | Condicional (*) |
customer_id | String | UUID o external_id del cliente existente en la cuenta. | Condicional (*) |
customer | Object | Cliente nuevo: requiere email y (tax_id o external_id). | Condicional (*) |
amount | String | Monto total (ej. "201.0"). | sí |
description | String | Descripción del concepto único. | sí |
external_id | String | Identificador de la operación o factura en tu sistema. | sí |
success_url | String | URL de redirección tras el pago (según flujo de checkout). | no |
collect_with | Object | Banderas por categoría de medio. Ver collect_with. | sí |
expire_after | String | Expiración del checkout: formato N(m\|h\|d), mínimo 10m. | no |
(*) Ver recuadro introductorio: una sola forma de identificar al pagador.
collect_with
Objeto con claves booleanas por categoría (solo se ofrecen medios que la cuenta tenga habilitados):
| Clave | Significado |
|---|---|
card | Tarjeta |
ticket | Efectivo / ticket |
debin | DEBIN |
qr | QR |
transfer | Transferencia |
cbu | CBU |
Debe haber al menos un valor en true.
Errores de validación
Respuesta típica: 422 Unprocessable Entity
{
"error": {
"message": "mensaje",
"code": "VALIDATION | AMBIGUITY | AMOUNT_NOT_ALLOWED"
}
}
Casos frecuentes: guest junto con customer; collect_with todo en false; expire_after inválido.
Errores de negocio
Si falla la creación tras validar (por ejemplo cliente inexistente): 400 Bad Request
{
"error": {
"message": "…",
"code": "…"
}
}
Ejemplos de request
- Invitado (guest)
- Cliente (email + tax_id)
- Errores (validación)
{
"guest": true,
"amount": "201.0",
"description": "La cosa a cobrar",
"external_id": "test-invoice-single-001",
"success_url": "https://tupagina.com/gracias",
"collect_with": { "card": true, "ticket": true }
}
{
"customer": {
"email": "user@test.com",
"tax_id": "20123456789",
"first_name": "First",
"last_name": "Last"
},
"amount": "150.0",
"description": "Item único",
"external_id": "test-invoice-customer-001",
"success_url": "https://tupagina.com/ok",
"collect_with": { "card": true }
}
Ambigüedad (guest + customer):
{
"guest": true,
"customer": { "email": "a@b.com", "tax_id": "20123456789" },
"amount": "1.0",
"description": "x",
"external_id": "ext-1",
"success_url": "https://tupagina.com/x",
"collect_with": { "card": true }
}
Sin medios habilitados en collect_with:
{
"guest": true,
"amount": "50.0",
"description": "sin medios",
"external_id": "err-collect-1",
"success_url": "https://tupagina.com/ok",
"collect_with": {
"card": false,
"ticket": false,
"debin": false,
"qr": false,
"transfer": false,
"cbu": false
}
}
Ejemplo de response (201 Created)
Cuerpo: invoice serializada (Api::Public::V1::CompleteInvoiceSerializer). Incluye, entre otros: id, status, amount, origin, external_id, currency, created_at, paid_at, checkout_link, success_url, customer (con guest, checkout_link propio del cliente, billing_info, etc.), items, invoice_items (espejo de ítems), collect_methods, subscriptions, receipt_email, comprobante_link, payments.
Ejemplo real (guest, un concepto; host y IDs según ambiente):
{
"id": "efac95f7-a22b-410d-90a3-a1713f483ab0",
"status": "open",
"amount": "205.0",
"origin": "created_by_api",
"external_id": "test-invoice-single-006",
"customer": {
"id": "e55c6c35-3441-46aa-a943-e4407fdf4440",
"external_id": "guest-b14e0536-c6cf-4b0c-a0d2-ea7392b0a358",
"email": "1776712738.gMaOQ@guest.local",
"language": "ES",
"timezone": "Buenos Aires",
"first_name": "",
"last_name": "",
"billing_info": {
"id": "f6094dd4-13c1-4e4e-9d1f-963c5a832584",
"address_line_1": "-",
"address_line_2": null,
"country": "ARG",
"currency": "ARS",
"city": "-",
"state": null,
"state_iso_code": "AR-B",
"zip_code": "-",
"phone": "-"
},
"tax_id": "0000000",
"checkout_link": "https://gateway.staging.increase.app/pay/checkout/v1/short_urls/Tgm2VT",
"created_at": "2026-04-20T19:18:58Z",
"guest": true
},
"subscriptions": [],
"currency": "ARS",
"created_at": "2026-04-20T19:18:58Z",
"paid_at": null,
"checkout_link": "https://gateway.staging.increase.app/pay/checkout/v1/short_urls/mo61w3",
"success_url": "https://tupagina.com/gracias?invoice_id=efac95f7-a22b-410d-90a3-a1713f483ab0&customer_id=e55c6c35-3441-46aa-a943-e4407fdf4440",
"collect_methods": {
"cbu": [
{
"id": "2b9216ce-46ab-4eb1-996f-eeca395f4777",
"name": "Comafi",
"type": "comafi",
"status": "enabled",
"country": "ARG",
"max_payment_retries": 0,
"retry_period_time": 1,
"retry_period_unit": "days",
"currencies": ["ARS"],
"payment_categories": ["cbu"],
"default": false,
"metadata": {
"company_code": "13232",
"cuit": "30714549851",
"account_number": "000000490007149",
"beneficiary": "1234567890",
"id_size": null
}
}
],
"card": [],
"ticket": []
},
"receipt_email": null,
"comprobante_link": "",
"items": [
{
"id": "fa726045-f201-4127-a994-fa3510efb151",
"description": "La cosa a cobrar",
"quantity": 1,
"unit_price": "205.0",
"amount": "205.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "test-invoice-single-006"
}
],
"invoice_items": [
{
"id": "fa726045-f201-4127-a994-fa3510efb151",
"description": "La cosa a cobrar",
"quantity": 1,
"unit_price": "205.0",
"amount": "205.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "test-invoice-single-006"
}
],
"payments": []
}
Crear factura (multi concepto)
POST https://gateway.increase.app/pay/public/v1/boton_integrado_multi_concepto
Varios ítems. El monto total es la suma de items[].amount. No enviar amount en la raíz del JSON: se rechaza con código AMOUNT_NOT_ALLOWED.
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
guest / customer_id / customer | — | Mismas reglas que un solo concepto. | Condicional (*) |
items | Array | Cada elemento: description, amount (strings); opcional external_id. | sí |
external_id | String | Identificador de la operación en tu sistema. | sí |
success_url | String | URL post-pago. | no |
collect_with | Object | Al menos una categoría en true. | sí |
expire_after | String | Igual que un solo concepto. | no |
Ejemplos de request
- Guest OK (varios ítems)
- Error: amount en raíz
- Error: ítem sin amount
{
"guest": true,
"external_id": "deuda-unificada-001",
"success_url": "https://tupagina.com/gracias",
"collect_with": { "card": true, "ticket": true },
"items": [
{ "description": "Factura ej 1", "amount": "120.0", "external_id": "factura-001-ej" },
{ "description": "Factura ej 2", "amount": "80.0", "external_id": "factura-002-ej" }
]
}
{
"guest": true,
"amount": "100.0",
"external_id": "multi-001",
"success_url": "https://tupagina.com/ok",
"collect_with": { "card": true },
"items": [
{ "description": "Item 1", "amount": "60.0", "external_id": "item-1" },
{ "description": "Item 2", "amount": "40.0", "external_id": "item-2" }
]
}
Respuesta esperada (ejemplo):
{
"error": {
"message": "The multi-concept endpoint does not accept amount. Total is computed as SUM(items[].amount).",
"code": "AMOUNT_NOT_ALLOWED"
}
}
{
"guest": true,
"external_id": "multi-002",
"collect_with": { "card": true },
"items": [{ "description": "Only desc" }]
}
Suele responder con code: "VALIDATION" indicando que cada ítem requiere description y amount.
Ejemplo de response (201 Created)
amount total: suma de items[].amount (aquí 120.0 + 80.0 = 200.0). Mismo esquema que el ejemplo 201 de un solo concepto; en multi concepto hay varios objetos en items e invoice_items (mismos datos en ambos arreglos).
Ejemplo real (guest, dos ítems; host e IDs según ambiente):
{
"id": "31a8d747-535a-4ef5-a1ae-6df35260c08a",
"status": "open",
"amount": "200.0",
"origin": "created_by_api",
"external_id": "deuda-unificada-009",
"customer": {
"id": "e76f63e7-62ff-46fc-ada0-74550078f32d",
"external_id": "guest-75b5df08-05aa-4984-977a-c1fe54fb8491",
"email": "1776712869.gLb3N@guest.local",
"language": "ES",
"timezone": "Buenos Aires",
"first_name": "",
"last_name": "",
"billing_info": {
"id": "284da73b-7295-43ea-bae6-9aac0fbfd5aa",
"address_line_1": "-",
"address_line_2": null,
"country": "ARG",
"currency": "ARS",
"city": "-",
"state": null,
"state_iso_code": "AR-B",
"zip_code": "-",
"phone": "-"
},
"tax_id": "0000000",
"checkout_link": "https://gateway.staging.increase.app/pay/checkout/v1/short_urls/fnvgfc",
"created_at": "2026-04-20T19:21:09Z",
"guest": true
},
"subscriptions": [],
"currency": "ARS",
"created_at": "2026-04-20T19:21:09Z",
"paid_at": null,
"checkout_link": "https://gateway.staging.increase.app/pay/checkout/v1/short_urls/wKATmj",
"success_url": "https://tupagina.com/gracias?invoice_id=31a8d747-535a-4ef5-a1ae-6df35260c08a&customer_id=e76f63e7-62ff-46fc-ada0-74550078f32d",
"collect_methods": {
"cbu": [
{
"id": "2b9216ce-46ab-4eb1-996f-eeca395f4777",
"name": "Comafi",
"type": "comafi",
"status": "enabled",
"country": "ARG",
"max_payment_retries": 0,
"retry_period_time": 1,
"retry_period_unit": "days",
"currencies": ["ARS"],
"payment_categories": ["cbu"],
"default": false,
"metadata": {
"company_code": "13232",
"cuit": "30714549851",
"account_number": "000000490007149",
"beneficiary": "1234567890",
"id_size": null
}
}
],
"card": [],
"ticket": []
},
"receipt_email": null,
"comprobante_link": "",
"items": [
{
"id": "93767f5a-e11c-4837-996c-25d9ede95d05",
"description": "Factura ej 1",
"quantity": 1,
"unit_price": "120.0",
"amount": "120.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "factura-002-ej"
},
{
"id": "11700530-ed57-48af-9cac-340cfdba100b",
"description": "Factura ej 2",
"quantity": 1,
"unit_price": "80.0",
"amount": "80.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "factura-003-ej"
}
],
"invoice_items": [
{
"id": "93767f5a-e11c-4837-996c-25d9ede95d05",
"description": "Factura ej 1",
"quantity": 1,
"unit_price": "120.0",
"amount": "120.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "factura-002-ej"
},
{
"id": "11700530-ed57-48af-9cac-340cfdba100b",
"description": "Factura ej 2",
"quantity": 1,
"unit_price": "80.0",
"amount": "80.0",
"currency": "ARS",
"item_number": 0,
"invoiceable_id": null,
"invoiceable_type": null,
"product_name": null,
"applicable_type": null,
"external_id": "factura-003-ej"
}
],
"payments": []
}