{"openapi":"3.1.0","info":{"title":"istmobot API","version":"1.0.0","description":"APIs de datos panameños con IA. Envía imágenes o consulta fuentes públicas, recibe JSON limpio."},"servers":[{"url":"https://www.istmobot.com"}],"tags":[{"name":"pagos","description":"Pagos"},{"name":"fiscal","description":"Fiscal"},{"name":"identidad","description":"Identidad"},{"name":"vehiculos","description":"Vehículos"},{"name":"servicios","description":"Servicios"},{"name":"comercio","description":"Comercio"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"ib_live_... | ib_test_...","description":"Crea tu API key en https://www.istmobot.com/dashboard. Las keys `ib_test_` devuelven datos de ejemplo sin consumir créditos."}},"schemas":{},"parameters":{}},"paths":{"/v1/yappy":{"post":{"tags":["pagos"],"summary":"Comprobante Yappy","description":"Extrae los datos del comprobante Yappy y verifica que el pago se recibió.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"monto":{"type":"number","description":"Monto en USD"},"moneda":{"type":"string","enum":["USD"]},"fecha":{"type":"string","description":"ISO 8601, ej. 2026-09-17T14:32:00-05:00"},"referencia":{"type":"string","nullable":true,"description":"Número de referencia/transacción"},"emisor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"telefono":{"type":"string","nullable":true}},"required":["nombre","telefono"]},"receptor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"telefono":{"type":"string","nullable":true},"comercio":{"type":"string","nullable":true}},"required":["nombre","telefono","comercio"]},"descripcion":{"type":"string","nullable":true},"estado":{"type":"string","enum":["completado","pendiente","fallido","desconocido"]},"validacion":{"type":"object","properties":{"encontrado":{"type":"boolean"},"criterio":{"type":"string","nullable":true,"enum":["confirmacion","monto_fecha",null]},"pago":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"confirmacion":{"type":"string"},"monto":{"type":"number"},"emisor_nombre":{"type":"string","nullable":true},"fecha":{"type":"string","nullable":true}},"required":["id","confirmacion","monto","emisor_nombre","fecha"]}},"required":["encontrado","criterio","pago"],"description":"Solo cuentas con buzón Yappy: si la captura coincide con un pago real"}},"required":["monto","moneda","fecha","referencia","emisor","receptor","descripcion","estado"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/factura":{"post":{"tags":["fiscal"],"summary":"Factura electrónica DGI","description":"Consulta la factura electrónica en la DGI, por CUFE o desde el documento.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cufe":{"type":"string","description":"Código Único de Factura Electrónica (DGI)"},"numero":{"type":"string","nullable":true},"protocolo":{"type":"string","nullable":true,"description":"Protocolo de autorización DGI"},"fecha_emision":{"type":"string","nullable":true,"description":"ISO 8601, hora de Panamá"},"fecha_autorizacion":{"type":"string","nullable":true,"description":"ISO 8601, hora de Panamá"},"emisor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"ruc":{"type":"string","nullable":true},"dv":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true},"telefono":{"type":"string","nullable":true}},"required":["nombre","ruc","dv","direccion","telefono"]},"receptor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"ruc":{"type":"string","nullable":true},"dv":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true}},"required":["nombre","ruc","dv","direccion"]},"items":{"type":"array","items":{"type":"object","properties":{"descripcion":{"type":"string"},"codigo":{"type":"string","nullable":true,"description":"Código o referencia de la línea según el emisor"},"cantidad":{"type":"number"},"precio_unitario":{"type":"number"},"descuento":{"type":"number"},"itbms":{"type":"number","description":"Impuesto de la línea"},"total":{"type":"number"}},"required":["descripcion","codigo","cantidad","precio_unitario","descuento","itbms","total"]}},"subtotal":{"type":"number","nullable":true},"itbms":{"type":"number","nullable":true},"total":{"type":"number","nullable":true},"metodo_pago":{"type":"string","nullable":true},"fuente":{"type":"string","enum":["dgi"],"description":"Los datos vienen del registro oficial de la DGI, no del papel"},"consultado_en":{"type":"string"}},"required":["cufe","numero","protocolo","fecha_emision","fecha_autorizacion","emisor","receptor","items","subtotal","itbms","total","metodo_pago","fuente","consultado_en"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/factura/{value}":{"get":{"tags":["fiscal"],"summary":"Factura electrónica DGI","description":"Consulta la factura electrónica en la DGI, por CUFE o desde el documento.\n\n**Costo:** 2 créditos.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"value","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cufe":{"type":"string","description":"Código Único de Factura Electrónica (DGI)"},"numero":{"type":"string","nullable":true},"protocolo":{"type":"string","nullable":true,"description":"Protocolo de autorización DGI"},"fecha_emision":{"type":"string","nullable":true,"description":"ISO 8601, hora de Panamá"},"fecha_autorizacion":{"type":"string","nullable":true,"description":"ISO 8601, hora de Panamá"},"emisor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"ruc":{"type":"string","nullable":true},"dv":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true},"telefono":{"type":"string","nullable":true}},"required":["nombre","ruc","dv","direccion","telefono"]},"receptor":{"type":"object","properties":{"nombre":{"type":"string","nullable":true},"ruc":{"type":"string","nullable":true},"dv":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true}},"required":["nombre","ruc","dv","direccion"]},"items":{"type":"array","items":{"type":"object","properties":{"descripcion":{"type":"string"},"codigo":{"type":"string","nullable":true,"description":"Código o referencia de la línea según el emisor"},"cantidad":{"type":"number"},"precio_unitario":{"type":"number"},"descuento":{"type":"number"},"itbms":{"type":"number","description":"Impuesto de la línea"},"total":{"type":"number"}},"required":["descripcion","codigo","cantidad","precio_unitario","descuento","itbms","total"]}},"subtotal":{"type":"number","nullable":true},"itbms":{"type":"number","nullable":true},"total":{"type":"number","nullable":true},"metodo_pago":{"type":"string","nullable":true},"fuente":{"type":"string","enum":["dgi"],"description":"Los datos vienen del registro oficial de la DGI, no del papel"},"consultado_en":{"type":"string"}},"required":["cufe","numero","protocolo","fecha_emision","fecha_autorizacion","emisor","receptor","items","subtotal","itbms","total","metodo_pago","fuente","consultado_en"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/aviso-operacion":{"post":{"tags":["comercio"],"summary":"Aviso de Operación","description":"Extrae los datos del Aviso de Operación.\n\n**Costo:** 3 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero_aviso":{"type":"string","nullable":true,"description":"Número de Aviso de Operación: RUC o cédula + año + secuencia, ej. 8-954-1813-2026-574436816"},"tipo_persona":{"type":"string","nullable":true,"enum":["natural","juridica",null],"description":"natural (cédula, titular declarante) o juridica (sociedad con RUC y representante legal)"},"razon_social":{"type":"string","nullable":true,"description":"Sociedad titular; en persona natural, nombre completo del titular"},"nombre_comercial":{"type":"string","nullable":true,"description":"Nombre del establecimiento (Razón Comercial)"},"ruc":{"type":"string","nullable":true,"description":"RUC tal como aparece, ej. 155612345-2-2019. En persona natural coincide con la cédula"},"dv":{"type":"string","nullable":true,"description":"Dígito verificador del RUC, 1 o 2 dígitos"},"cedula":{"type":"string","nullable":true,"description":"Cédula del titular (solo persona natural), ej. 8-954-1813"},"nacionalidad":{"type":"string","nullable":true,"description":"Nacionalidad del declarante, ej. Panameño. Solo en el aviso (no en la certificación)"},"representante_legal":{"type":"string","nullable":true,"description":"Representante legal (solo persona jurídica)"},"actividades":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string","nullable":true,"description":"Código CIIU de la actividad, ej. 6202. null si el documento no lo trae"},"descripcion":{"type":"string","description":"Descripción de la actividad tal como aparece"}},"required":["codigo","descripcion"]},"description":"Actividades declaradas, con código CIIU cuando lo trae el documento"},"capital_invertido":{"type":"number","nullable":true,"description":"Capital invertido en balboas (B/.)"},"domicilio_declarante":{"type":"string","nullable":true,"description":"Domicilio del declarante tal como aparece (provincia, distrito, corregimiento, resto). Solo en el aviso"},"direccion":{"type":"string","nullable":true,"description":"Dirección del establecimiento (calle, casa, urbanización) sin provincia/distrito/corregimiento cuando vienen aparte"},"provincia":{"type":"string","nullable":true,"description":"Provincia del establecimiento, ej. PANAMÁ"},"distrito":{"type":"string","nullable":true,"description":"Distrito del establecimiento, ej. PANAMÁ"},"corregimiento":{"type":"string","nullable":true,"description":"Corregimiento del establecimiento, ej. PARQUE LEFEVRE"},"fecha_inicio_operacion":{"type":"string","nullable":true,"description":"Fecha de inicio de operaciones, yyyy-mm-dd"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de expedición del documento, yyyy-mm-dd. Solo en la certificación"},"telefono":{"type":"string","nullable":true,"description":"Teléfono del declarante, ej. 61546401"},"correo":{"type":"string","nullable":true,"description":"Correo electrónico si aparece"},"codigo_verificacion":{"type":"string","nullable":true,"description":"No. de Control de la certificación, ej. 2026-18428662"}},"required":["numero_aviso","tipo_persona","razon_social","nombre_comercial","ruc","dv","cedula","nacionalidad","representante_legal","actividades","capital_invertido","domicilio_declarante","direccion","provincia","distrito","corregimiento","fecha_inicio_operacion","fecha_emision","telefono","correo","codigo_verificacion"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/cedula":{"post":{"tags":["identidad"],"summary":"Cédula panameña","description":"Extrae los datos de la cédula panameña.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número de cédula normalizado, ej. 8-954-1813 o PE-12-345"},"tipo":{"type":"string","nullable":true,"enum":["panameno","panameno_extranjero","extranjero","naturalizado","indigena",null],"description":"Deducido del prefijo: solo dígitos = panameño, PE = panameño nacido en el extranjero, E = extranjero, N = naturalizado, AV/PI = población indígena"},"nombres":{"type":"string","nullable":true,"description":"Nombres tal como aparecen impresos"},"apellidos":{"type":"string","nullable":true,"description":"Apellidos tal como aparecen impresos"},"nombre_completo":{"type":"string","nullable":true,"description":"Nombres y apellidos juntos"},"fecha_nacimiento":{"type":"string","nullable":true,"description":"ISO yyyy-mm-dd"},"lugar_nacimiento":{"type":"string","nullable":true,"description":"Lugar de nacimiento impreso, ej. PANAMÁ, PANAMÁ"},"sexo":{"type":"string","nullable":true,"enum":["M","F",null],"description":"M o F"},"tipo_sangre":{"type":"string","nullable":true,"description":"Tipo de sangre si está impreso, ej. O+"},"fecha_expedicion":{"type":"string","nullable":true,"description":"Fecha de expedición, ISO yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Fecha de vencimiento (EXPIRA), ISO yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento es hoy o posterior"},"mayor_de_edad":{"type":"boolean","nullable":true,"description":"true si el titular tiene 18 años o más a la fecha de hoy"},"mrz":{"type":"string","nullable":true,"description":"Zona de lectura mecánica (3 líneas) si la foto es del reverso del diseño 2023"}},"required":["numero","tipo","nombres","apellidos","nombre_completo","fecha_nacimiento","lugar_nacimiento","sexo","tipo_sangre","fecha_expedicion","fecha_vencimiento","vigente","mayor_de_edad","mrz"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/recibo-ensa":{"post":{"tags":["servicios"],"summary":"Recibo ENSA","description":"Extrae los datos del recibo de ENSA.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"proveedor":{"type":"string","enum":["ensa","naturgy","idaan"],"description":"Empresa que emite el recibo"},"servicio":{"type":"string","enum":["electricidad","agua"],"description":"Servicio facturado"},"numero_cliente":{"type":"string","nullable":true,"description":"Identificador del suministro: NIS (ENSA/Naturgy) o NIC (IDAAN)"},"numero_medidor":{"type":"string","nullable":true,"description":"Número del medidor"},"titular":{"type":"string","nullable":true,"description":"Nombre del titular del servicio, tal como aparece en el recibo"},"direccion":{"type":"string","nullable":true,"description":"Dirección del suministro"},"provincia":{"type":"string","nullable":true,"description":"Provincia, solo si el recibo la separa"},"distrito":{"type":"string","nullable":true,"description":"Distrito, solo si el recibo lo separa"},"corregimiento":{"type":"string","nullable":true,"description":"Corregimiento, solo si el recibo lo separa"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"periodo_desde":{"type":"string","nullable":true,"description":"Inicio del período facturado, yyyy-mm-dd"},"periodo_hasta":{"type":"string","nullable":true,"description":"Fin del período facturado, yyyy-mm-dd"}},"required":["proveedor","servicio","numero_cliente","numero_medidor","titular","direccion","provincia","distrito","corregimiento","fecha_emision","periodo_desde","periodo_hasta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/recibo-naturgy":{"post":{"tags":["servicios"],"summary":"Recibo Naturgy","description":"Extrae los datos del recibo de Naturgy.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"proveedor":{"type":"string","enum":["ensa","naturgy","idaan"],"description":"Empresa que emite el recibo"},"servicio":{"type":"string","enum":["electricidad","agua"],"description":"Servicio facturado"},"numero_cliente":{"type":"string","nullable":true,"description":"Identificador del suministro: NIS (ENSA/Naturgy) o NIC (IDAAN)"},"numero_medidor":{"type":"string","nullable":true,"description":"Número del medidor"},"titular":{"type":"string","nullable":true,"description":"Nombre del titular del servicio, tal como aparece en el recibo"},"direccion":{"type":"string","nullable":true,"description":"Dirección del suministro"},"provincia":{"type":"string","nullable":true,"description":"Provincia, solo si el recibo la separa"},"distrito":{"type":"string","nullable":true,"description":"Distrito, solo si el recibo lo separa"},"corregimiento":{"type":"string","nullable":true,"description":"Corregimiento, solo si el recibo lo separa"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"periodo_desde":{"type":"string","nullable":true,"description":"Inicio del período facturado, yyyy-mm-dd"},"periodo_hasta":{"type":"string","nullable":true,"description":"Fin del período facturado, yyyy-mm-dd"}},"required":["proveedor","servicio","numero_cliente","numero_medidor","titular","direccion","provincia","distrito","corregimiento","fecha_emision","periodo_desde","periodo_hasta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/recibo-idaan":{"post":{"tags":["servicios"],"summary":"Recibo IDAAN","description":"Extrae los datos del recibo de IDAAN.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"proveedor":{"type":"string","enum":["ensa","naturgy","idaan"],"description":"Empresa que emite el recibo"},"servicio":{"type":"string","enum":["electricidad","agua"],"description":"Servicio facturado"},"numero_cliente":{"type":"string","nullable":true,"description":"Identificador del suministro: NIS (ENSA/Naturgy) o NIC (IDAAN)"},"numero_medidor":{"type":"string","nullable":true,"description":"Número del medidor"},"titular":{"type":"string","nullable":true,"description":"Nombre del titular del servicio, tal como aparece en el recibo"},"direccion":{"type":"string","nullable":true,"description":"Dirección del suministro"},"provincia":{"type":"string","nullable":true,"description":"Provincia, solo si el recibo la separa"},"distrito":{"type":"string","nullable":true,"description":"Distrito, solo si el recibo lo separa"},"corregimiento":{"type":"string","nullable":true,"description":"Corregimiento, solo si el recibo lo separa"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"periodo_desde":{"type":"string","nullable":true,"description":"Inicio del período facturado, yyyy-mm-dd"},"periodo_hasta":{"type":"string","nullable":true,"description":"Fin del período facturado, yyyy-mm-dd"}},"required":["proveedor","servicio","numero_cliente","numero_medidor","titular","direccion","provincia","distrito","corregimiento","fecha_emision","periodo_desde","periodo_hasta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/panapass":{"post":{"tags":["vehiculos"],"summary":"Estado de cuenta Panapass","description":"Extrae los datos del estado de cuenta Panapass.\n\n**Costo:** 3 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero_cuenta":{"type":"string","nullable":true},"tag":{"type":"string","nullable":true,"description":"Tag Panapass asignado a la cuenta"},"titular":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true},"placa":{"type":"string","nullable":true},"clase":{"type":"string","nullable":true,"description":"Clase tarifaria del vehículo (p. ej. Clase A)"},"fecha_emision":{"type":"string","nullable":true,"description":"ISO 8601"},"periodo_desde":{"type":"string","nullable":true,"description":"ISO yyyy-mm-dd"},"periodo_hasta":{"type":"string","nullable":true},"numero_pases":{"type":"number","nullable":true},"saldo_inicial":{"type":"number","nullable":true},"total_debito":{"type":"number","nullable":true,"description":"Importe total débito del periodo, con signo tal como aparece"},"total_credito":{"type":"number","nullable":true},"saldo_final":{"type":"number","nullable":true},"saldo_bajo":{"type":"number","nullable":true,"description":"Umbral de saldo bajo configurado"},"movimientos":{"type":"array","items":{"type":"object","properties":{"tipo":{"type":"string","enum":["pase","recarga","ajuste"]},"fecha":{"type":"string","nullable":true,"description":"ISO 8601 del pase o recarga"},"referencia":{"type":"string","nullable":true,"description":"Tag Panapass con el que se hizo el pase"},"matricula":{"type":"string","nullable":true},"fecha_cargo":{"type":"string","nullable":true,"description":"ISO 8601 en que ENA aplicó el cargo"},"descripcion":{"type":"string","nullable":true,"description":"Vía/estación del pase o canal de la recarga tal como aparece"},"debito":{"type":"number","nullable":true,"description":"USD cobrados (positivo)"},"credito":{"type":"number","nullable":true,"description":"USD acreditados (positivo)"},"saldo":{"type":"number","nullable":true,"description":"Saldo después del movimiento"}},"required":["tipo","fecha","referencia","matricula","fecha_cargo","descripcion","debito","credito","saldo"]}}},"required":["numero_cuenta","tag","titular","email","direccion","placa","clase","fecha_emision","periodo_desde","periodo_hasta","numero_pases","saldo_inicial","total_debito","total_credito","saldo_final","saldo_bajo","movimientos"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/paz-salvo-dgi":{"post":{"tags":["fiscal"],"summary":"Paz y Salvo DGI","description":"Extrae los datos del Paz y Salvo de la DGI.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número del paz y salvo o de control"},"nombre":{"type":"string","nullable":true,"description":"Contribuyente, empleador o propietario a quien se emite"},"ruc":{"type":"string","nullable":true,"description":"RUC o cédula del titular, ej. 155612345-2-2019"},"dv":{"type":"string","nullable":true,"description":"Dígito verificador del RUC"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Vigente hasta, yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento no ha pasado"},"codigo_verificacion":{"type":"string","nullable":true,"description":"Código o QR de verificación impreso"}},"required":["numero","nombre","ruc","dv","fecha_emision","fecha_vencimiento","vigente","codigo_verificacion"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/paz-salvo-css":{"post":{"tags":["fiscal"],"summary":"Paz y Salvo CSS","description":"Extrae los datos del Paz y Salvo de la Caja de Seguro Social.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número del paz y salvo o de control"},"nombre":{"type":"string","nullable":true,"description":"Contribuyente, empleador o propietario a quien se emite"},"ruc":{"type":"string","nullable":true,"description":"RUC o cédula del titular, ej. 155612345-2-2019"},"dv":{"type":"string","nullable":true,"description":"Dígito verificador del RUC"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Vigente hasta, yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento no ha pasado"},"codigo_verificacion":{"type":"string","nullable":true,"description":"Código o QR de verificación impreso"},"numero_patronal":{"type":"string","nullable":true,"description":"Número patronal del empleador en la CSS"}},"required":["numero","nombre","ruc","dv","fecha_emision","fecha_vencimiento","vigente","codigo_verificacion","numero_patronal"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/paz-salvo-municipal":{"post":{"tags":["fiscal"],"summary":"Paz y Salvo Municipal","description":"Extrae los datos del Paz y Salvo municipal.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número del paz y salvo o de control"},"nombre":{"type":"string","nullable":true,"description":"Contribuyente, empleador o propietario a quien se emite"},"ruc":{"type":"string","nullable":true,"description":"RUC o cédula del titular, ej. 155612345-2-2019"},"dv":{"type":"string","nullable":true,"description":"Dígito verificador del RUC"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Vigente hasta, yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento no ha pasado"},"codigo_verificacion":{"type":"string","nullable":true,"description":"Código o QR de verificación impreso"},"municipio":{"type":"string","nullable":true,"description":"Municipio que emite, ej. Panamá, San Miguelito"}},"required":["numero","nombre","ruc","dv","fecha_emision","fecha_vencimiento","vigente","codigo_verificacion","municipio"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/registro-publico":{"post":{"tags":["comercio"],"summary":"Certificado de Registro Público","description":"Extrae los datos del certificado de sociedad del Registro Público.\n\n**Costo:** 3 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"folio":{"type":"string","nullable":true,"description":"Folio mercantil de la sociedad"},"razon_social":{"type":"string","nullable":true,"description":"Nombre de la sociedad"},"tipo_sociedad":{"type":"string","nullable":true,"description":"Tipo, ej. Sociedad Anónima, S. de R.L., Fundación de Interés Privado"},"fecha_inscripcion":{"type":"string","nullable":true,"description":"Fecha de inscripción, yyyy-mm-dd"},"estado":{"type":"string","nullable":true,"description":"Estado de la sociedad, ej. Vigente, Disuelta, Suspendida"},"duracion":{"type":"string","nullable":true,"description":"Duración, ej. Perpetua"},"capital":{"type":"number","nullable":true,"description":"Capital social en balboas (B/.)"},"domicilio":{"type":"string","nullable":true,"description":"Domicilio de la sociedad"},"agente_residente":{"type":"string","nullable":true,"description":"Agente residente"},"representante_legal":{"type":"string","nullable":true,"description":"Representante legal"},"directores":{"type":"array","items":{"type":"object","properties":{"nombre":{"type":"string","description":"Nombre completo"},"cargo":{"type":"string","nullable":true,"description":"Cargo, ej. Presidente, Tesorero, Director"}},"required":["nombre","cargo"]},"description":"Directores o miembros de la junta directiva"},"dignatarios":{"type":"array","items":{"type":"object","properties":{"nombre":{"type":"string","description":"Nombre completo"},"cargo":{"type":"string","nullable":true,"description":"Cargo, ej. Presidente, Tesorero, Director"}},"required":["nombre","cargo"]},"description":"Dignatarios con su cargo"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión del certificado, yyyy-mm-dd"},"numero_certificado":{"type":"string","nullable":true,"description":"Número o código de verificación del certificado"}},"required":["folio","razon_social","tipo_sociedad","fecha_inscripcion","estado","duracion","capital","domicilio","agente_residente","representante_legal","directores","dignatarios","fecha_emision","numero_certificado"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/antecedentes-penales":{"post":{"tags":["identidad"],"summary":"Certificado de antecedentes penales","description":"Extrae los datos del certificado de antecedentes penales (DIJ).\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"nombre":{"type":"string","nullable":true,"description":"Nombre completo de la persona"},"cedula":{"type":"string","nullable":true,"description":"Cédula o pasaporte, ej. 8-123-456"},"tiene_antecedentes":{"type":"boolean","nullable":true,"description":"false si el certificado dice que no registra antecedentes"},"fecha_emision":{"type":"string","nullable":true,"description":"Fecha de emisión, yyyy-mm-dd"},"numero_certificado":{"type":"string","nullable":true,"description":"Número del certificado"},"codigo_verificacion":{"type":"string","nullable":true,"description":"Código de verificación impreso"}},"required":["nombre","cedula","tiene_antecedentes","fecha_emision","numero_certificado","codigo_verificacion"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/licencia-conducir":{"post":{"tags":["identidad"],"summary":"Licencia de conducir","description":"Extrae los datos de la licencia de conducir (ATTT).\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número de licencia; en Panamá suele coincidir con la cédula"},"nombre":{"type":"string","nullable":true,"description":"Nombre completo del conductor"},"cedula":{"type":"string","nullable":true,"description":"Cédula del conductor"},"fecha_nacimiento":{"type":"string","nullable":true,"description":"Fecha de nacimiento, yyyy-mm-dd"},"tipo_sangre":{"type":"string","nullable":true,"description":"Tipo de sangre, ej. O+"},"tipos":{"type":"array","items":{"type":"string"},"description":"Tipos de licencia autorizados, ej. [\"C\", \"D\"]"},"restricciones":{"type":"string","nullable":true,"description":"Restricciones, ej. usa lentes"},"fecha_expedicion":{"type":"string","nullable":true,"description":"Fecha de expedición, yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Fecha de vencimiento, yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento no ha pasado"}},"required":["numero","nombre","cedula","fecha_nacimiento","tipo_sangre","tipos","restricciones","fecha_expedicion","fecha_vencimiento","vigente"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/certificado-operacion":{"post":{"tags":["vehiculos"],"summary":"Certificado de Operación ATTT","description":"Extrae los datos del certificado de operación (cupo) de transporte de la ATTT.\n\n**Costo:** 2 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero":{"type":"string","nullable":true,"description":"Número del certificado de operación o cupo"},"titular":{"type":"string","nullable":true,"description":"Concesionario o propietario del cupo"},"cedula_ruc":{"type":"string","nullable":true,"description":"Cédula o RUC del titular"},"placa":{"type":"string","nullable":true,"description":"Placa del vehículo"},"marca":{"type":"string","nullable":true,"description":"Marca del vehículo"},"modelo":{"type":"string","nullable":true,"description":"Modelo del vehículo"},"anio":{"type":"number","nullable":true,"description":"Año del vehículo"},"tipo_servicio":{"type":"string","nullable":true,"description":"Tipo de servicio, ej. Taxi, Carga, Turismo, Colectivo"},"ruta":{"type":"string","nullable":true,"description":"Ruta o zona autorizada"},"organizacion":{"type":"string","nullable":true,"description":"Cooperativa u organización transportista"},"fecha_expedicion":{"type":"string","nullable":true,"description":"Fecha de expedición, yyyy-mm-dd"},"fecha_vencimiento":{"type":"string","nullable":true,"description":"Fecha de vencimiento, yyyy-mm-dd"},"vigente":{"type":"boolean","nullable":true,"description":"true si la fecha de vencimiento no ha pasado"}},"required":["numero","titular","cedula_ruc","placa","marca","modelo","anio","tipo_servicio","ruta","organizacion","fecha_expedicion","fecha_vencimiento","vigente"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/orden-compra":{"post":{"tags":["comercio"],"summary":"Orden de compra PanamaCompra","description":"Extrae los datos de la orden de compra de PanamaCompra.\n\n**Costo:** 3 créditos al procesarse.\n\nEl documento se guarda y se procesa en cola. Respuesta `202` con `id`; consulta `GET /v1/documentos/{id}` hasta que `estado` sea `listo`. Con key `ib_test_` responde `200` con datos de ejemplo.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPEG, PNG, WEBP, GIF o PDF (máx 10 MB)"},"referencia":{"type":"string","maxLength":120,"description":"Tu propio id (pedido, factura, registro). Vuelve en GET /v1/documentos/{id} y en el webhook documento.listo."}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"numero_orden":{"type":"string","nullable":true,"description":"Número de la orden de compra"},"numero_acto":{"type":"string","nullable":true,"description":"Número del acto público o procedimiento"},"entidad":{"type":"string","nullable":true,"description":"Entidad del Estado que compra"},"proveedor":{"type":"string","nullable":true,"description":"Proveedor adjudicado"},"proveedor_ruc":{"type":"string","nullable":true,"description":"RUC del proveedor"},"renglones":{"type":"array","items":{"type":"object","properties":{"descripcion":{"type":"string","description":"Descripción del bien o servicio"},"cantidad":{"type":"number","nullable":true},"unidad":{"type":"string","nullable":true,"description":"Unidad de medida"},"precio_unitario":{"type":"number","nullable":true},"total":{"type":"number","nullable":true}},"required":["descripcion","cantidad","unidad","precio_unitario","total"]},"description":"Renglones de la orden"},"subtotal":{"type":"number","nullable":true},"itbms":{"type":"number","nullable":true},"total":{"type":"number","nullable":true,"description":"Monto total en balboas (B/.)"},"fecha_orden":{"type":"string","nullable":true,"description":"Fecha de la orden, yyyy-mm-dd"},"plazo_entrega":{"type":"string","nullable":true,"description":"Plazo o fecha de entrega"},"lugar_entrega":{"type":"string","nullable":true,"description":"Lugar de entrega"}},"required":["numero_orden","numero_acto","entidad","proveedor","proveedor_ruc","renglones","subtotal","itbms","total","fecha_orden","plazo_entrega","lugar_entrega"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"202":{"description":"Recibido, en cola","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"referencia":{"type":"string","nullable":true,"description":"La referencia que enviaste, si la enviaste"},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"consulta":{"type":"string","description":"GET para leer el resultado cuando esté listo"}},"required":["id","referencia","estado","consulta"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"402":{"description":"Créditos insuficientes","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"422":{"description":"Entrada inválida o extracción fallida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"429":{"description":"Rate limit","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/documentos/{id}":{"get":{"tags":["documentos"],"summary":"Estado y resultado de un documento","description":"Devuelve `estado` (`pendiente`, `procesando`, `listo`, `error`) y `resultado` cuando está listo. No consume créditos.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"solucion":{"type":"string"},"referencia":{"type":"string","nullable":true},"estado":{"type":"string","enum":["pendiente","procesando","listo","error"]},"validado":{"type":"boolean","nullable":true,"description":"Solo Yappy: true si la captura coincide con un pago recibido en tu buzón"},"resultado":{"nullable":true},"error":{"type":"string","nullable":true},"creado":{"type":"string"},"procesado":{"type":"string","nullable":true}},"required":["id","solucion","referencia","estado","validado","error","creado","procesado"]},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"credits_used":{"type":"number"},"plugin_version":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["request_id","credits_used","plugin_version","sandbox"]}},"required":["data","meta"]}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"404":{"description":"Documento no existe","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}},"/v1/documentos/{id}/xlsx":{"get":{"tags":["documentos"],"summary":"Resultado de un documento en Excel","description":"Libro .xlsx con una hoja `Resumen` (campos simples) y una hoja por cada lista del resultado (p. ej. `Movimientos`). Solo cuando `estado` es `listo`. No consume créditos.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Archivo .xlsx","content":{"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"API key inválida","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"404":{"description":"Documento no existe","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}},"409":{"description":"Documento aún no procesado","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"number"},"detail":{"type":"string"},"request_id":{"type":"string"}},"required":["type","title","status","request_id"]}}}}}}}}}