istmobot
ContenidoTu primera llamada

Tu primera llamada

En cinco minutos: una key de prueba, un curl con un comprobante Yappy y la respuesta explicada.

1. Consigue una key de prueba

Entra al panel y copia la key que empieza por ib_test_. Con ella cada endpoint devuelve datos de ejemplo y no consume créditos. Ver Sandbox vs producción.

2. Envía un comprobante

Los endpoints de documento reciben el archivo por multipart/form-data en el campo file. Sirve cualquier captura de Yappy en JPEG, PNG, WEBP, GIF o PDF de hasta 10 MB.

curl https://api.istmobot.com/v1/yappy \
  -H "Authorization: Bearer ib_test_..." \
  -F file=@yappy.png

3. Lee la respuesta

data trae los campos del comprobante. meta trae el request_id (guárdalo para soporte), los créditos usados y si la llamada fue sandbox.

{
  "data": {
    "monto": 25.5,
    "moneda": "USD",
    "fecha": "2026-09-17T14:32:00-05:00",
    "referencia": "YP-8841203",
    "emisor": {
      "nombre": "Juan Pérez",
      "telefono": "+507 6123-4567"
    },
    "receptor": {
      "nombre": null,
      "telefono": null,
      "comercio": "Café Istmo"
    },
    "descripcion": "Almuerzo",
    "estado": "completado"
  },
  "meta": {
    "request_id": "req_3f9c2a",
    "credits_used": 0,
    "plugin_version": "1.0.0",
    "sandbox": true
  }
}

Un campo que no aparece en la imagen llega como null, nunca inventado.

4. Lo mismo desde tu código

const form = new FormData();
form.append("file", fileBlob, "yappy.png");

const res = await fetch("https://api.istmobot.com/v1/yappy", {
  method: "POST",
  headers: { Authorization: "Bearer ib_test_..." },
  body: form,
});
const { data, meta } = await res.json();
console.log(data.monto, data.referencia);

5. Pasa a producción

Cambia ib_test_ por tu key ib_live_. Misma URL, mismo esquema; ahora la IA lee el documento real y cada llamada exitosa descuenta créditos. Ver Créditos y límites.

Siguiente: la referencia de /v1/yappy con todos los campos, o el explorador interactivo para ejecutar desde el navegador.