Ver una verificación
Una verificación con su estado de ahora (y el ingreso como está hoy). Es la red de seguridad si se te perdió un webhook.
La llave del negocio, creada en el panel: Integraciones → API pública. vk_live_… es una llave real; vk_test_…, una llave de modo prueba (verificaciones simuladas, nada toca el libro real). Ver la guía «Modo de prueba».
Va en: header
Permiso: verifications.read
Parámetros de la ruta
Parámetros de consulta
Sobre qué negocio actúa la petición. Obligatorio solo si la llave entra a varios negocios; con uno solo, se deduce.
Cuerpo de la respuesta
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/verifications/vrf_3f9a1c0e7b2d4e8fa61c5d90b7e24a13"{ "object": "verification", "id": "vrf_3f9a1c0e7b2d4e8fa61c5d90b7e24a13", "livemode": true, "status": "VERIFIED", "code": "VERIFIED", "message": "¡Listo! Tu pago por $85.000 ya está confirmado por el banco. ✅", "mode": "IMAGE", "companyId": "cmt7xbfrg0001q3w1itst7uwo", "createdAt": "2026-10-12T20:00:06.000Z", "updatedAt": "2026-10-12T20:00:06.000Z", "resolvedAt": "2026-10-12T20:00:06.000Z", "extracted": { "isReceipt": true, "amount": 85000, "reference": "M48213907", "bankLabel": "Nequi", "accountLabel": "Nequi ··4821", "occurredAt": "2026-10-12T19:58:00.000Z", "customerName": "Laura Restrepo", "confidence": 0.96, "note": null }, "income": { "object": "income", "id": "cmuh2k7v40031x8w1d9q2n5rt", "amount": 85000, "currency": "COP", "status": "VERIFIED", "origin": "API", "occurredAt": "2026-10-12T19:58:00.000Z", "createdAt": "2026-10-12T20:00:06.000Z", "verifiedAt": "2026-10-12T20:00:06.000Z", "reference": "M48213907", "customerName": "Laura Restrepo", "bankLabel": "Nequi", "accountLabel": "Nequi ··4821", "duplicateOfId": null, "branch": { "id": "cmt7xbfrj0002q3w1iq4ysatr", "name": "Principal" }, "confirmedBy": { "id": null, "name": "Laura Restrepo", "phone": "+573104567890" }, "attachments": [ { "id": "cmuh2k7xj0032x8w1h0a6s3fe", "contentType": "image/jpeg", "originalName": "comprobante.jpg", "size": 182340 } ], "bankChannels": [ "EMAIL" ] }, "duplicate": null, "reporter": { "phone": "+573104567890", "name": "Laura Restrepo", "externalId": "wa_573104567890" }, "metadata": { "chatId": "wa_573104567890", "pedido": "PED-10293" }, "receipt": { "stored": true, "source": "URL", "contentType": "image/jpeg", "size": 182340, "sha256": "9c1e5f2a7b3d4c6e8f0a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f6a" }, "nextStep": null, "warnings": []}Verificar un comprobante POST
Mandas la **imagen** del comprobante (`imageUrl` o `imageBase64`) y Verifika la lee con IA, busca duplicados, la cruza contra el aviso del banco del negocio y devuelve el veredicto con un `message` listo para reenviarle a quien pagó. - `201` `VERIFIED`: el banco ya había avisado. - `201` `PENDING`: registrado y esperando al banco (`AWAITING_BANK`) o a una persona (`AWAITING_REVIEW`). Cuando se resuelva llega el webhook `verification.verified` o `verification.not_found`, con tu `metadata`. - `200` `DUPLICATE` o `REJECTED`: no se registró nada y **no consume cupo**. Consume una verificación del cupo mensual solo cuando queda registrada. Si mandas `amount`, se usa el contrato de datos de siempre: no se lee la imagen y la respuesta es la forma anterior (`outcome`, `business`, `income`, `attachment`) más `verificationId` y `livemode`. Con una llave de prueba (`vk_test_`) la lectura con IA es real pero el veredicto es simulado (valores mágicos en `reference`) y nada toca el libro. Ver «Verifica desde tu propio bot» y «Modo de prueba».
Listar verificaciones GET
Las verificaciones del negocio, de la más reciente a la más vieja, con su estado **de ahora**. Una llave de prueba solo ve las de prueba, y una real solo las reales. `verifications.write` también sirve para leer: quien verifica puede preguntar en qué quedó.