# Pain.008 The pain.008 message defined by [ISO 20022](https://www.iso20022.org/iso-20022-message-definitions) is used to submit instructions (**PA**yment **IN**itiation) to banks. Specifically, pain.008 is a Customer Direct Debit Initiation file FinDock uses for native direct debit processing of [SEPA](/docs/payment-processors/configuring-sepa-dd), [CH-DD](/docs/payment-processors/swiss-ch-dd), and [LSV+](/docs/payment-processors/swiss-lsv) payment collection. FinDock supports the follow pain.008 versions: * Pain.008.001.02 * Pain.008.001.03 * Pain.008.001.08 ## Pain.008 file structure The pain.008 file in aa nested XML with three main sections: * Group header node * Payment information node * One or more transaction details nodes ## Pain.008 field mapping The following table outlines how Salesforce data is mapped to pain.008 elements. Please note the mappings cover the most common data points and is not an exhaustive mapping of all possible variables. ### Group Header node The Group Header (GrpHdr) node includes details covering the entire scope of the file. | Object | Field | Pain.008 element | Further info | | --- | --- | --- | --- | | N/A | messageId | MsgId | Unique reference generated by FinDock | | N/A | N/A | CreDtTm | Time file was generated, Y-m-d\TH:i:s | | N/A | totalRecords | NbOfTxs | Calculated during file generation | | N/A | totalAmount | CtrlSum | Calculated during file generation | | N/A | Name | InitgPty / Nm | From target on payment schedule | ### Payment Information node The Payment Information (PmtInf) node includes details about the creditor and the payment collection (batch of transactions). | Object | Field | Pain.008 element | Further info | | --- | --- | --- | --- | | N/A | batchId | PmtInfiId | Prefix `PAY-ID-` + section nr. + sequence type + file generation date | | N/A | N/A | PmtMtd | Always `DD` | | N/A | Batch Record Count | NbOfTxs | Calculated during file generation | | N/A | Batch Record Amount | CtrlSum | Calculated during file generation | | N/A | N/A | PmtTpInf / SvcLvl / Cd | Always `SEPA` | | N/A | N/A | PmtTpInf / LclInstrm / Cd | Always `CORE` | | Installment | Sequence Type | PmtTpInf / SeqTp | `RCUR`, `OOFF` or `FIRST` | | Payment Schedule | Collection Date | ReqdColltnDt | - | | N/A | Name | Cdtr / Nm | From target on payment schedule | | N/A | IBAN | CdtrAcct / Id / IBAN | From target on payment schedule | | N/A | BIC | CdtrAcct / Ccy | `EUR` added if multi-currency org | | N/A | N/A | CdtrAgt / FinInstnId / BICFI | From target on payment schedule | | N/A | N/A | ChrgBr | Always `SLEV` | | N/A | Creditor Id | CdtrSchmeId / Id / PrvtId / Other / Id | From target on payment schedule | | N/A | N/A | CdtrSchmeId / Id / PrvtId / Other / SchmeNm / Prtry | Always `SEPA` | ### Direct Debit Transaction Information node The Direct Debit Transaction Information (DrctDbtTxInf) node includes details of individual installments to be collected. | Object | Field | Pain.008 element | Further info | | --- | --- | --- | --- | | Installment | Final Payment Reference | PmtId / EndtoEndId | - | | Installment | Amount | InstdAmt / Ccy | `EUR` + Amount | | Installment | Mandate Id | InstdDrctDbtTx / MndtRltdInf / MndtId | From linked mandate | | Installment | Mandate Date Signed | InstdDrctDbtTx / MndtRltdInf / DtOfSgntr | From linked mandate | | Installment | BIC | DbtrAgent / FinInstanId / BICFI | If non-EEA account | | Installment | Account Holder Name | Dbtr / Nm | Taken from linked payment profile | | Installment | Country | Dbtr / PstlAdr / Ctry | If non-EEA account; taken from linked payment profile | | Installment | Street + House name or number | Dbtr / PstlAdr / AdrLine1 | If non-EEA account, from linked payment profile | | Installment | Zipcode + City | Dbtr / PstlAdr / AdrLine2 | If non-EEA account, from linked payment profile | | Installment | IBAN | DbtrAcct / Id / IBAN | - | | N/A | N/A | DbtrAcct / Ccy | `EUR` added if multi-currency org | | Installment | Bank Statement Description | RmtInf / Ustrd | - | ## Swiss pain.008 The Swiss direct debit methods CH-DD and LSV+ also use pain.008 files for payment instructions. However, there are Swiss-specific modifications for these two methods compared to the standard SEPA Direct Debit pain.008 files. The table below outlines the pain.008 file mapping for CH-DD and LSV+ that either overrides or adds to the standard mapping outlined above. | Object | Field | Pain.008 element | Further info | | --- | --- | --- | --- | | N/A | N/A | PmtInf / PmtTpInf / SvcLvl / Prtry | Always `CHTA` | | N/A | N/A | PmtInf / PmtTpInf / LclInstrum / Prtry | `CH-DD` of `LSV+` | | N/A | Company Name | PmtInf / Cdtr / Nm | Target on payment schedule | | N/A | Bank Account Number | PmtInf / CdtrAcct / Id / IBAN | Target on payment schedule | | N/A | Bank Account Addition | PmtInf / CdtrAgt / FinInstnId / ClrSysMmbId / MmbId | From target on payment schedule | | N/A | ESR Participant Number | PmtInf / CdtrAgt / FinInstnId / Othr / Id | From target on payment schedule | | N/A | Creditor Id | PmtInf / CdtrSchmeId / Id / PrvtId / Other / Id | From target on payment schedule | | N/A | Creditor Id | PmtInf / CdtrSchmeId / Id / PrvtId / Other / SchmeNm / Prtry | Always `CHLS` | | Installment | Final Payment Reference | DrctDbtTxInf / PmtId / InstrId | - | | N/A | N/A | DrctDbtTxInf / PmtId / EndtoEndId | Always `NOTPROVIDED` | | Installment | Amount | DrctDbtTxInf / InstdAmt / Ccy | `CHF` + Amount | | Installment | BIC | DrctDbtTxInf / DbtrAgent / FinInstanId / ClrSysMmbId / MmbId | - | | N/A | N/A | DrctDbtTxInf / RmtInf / Strd / CdtrRefInf / Tp / CdOrPrtry / Prtry | Always `ESR` | | Installment | Final Payment Reference | DrctDbtTxInf / RmtInf / Strd / CdtrRefInf / Ref | - |