Skip to main content
The V-file is a legacy format and is not offered to new customers. For new integrations, use the XML I-file instead.
This page is the complete field reference for the V-file, the Multi-Merchant Submission File used by acquirers and payment service providers (PSPs) to report Dynamic Currency Conversion (DCC) and domestic transactions to Fexco. Use it alongside the Build and submit a V-file guide, which covers file construction, encryption, and submission.
All field positions are 1-indexed and fixed-width. Each field must start at exactly the position shown. Use zero-fill or space-fill to pad unused fields as specified for each field.

Data type conventions

The following abbreviations describe field encoding and justification in the V-file format.

Transaction record types

The V-file supports seven transaction record types. The transaction code is a two-character value where the first character identifies the terminal environment and the second identifies the transaction direction. The following table describes each type and the segments it includes.

Segment 1 (positions 1–90)

Segment 1 is present in all transaction record types. It occupies positions 1 through 90 of the transaction line and contains card, merchant, and terminal information. The following table describes each field.

Customer instructions values

The following table lists the allowed values for the Customer instructions field. Values marked as not supported cause rejection code 11.

Segment 2 Type 1 (positions 91–173)

Segment 2 Type 1 follows Segment 1 for all transaction record types. It occupies positions 91 through 173 of the transaction line and contains currency conversion details. The following table describes each field.

Segment 2 Type 4 (positions 174–256)

Segment 2 Type 4 is required for K1 and K2 (airline) transactions only. It follows Segment 2 Type 1 on the same line and occupies positions 174 through 256. It contains airline passenger and booking data. The following table describes each field.
The Additional data identifier field in Segment 2 Type 1 must be set to F1 when Segment 2 Type 4 and Segment 3 Type 5 follow.

Segment 3 Type 5 (positions 257–463)

Segment 3 Type 5 is required for K1 and K2 (airline) transactions only. It follows Segment 2 Type 4 on the same line and occupies positions 257 through 463. It contains passenger name, customer reference, and itinerary leg data. The following table describes each field.

Segment 4 (positions 174–429)

Segment 4 is required for P1 and P2 Integrated Chip Card (ICC) transactions only. It follows Segment 2 Type 1 and occupies positions 174 through 429 of the transaction line. It contains EMV (Europay, Mastercard, Visa) cryptogram and terminal data. The following table describes each field.

Subrecord formats

Subrecords are optional supplemental records that follow their companion transaction records in the V-file. Each subrecord type is identified by a two-character transaction code at positions 20–21 of the subrecord. The following table summarizes the available subrecord types.
Only one subrecord of each type is permitted per transaction. The Total number of subrecords field in Segment 2 Type 1 must match the number of companion subrecords present for each transaction record.

05 Integrated Terminal subrecord

The Integrated Terminal subrecord carries additional authorisation and scheme data for transactions processed through integrated terminals. It occupies positions 1 through 273 of the subrecord line and is placed immediately after its companion transaction record. The following table describes each field.

Mastercard transit transaction types

The following table lists the allowed values for the Mastercard transit transaction type field.

06 UPI and JCB subrecord

The UPI and JCB subrecord is required for JCB (Japan Credit Bureau) and UPI (China UnionPay International) card transactions. It is formatted under the Association for Payment Clearing Services (APACS) 40 standard and occupies positions 1 through 90 of the subrecord line. The following table describes each field.

07 MCP and Supplemental Reporting subrecord

The MCP and Supplemental Reporting subrecord supports Multi-Currency Pricing (MCP) and DCC transactions. It contains the foreign exchange method, currency offered, and an optional cashier identifier for per-cashier reporting. It occupies positions 1 through 90 of the subrecord line. The following table describes each field.

10 ICC Addendum subrecord

The ICC Addendum subrecord captures the application currency code stored on the integrated chip of the payment card (EMV tag 9F42). It occupies positions 1 through 90 of the subrecord line. The following table describes each field.

17 AMEX Hospitality subrecord

The AMEX Hospitality subrecord is mandatory for American Express hospitality (lodging) V-file submissions. It is based on the Transaction Advice Addendum (TAA) record for the lodging industry as defined in the AMEX Global Financial Submission Guide. This subrecord must not be submitted alongside any other industry-specific TAA transaction. It occupies positions 1 through 169 of the subrecord line. The following table describes each field.

18 Credentials on File subrecord

The Credentials on File subrecord must be present when a transaction uses stored cardholder credentials. It conforms to Visa and Mastercard stored credential indicators and is required from 14 September 2019 under Payment Services Directive 2 (PSD2) Strong Customer Authentication (SCA) rules. It occupies positions 1 through 90 of the subrecord line. The following table describes each field.

39 Contactless subrecord

The Contactless subrecord is required for all transactions where a contactless consumer device is used at a terminal configured to support the Form Factor Indicator (FFI). It occupies positions 1 through 300 of the subrecord line. The following table describes each field.

40 Pay by Instalment subrecord

The Pay by Instalment subrecord is required when an instalment transaction is performed and must conform to Visa and Mastercard instalment data fields. It occupies positions 1 through 110 of the subrecord line. The following table describes each field.

41 3D Secure subrecord

The 3D Secure subrecord is mandatory for all 3D Secure version 1, 3D Secure version 2, and non-3D-Secure eCommerce transactions. It occupies positions 1 through 130 of the subrecord line. The following table describes each field.

Net summary record

A net summary record must be included for each terminal-currency combination present in the file. Summary records use transaction code E4 (sales exceed refunds), E5 (refunds exceed sales), or E6 (cash advance). The net summary record line occupies positions 1 through 90. The following table describes each field.

Net claim record

A single net claim record exists per merchant. The record uses transaction code E7 when refunds exceed sales (payment by merchant) or E8 when sales equal or exceed refunds (claim by merchant). The format differs depending on whether the merchant ID is 11 characters or fewer, or between 12 and 16 characters.
Do not mix short and long merchant IDs in the same V-file. A file must contain all merchant IDs with 11 characters or fewer, or all merchant IDs with 12 characters or more.

Short merchant IDs (11 characters or fewer)

The following table describes the net claim record format for merchant IDs up to 11 characters. The record line occupies positions 1 through 90.

Long merchant IDs (12 to 16 characters)

The following table describes the net claim record format for merchant IDs of 12 to 16 characters. The merchant ID occupies positions 4 through 19. The record line occupies positions 1 through 90.

Transaction rejection codes

Fexco includes a rejection code in the confirmation file for each rejected transaction in a partially rejected V-file. The following tables list codes by record section.
Rejection codes E4 and E8 also appear as transaction codes in the net summary and net claim records. In the subrecord errors table, they are rejection codes only.

General errors

The following codes indicate general validation failures not specific to a single segment.

Segment 1 errors

The following codes indicate field validation failures in Segment 1.

Segment 4 errors

The following codes indicate field validation failures in Segment 4.

Segment 2 Type 1 errors

The following codes indicate field validation failures in Segment 2 Type 1.

Airline segment errors

The following codes indicate field validation failures in Segment 2 Type 4 or Segment 3 Type 5.

Subrecord errors

The following codes indicate validation failures in subrecords.

File rejection codes

Fexco includes a file rejection code in the confirmation file when an entire V-file is rejected. The following table describes each code.

Next steps

Use the following resources to continue after reviewing this reference.