Saltar al contenido principal

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.

La importación de Norma 43 desde la interfaz de Frihet no está disponible

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, totalRecords y accounts (una entrada por cada cuenta del fichero).
  • AEB43Account: entityCode, branchCode, accountNumber, accountId, startDate, endDate, openingBalance, closingBalance, totalDebits, totalCredits, debitCount, creditCount y transactions.
  • AEB43Transaction: operationDate, valueDate, amount (debe negativo, haber positivo), conceptCode, description, additionalDescription, reference1, reference2 y rawLine.

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.

Relacionado​