Skip to main content

FiDAViSta Format

FiDAViSta (Financial Data Exchange Unified Standard) is an XML-based data exchange standard for payment orders, used by banks and accounting/ERP systems mainly in Latvia. Paysera Payment Import accepts FiDAViSta 1.01 payment files.

Overview​

FiDAViSta format is a structured XML format that provides:

✅ XML-based structure - Industry-standard hierarchical format
✅ Multiple data groups - Header, Payments, Statements, Payment Status
✅ Accounting system support - Exported by accounting and ERP systems that implement the standard
✅ Payment numbers - Each payment keeps its DocNo as the Paysera transfer number
✅ Multi-currency support - International payment capabilities


File Structure​

A FiDAViSta file consists of a FIDAVISTA root element containing several optional groups:

<?xml version="1.0" encoding="UTF-8"?>
<FIDAVISTA>
<Header>...</Header>
<Payment>...</Payment>
<Payment>...</Payment>
<PmtStat>...</PmtStat>
<Statement>...</Statement>
</FIDAVISTA>
Root element name

The root element must be named exactly FIDAVISTA (upper case, no namespace prefix). A file with any other root element name is rejected on upload with the error invalid_file_content ("The file content is not consistent with the format.").

Main Elements​

ElementPurposeStatus
HeaderFile metadata and preparation info✅ Accepted (not used by the import)
PaymentPayment order information✅ Available
PmtStatPayment status tracking🔜 Coming soon
StatementBank account statements🔜 Coming soon

Import Rules​

These rules apply to every FiDAViSta file uploaded through Payment Import:

RuleDetails
One payer account per fileAll <Payment> elements must use the same Paysera account in PayAccNo. The account may be given as its IBAN or as its Paysera account number (EVP...). A file with payments from two different accounts is rejected with invalid_account_data.
At most 500 payments per fileA file with more payments is rejected with transfer_limit_exceeded. Split larger batches into several files.
One <BenSet> per <Payment>Only the first <BenSet> of each <Payment> is imported. Any further <BenSet> elements are ignored without an error. Create a separate <Payment> for every beneficiary.
Amount, priority and charges live in <BenSet>Amt, Priority and Comm are read only from inside <BenSet>. If they are placed directly under <Payment>, the upload is accepted but the import fails in the background with transfer_amount_not_positive, because the amount is read as empty.
Charge typeComm accepts OUR or SHA only (case-insensitive). A missing or empty Comm does not fail the import: the transfer is stored without a charge type and is routed and priced as SHA. BEN or any other value fails the whole import with CODE_UNSUPPORTED_CHARGE_TYPE and no payment from the file is created.
PriorityOnly the exact value N creates a normal transfer. Any other value (U, X, lower-case n, an empty or missing Priority) is processed as urgent.
Payment dateA RegDate that is missing, in the past, or not in YYYY-MM-DD format is replaced with today's date. A future date is kept as the payment date; a date more than two years ahead fails the import with TRANSFER_OPERATION_DATE_INVALID.
Validation failuresPayments are validated as one batch. If any payment fails validation, the whole import fails and the errors name the transfer_index of the invalid payments (the first five).

Header Element​

The Header contains file preparation metadata. The import accepts the Header but does not use it; the file may also omit it.

Fields​

TagLengthTypeRequiredDescription
Timestamp17xs:stringOptionalFormat: YYYYMMDDHHMMSSsss
Example: 20231215143025000
From0-70xs:stringOptionalPreparer's identifier
Extension-ExtensionTypeOptionalAdditional custom elements

Example​

<Header>
<Timestamp>20231215143025000</Timestamp>
<From>ACCOUNTING_SYSTEM_ID</From>
</Header>

Payment Element​

The Payment element contains one payment order. The payer data is given directly under <Payment>; the amount, priority, charge type and beneficiary data are given inside a single <BenSet> element.

The Required column below describes what the Paysera import needs. Fields marked Not used are accepted so that files exported by standard-compliant software import without changes, but they have no effect on the created transfer.

Core Payment Fields​

TagLengthTypeRequiredDescription
ExtId0-10SwiftStringOptionalUnique payment ID in external system. Not used by the import.
DocNo1-10SwiftStringMandatoryPayment/document number. Becomes the transfer number.
RegDate10xs:dateOptionalPayment date (YYYY-MM-DD). See Import Rules for how past, missing and future dates are handled.
TaxPmtFlg1xs:stringOptionalY = Tax payment
N = Normal payment
Not used by the import.
Ccy3CurrencyTypeMandatoryPayment currency (EUR, USD, etc.)
PmtInfo0-140EksStringOptionalPayment description (transfer details)
BankInfo0-140xs:stringOptionalInformation for the bank. Not used by the import.

Payer Fields​

TagLengthTypeRequiredDescription
PayLegalId0-20LegalIDTypeOptionalPayer's registration/personal ID. Defaults to the code of the account owner.
PayAccNo1-34AccountMTypeMandatoryPayer's Paysera account: its IBAN or its Paysera account number (EVP...). Must be the same in every payment of the file.
PaySubAccNo0-34AccountOTypeOptionalPayer's sub-account. Not used by the import.
DebitCcy3CurrencyTypeOptionalDebited currency. Not used by the import. The transfer is always made in Ccy.

