Structured JSON, one schema for every bank
Every LATAM bank comes out in the same v5 shape: dates, descriptions, amounts, balances and categories. Write your parser once.
For developers
Turn bank statement PDFs from any bank into JSON with one schema. Over the REST API, or over MCP for Claude and ChatGPT. No bank credentials, no OAuth.
See your transactions in seconds. The first 10 pages show up right here, no account needed.
PDF, up to 10 MB · We never ask for your bank password
Every LATAM bank comes out in the same v5 shape: dates, descriptions, amounts, balances and categories. Write your parser once.
Your users upload the PDF they already have. No bank logins to maintain, no credentials to store.
Upload PDFs and read transactions, balances and monthly summaries with Bearer auth. Reading is free; you pay $5 MXN per processed page.
Single v5 schema: the same 13 base account fields + 15 per-transaction fields + 8 per-installment-plan fields for every bank. The API response has the same JSON regardless of whether you uploaded a BBVA, Nu or Mercado Pago PDF.
bank_name Nombre raw como aparece en el PDF (con sufijos legales).
bank_canonical_name Brand reconocible (BBVA, Rappi, Nu, DólarApp).
account_number Número de cuenta, tarjeta enmascarada o CLABE.
account_type debit · credit · null
opening_balance Saldo inicial del periodo.
closing_balance Saldo al corte.
average_balance Saldo promedio (solo débito; null en CC).
total_commissions Comisiones cobradas totales.
statement_period_start Inicio del periodo.
statement_period_end Fin del periodo.
account_holder_name Nombre del titular.
account_holder_rfc RFC (12-13 caracteres).
account_holder_address Dirección registrada.
Cada movimiento del periodo. Las líneas tipo "AMAZON A MESES 2/12" van al array de meses sin intereses, NO aquí. Solo la compra original aparece como transaction.
day Día del mes.
month Mes; el año se deriva de statement_period_start.
description Texto verbatim como sale en el PDF.
transaction_concept Versión normalizada del concepto.
counterparty_name Beneficiario o comercio del otro lado.
counterparty_rfc RFC de la contraparte (común en SPEI).
merchant_canonical_name Marca limpia: "Uber Eats", "Amazon", "OXXO" (null si no aplica).
amount Magnitud SIEMPRE positiva.
post-v3 schema fix
currency MXN, USD, EUR…
transaction_type DEBIT (inflow) · CHARGE (outflow).
direction inflow · outflow.
Señal redundante para detectar discrepancias.
channel SPEI · card · cash · check · direct_debit · internal_transfer · interest · fee · other.
category food · transport · shopping · bills · entertainment · healthcare · travel · fees · income · transfer · cash · savings_investment · taxes · other.
kind_hint expense · income · internal_transfer_likely · refund_likely · cashback_likely.
is_recurring_likely True para Netflix, CFE, nómina, MSI, suscripciones SaaS.
Planes de meses sin intereses activos. Cada uno se rastrea por separado para evitar inflar el flujo del periodo con cuotas.
description "AMAZON A MESES", "AVIANCA", "BEST BUY".
purchase_date Fecha de la compra original.
original_amount Total de la compra antes de partirla.
current_payment_number Cuál de las cuotas se está pagando este corte.
total_payments_number Cuotas totales del plan (3, 6, 12, 18, 24…).
monthly_installment Mensualidad fija.
interest_rate % anual (0 para MSI puro).
pending_amount Saldo aún por pagar en cuotas futuras.
See the full data model and endpoints at /en/api/
Create a key in the app under Settings → API and send it as a Bearer token to api.getfinos.com. You can upload PDFs and read transactions, accounts, statements and monthly summaries. Official SDKs and webhooks: coming soon.
Plaid and Belvo connect to the bank with the user's credentials or OAuth, one integration per institution. finO$ parses the PDF statement the user already has, so coverage does not depend on bank partnerships.
Any bank. 58 formats are ready today, traditional and digital. A new one takes 48 to 72 hours from an anonymized sample.
$5 MXN (~$0.28 USD) per processed page, prepaid: top up a balance and each page is deducted. 30 free pages every month. Reading processed data over the API is free.
Yes. finO$ runs OCR automatically on scanned PDFs. Native digital PDFs are parsed directly, which is faster.