Definição
OFX (Open Financial Exchange) é um formato standard de intercâmbio de dados financeiros entre bancos e software, criado em 1997 pela Microsoft, Intuit e CheckFree. Um ficheiro OFX descreve um extrato bancário de forma estruturada: cada movimento leva o tipo (débito ou crédito), a data no formato AAAAMMDD, o montante com sinal explícito e a descrição — e o ficheiro inclui os saldos do período. É hoje o formato mais aceite pelos ERPs para importar movimentos bancários: o PHC (CS e FX) lê OFX nativamente no módulo de movimentos bancários, o Primavera importa-o em Tesouraria > Movimentos > Importar, e o Sage também o aceita. Ao contrário do CSV, o OFX dispensa mapeamento de colunas — o software valida a estrutura automaticamente, eliminando a maior fonte de erros na importação. O StatementBridge gera OFX 1.0.2 a partir de extratos PDF de qualquer banco português suportado.
Como é um ficheiro OFX por dentro
Cada movimento é um bloco estruturado:
<STMTTRN>
<TRNTYPE>CREDIT
<DTPOSTED>20260101
<TRNAMT>500.00
<NAME>TRANSF SEPA EMPRESA X
</STMTTRN>
E o ficheiro inclui o saldo do período:
<LEDGERBAL>
<BALAMT>2624.50
</LEDGERBAL>
Repare nos detalhes que fazem a diferença: a data vem sempre como AAAAMMDD (sem ambiguidade dia/mês), o montante usa ponto decimal e sinal explícito, e o tipo de movimento (CREDIT/DEBIT) é declarado. É por isso que o ERP não precisa de perguntar nada ao utilizador.
Como abrir e validar um ficheiro OFX
Um OFX é texto simples — pode abri-lo em qualquer editor (Bloco de Notas, VS Code). Não o abra no Excel: o Excel não interpreta a estrutura e mostra o conteúdo em bruto.
Para validar um OFX antes de o importar no ERP, verifique quatro pontos:
Se os quatro pontos batem, o ficheiro está íntegro e pronto a importar.
Erros comuns ao importar OFX (e como resolver)
1. Datas trocadas ou rejeitadas. Algumas ferramentas genéricas escrevem datas em DD/MM/AAAA dentro do OFX — fora do standard. O ERP rejeita o ficheiro ou, pior, troca dia e mês. Solução: abrir o ficheiro e confirmar que DTPOSTED está em AAAAMMDD.
2. Sinais invertidos. Se o conversor lê um débito como crédito, o movimento entra ao contrário e a reconciliação não fecha. Solução: conferir a cadeia de saldo antes de importar — um sinal invertido produz um desvio de exatamente o dobro do valor do movimento.
3. Caracteres estranhos nas descrições. Acentos portugueses ("transferência", "comissão") mal codificados indicam um problema de encoding entre o conversor e o ERP. Solução: verificar o charset declarado no cabeçalho do OFX.
4. Versão OFX não aceite. Muitos ERPs esperam OFX 1.x (SGML) e não aceitam 2.x (XML). É por isso que o StatementBridge gera OFX 1.0.2 — a versão com maior compatibilidade.
5. Movimentos duplicados. Importar dois OFX com períodos sobrepostos pode duplicar lançamentos. Solução: converter extratos com períodos contíguos e sem sobreposição (ex.: mês a mês).
OFX vs CSV vs MT940
Os três formatos que vai encontrar quando trabalha com movimentos bancários, comparados ponto a ponto:
Em resumo: para importar movimentos num ERP português, o OFX é quase sempre o caminho mais curto. O CSV continua útil para análise livre, e o MT940 é território de tesouraria corporate.
Porque é que o teu extrato PDF não é OFX
Os bancos portugueses entregam extratos em PDF (para leitura humana), e nem todos disponibilizam OFX no homebanking. O StatementBridge faz a ponte: lê o PDF (mesmo digitalizado ou com texto cifrado), extrai os movimentos com verificação de saldo, e gera OFX 1.0.2 pronto a importar.
Perguntas rápidas
O OFX ainda é atual? Sim — apesar de criado em 1997, continua a ser o formato de importação bancária mais suportado pelos ERPs. Preciso de pedir o OFX ao banco? Não: se o banco só dá PDF, converte-se o PDF em OFX. E o TOConline? O TOConline não usa OFX para movimentos bancários — para esse caso geramos um template XLSX próprio, pronto a importar. Como sei que o OFX está correto? Pela cadeia de saldo: inicial + movimentos = final; se bate ao cêntimo, a conversão está íntegra.
Experimenta
Fase de testes com adesão gratuita — 10 páginas grátis por mês, sem cartão.