Beneficiary Set (BenSet)​

Exactly one <BenSet> per <Payment>. The standard order of the elements is BenExtId, Priority, Comm, Amt, then the beneficiary and bank fields; the import does not depend on the order.

TagLengthTypeRequiredDescription
BenExtId0-5SwiftStringOptionalBeneficiary ID in the external system. Not used by the import.
Priority1xs:stringOptionalN = Normal
U = Urgent
X = treated as Urgent
Case-sensitive. Mandatory in the standard, but the import does not require it: a missing or empty value is processed as Urgent.
Comm3xs:stringOptionalOUR = Payer pays
SHA = Shared
Mandatory in the standard, but the import does not require it: a missing or empty value is stored as no charge type and the transfer is routed and priced as SHA.
BEN is not supported and fails the import.
Amt1-12AmountTypeMandatoryAmount with decimal point (e.g., 1000.50)
BenAccNo0-34AccountOTypeMandatoryBeneficiary's account. An IBAN is detected automatically.
BenSubAccNo0-34AccountOTypeOptionalBeneficiary's sub-account. Not used by the import.
BenAccIbanFlg0-1xs:stringOptionalY/N IBAN flag. Not used by the import (IBANs are detected automatically).
BenName1-105EksStringMandatoryBeneficiary's name
BenLegalId0-20LegalIDTypeOptionalBeneficiary's registration/personal ID
BenAddress0-70EksStringOptionalBeneficiary's address. Not used by the import.
BenCountry2CountryTypeConditionalISO 3166-1 alpha-2 country code (e.g., LT). Mandatory when BenAccNo is not an IBAN; for an IBAN the country is taken from the IBAN.
BudgCode0-10SwiftStringOptionalBudget revenue code. Not used by the import.

Beneficiary's Bank​

These elements are also placed inside <BenSet>.

TagLengthTypeRequiredDescription
BBName0-35EksStringOptionalBank name
BBAddress0-70EksStringOptionalBank address. Not used by the import.
BBSwift8-11SWIFTTypeConditionalBank SWIFT/BIC code. Optional when BenAccNo is an IBAN (the BIC is resolved from the IBAN); provide it for non-IBAN accounts.
BBCode0-66BankCodeTypeOptionalBank code (with CodeType attribute)

Intermediary Bank​

Accepted inside <BenSet> for compatibility with the standard, but not used by the import.

TagLengthTypeRequiredDescription
CBAcc0-34AccountOTypeOptionalCorrespondent account
CBName0-35EksStringOptionalIntermediary bank name
CBSwift8-11SWIFTTypeOptionalIntermediary SWIFT code
CBCode0-66BankCodeTypeOptionalIntermediary bank code

AMK Set (Balance Code)​

Accepted inside <BenSet> for compatibility with the standard, but not used by the import.

TagLengthTypeRequiredDescription
Opc1-3xs:stringOptionalAMK balance code (digits only)
Amt1-12AmountTypeOptionalAMK code sum

Data Types​

Standard Types​

TypeMinMaxFormatDescription
xs:string0∞UnicodeStandard XML string
xs:date1010YYYY-MM-DDStandard XML date
xs:decimal--0-9.Decimal number

Custom Types​

TypeMinMaxCharactersDescription
SwiftStringType--0-9 A-Z a-z /-?:().,'+SWIFT X character set
EksStringType--0-9 A-Z a-z A-Ž /-?:().,'+Extended with Latvian/Latin
SWIFTType811A-Z 0-9SWIFT/BIC code
CurrencyType33A-ZISO currency code
AmountType1120-9.Amount (12 digits, 2 after decimal)
AccountMType134SwiftStringMandatory account
AccountOType034SwiftStringOptional account
LegalIDType020SwiftStringLegal/personal ID
BankCodeType--SwiftStringBank code with CodeType attribute
CountryType22A-ZISO 3166-1 alpha-2

Example: Simple Payment​

A normal-priority EUR payment to an IBAN. Replace PayAccNo with your own Paysera account; the account numbers below are the published IBAN registry examples for Lithuania and Latvia.

<?xml version="1.0" encoding="UTF-8"?>
<FIDAVISTA>
<Header>
<Timestamp>20231215143025000</Timestamp>
<From>ACCOUNTING_SYSTEM</From>
</Header>
<Payment>
<ExtId>PAY001</ExtId>
<DocNo>INV2023001</DocNo>
<RegDate>2023-12-15</RegDate>
<TaxPmtFlg>N</TaxPmtFlg>
<Ccy>EUR</Ccy>
<PmtInfo>Payment for services</PmtInfo>
<PayAccNo>LT121000011101001000</PayAccNo>
<BenSet>
<Priority>N</Priority>
<Comm>OUR</Comm>
<Amt>1000.50</Amt>
<BenAccNo>LV80BANK0000435195001</BenAccNo>
<BenName>John Smith</BenName>
<BenAddress>Main Street 123, Riga</BenAddress>
<BenCountry>LV</BenCountry>
</BenSet>
</Payment>
</FIDAVISTA>

