Norma AEB-43 — Parser y estado de la importación
La Norma 43 (AEB-43) es el estándar español para el intercambio de extractos bancarios entre bancos y software de gestión. Los bancos españoles la exportan como fichero de texto de ancho fijo, con registros de 80 caracteres.
Hoy puedes importar extractos en OFX, QFX, MT940, CAMT.053 y CSV desde Finanzas → Bancos → Importar extracto; consulta Conexiones bancarias. La librería @frihet/aeb43-parser (v0.1.0) está disponible para tus propias integraciones y scripts.
Parser @frihet/aeb43-parser
Para integraciones propias o scripts de migración, puedes usar el parser publicado en npm:
npm install @frihet/aeb43-parser
import { parseAEB43 } from '@frihet/aeb43-parser';
import { readFileSync } from 'fs';
const raw = readFileSync('extracto.n43', 'latin1'); // Norma 43 usa ISO-8859-1
const statement = parseAEB43(raw);
for (const account of statement.accounts) {
console.log(account.accountId, account.openingBalance, account.closingBalance);
for (const tx of account.transactions) {
console.log(tx.operationDate, tx.amount, tx.description);
}
}
parseAEB43 devuelve un AEB43Statement con estos campos:
AEB43Statement:accountCount,totalRecordsyaccounts(una entrada por cada cuenta del fichero).AEB43Account:entityCode,branchCode,accountNumber,accountId,startDate,endDate,openingBalance,closingBalance,totalDebits,totalCredits,debitCount,creditCountytransactions.AEB43Transaction:operationDate,valueDate,amount(debe negativo, haber positivo),conceptCode,description,additionalDescription,reference1,reference2yrawLine.
Ante un fichero mal formado, el parser lanza AEB43ParseError. La función isAEB43(content, fileName?) indica si un fichero parece Norma 43.
Encoding importante
Los ficheros Norma 43 usan codificación ISO-8859-1 (Latin-1), no UTF-8. Si lees el fichero manualmente, especifica 'latin1' como encoding.