VerifikaDocs
Guías

Novedades

Qué cambió en la API pública, los webhooks, el MCP y esta documentación, con fecha.

Lo más nuevo arriba. Un cambio que puede romper una integración lleva ⚠️ y dice qué hacer. Todo lo de aquí ya está en producción: lo que viene en camino no se anuncia hasta que exista.

12 de octubre de 2026

Verificar con la imagen sola

  • POST /v1/verifications lee el comprobante con IA. Basta mandar la imagen (imageUrl https o imageBase64): Verifika lee monto, referencia, banco, fecha y quién pagó, busca duplicados, cruza con el aviso del banco y responde un objeto verification con status, un code estable y un message listo para reenviarle a quien pagó. Opcionales: expectedAmount (si el comprobante dice otro valor, AMOUNT_MISMATCH), reporter (quién lo reportó en tu sistema; no se valida contra el equipo) y metadata (tus datos, de vuelta en la respuesta y en los webhooks). Ver Verifica desde tu propio bot.
  • Si ya mandabas amount, no cambia nada. El contrato de datos sigue igual y su respuesta solo suma verificationId y livemode.
  • GET /v1/verifications y GET /v1/verifications/{id}, con el estado de ahora. Permiso nuevo verifications.read (verifications.write también sirve para leer).
  • Webhooks verification.verified y verification.not_found, con la verificación entera, tu metadata y tu reporter: avisarle a tu cliente minutos después ya no exige guardar nada de tu lado. Guía.
  • La imagen se guarda siempre en nuestro almacenamiento privado y cifrado; la bajamos solo por https, revisando cada redirección. Errores con details.retryable y, en los de cupo o cuenta, details.customerMessage.
  • La sección de la referencia «Verificar» pasó a llamarse Verificaciones (/docs/referencia/verificaciones/…); la ruta vieja redirige.

Modo de prueba

  • Llaves vk_test_: la lectura con IA es de verdad, el veredicto se elige con valores mágicos (TEST_VERIFIED, TEST_PENDING_VERIFIED, TEST_DUPLICATE…) y nada toca el libro ni el cupo. Webhooks de prueba solo a los endpoints con «Recibir también eventos de prueba» (testEvents). Lo que no tiene modo prueba responde 403 TEST_MODE_UNAVAILABLE. Guía.
  • ⚠️ Toda entrega de webhook lleva livemode en el cuerpo y la cabecera Verifika-Livemode (true en las reales). Es aditivo; si recibes eventos de prueba, míralo antes de despachar.

Conciliación bancaria y gastos con IA

  • Conciliación por API: 13 operaciones bajo /v1/bank-statements para subir el extracto (archivo, base64 o URL; también .fil y .zip de Bancolombia), esperar la lectura (201 o 202), revisar las filas, resolverlas una a una o en lote y descargar el reporte. Permisos reconciliation.read|write|delete; webhooks bank_statement.processed y .failed. Guía.
  • Gastos con IA: POST /v1/expense-scans lee la foto o el PDF de una factura y devuelve el borrador del gasto con sus posibles duplicados; POST /v1/expense-scans/{id}/expense lo crea con la factura adjunta. Permiso expenses.scan. Guía.
  • 15 herramientas nuevas en el MCP para lo mismo. Las llaves de prueba no entran al MCP.

En el panel

  • Editar una llave: nombre, permisos, IPs permitidas y vencimiento, sin cambiar el secreto.
  • Historial de peticiones de la API, en Integraciones → API pública → Historial.
  • Enlaces directos para la documentación: crear una llave con un atajo y en modo prueba, agregar un webhook o abrir un historial.

En esta documentación

3 de octubre de 2026

  • Montos con centavos. Todo monto es un number con hasta 2 decimales: 45000 son $45.000 y 146357.19 son $146.357,19. Un valor sin centavos sigue llegando sin decimales. ⚠️ Si tu código asumía enteros (por ejemplo, guardaba en una columna INTEGER), cámbialo a un decimal con 2 posiciones. Al escribir, más de 2 decimales o un string responde 400.
  • Duplicados más finos en POST /v1/verifications. Además de la misma referencia, ahora se detecta el mismo archivo, la misma imagen recomprimida y —como posible— el mismo monto a la misma hora. La respuesta DUPLICATE suma duplicate.level (CERTAIN o POSSIBLE), duplicate.evidence y message, la frase lista para contestarle al cliente. Campos nuevos y opcionales: no rompe nada. Ver Verifica desde tu propio bot.
  • Abonos que cuentan como ingresos. Si el negocio lo enciende, cada abono de Cuentas por cobrar crea además un ingreso con origin: "RECEIVABLE". ⚠️ Si filtras o validas origin, suma ese valor. Esos ingresos no se editan ni se borran por /v1/incomes (409 INCOME_NOT_EDITABLE): se anulan desde el cuaderno.

29 de septiembre de 2026

  • Cuentas por cobrar en la API. El cuaderno de fiados: once operaciones bajo /v1/receivables, cuatro permisos (read, write, write_off, void), siete eventos de webhook (receivable.*) y trece herramientas en el MCP.

28 de septiembre de 2026

  • Cuenta bloqueada = API cerrada. Si la cuenta está con la prueba vencida, cancelada o en solo lectura por falta de pago, /v1 responde 403 con ACCOUNT_TRIAL_ENDED, ACCOUNT_CANCELED o ACCOUNT_READ_ONLY (details.readOnly: true), también en las lecturas. Probar un webhook o reenviar una entrega tampoco sale mientras tanto.

22 de septiembre de 2026

  • Los webhooks no siguen redirecciones. ⚠️ Un 3xx de tu servidor cuenta como entrega fallida: apunta el webhook directo a la URL final. Ojo con los servidores que redirigen la barra final (/webhook → /webhook/) o de un dominio a otro.

6 de septiembre de 2026

  • Webhooks con credencial y cabeceras propias. Si tu endpoint está detrás de un API gateway o de un n8n con autenticación, configura auth (BASIC, BEARER o API_KEY) y hasta 10 cabeceras. Ver Webhooks §3.
  • Catálogo de eventos con el JSON de cada uno.
  • El MCP se incluye aparte (mcp_server), y el consentimiento puede conceder escrituras.

5 de septiembre de 2026

  • «Conectar» con un clic para el MCP: autorización OAuth 2.1, sin copiar ninguna llave. Ver Conectar con un clic.
  • get_income_receipt: el asistente puede ver el comprobante de un pago dentro del chat.

4 de septiembre de 2026

  • Lanzamiento de la API pública /v1, los webhooks salientes firmados, el servidor MCP y esta documentación.

En esta página