Skip to main content
This reference covers every element, attribute, and code you need to build or validate a Boarding File Upload XML file. For step-by-step submission instructions, see Board merchants via XML. Sample XML files are available on the Sample files page.

File naming

Fexco uses the filename prefix to identify the source acquirer and route the file to the correct processing pipeline. Using an incorrect or inconsistent filename will cause the file to be rejected or misrouted. Name every Boarding File Upload file using this format:
The table below describes each component of the filename.

Character encoding

All Boarding File Upload XML files must use UTF-8 encoding. Declare the encoding in the XML declaration on the first line of every file.
Files that omit this declaration or use a different encoding may fail schema validation or produce incorrect data.

File structure

An Boarding File Upload XML file consists of a merchantBulkUpload root element containing one or more acquirer elements. Each acquirer element holds createMerchant, reactivateMerchant, updateMerchant, and deleteMerchant operations as child elements. When an acquirer element contains more than one type of operation, place them in this order: createMerchant, reactivateMerchant, updateMerchant, then deleteMerchant. All element and attribute names are case-sensitive and must be written in camelCase exactly as shown in this reference. For example, createMerchant is valid but CreateMerchant and create_merchant are not.
Submit createMerchant operations before updateMerchant operations. If you need to create and update the same merchants, use separate files and submit the creation file first.
The acquirer element takes a single id attribute. This is a positive integer up to 999, assigned by Fexco. Every operation inside the acquirer block is associated with this acquirer ID.

createMerchant fields

Use the createMerchant element to board a new merchant. Each createMerchant block defines one merchant record. Add multiple createMerchant elements within the same acquirer to board several merchants in one file. Each record is processed independently, so a data error in one does not prevent the others from being processed.
The id attribute on createMerchant is the merchant’s unique identifier in Mercury (used for reporting). The Merchant ID (MID) used for rate service queries and transaction import files is the tag attribute on each originator element. In most cases both values are the same.

Merchant attributes

The following attributes apply to the createMerchant element.

Merchant elements

Child elements must appear inside createMerchant in the order shown below. The table lists every supported child element.

Merchant originator fields

An originator element represents the Dynamic Currency Conversion (DCC) configuration for one base currency and card scheme combination. Add one originator per base currency and card scheme combination; for example, one for Visa EUR and a separate one for Mastercard GBP. The tag attribute on originator is the Merchant ID (MID) used in rate service queries and transaction import files. It is provided by the integrator. In most cases it matches the merchant id attribute.

Merchant originator attributes

The following attributes apply to the originator element.

Merchant originator elements

The table below covers the child elements of originator.
baseCurrency uses the ISO 4217 numeric code, not the three-letter alpha code. For example, use 978, not EUR.

Commission split fields

The commissionSplit element is optional under originator. The V26.1 XSD also marks each child element below as optional. The XSD does not define how omitted values or combinations are handled by business validation. Confirm those requirements with Fexco.

Terminal fields

Use the terminal element to associate a point of sale (POS) or ATM terminal with a merchant. Terminals are optional, and a merchant can have zero or more terminals. The table below covers the id attribute and the location child element.

Address elements

The address element is optional on createMerchant. The table below covers all supported child elements of address. All fields are optional.

Contact elements

The contact element was added in v26.1 and is optional. The table below covers the child elements of contact. All fields are optional.

Bank account elements

The bankAccount element was added in v26.1 and is optional. The table below covers the child elements of bankAccount. All fields are optional.

updateMerchant fields

Use the updateMerchant element to modify an existing merchant record. You identify the merchant by its id attribute. The id itself cannot be changed.

Update attributes

The following attribute is required on the updateMerchant element.

Update elements

All update elements are optional. Include only the elements you want to change. The table below lists every supported update element. The newAddress element uses the same structured child elements as address. This example replaces the address lines and country code:

Update a commission split

For standard XML boarding updates, supply acquirerPercent inside newCommissionSplit. The service calculates the merchant percentage as the existing acquirer-plus-merchant total minus the new acquirer percentage. This operation does not change that total. Supplying merchantPercent or merchantProviderPercent does not independently update those percentages through this operation. The new acquirer percentage must be an allowed value for your acquirer, must be non-negative, and must not exceed the existing total for any affected merchant originator. Confirm the configured allowed values with Fexco.
If you include newCommissionSplit but omit acquirerPercent, the standard update flow treats the acquirer percentage as zero. It does not preserve the previous value. Always supply the intended acquirer percentage explicitly. Omit the entire newCommissionSplit element when you do not want to change the split.
After processing, check the response file for errors before treating the update as successful. The XSD’s optional fields alone do not establish whether a commission change will be accepted.

deleteMerchant fields

Use the deleteMerchant element to deactivate a merchant. This is a soft-delete operation: the merchant record is retained for audit and historical reporting purposes and is not permanently removed. To make the merchant active again, use the reactivateMerchant operation. The table below covers the single attribute on deleteMerchant.

reactivateMerchant fields

Use the reactivateMerchant element to make a deactivated merchant active again. The following example reactivates one merchant.
The table below covers the single attribute on reactivateMerchant.

Response file format

After Fexco processes your Boarding File Upload XML file, a response file is placed in your Secure File Transfer Protocol (SFTP) folder. The response format and filename pattern are configured for your customer. Confirm the configured format, filename prefix, and output folder in your onboarding details. Available response writer formats include CSV and TXT, with versioned variants. For example, if your CSV configuration uses the request base name and a .csv extension, a request named MBUACQ20260920.143000.XML produces MBUACQ20260920.143000.csv. Your configured naming pattern may differ.

CSV response file fields

The table below describes one CSV response layout. Your configured format may use a different layout.

HTTP status codes

The table below describes the three status codes that appear in the Status Code column.

Error codes

Errors prevent the affected merchant operation from completing. Correct the identified data and resubmit only the failed records in a new Boarding File Upload file. Do not resubmit records that were processed successfully.

File-level errors

File-level errors cause the entire file to be rejected. No merchant records in the file are processed. The table below covers the three file-level error conditions.

Merchant record errors

Merchant record errors affect only the individual record that caused them. The table below lists all merchant record error codes.

Warning codes

Warnings do not stop the merchant operation from completing. The merchant record is created or updated, but you should review the warning and correct optional data where possible. The table below lists all warning codes.

Special characters

XML reserves certain characters for markup. If these characters appear in element content or attribute values, you must replace them with their XML entity references. Using a bare reserved character causes an Invalid XML content file-level error. The table below lists the five XML entity references you are most likely to need.

Sample file

The following sample shows a complete Boarding File Upload XML file. It includes two createMerchant operations and one updateMerchant operation. Cafe Berlin has one originator and one terminal. Harbour View Hotel has two originators and one terminal, and includes contact details.

Next steps

The following resources complement this reference.
  • Board merchants via XML: step-by-step instructions for building, validating, and submitting a Boarding File Upload XML file via SFTP.
  • Validate an XML file before submission: how to validate your file against the Boarding File Upload XSD schema and resolve common schema errors before submission.
  • Sample files: downloadable XML Boarding File Upload templates and example files you can use as a starting point.
  • Field name mapping: reference for how XML Boarding File Upload fields map to their equivalents in the REST API, rate service, and transaction import files.