Skip to main content

Mapping File

The mapping file is a YAML file passed with --map. It tells the CLI which CSV columns to read and which defaults to apply.

Minimal Mapping

columns:
vatId: "VatId"

defaults:
checkType: standard

columns.vatId is required. The check type is also required, either in YAML or on the command line.

Full Example

columns:
vatId: "VatId"
name: "CompanyName"
street: "Street"
zip: "PostalCode"
city: "City"

customColumns:
customer_number: "CustomerNumber"
cost_center: "CostCenter"

input:
delimiter: ";"
encoding: "utf-8"
hasHeader: true
skipRows: 0
quoteChar: "\""
trimWhitespace: true

output:
delimiter: ";"
encoding: "utf-8"
bom: true
columns:
- row
- customer_number
- vat_id
- vat_id_status
- checked_at

defaults:
checkType: standard
retryDuration: None
pdf: false
sign: false
transliteration: false
notify: false
sendPdfByEmail: false

filter:
skipEmptyVatId: true

folder:
pattern: "*.csv"
minAge: 0
onDuplicate: skip
retry: false

Top-Level Keys

KeyTypeDefaultDescription
columnsObjectemptyAPI validation field mappings.
customColumnsObjectemptyLocal passthrough columns copied to the result CSV.
inputObjectsee belowInput CSV parsing options.
outputObjectsee belowResult CSV writing options.
defaultsObjectsee belowDefault check and API options.
filterObjectsee belowRow skip options.
folderObjectsee belowFolder mode options.

columns

KeyTypeDefaultDescription
vatIdStringrequiredInput column containing the VAT ID.
nameStringnot setCompany name column.
streetStringnot setStreet column.
zipStringnot setPostal code column.
cityStringnot setCity column.

Use header names when the CSV has a header. Use 1-based column indexes when --no-header or input.hasHeader: false is used.

customColumns

customColumns maps result CSV column names to input CSV columns.

customColumns:
customer_number: "CustomerNumber"

These values are copied into the result CSV. They are not sent to the API and do not affect resume hashes.

Custom output names cannot be empty and cannot conflict with reserved result columns such as vat_id_status.

input

KeyTypeDefaultDescription
delimiterStringauto-detectedInput CSV delimiter. If not configured by CLI or YAML, the CLI auto-detects it.
encodingStringutf-8Supported values: utf-8, windows-1252, iso-8859-1.
hasHeaderBooleantrueWhether the CSV has a header row.
skipRowsNumber0Rows to skip before the header or records.
quoteCharSingle character"Quote character used by the CSV parser.
trimWhitespaceBooleantrueTrim whitespace around parsed fields.

output

KeyTypeDefaultDescription
delimiterString;Result CSV delimiter.
encodingStringutf-8Supported values: utf-8, windows-1252, iso-8859-1.
bomBooleantrueWrite a BOM for the output encoding.
columnsListdefault result columnsSelect result CSV columns or shortcuts.

defaults

KeyTypeDefaultDescription
checkTypestandard or qualifiednot setDefault check type. Required unless set by CLI option.
transliterationBooleanfalseEnable transliteration.
pdfBooleanfalseRequest PDF output.
signBooleanfalseDigitally sign the PDF. Requires PDF output.
pdfDirStringnot setFolder for saved PDFs.
pdfTimestampBooleanfalseAdd timestamp to PDF file names.
companyVatIdStringnot setOwn VAT ID used for validation.
notifyBooleanfalseAsk the API to send a notification email.
sendPdfByEmailBooleanfalseAsk the API to send the PDF by email. Requires PDF output.
retryDurationDurationNoneNone, OneHour, TwoHours, FourHours, EightHours, TwentyFourHours.

filter

KeyTypeDefaultDescription
skipEmptyVatIdBooleantrueSkip rows where the VAT ID is empty.
skipPatternRegex stringnot setSkip rows where the VAT ID matches the regex.

Skipped rows are written to the result CSV with status SKIPPED.

folder

KeyTypeDefaultDescription
patternGlob*.csvFiles selected from the folder root.
minAgeNumber0Minimum file age in seconds before processing.
onDuplicateskip, overwrite, renameskipDuplicate file handling for folder mode moves. skip keeps the existing destination, overwrite replaces it, and rename keeps both files with a timestamp.
retryBooleanfalseMove failed CSV files from error back to the inbox for another attempt. Retried files start a new validation operation.
cleanupDoneAfterDaysNumbernot setDelete old files and state files from done.