Example: International Payment with SWIFT​

An urgent USD payment to a non-IBAN account, so BenCountry and BBSwift are required.

<?xml version="1.0" encoding="UTF-8"?>
<FIDAVISTA>
<Header>
<Timestamp>20231215143025000</Timestamp>
<From>ERP_SYSTEM</From>
</Header>
<Payment>
<ExtId>INT001</ExtId>
<DocNo>INTL2023001</DocNo>
<RegDate>2023-12-15</RegDate>
<TaxPmtFlg>N</TaxPmtFlg>
<Ccy>USD</Ccy>
<PmtInfo>International consulting fee</PmtInfo>
<PayAccNo>LT121000011101001000</PayAccNo>
<BenSet>
<Priority>U</Priority>
<Comm>SHA</Comm>
<Amt>5000.00</Amt>
<BenAccNo>000123456789</BenAccNo>
<BenName>ACME Corporation Ltd</BenName>
<BenAddress>456 Broadway, New York, NY 10013</BenAddress>
<BenCountry>US</BenCountry>
<BBName>Citibank N.A.</BBName>
<BBAddress>399 Park Avenue, New York</BBAddress>
<BBSwift>CITIUS33</BBSwift>
</BenSet>
</Payment>
</FIDAVISTA>

Payment Status Element (PmtStat)​

Coming Soon

Payment status functionality will be available soon. This element tracks payment execution status.

Planned Fields​

TagDescription
ExtIdReference to payment ID
BenExtIdReference to beneficiary ID
BankRefBank reference number
StatCodeStatus: E (Executed), R (Revoked), P (Processing), O (Other)
BookDateExecution date
InfoToCustomerStatus explanation/error message

Statement Element​

Coming Soon

Account statement functionality will be available soon for storing bank account statements.


Key Features​

Priority Levels​

CodeNameHow the import processes it
NNormalStandard processing
UUrgentUrgent processing
XExpressProcessed as Urgent (no separate express handling)

The value is case-sensitive. A missing or empty Priority is processed as Urgent.

Commission Types​

CodeNameWho PaysSupported
OURPayerAll fees paid by payer✅
SHASharedFees split between parties✅
BENBeneficiaryAll fees paid by beneficiary❌ Fails the import with CODE_UNSUPPORTED_CHARGE_TYPE

The value is case-insensitive. A missing or empty Comm is accepted: the transfer is stored without a charge type and is routed and priced as SHA.

Tax Payment Flag​

CodeMeaning
YTax payment
NNormal payment

The flag is accepted but does not change how the payment is processed.


Best Practices​

✅ DO​

  • Use proper XML encoding (UTF-8)
  • Use FIDAVISTA as the root element
  • Put Priority, Comm and Amt inside <BenSet>
  • Use one <Payment> per beneficiary
  • Specify correct currency codes
  • Use IBAN format when possible
  • Include SWIFT codes for non-IBAN international transfers
  • Use OUR or SHA as the charge type

❌ DON'T​

  • Use invalid XML characters
  • Exceed maximum field lengths
  • Mix payments from different Paysera accounts in one file
  • Put more than 500 payments in one file
  • Use BEN as the charge type
  • Use incorrect date formats
  • Omit BenCountry for non-IBAN accounts

FiDAViSta vs Other Formats​

FeatureFiDAViStaMOKESISTARESIS
FormatXMLTAB-separatedTAB-separated
ComplexityHighMediumHigh
FieldsVariable (XML)31 fields40 fields
SystemLatvian accounting/ERP standardGeneralInternational
TrackingDocNo (transfer number)Payment numbersPayment numbers
StatusPlanned (PmtStat)SeparateNo
ValidationStructure check on uploadManualManual
Best forERP integrationGeneral useInternational

Integration Workflow​

FiDAViSta files are typically produced by:

  • Accounting systems that export the FiDAViSta standard
  • ERP systems with a FiDAViSta export
  • Banking systems supporting the FiDAViSta standard
  • Financial management software

Integration Steps​

  1. Generate XML from your accounting or ERP system
  2. Check that the file follows the Import Rules above
  3. Export the payment file
  4. Import it through Payment Import
  5. Track status via PmtStat (when available)
  6. Reconcile using Statement (when available)

Schema Validation​

Paysera does not validate FiDAViSta files against an XSD schema. The upload checks that the file is well-formed XML with a FIDAVISTA root element, and then validates the individual payments.

The xmlns:xsi and xsi:noNamespaceSchemaLocation attributes on the root element are optional and ignored. Files exported by standard-compliant software that carry them are imported normally:

<FIDAVISTA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="fidavista_v0001.xsd">

When to Use FiDAViSta​

✅ Use FiDAViSta when:

  • Your accounting or ERP software exports FiDAViSta files
  • You need XML-based integration
  • You require payment status tracking (when available)
  • You need ERP system integration

❌ Use other formats when:

  • Manual payment entry needed → XLS
  • Simple bulk imports → MOKESIS
  • Complex international routing → TARESIS
  • No FiDAViSta export available → MOKESIS or XML

Support​

Need help with FiDAViSta format?


Next Steps​