Introdução ao ficheiro QIF

Os ficheiros QIF são ficheiros de texto simples formatados como pares "etiqueta-valor". No início de cada linha existe uma "etiqueta" de caracter único seguida imediatamente por um "valor", que se extende até ao final da linha.

Não tenha medo de abrir um ficheiro QIF utilizando o less ou o editor de texto de sua preferência caso esteja a ter problemas em importar correctamente dados do Quicken; são grandes as probabilidades de um simples procurar-e-substituir corrigirem qulquer problema que possa estar a ter com o ficheiro QIF. E um procurar-e-substituir de expressões regulares fará o resto.

Colecções de pares etiqueta-valor constituem registos de vários tipos. Existem registos pata armazenar os nomes e descrições das suas contas e das categorias de receitas e despesas que definiu no Quicken. Existem registos para definir "classes" do Quicken (uma espécie de sub-contas, uma espécie de categorias, mas não exactamente qualquer uma delas). E existem registos para descrever transacções.

Aqui está um registo de transacção típico do Quicken:

      !Type:Bank     
      D6/20/97
      T-500
      N1012
      C*
      M
      P
      L[Visa]
      ^
    

A etiqueta ! denota o início de uma secção de registos de um determinado tipo. Neste caso, transacções de Banco (Bank). "Type:Cat" significa uma secção de descrições de Categorias, "Account" significa descrições de contas, e por aí em diante.

A etiqueta D denota a data. Note a coadunação com o "problema" do Ano 2000. Aqui está uma "característica" adorável de algumas versões do Quicken e datas em 2000:

      D1/ 1' 0
      T-640.00
      CX
      N511
      PJoe Bob
      LRent:Apartment
      ^
      

Auuu! Felizmente o importador QIF do GnuCash consegue gerir todos os formatos de datas estranhos que a lista de programadores do GnuCash encontrou.

O campo T é o montante "Total" da transacção. Se existirem parcelas, a some de todas os montantes das parcelas encontra-se num campo T. Dinheiro que está a sair da conta está negativo.

O campo N é um "Número", que é normalmente um número de cheque ou qualquer outro número identificativo da transacção.

O campo C representa o estado de limpa/reconciliada da transacção. Um x ou X neste campo significa que a transacção está "Limpa", um * significa que a transacção está "Reconciliada".

O campo M são as notas (memo) da transacção.

O campo P é o destinarário (a quem foi pago).

O campo L é a linha da Categoria/Conta. Se o valor neste campo estiver delimitado por parêntesis rectos, como [Visa], significa que esta transacção é uma transferência para a conta do Quicken chamada Visa. Se não existirem parêntesis rectos , a transacção está na Categoria indicada (como por exemplo Renda:Apartamento).

A etiqueta ^ significa Fim de Registo.

Os utilizadores Quicken que estiverem a aproveitar as Classes verão um caracter de barra (/) seguido do nome da classe no final da linha da Categoria (como por exemplo [Visa]/Projecto)

Se uma transacção tiver "parcelas", significando que esta é uma única transacção "nesta" conta mas está "dividida" por múltiplas contas de fonte/destino, então as parcelas estarão descritas com campos S para a categoria/conta/classe de cada parcela, um campo $ para o montante da parcela, e um campo E para uma nota (memo) da parcela. O total de todos os campos $ num registo de transacção deverão ser iguais ao campo T.

Note que em nenhum lado do registo de transacção, nem em mais parte alguma do ficheiro, o Quicken armazena o nome da conta que o ficheiro descreve. Não me pergunte porque o não faz, pois eu também não sei. O Microsoft Money (que também consegue gravar ficheiros QIF) utiliza um "truque" para colocar a informação no ficheiro. Se a primeira transacção de Banco no ficheiro tiver como destinarário do pagamento "Opening Balance" (Saldo Inicial), a linha L conterá o nome da conta que o ficheiro descreve:

      !Type:Bank
      D12/03/95
      T4,706.57
      CX
      POpening Balance
      L[New Bank]
      ^
    

Os registos de Saldo Inicial são tratados de forma especial, visto não significarem o que parecem indicar (se interpretar o registo à letra, como uma transferência de $4706.57 do [New Bank] para o [New Bank], o seu saldo são uns maravilhosos $0.00). Na secção de Pastas de Contas existe um debate sobre o que fazemos com eles.

Exportações Quicken de Multi-conta

O Quicken e alguns outros programas que utilizam QIF como formato de exportação sabem como armazenar o histórico de múltiplas contas num único ficheiro QIF. Eles fazem-no antecedendo o conjunto de transacções de/para essa conta com um registo "!Account".

O Importador QIF deverá ser capaz de processar correctamente estes ficheiros. Você poderá reparar que a "Conta QIF Defeito" parece algo aleatória; para exportações de múltiplas contas, a conta inferida é a primeira conta com um registo de Saldo Inicial. No entanto, visto que o Quicken indica especificamente a conta pata cada transacção numa exportação de múltiplas contas, a probabilidade de você obter incorrectamente transacções na conta de defeito são reduzidas.