Skip to main content

Processing camt.053 files

CAMT (Cash Management) is a set of bank statement messages defined by ISO 20022, considered the universal financial industry message scheme. There are different standards for different bank statement types. This article focuses specfically on camt.053.

The camt.053 is a detailed bank to customer statement listing all entries booked on the customer’s bank account on a given day. It can be considered an alternative (or replacement) of the less structured MT 940 bank file.

All camt.053 messages are built using the same structure, but there are multiple versions available. FinDock supports:

  • Camt.053.001.02
  • Camt.053.001.03
  • Camt.053.001.04

Setting up targets for camt.053 processing

To be able to import and parse camt.053 statements, FinDock needs to know the SEPA bank account for the statement. In other words, the SEPA payment extension is required to process camt.053 files. So, before setting up targets, please first install and and activate the SEPA extension if you haven’t already.

For each originating bank of your camt.053 statements, you need to create a SEPA target in ProcessingHub. Make sure you use SEPA as the target type and select camt.053 for the CAMT message type. You should also enable CAMT duplication protection unless you have some specific testing scenario where it needs to be off.

Camt.053 message structure

The camt.053 has a strict structure, but there are variations in the relationships within a given statement. The basic file is built with the following main elements:

Camt.053 basic structure

When you upload a camt.053 file, FinDock parses the content of the file into Transaction Set and Transaction records.

The extracted information comes from the Entry and the Entry Details elements of the statement file. In most cases, the relationship between these two elements is one-to-one, but the relationship can be:

  • One-to-none (1-0)
  • One-to-one (1-1)
  • One-to-many (1-n)

These relationship options are handled by the Entry Type and Primary fields on Transaction.

One-to-none (1-0) processing

In a one-to-none relationship, there is an Entry element with no Entry Details element. In 1-0 processing, FinDock creates one Transaction record per Entry. The Entry Type picklist on the transaction is set to Entry and the Primary field is set to true.

Camt.053 one-to-none relationship

One-to-one (1-1) processing

In one-to-one relationships, there is one Entry Details element for each Entry element. In 1-1 processing, FinDock creates one Transaction record per Entry. The Entry Type picklist field on the transaction is set to Entry Detail, and the Primary field is set to true.

Camt.053 one-to-one relationship

One-to-many (1-n) processing

In one-to-many relationships, there are two or more Entry Details elements for the Entry. In 1-n processing, FinDock creates one Transaction record per Entry Details element. The Entry Type picklist field is set to Entry Detail. Only the first transaction of the reported transactions has the Primary field set to true. All other transactions are set to false.

Every transaction from 1-n processing contains information from both the Entry and the Entry Details elements. For the group of transactions belonging to the same Entry, the Entry information is the same for all Transaction records, but the information from the Entry Details element is unique to each transaction.

Camt.053 one-to-many relationship

Camt.053 field mapping

The following tables outline the basic mapping between camt.053 XML elements and FinDock objects. In some cases, the mapping includes file content evaluation logic that results in parsing that varies from the default mapping. This logic is not covered in these tables.

Group Header <GrpHdr>

Nothing from the group header is mapped by default. However, you can use Guided Matching rules to extract information if needed.

Statement <Stmt>

XML ElementNameTransaction Set Field
IdIdentificationNot Mapped (Id is used for deduplication on ProcessingHub File record)
ElctrncSeqNbElectronic Sequence NumberBatch Identification
FrToDt / FrDtTmFrom Date TimeFrom Date
FrToDt / ToDtTmTo Date TimeTo Date
Acct / Id / IBAN (or Acct / Id / Othr / Id)IBANBank Account Number
Bal / AmtAmountOpening Balance
Bal / AmtAmountClosing Balance
Bal / Dt / DtDateOpening Balance Date
Bal / Dt / DtDateClosing Balance Date
TxsSummry / TtlCdtNtries / NbOfNtries(Calculated)Number of Credit Entries
TxsSummry / TtlCdtNtries / Sum(Calculated)Total Amount Credit
TxsSummry / TtlDbtNtries / NbOfNtries(Calculated)Number of Debit Entries
TxsSummry / TtlDbtNtries / Sum(Calculated)Total Amount Debit

Entry <Ntry>

XML ElementNameTransaction Field
NtryRefEntry ReferenceEntry Reference
AmtAmountAmount
Amt(Ccy attribute from Amount)Currency
RvslIndReversal IndicatorReversal Indicator
BookgDt / DtDateDate
ValDt / DtDateValue Date
AcctSvcrRefAccount Servicer ReferenceAccount Servicer Reference
BkTxCd / Domn / Cd + Fmly / Cd + Fmly / SubFmlyCd(Multiple concatenated indicators)Reported Payment Method Code
AmtDtls / InstdAmt / AmtAmountAmount
AmtDtls / InstdAmt / Amt(Ccy attribute from Amount)Currency
AddtlNtryInfAdditional Entry InformationAdditional Entry Information

Entry Details <NtryDtls> - Transaction

XML ElementNameTransaction Field
TxDtls / Refs / AcctSvcrRefAccount Servicer ReferenceAccount Servicer Reference
TxDtls / Refs / EndToEndIdEnd To End IdEnd To End Id
TxDtls / Refs / MndtIdMandate IdentificationMandate Reference
TxDtls / AmtDtls / InstdAmt / Amt or TxDtls / AmtDtls / TxAmt / Amt or TxDtls / AmtAmountAmount
TxDtls / RltdPties / Dbtr / Pty / Nm or TxDtls / RltdPties / UltmtDbtr / Pty / NmNameAccount Holder Name
TxDtls / RltdPties / Dbtr / Pty / PstlAdr / StrtNm or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / StrtNmStreet NameStreet
TxDtls / RltdPties / Dbtr / Pty / PstlAdr / BldgNb or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / BldgNbBuilding NumberBuilding Number
TxDtls / RltdPties / Dbtr / Pty / PstlAdr / TwnNm or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / TwnNmTown NameCity
TxDtls / RltdPties / Dbtr / Pty / PstlAdr / Ctry or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / CtryCountryCountry
TxDtls / RltdPties / Dbtr / Pty / PstlAdr / AdrLine or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / AdrLineAddress LineAddress Line 1
TxDtls / RltdPties / DbtrAcct / Id / IBAN or TxDtls / RltdPties / DbtrAcct / Id / Othr / IdIBAN or Identification (in some cases under CdtrAcct instead of DbtrAcct)Bank Account Number
TxDtls / RltdAgts / DbtrAgt / FinInstnId / BICBICBIC Code
TxDtls / RmtInf / Strd / CdtrRefInf / Ref or TxDtls / RmtInfo / Ustrd or TxDtls / RmtInf / Strd / CdtrRefInf / RefReference or UnstructuredPayment Reference
TxDtls / RtrInf / Rsn / CdCodeReason Code

Extend CAMT processing with Guided Matching

Out of the box, FinDock extracts the information from camt.053 files required to update payment records in Salesforce. However, the files may contain more information that you would like to use to enrich your CRM data.

Using Guided Matching, you can do just about anything you want with content of a camt.053 file. You can extract unique information for your own purposes as well as create rules that extend the logic of the parsed data on Transaction Set and Transaction records.