AEB-43 Norma 43 — Parser and import status
Norma 43 (AEB-43) is the Spanish standard for exchanging bank statements between banks and management software. Spanish banks export it as a fixed-width text file with 80-character records.
Today you can import statements in OFX, QFX, MT940, CAMT.053 and CSV from Finance → Banking → Import Statement; see Bank connections. The @frihet/aeb43-parser library (v0.1.0) is available for your own integrations and scripts.
Parser @frihet/aeb43-parser
For your own integrations or migration scripts, you can use the parser published on npm:
npm install @frihet/aeb43-parser
import { parseAEB43 } from '@frihet/aeb43-parser';
import { readFileSync } from 'fs';
const raw = readFileSync('extracto.n43', 'latin1'); // Norma 43 uses 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 returns an AEB43Statement with these fields:
AEB43Statement:accountCount,totalRecordsandaccounts(one entry per account in the file).AEB43Account:entityCode,branchCode,accountNumber,accountId,startDate,endDate,openingBalance,closingBalance,totalDebits,totalCredits,debitCount,creditCountandtransactions.AEB43Transaction:operationDate,valueDate,amount(debit negative, credit positive),conceptCode,description,additionalDescription,reference1,reference2andrawLine.
For a malformed file, the parser throws AEB43ParseError. The isAEB43(content, fileName?) function tells you whether a file looks like Norma 43.
Important: encoding
Norma 43 files use ISO-8859-1 (Latin-1) encoding, not UTF-8. If you read the file manually, specify 'latin1' as the encoding.