Verificar Pagos vía API
Integra la validación automática de transferencias en tu sistema.
🛡️ Fraude Cero
Elimina los comprobantes falsos. La verificación se realiza directamente contra el banco.
⚡ Respuesta Inmediata
Tus clientes reciben confirmación en segundos, mejorando la experiencia de compra.
El endpoint de verificación te permite consultar si una transferencia específica ha sido recibida en tu cuenta bancaria. Dependiendo del banco, algunos campos pueden ser opcionales o requeridos.
Variaciones por Banco
Banco de Venezuela (Personas) y Provincial solo requieren la referencia (el monto es opcional). Las cuentas jurídicas/empresas generalmente requieren todos los datos del pagador (cédula, teléfono, banco origen).
Banco Mercantil requiere adicionalmente el campo
Banco Mercantil requiere adicionalmente el campo
movement_type.Endpoint
POST https://api.pabilo.app/userbankpayment/{userBankId}/betaserio
Parámetros Requeridos
Los campos enviados dependen del banco. Consulta la referencia completa de campos dinámicos para ver el formato exacto, tipos y ejemplos de cada campo.
- userBankId (URL param): El ID de la cuenta bancaria en Pabilo donde se recibió el dinero. Ver cómo copiarlo desde el Dashboard →
- bank_reference (Body): Los dígitos de la referencia bancaria (requerido).
- amount (Body): El monto de la transferencia. Opcional para Banco de Venezuela (Personas) y Provincial. Requerido para otros bancos.
- dni_pagador (Body): Objeto con la cédula del pagador. Requerido para cuentas de empresa (Venezuela, Mercantil). Ejemplo:
{ "dni_type": "V", "dni_number": "123456" }. - phone_pagador (Body): Teléfono del pagador. Requerido para operaciones Pago Móvil en Mercantil y cuentas de empresa.
- bank_origin (Body): Código del banco de origen. Requerido para cuentas de empresa.
- fecha_pago (Body): Fecha del pago en formato YYYY-MM-DD. Opcional para Mercantil y Venezuela Empresa (por defecto toma la fecha actual).
- movement_type (Body): Tipo de movimiento a consultar (requerido para la mayoría). Valores soportados según el banco:
- Binance, Banesco, Banco de Venezuela (Personas/Jurídico), Notificaciones, Test: Soportan
GENERIC(Recomendado). - Banco Mercantil y Banco de Venezuela: Soportan
MOVIL_PAY(Pago Móvil) yTRANSFER(Transferencia).
- Binance, Banesco, Banco de Venezuela (Personas/Jurídico), Notificaciones, Test: Soportan
Ejemplo de Código
cURL (Generic)
curl -X POST https://api.pabilo.app/userbankpayment/USER_BANK_ID/betaserio \
-H "Content-Type: application/json" \
-H "Authorization: Bearer TU_API_KEY" \
-d '{
"bank_reference": "67890",
"amount": 0,
"movement_type": "GENERIC",
"fecha_pago": "2026-08-03"
}'cURL (Pago Móvil - Mercantil/Venezuela)
curl -X POST https://api.pabilo.app/userbankpayment/USER_BANK_ID/betaserio \
-H "Content-Type: application/json" \
-H "Authorization: Bearer TU_API_KEY" \
-d '{
"bank_reference": "123456",
"amount": 100.00,
"dni_pagador": { "dni_type": "V", "dni_number": "12345678" },
"phone_pagador": "04141234567",
"bank_origin": "0102",
"movement_type": "MOVIL_PAY"
}'JavaScript (Fetch)
const verifyPayment = async () => {
const response = await fetch('https://api.pabilo.app/userbankpayment/UB_ID/betaserio', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer TU_API_KEY'
},
body: JSON.stringify({
bank_reference: '123456',
amount: 100.00,
// Campos condicionales para Mercantil / Venezuela Empresa
dni_pagador: { dni_type: 'V', dni_number: '12345678' },
bank_origin: '0102',
movement_type: 'MOVIL_PAY', // Solo Mercantil
phone_pagador: '04141234567', // Solo Pago Movil
fecha_pago: '2024-02-12' // Opcional
})
});
const data = await response.json();
console.log(data);
}JavaScript (Fetch - Generic)
fetch("https://api.pabilo.app/userbankpayment/USER_BANK_ID/betaserio", {
"headers": {
"accept": "*/*",
"accept-language": "es-419,es;q=0.7",
"Authorization": "Bearer TU_API_KEY"
},
"body": "{\"amount\":0,\"bank_reference\":\"67890\",\"movement_type\":\"GENERIC\",\"fecha_pago\":\"2026-08-03\"}",
"method": "POST",
"mode": "cors",
"credentials": "include"
});Respuesta del API
La respuesta indicará si el pago fue validado exitosamente y si es un pago nuevo o uno previamente registrado.
Respuesta Exitosa (200 OK)
{
"user_bank_payment": {
"id": "ubp_...",
"bank_reference_id": "123456",
"amount": 100.00,
"user_bank_id": "ub_...",
"status": "verified",
"created_at": "2024-02-12T10:00:00Z"
},
"is_new": true,
"credit_cost": 1,
"user_credits_total": 99,
"user_credits_total_in_usd": 4.95
}Respuesta Exitosa (Pago ya validado anteriormente - is_new: false)
{
"data": {
"credit_cost": 0,
"is_new": false,
"user_bank_payment": {
"id": "6a70ac7f7e8da56b6db795bc",
"created_at": "2026-08-03T14:58:07.081Z",
"updated_at": "2026-08-03T14:58:07.081Z",
"bank_reference_id": "00668482",
"user_id": "685725869e6febc736848bf1",
"amount": 3,
"user_bank_id": "685725c59e6febc736848bf5",
"status": "paid",
"credit_cost": 0,
"payment_params": {
"amount": 0,
"cedula_pagador": null,
"telefono_pagador": "",
"fecha_pago": "0001-01-01T00:00:00Z",
"banco_origen": "",
"cuenta_pagador": "",
"invoice_number": "1056",
"movement_type": "GENERIC"
},
"confirmed_status": false,
"details": null,
"currency": "VEF",
"bank_reference_key": "668482",
"movement_date": "2026-08-03T14:57:55.736Z"
},
"user_credits_total": -1,
"user_credits_total_in_usd": -10
},
"message": "payment confirmed"
}Respuesta de Error (Pago No Encontrado - 404)
{
"error": "PAYMENT_NOT_FOUND",
"message": "payment not found: movement not found with bank reference 67890, movements counts 0"
}Campos Importantes
- is_new: boolean. Indica si es la primera vez que se verifica este pago (`true`) o si ya había sido verificado anteriormente (`false`).¡Importante para evitar procesar la misma orden dos veces!
- user_bank_payment: Objeto con los detalles del pago registrado en el sistema.
- credit_cost: Costo en créditos de esta verificación.
- user_credits_total: Tus créditos restantes después de la operación.
Códigos de Error
- 404 Not Found: El pago no se encuentra en el banco. Revisa la referencia, el monto y el banco seleccionado.
- 400 Bad Request: Faltan datos obligatorios (referencia, monto, apiKey).
- 401 Unauthorized: API Key inválida o inactiva.
- 402 Payment Required: No tienes créditos suficientes para realizar la verificación.