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:
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:
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.
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.
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, unless an amount is only defined at Entry level. This indicates the Entry Details instances for the Entry should be combined into a single transaction.
In 1-n processing, 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 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.
|XML Element||Name||Transaction Set Field|
|Id||Identification||Not Mapped (Id is used for deduplication on ProcessingHub File record)|
|ElctrncSeqNb||Electronic Sequence Number||Batch Identification|
|FrToDt / FrDtTm||From Date Time||From Date|
|FrToDt / ToDtTm||To Date Time||To Date|
|Acct / Id / IBAN (or Acct / Id / Othr / Id)||IBAN||Bank Account Number|
|Bal / Amt||Amount||Opening Balance|
|Bal / Amt||Amount||Closing Balance|
|Bal / Dt / Dt||Date||Opening Balance Date|
|Bal / Dt / Dt||Date||Closing 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|
|XML Element||Name||Transaction Field|
|NtryRef||Entry Reference||Entry Reference|
|Amt||(Ccy attribute from Amount)||Currency|
|RvslInd||Reversal Indicator||Reversal Indicator|
|BookgDt / Dt||Date||Date|
|ValDt / Dt||Date||Value Date|
|AcctSvcrRef||Account Servicer Reference||Account Servicer Reference|
|BkTxCd / Prtry / Cd or NtryDtls / BkTxCd / Prtry / Cd||Code||Reported Payment Method Code|
|AmtDtls / InstdAmt / Amt||Amount||Amount|
|AmtDtls / InstdAmt / Amt||(Ccy attribute from Amount)||Currency|
|AddtlNtryInf||Additional Entry Information||Additional Entry Information|
Entry Details <NtryDtls> - Transaction
|XML Element||Name||Transaction Field|
|TxDtls / Refs / AcctSvcrRef||Account Servicer Reference||Account Servicer Reference|
|TxDtls / Refs / EndToEndId||End To End Id||End To End Id|
|TxDtls / Refs / MndtId||Mandate Identification||Mandate Reference|
|TxDtls / AmtDtls / InstdAmt / Amt or TxDtls / AmtDtls / TxAmt / Amt or TxDtls / Amt||Amount||Amount|
|TxDtls / RltdPties / Dbtr / Pty / Nm or TxDtls / RltdPties / UltmtDbtr / Pty / Nm||Name||Account Holder Name|
|TxDtls / RltdPties / Dbtr / Pty / PstlAdr / StrtNm or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / StrtNm||Street Name||Street|
|TxDtls / RltdPties / Dbtr / Pty / PstlAdr / BldgNb or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / BldgNb||Building Number||Building Number|
|TxDtls / RltdPties / Dbtr / Pty / PstlAdr / TwnNm or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / TwnNm||Town Name||City|
|TxDtls / RltdPties / Dbtr / Pty / PstlAdr / Ctry or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / Ctry||Country||Country|
|TxDtls / RltdPties / Dbtr / Pty / PstlAdr / AdrLine or TxDtls / RltdPties / UltmtDbtr / Pty / PstlAdr / AdrLine||Address Line||Address Line 1|
|TxDtls / RltdPties / DbtrAcct / Id / IBAN or TxDtls / RltdPties / DbtrAcct / Id / Othr / Id||IBAN or Identification (in some cases under CdtrAcct instead of DbtrAcct)||Bank Account Number|
|TxDtls / RltdAgts / DbtrAgt / FinInstnId / BIC||BIC||BIC Code|
|TxDtls / RmtInf / Strd / CdtrRefInf / Ref or TxDtls / RmtInf / Ustrd or TxDtls / RmtInf / Strd / CdtrRefInf / Ref||Reference or Unstructured||Payment Reference|
|TxDtls / RmtInf / Ustrd||Remittance Information||Remittance Information, Remittance Information Long|
|TxDtls / RtrInf / Rsn / Cd||Code||Reason 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.