Documentación de la API
Referencia para subir, procesar y descargar un extracto bancario en Excel de forma programática.
Claves de API
Crearás claves desde tu panel y llamarás a los endpoints de abajo desde tu servidor. Esta página muestra la API tal como funcionará en el lanzamiento.
Solicitar acceso anticipadoAutenticación
Envía tu clave de API en el encabezado Authorization de cada solicitud. Guárdala en tu servidor, nunca en un navegador ni en una aplicación móvil.
Authorization: Bearer <your_api_key>
URL base
https://api.bayainy.com/api/v1
/upload/previewVista previa antes de subir
Clasifica cada página (digital o escaneada) y calcula el coste exacto en páginas. No se cobra nada.
POST /upload/preview HTTP/1.1Authorization: Bearer <your_api_key>Content-Type: multipart/form-datafile: statement.pdf
Respuesta
{"page_count": 3,"digital_pages": 2,"scanned_pages": 1,"credit_cost": 4,"pages": [{ "page": 1, "type": "digital" },{ "page": 2, "type": "digital" },{ "page": 3, "type": "scanned" }]}
/uploadSubir un extracto
Sube un PDF para iniciar la extracción. El extracto empieza en estado pending y pasa por processing automáticamente.
POST /upload HTTP/1.1Authorization: Bearer <your_api_key>Content-Type: multipart/form-datafile: statement.pdf
Respuesta
{"id": "550e8400-e29b-41d4-a716-446655440000","filename": "statement.pdf","status": "pending","page_count": 3,"estimated_seconds": 6}
/statements/{id}Obtener un extracto y sus transacciones
Úsalo para saber cuándo termina el procesamiento y para recuperar las transacciones y los saldos extraídos.
Nota: Consulta este endpoint cada pocos segundos hasta que el estado pase de processing a completed (o failed).
GET /statements/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1Authorization: Bearer <your_api_key>
Respuesta
{"id": "550e8400-e29b-41d4-a716-446655440000","status": "completed","bank_name": "Al Rajhi Bank","transaction_count": 42,"opening_balance": 12480.00,"closing_balance": 24755.00,"available_exports": ["excel", "csv", "qbo", "xml"],"transactions": [{"date": "2026-09-01","description": "Card purchase, Panda","debit": 184.50,"credit": 0.00,"balance": 12295.50,"category": "grocery","reference": "FT26244S1K7Q","page_number": 1}]}
Campos de la transacción
datestringFecha de la transacción, AAAA-MM-DD.
descriptionstringQué fue la transacción, sin los números de referencia.
debitnumberDinero que sale. Siempre positivo; 0 si no hay.
creditnumberDinero que entra. Siempre positivo; 0 si no hay.
balancenumberSaldo corriente impreso en esa fila. Negativo si la cuenta está en descubierto.
categorystringCategoría del gasto, por ejemplo grocery, transfer o fuel.
referencestring | nullLa referencia propia del banco, cuando aparece impresa.
page_numberintegerLa página del PDF de la que procede la fila.
/statementsListar tus extractos
Devuelve todos los extractos vinculados a tu cuenta, del más reciente al más antiguo.
GET /statements HTTP/1.1Authorization: Bearer <your_api_key>
Respuesta
[{"id": "550e8400-e29b-41d4-a716-446655440000","filename": "statement.pdf","status": "completed","transaction_count": 42}]
/download/{id}/{format}Descargar el archivo
Solo disponible cuando el estado es completed. Los formatos que incluye tu plan aparecen en available_exports.
excelcsvqboquickbooksxmlodoozohomt940camt053iifGET /download/550e8400-e29b-41d4-a716-446655440000/excel HTTP/1.1Authorization: Bearer <your_api_key>
Respuesta
HTTP/1.1 200 OKContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<binary .xlsx file>
/statements/{id}Eliminar un extracto
Elimina el extracto, sus transacciones y sus archivos. No se puede deshacer.
DELETE /statements/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1Authorization: Bearer <your_api_key>
Respuesta
HTTP/1.1 204 No Content
Valores de estado posibles
pendingRecibido, a punto de empezar.
queuedEsperando un hueco libre.
processingLa extracción está en curso.
completedLas transacciones y los archivos están listos.
failedNo se pudo procesar. El motivo está en error_message.
¿Preguntas sobre la integración?
Contáctanos