Skip to content

Working with data

BKMVDATA, the uniform file structure

Israeli accounting software must be able to produce an export in the structure prescribed by the Director of the Tax Authority: an index file, INI.TXT, and a data file, BKMVDATA.TXT. VLDTION recognises that export, validates its structure against itself, and reads every field at the positions the published specification declares.

What the application does with one

  1. 01

    Detection

    A dropped file is recognised as a BKMVDATA data file or an INI index file from its own content, not from its name. The import screen names the format it detected and why.

  2. 02

    Record classification

    Every line is classified by the four-character record code that begins it and counted by type, including codes the application does not recognise. Nothing is discarded silently.

  3. 03

    Structural validation

    The opening record, the closing record, the totals it declares, the running record numbers and the identity carried across records are all checked against what was actually read from the file.

  4. 04

    Provenance

    Every observation carries the file, the record type, the record number and the line number, so evidence can name the exact record it came from.

  5. 05

    Normalisation

    Document headers become transactions, journal lines that belong to no document become journal postings, and accounts and counterparties come from the records that define them.

Hebrew encoding

The specification names two character sets: ISO-8859-8-i under Windows and CP-862 under DOS. VLDTION decides between them from the bytes the file actually uses rather than from a declaration, so Hebrew names and descriptions read correctly in findings and in exports either way.

Read against the published specification

The record layouts: codes, field numbers, start positions, lengths and types, come from הוראות להפקת קבצים במבנה אחיד, version 1.31, published by the Israel Tax Authority. VLDTION transcribes them, and a layout is only loaded if its fields tile every record exactly and total the record length the same document declares. A transcription error therefore fails a check rather than producing confident, wrong evidence.

What this specification does not carry

Version 1.31 predates the allocation-number regime, so no record in it has a field for מספר הקצאה. A dataset imported from a 1.31 file declares that field absent, and RULE-IL-001 reports insufficient data rather than flagging every invoice for a number the format could not carry.

  • Document headers, lines, journal entries, accounts and inventory items are all read field by field.
  • Orders and delivery notes are counted and reported, not posted: they are documents, not entries.
  • A document marked cancelled in the export is reported and not imported.
  • Hebrew is decoded as ISO-8859-8 or CP-862, whichever the bytes actually use.