# Extracción de estados de cuenta bancarios (bank-extract) Convierte el PDF de un estado de cuenta bancario en movimientos estructurados (JSON, XLSX, HTML y CSV) con un modelo de IA. Cada conversión se cobra del monedero PIX del perfil de Induxsoft que la solicita. Endpoint: https://ai.api.induxsoft.net/bank-extract/ Las respuestas siguen la convención de la [API de la plataforma](../readme.md): `success` y `data`, o `success` y `message` cuando hay error. ## Autenticación Se acepta cualquiera de estas formas: ``` Authorization: Bearer {ids} Authorization: Basic base64(uid:pwd) ``` - `ids`: identificador de una sesión válida de Induxsoft. - `uid`/`pwd`: usuario y contraseña de un perfil de Induxsoft. También se pueden enviar `ids`, o `uid` y `pwd`, como campos del formulario (POST) o como parámetros de la cadena de consulta (GET y DELETE). La autenticación con clave de API todavía no está disponible. ## Solicitar una extracción ### Solicitud ``` POST {endpoint} Authorization: Bearer {ids} Content-Type: multipart/form-data ``` | Campo | Descripción | |-------|-------------| | archivo | **Requerido.** El PDF del estado de cuenta (`Content-Type: application/pdf`). | | `algorithm` | **Requerido.** Algoritmo de análisis: `1` por página, `2` por día, `-1` el predeterminado. | | `aimodel` | **Requerido.** Modelo de IA: `1` gpt-4o-mini, `2` gpt-4.1, `-1` el predeterminado. | | `webhook` | Opcional. URL que se notifica al terminar. | | `_success_url` | Opcional. Si se indica, la respuesta redirige a esta URL; `{_token}` se reemplaza por el token del trabajo. | | `_failure_url`, `_referrer` | Opcionales. URL de redirección en caso de error. | Requisitos: el perfil debe tener un monedero PIX no congelado con saldo de al menos $10.00 MXN. ### Respuesta ```json { "success": 1, "data": { "token": "Identificador del trabajo" } } ``` La conversión se procesa en segundo plano; el `token` sirve para consultar su estado y descargar los resultados. ## Consultar el estado de un trabajo ``` GET {endpoint}{token}/ Authorization: Bearer {ids} ``` ```json { "success": 1, "data": { "token": "Identificador del trabajo", "status": 2, "estado": "Descripción del estado", "costo": "$ 12.50", "currency": "MXN", "rating": 0, "files": "json,xlsx,html,csv", "html": "Resultado en HTML codificado en base64" } } ``` - `status`: `0` en espera, `1` procesando, `2` terminado, `99` cancelado o con error (en ese caso se incluye `last_error`). - `files` y `html` solo se incluyen cuando el trabajo terminó. - Solo se pueden consultar los trabajos del perfil autenticado. ## Descargar un resultado ``` GET {endpoint}{token}/{formato}/ Authorization: Bearer {ids} ``` `{formato}` es `json`, `xlsx`, `html` o `csv`. La respuesta es el archivo. Los resultados se conservan 24 horas; el trabajo debe estar terminado y cobrado. ## Calificar un trabajo ``` PATCH {endpoint}{token}/rate/ Authorization: Bearer {ids} rate={1 a 5} ``` `1` muy mal, `2` mal, `3` aceptable, `4` bien, `5` excelente. Responde `token` y `rating`. ## Eliminar los resultados ``` DELETE {endpoint}{token}/ Authorization: Bearer {ids} ``` ## Información del usuario ``` GET {endpoint}info/user/ Authorization: Bearer {ids} ``` Devuelve el saldo mínimo requerido (`saldo_minimo`), si el perfil tiene saldo de regalo disponible (`has_regalo`), los datos de depósito del monedero (`monedero`: `clabe`, `oxxo`, `saldo`, `divisa`) y las últimas 5 conversiones (`last_works`). ## Últimas conversiones ``` GET {endpoint}{n}/last-works/ Authorization: Bearer {ids} ``` Devuelve las últimas `n` conversiones del perfil autenticado.