POST con Content-Type: application/json a la URL de tu webhook.
El cuerpo es un objeto JSON con dos partes en la raíz: el recurso que cambió, bajo su propio nombre
(payment, charge, cashout…), y event, con los datos del evento.
Estructura general
Aquí el objeto del recurso va recortado a tres campos; los ejemplos de cada evento, más abajo, lo traen completo.{
"charge": {
"id": "8b1c2d3e-4f5a-4b6c-9d7e-8f9a0b1c2d3e",
"amount": 85000,
"status": "paid"
},
"event": {
"type": "charge.paid",
"timestamp": 1792161000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
string
Nombre del evento, por ejemplo
charge.paid. Es el mismo valor que llega en el header
x-webhook-event.integer
Momento en que OnePay generó el evento, en segundos Unix (UTC).
string
live para eventos de producción y test para eventos del modo de pruebas. Cada webhook recibe
solo los eventos de su ambiente.string
ID de tu empresa, la dueña del webhook que recibe el evento.
Dónde viene el recurso en cada evento
| Eventos | Claves en la raíz, además de event |
|---|---|
payment.* | payment |
payment.message.* | payment, message |
charge.* | charge |
cashout.* | cashout |
subscription.paid | subscription, payment |
Los demás subscription.* | subscription |
account.* | account |
invoice.created, invoice.paid, invoice.partially_paid, invoice.canceled | invoice |
invoice.stamped, invoice.stamp_rejected, invoice.credit_note_issued | invoice_id, stamping |
company.verified, company.rejected | company |
utility.paid, utility.rejected | utility |
connect_link.completed | connect_link, payment_method_type, payment_method, customer |
balance.updated | balance |
wallet.transaction.created | transaction, balance |
Cómo deduplicar
El mismo evento puede llegar más de una vez (ver Entrega y reintentos). En la mayoría de los eventos alcanza conevent.type + el id del recurso, porque cada uno marca un cambio de estado que ocurre
una sola vez. Estos cuatro, en cambio, se repiten legítimamente sobre el mismo recurso, y deduplicarlos
solo por id te haría perder eventos reales:
| Evento | Se repite | Clave para deduplicar |
|---|---|---|
invoice.partially_paid | Una vez por abono | invoice.id + invoice.payment.partial_payment.total_paid_in_cents |
subscription.paid | Una vez por cuota | payment.id, el ID del pago de la cuota |
connect_link.completed | Una vez por captura del link | connect_link.id + connect_link.completed (Link de captura) |
balance.updated | En cada cambio de saldo | No lo dedupliques: cada evento es el saldo de ese momento. Quédate con el más reciente. |
Pagos
Los campos propios del cobro llegan en el primer nivel depayment. Los datos relacionados, en
cambio, llegan cada uno en una clave numérica, envueltos en data: por ejemplo, el pagador está
en payment["2"].data.customer. Las posiciones son fijas:
| Clave | Qué trae |
|---|---|
"0" | data.company: tu empresa. |
"1" | data.splits: los repartos del cobro, o un arreglo vacío si no tiene. |
"2" | data.customer: el pagador, o [] si el cobro no tiene cliente. |
"3" | data.commission: la comisión del último cargo pagado, o [] si todavía no hay ninguno. Ver Comisión. |
"4" | data.method: el medio con el que se pagó. Si el cobro no tiene medio, data llega como []. |
"7" | data.breb_key: solo si el cobro tiene una llave Bre-B vigente. |
"9" | data.partial_payment: solo si el cobro admite pagos parciales. |
"5", "6", "8" | Siempre llegan como []. |
Una clave sin contenido llega como arreglo vacío (
[]), nunca se omite. En los eventos
payment.message.* las claves "0" a "4" llegan siempre como [].payment.approved
payment.approved
{
"payment": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e232",
"source": "Mensualidad octubre",
"currency": "COP",
"amount": 150000,
"amount_label": "$150.000",
"title": "Mensualidad octubre",
"description": "Plan hogar 300 Mbps",
"phone": "+573001234567",
"expiration_at": null,
"due_date": null,
"timely_payment_date": null,
"document_link": null,
"external_id": "PAY-001",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "approved",
"is_test": false,
"created_at": "2026-10-16T14:00:00.000000Z",
"paid_at": "2026-10-16T14:30:00.000000Z",
"payment_link": "https://pagos.onepay.la/payment/9e02966f-2ddf-4ee7-a391-5b5b7653e232",
"redirect_url": null,
"provider_id": "TXN-987654",
"metadata": null,
"0": {
"data": {
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
}
}
},
"1": {
"data": {
"splits": []
}
},
"2": {
"data": {
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
}
},
"3": {
"data": {
"commission": {
"type": "COMMISSION",
"amount": 4850,
"currency": "COP",
"accredited_amount": 142900,
"details": [
{
"type": "COMMISSION",
"name": "Procesamiento de datos OnePay 2,9% + $500",
"amount": 4850
},
{
"type": "TAX_RETE_FUENTE",
"name": "Retención en la fuente",
"amount": 2250
}
]
}
}
},
"4": {
"data": {
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
}
}
},
"5": [],
"6": [],
"7": [],
"8": [],
"9": []
},
"event": {
"type": "payment.approved",
"timestamp": 1792161000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
payment.rejected
payment.rejected
{
"payment": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e233",
"source": "Mensualidad octubre",
"currency": "COP",
"amount": 150000,
"amount_label": "$150.000",
"title": "Mensualidad octubre",
"description": "Plan hogar 300 Mbps",
"phone": "+573001234567",
"expiration_at": null,
"due_date": null,
"timely_payment_date": null,
"document_link": null,
"external_id": "PAY-002",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "declined",
"is_test": false,
"created_at": "2026-10-16T14:00:00.000000Z",
"paid_at": null,
"payment_link": "https://pagos.onepay.la/payment/9e02966f-2ddf-4ee7-a391-5b5b7653e233",
"redirect_url": null,
"provider_id": null,
"metadata": null,
"0": {
"data": {
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
}
}
},
"1": {
"data": {
"splits": []
}
},
"2": {
"data": {
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
}
},
"3": {
"data": {
"commission": []
}
},
"4": {
"data": []
},
"5": [],
"6": [],
"7": [],
"8": [],
"9": []
},
"event": {
"type": "payment.rejected",
"timestamp": 1792159500,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
payment.expired
payment.expired
{
"payment": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e234",
"source": "Cita de control",
"currency": "COP",
"amount": 80000,
"amount_label": "$80.000",
"title": "Cita de control",
"description": null,
"phone": null,
"expiration_at": "2026-10-17T14:00:00.000000Z",
"due_date": null,
"timely_payment_date": null,
"document_link": null,
"external_id": "PAY-003",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "expired",
"is_test": false,
"created_at": "2026-10-16T14:00:00.000000Z",
"paid_at": null,
"payment_link": "https://pagos.onepay.la/payment/9e02966f-2ddf-4ee7-a391-5b5b7653e234",
"redirect_url": null,
"provider_id": null,
"metadata": null,
"0": {
"data": {
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
}
}
},
"1": {
"data": {
"splits": []
}
},
"2": {
"data": {
"customer": []
}
},
"3": {
"data": {
"commission": []
}
},
"4": {
"data": []
},
"5": [],
"6": [],
"7": [],
"8": [],
"9": []
},
"event": {
"type": "payment.expired",
"timestamp": 1792245600,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
payment.partially_paid
payment.partially_paid
{
"payment": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e236",
"source": "Matrícula semestre",
"currency": "COP",
"amount": 500000,
"amount_label": "$500.000",
"title": "Matrícula semestre",
"description": null,
"phone": "+573001234567",
"expiration_at": null,
"due_date": null,
"timely_payment_date": null,
"document_link": null,
"external_id": "PAY-004",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "partially_paid",
"is_test": false,
"created_at": "2026-10-16T14:00:00.000000Z",
"paid_at": null,
"payment_link": "https://pagos.onepay.la/payment/9e02966f-2ddf-4ee7-a391-5b5b7653e236",
"redirect_url": null,
"provider_id": "TXN-987655",
"metadata": null,
"0": {
"data": {
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
}
}
},
"1": {
"data": {
"splits": []
}
},
"2": {
"data": {
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
}
},
"3": {
"data": {
"commission": {
"type": "COMMISSION",
"amount": 6300,
"currency": "COP",
"accredited_amount": 193700,
"details": [
{
"type": "COMMISSION",
"name": "Procesamiento de datos OnePay 2,9% + $500",
"amount": 6300
}
]
}
}
},
"4": {
"data": {
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
}
}
},
"5": [],
"6": [],
"7": [],
"8": [],
"9": {
"data": {
"partial_payment": {
"total_paid_in_cents": 20000000,
"total_paid_label": "$200.000",
"remaining_amount_in_cents": 30000000,
"remaining_label": "$300.000",
"progress_percentage": 40.0,
"is_fully_paid": false,
"min_amount_in_cents": 5000000,
"max_amount_in_cents": null,
"max_payment_methods": 3,
"timeout_hours": 24,
"partial_expires_at": "2026-10-17T14:30:00+00:00",
"charges": [
{
"id": "4dc959d0-d96a-377a-823e-5e05cfde8970",
"amount_in_cents": 20000000,
"amount_label": "$200.000",
"payment_method_type": "CARD",
"payment_method": "Tarjeta Visa ·4242",
"paid_at": "2026-10-16T14:30:00+00:00"
}
]
}
}
}
},
"event": {
"type": "payment.partially_paid",
"timestamp": 1792161000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
payment.partial_expired
payment.partial_expired
Llega con la misma forma que
payment.partially_paid. Cambian status, que pasa a
partial_expired, y event:{
"payment": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e236",
"source": "Matrícula semestre",
"currency": "COP",
"amount": 500000,
"amount_label": "$500.000",
"title": "Matrícula semestre",
"description": null,
"phone": "+573001234567",
"expiration_at": null,
"due_date": null,
"timely_payment_date": null,
"document_link": null,
"external_id": "PAY-004",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "partial_expired",
"is_test": false,
"created_at": "2026-10-16T14:00:00.000000Z",
"paid_at": null,
"payment_link": "https://pagos.onepay.la/payment/9e02966f-2ddf-4ee7-a391-5b5b7653e236",
"redirect_url": null,
"provider_id": "TXN-987655",
"metadata": null,
"0": {
"data": {
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
}
}
},
"1": {
"data": {
"splits": []
}
},
"2": {
"data": {
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
}
},
"3": {
"data": {
"commission": {
"type": "COMMISSION",
"amount": 6300,
"currency": "COP",
"accredited_amount": 193700,
"details": [
{
"type": "COMMISSION",
"name": "Procesamiento de datos OnePay 2,9% + $500",
"amount": 6300
}
]
}
}
},
"4": {
"data": {
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
}
}
},
"5": [],
"6": [],
"7": [],
"8": [],
"9": {
"data": {
"partial_payment": {
"total_paid_in_cents": 20000000,
"total_paid_label": "$200.000",
"remaining_amount_in_cents": 30000000,
"remaining_label": "$300.000",
"progress_percentage": 40.0,
"is_fully_paid": false,
"min_amount_in_cents": 5000000,
"max_amount_in_cents": null,
"max_payment_methods": 3,
"timeout_hours": 24,
"partial_expires_at": "2026-10-17T14:30:00+00:00",
"charges": [
{
"id": "4dc959d0-d96a-377a-823e-5e05cfde8970",
"amount_in_cents": 20000000,
"amount_label": "$200.000",
"payment_method_type": "CARD",
"payment_method": "Tarjeta Visa ·4242",
"paid_at": "2026-10-16T14:30:00+00:00"
}
]
}
}
}
},
"event": {
"type": "payment.partial_expired",
"timestamp": 1792247400,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
Cargos
Elcharge.id es el charge_id que devuelve POST /charges.
charge.paid
charge.paid
{
"charge": {
"id": "8b1c2d3e-4f5a-4b6c-9d7e-8f9a0b1c2d3e",
"description": "Mensualidad octubre",
"amount": 85000,
"amount_label": "$85.000",
"source": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e238",
"title": "Mensualidad octubre",
"description": null,
"amount": 85000,
"amount_label": "$85.000",
"currency": "COP",
"status": "pending",
"reference": "CLI-5678",
"external_id": "PAY-005",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-10-16T14:00:00.000000Z"
},
"status": "paid",
"currency": "COP",
"payment_method_type": "CreditCard",
"payment_method_id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"created_at": "2026-10-16T14:28:00.000000Z",
"paid_at": "2026-10-16T14:30:00.000000Z",
"remarks": null,
"is_test": false,
"network_id": "784512369",
"external_id": "PAY-005",
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
},
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
},
"event": {
"type": "charge.paid",
"timestamp": 1792161000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
charge.failed
charge.failed
{
"charge": {
"id": "8b1c2d3e-4f5a-4b6c-9d7e-8f9a0b1c2d3f",
"description": "Mensualidad octubre",
"amount": 85000,
"amount_label": "$85.000",
"source": {
"id": "9e02966f-2ddf-4ee7-a391-5b5b7653e239",
"title": "Mensualidad octubre",
"description": null,
"amount": 85000,
"amount_label": "$85.000",
"currency": "COP",
"status": "pending",
"reference": "CLI-5679",
"external_id": "PAY-006",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-10-16T14:00:00.000000Z"
},
"status": "failed",
"currency": "COP",
"payment_method_type": "CreditCard",
"payment_method_id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"created_at": "2026-10-16T14:28:00.000000Z",
"paid_at": null,
"remarks": {
"code": "INSUFFICIENT_FUNDS",
"description": "Fondos insuficientes.",
"customer_description": "Fondos insuficientes. Asegúrate de contar con dinero suficiente en tu método de pago.",
"retry": false
},
"is_test": false,
"network_id": null,
"external_id": "PAY-006",
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
},
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document_type": "CC",
"document_number": "1020304050",
"created_at": "2026-09-01T10:00:00.000000Z",
"is_test": false
}
},
"event": {
"type": "charge.failed",
"timestamp": 1792160880,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
source trae el recurso que originó el cargo (normalmente el cobro) con todos sus atributos; aquí
se muestra recortado. Su status puede ir un paso atrás del cargo, así que el resultado del cargo
léelo en charge.status. Cuando el medio es una cuenta (payment_method_type: "Account"),
method trae la cuenta con los campos de account, sin customer.Dispersiones
cashout.completed
cashout.completed
{
"cashout": {
"id": "9d44ce43-a227-4566-b107-5a6bc01cbcdf",
"customer_id": "9b7c5f38-b2b5-4b0d-8e4c-458192e88eae",
"account_id": "9d0ac58c-2226-4f1c-b305-15e6dc3b47f6",
"is_test": false,
"amount": 1000000,
"status": "processed",
"remarks": null,
"scheduled_at": null,
"processed_at": "2026-10-16T18:10:00.000000Z",
"created_at": "2026-10-16T18:00:00.000000Z",
"external_id": "PAYROLL-2391",
"description": "Pago de nómina",
"reference": "PAYROLL-2391",
"method": "ACH",
"discount_to_destination": false,
"commissions": [
{
"type": "PAYOUT_COMMISSION",
"amount": 2380
},
{
"type": "PAYOUT_SAAS",
"amount": 300
}
],
"total_commissions": 2680
},
"event": {
"type": "cashout.completed",
"timestamp": 1792174200,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
cashout.rejected
cashout.rejected
{
"cashout": {
"id": "9d44ce43-a227-4566-b107-5a6bc01cbcde",
"customer_id": "9b7c5f38-b2b5-4b0d-8e4c-458192e88eae",
"account_id": "9d0ac58c-2226-4f1c-b305-15e6dc3b47f6",
"is_test": false,
"amount": 1000000,
"status": "failed",
"remarks": {
"code": "IDENTIFICATION_FAILED",
"description": "Identificación del titular no coincide.",
"customer_description": "El banco rechazó la transferencia porque los datos del documento de identidad no coinciden con los registrados en la cuenta destino.",
"retryable": false
},
"scheduled_at": null,
"processed_at": null,
"created_at": "2026-10-16T18:00:00.000000Z",
"external_id": "PAYROLL-2392",
"description": "Pago de nómina",
"reference": "PAYROLL-2392",
"method": "ACH",
"discount_to_destination": false,
"commissions": [
{
"type": "PAYOUT_COMMISSION",
"amount": 2380
}
],
"total_commissions": 2380
},
"event": {
"type": "cashout.rejected",
"timestamp": 1792174800,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
commissions trae solo lo que la dispersión cobró. Cuando falla o se cancela, las comisiones que
se devuelven a tu saldo ya no aparecen. Los motivos de remarks están en
Dispersiones.Suscripciones
Igual que en los pagos, el plan llega en una clave numérica:subscription["0"].data.plan. Si la
suscripción no tiene plan, plan llega en null.
subscription.paid
subscription.paid
{
"subscription": {
"id": "8c33bd52-f118-3455-a280-4a5ac90bcace",
"name": "Plan Pro",
"status": "active",
"description": "Suscripción mensual al Plan Pro",
"internal_id": null,
"plan_id": "7b22ac41-e007-4344-9170-3949b98a9bdf",
"coupon_id": null,
"reference_price_in_cents": "5000000",
"currency": "COP",
"amount_in_cents": 5000000,
"cicle_frequency": "monthly",
"cicles": null,
"current_cicle": 2,
"allows": {
"cards": true,
"accounts": true,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"start_date": "2026-09-16T00:00:00.000000Z",
"end_date": null,
"trial": {
"has_trial": false,
"start_trial_date": null,
"trial_days": 0
},
"complex_payments": [],
"features": [],
"metadata": [],
"created_at": "2026-09-16T12:00:00.000000Z",
"updated_at": "2026-10-16T12:00:00.000000Z",
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document": "1020304050",
"document_type": "CC"
},
"0": {
"data": {
"plan": {
"id": "7b22ac41-e007-4344-9170-3949b98a9bdf",
"name": "Plan Pro",
"description": "Acceso completo",
"internal_id": null,
"coupon_id": null,
"reference_price_in_cents": "5000000",
"currency": "COP",
"amount_in_cents": 5000000,
"cicle_frequency": "monthly",
"cicles": null,
"allows": {
"cards": true,
"accounts": true,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"trial": {
"has_trial": false,
"trial_days": 0
},
"complex_payments": [],
"features": [],
"metadata": [],
"created_at": "2026-08-01T12:00:00.000000Z",
"updated_at": "2026-08-01T12:00:00.000000Z",
"link": "https://pagos.onepay.la/plan/7b22ac41-e007-4344-9170-3949b98a9bdf"
}
}
}
},
"payment": {
"id": "6a1f9c2e-3b4d-4e5f-8a6b-7c8d9e0f1a2c",
"amount_in_cents": 5000000,
"currency": "COP",
"paid_at": "2026-10-16T12:00:00.000000Z",
"payment_id": "9e02966f-2ddf-4ee7-a391-5b5b7653e240"
},
"event": {
"type": "subscription.paid",
"timestamp": 1792152000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
subscription.canceled
subscription.canceled
Llega con la misma forma de
subscription.paid, sin la clave payment en la raíz:{
"subscription": {
"id": "8c33bd52-f118-3455-a280-4a5ac90bcace",
"name": "Plan Pro",
"status": "canceled",
"description": "Suscripción mensual al Plan Pro",
"internal_id": null,
"plan_id": "7b22ac41-e007-4344-9170-3949b98a9bdf",
"coupon_id": null,
"reference_price_in_cents": "5000000",
"currency": "COP",
"amount_in_cents": 5000000,
"cicle_frequency": "monthly",
"cicles": null,
"current_cicle": 2,
"allows": {
"cards": true,
"accounts": true,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"start_date": "2026-09-16T00:00:00.000000Z",
"end_date": null,
"trial": {
"has_trial": false,
"start_trial_date": null,
"trial_days": 0
},
"complex_payments": [],
"features": [],
"metadata": [],
"created_at": "2026-09-16T12:00:00.000000Z",
"updated_at": "2026-10-16T17:00:00.000000Z",
"customer": {
"id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"first_name": "Carlos",
"last_name": "García",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document": "1020304050",
"document_type": "CC"
},
"0": {
"data": {
"plan": {
"id": "7b22ac41-e007-4344-9170-3949b98a9bdf",
"name": "Plan Pro",
"description": "Acceso completo",
"internal_id": null,
"coupon_id": null,
"reference_price_in_cents": "5000000",
"currency": "COP",
"amount_in_cents": 5000000,
"cicle_frequency": "monthly",
"cicles": null,
"allows": {
"cards": true,
"accounts": true,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"trial": {
"has_trial": false,
"trial_days": 0
},
"complex_payments": [],
"features": [],
"metadata": [],
"created_at": "2026-08-01T12:00:00.000000Z",
"updated_at": "2026-08-01T12:00:00.000000Z",
"link": "https://pagos.onepay.la/plan/7b22ac41-e007-4344-9170-3949b98a9bdf"
}
}
}
},
"event": {
"type": "subscription.canceled",
"timestamp": 1792170000,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
En
subscription.paid, payment.id es el ID del pago de la cuota y payment.payment_id el del
cobro con el que se pagó.Cuentas bancarias
account.connected
account.connected
{
"account": {
"id": "9d0ac58c-2226-4f1c-b305-15e6dc3b47f6",
"title": "Bancolombia **** 7890",
"subtype": "SAVINGS",
"status": "CONNECTED",
"authorization": true,
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"re_enroll": false,
"external_id": null,
"bank_id": "9e02966e-8d60-49b0-ad66-372bf73c4a54",
"bank": {
"id": "9e02966e-8d60-49b0-ad66-372bf73c4a54",
"name": "Bancolombia",
"logo": "https://cdn.onepay.la/banks/co/bancolombia.svg"
},
"customer": []
},
"event": {
"type": "account.connected",
"timestamp": 1792167600,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
En los eventos
account.*, customer llega siempre como []: identifica al cliente con
customer_id.Facturas
A diferencia de los eventospayment.*, el payment que viene dentro de invoice trae sus datos
relacionados en el primer nivel (company, splits, customer, commission, method), sin claves
numéricas. En invoice.created llega como [].
invoice.created
invoice.created
{
"invoice": {
"id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"name": "Factura #1234 - Servicio Internet Octubre 2026",
"description": null,
"amount": 75000,
"provider": "wisphub",
"provider_id": "INV-2026-1234",
"reference": "CLI-5678",
"status": "CREATED",
"remarks": null,
"paid_provider_id": null,
"paid_provider_method": null,
"paid_provider_method_type": null,
"metadata": {
"plan": "300MB",
"client_code": "CLI-5678"
},
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"created_at": "2026-10-01T10:30:00.000000Z",
"updated_at": "2026-10-01T10:30:00.000000Z",
"payment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"is_test": false,
"partial_payment_config": null,
"payment": []
},
"event": {
"type": "invoice.created",
"timestamp": 1790850600,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
invoice.paid
invoice.paid
{
"invoice": {
"id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"name": "Factura #1234 - Servicio Internet Octubre 2026",
"description": null,
"amount": 75000,
"provider": "wisphub",
"provider_id": "INV-2026-1234",
"reference": "CLI-5678",
"status": "PAID",
"remarks": null,
"paid_provider_id": null,
"paid_provider_method": null,
"paid_provider_method_type": null,
"metadata": {
"plan": "300MB",
"client_code": "CLI-5678"
},
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"created_at": "2026-10-01T10:30:00.000000Z",
"updated_at": "2026-10-16T14:30:05.000000Z",
"payment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"is_test": false,
"partial_payment_config": null,
"payment": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"source": "Factura #1234",
"currency": "COP",
"amount": 75000,
"amount_label": "$75.000",
"title": "Factura #1234",
"description": "Servicio Internet Octubre 2026",
"phone": "+573001234567",
"expiration_at": null,
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"document_link": null,
"external_id": "INV-2026-1234",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "approved",
"is_test": false,
"created_at": "2026-10-01T10:30:00.000000Z",
"paid_at": "2026-10-16T14:30:00.000000Z",
"payment_link": "https://pagos.onepay.la/payment/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"redirect_url": null,
"provider_id": "TXN-987654",
"metadata": null,
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
},
"splits": [],
"customer": null,
"commission": {
"type": "COMMISSION",
"amount": 2675,
"currency": "COP",
"accredited_amount": 72325,
"details": [
{
"type": "COMMISSION",
"name": "Procesamiento de datos OnePay 2,9% + $500",
"amount": 2675
}
]
},
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
}
}
},
"event": {
"type": "invoice.paid",
"timestamp": 1792161005,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
invoice.partially_paid
invoice.partially_paid
{
"invoice": {
"id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"name": "Factura #1234 - Servicio Internet Octubre 2026",
"description": null,
"amount": 75000,
"provider": "wisphub",
"provider_id": "INV-2026-1234",
"reference": "CLI-5678",
"status": "CREATED",
"remarks": null,
"paid_provider_id": null,
"paid_provider_method": null,
"paid_provider_method_type": null,
"metadata": {
"plan": "300MB",
"client_code": "CLI-5678"
},
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"created_at": "2026-10-01T10:30:00.000000Z",
"updated_at": "2026-10-01T10:30:00.000000Z",
"payment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"is_test": false,
"partial_payment_config": {
"min_amount_in_cents": 500000,
"max_amount_in_cents": null,
"max_payment_methods": 3,
"timeout_hours": 24
},
"payment": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"source": "Factura #1234",
"currency": "COP",
"amount": 75000,
"amount_label": "$75.000",
"title": "Factura #1234",
"description": "Servicio Internet Octubre 2026",
"phone": "+573001234567",
"expiration_at": null,
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"document_link": null,
"external_id": "INV-2026-1234",
"target_wallet_id": "9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"allows": {
"cards": true,
"accounts": false,
"card_extra": false,
"realtime": false,
"pse": true,
"full_extra": false,
"pse_debit": false,
"wallets": true,
"breb": true,
"direct_account": false
},
"status": "partially_paid",
"is_test": false,
"created_at": "2026-10-01T10:30:00.000000Z",
"paid_at": null,
"payment_link": "https://pagos.onepay.la/payment/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"redirect_url": null,
"provider_id": "TXN-987656",
"metadata": null,
"company": {
"id": "f1e2d3c4-b5a6-9788-7654-321fedcba098",
"name": "Mi Empresa",
"legal_name": "Mi Empresa S.A.S.",
"phone": "+576011234567",
"document_type": "NIT",
"document_number": "900123456",
"status": "active",
"status_reason": null,
"industry": "4814",
"currency": "COP",
"created_at": "2025-03-10T15:00:00.000000Z"
},
"splits": [],
"customer": null,
"commission": {
"type": "COMMISSION",
"amount": 1370,
"currency": "COP",
"accredited_amount": 28630,
"details": [
{
"type": "COMMISSION",
"name": "Procesamiento de datos OnePay 2,9% + $500",
"amount": 1370
}
]
},
"method": {
"id": "4dc959d0-d96a-377a-823e-5e05cfde896f",
"brand": "Visa",
"label": "Visa ·4242",
"last_four": "4242",
"expiration_date": "12/2028",
"customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
"created_at": "2026-09-01T10:05:00.000000Z",
"country": "CO"
},
"partial_payment": {
"total_paid_in_cents": 3000000,
"total_paid_label": "$30.000",
"remaining_amount_in_cents": 4500000,
"remaining_label": "$45.000",
"progress_percentage": 40.0,
"is_fully_paid": false,
"min_amount_in_cents": 500000,
"max_amount_in_cents": null,
"max_payment_methods": 3,
"timeout_hours": 24,
"partial_expires_at": "2026-10-17T14:30:00+00:00",
"charges": [
{
"id": "c7d8e9f0-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
"amount_in_cents": 3000000,
"amount_label": "$30.000",
"payment_method_type": "CARD",
"payment_method": "Tarjeta Visa ·4242",
"paid_at": "2026-10-16T14:30:00+00:00"
}
]
}
}
},
"event": {
"type": "invoice.partially_paid",
"timestamp": 1792161005,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
invoice.canceled
invoice.canceled
Si la factura se borró o el proveedor la retiró, Si se canceló porque el proveedor la reportó pagada por fuera de OnePay (
payment llega como []:{
"invoice": {
"id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"name": "Factura #1234 - Servicio Internet Octubre 2026",
"description": null,
"amount": 75000,
"provider": "wisphub",
"provider_id": "INV-2026-1234",
"reference": "CLI-5678",
"status": "DELETE_FROM_PROVIDER",
"remarks": null,
"paid_provider_id": null,
"paid_provider_method": null,
"paid_provider_method_type": null,
"metadata": {
"plan": "300MB",
"client_code": "CLI-5678"
},
"due_date": "2026-10-31T23:59:59.000000Z",
"timely_payment_date": "2026-10-25T23:59:59.000000Z",
"created_at": "2026-10-01T10:30:00.000000Z",
"updated_at": "2026-10-10T08:15:00.000000Z",
"payment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"is_test": false,
"partial_payment_config": null,
"payment": []
},
"event": {
"type": "invoice.canceled",
"timestamp": 1791620100,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
status: "PAID_FROM_PROVIDER"),
payment trae el cobro con la misma forma que en invoice.paid.invoice.stamped
invoice.stamped
{
"invoice_id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"stamping": {
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"type": "invoice",
"status": "accepted",
"number": "FE1",
"cufe": "a3f5c8e2b1d4f7a9c3e6b8d1f4a7c2e5b8d1f4a7c2e5b8d1f4a7c2e5b8d1f4a7c2e5b8d1f4a7c2e5b8d1f4a7c2e5b8d1",
"xml_url": "https://cdn.onepay.la/fiscal/FE1.xml",
"pdf_url": "https://cdn.onepay.la/fiscal/FE1.pdf",
"rejection_reason": null,
"replaces_id": null,
"total": 28548100,
"currency": "COP",
"stamped_at": "2026-10-16T09:03:44+00:00",
"sent_at": null,
"created_at": "2026-10-16T09:03:40+00:00"
},
"event": {
"type": "invoice.stamped",
"timestamp": 1792141424,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
invoice.stamp_rejected
invoice.stamp_rejected
{
"invoice_id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"stamping": {
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"type": "invoice",
"status": "rejected",
"number": "FE1",
"cufe": null,
"xml_url": null,
"pdf_url": null,
"rejection_reason": "Regla FAJ01: el receptor no tiene responsabilidades fiscales",
"replaces_id": null,
"total": 28548100,
"currency": "COP",
"stamped_at": null,
"sent_at": null,
"created_at": "2026-10-16T09:03:40+00:00"
},
"event": {
"type": "invoice.stamp_rejected",
"timestamp": 1792141424,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
invoice.credit_note_issued
invoice.credit_note_issued
{
"invoice_id": "9e8f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"stamping": {
"id": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"type": "credit_note",
"status": "accepted",
"number": "NC900",
"cufe": "d7b2f4a9c1e3b5d7f9a2c4e6b8d1f3a5c7e9b2d4f6a8c1e3b5d7f9a2c4e6b8d1f3a5c7e9b2d4f6a8c1e3b5d7f9a2c4e6",
"xml_url": "https://cdn.onepay.la/fiscal/NC900.xml",
"pdf_url": "https://cdn.onepay.la/fiscal/NC900.pdf",
"rejection_reason": null,
"replaces_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"total": 15000000,
"currency": "COP",
"stamped_at": "2026-10-16T16:20:00+00:00",
"sent_at": null,
"created_at": "2026-10-16T16:19:55+00:00"
},
"event": {
"type": "invoice.credit_note_issued",
"timestamp": 1792167600,
"environment": "live",
"company_id": "f1e2d3c4-b5a6-9788-7654-321fedcba098"
}
}
Las facturas creadas en OnePay (facturación electrónica)
traen además, en
invoice, los campos fiscales fiscal_status, stamp_policy, currency,
customer, items, stampings y totals. En los eventos de timbrado, total va en centavos.¿Necesitas un evento que no está en esta lista? Revisa la lista completa de
eventos y configura tu webhook para recibirlos.