Processing camt.053 files
CAMT (Cash Management) is a set of bank statement messages defined by ISO 20022. There are different standards for different bank statement types. This article focuses specifically 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
- Camt.053.004
- Camt.053.008
Setting up targets for camt.053 processing
To be able to import and parse camt.053 statements, FinDock needs to have the bank account for the statement defined as a target. The target can be for any of the following FinDock native payment methods:
For each originating bank of your camt.053 statements, you need to target defined in ProcessingHub. Make sure you use select camt.053 for the CAMT message type in the target settings. You should also enable CAMT duplication protection unless you have some specific testing scenario where it needs to be off.
Camt.053 file 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 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 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 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.
Statement <Stmt>
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 |
Entry <Ntry>
XML Element | Name | Transaction Field |
---|---|---|
NtryRef | Entry Reference | Entry Reference |
Amt | Amount | Amount |
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.053 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.