In this post there will be step by step setup requiring to enable a company to apply ISO20022 payment. Once you have imported ISO20022 from Microsoft repositories ISO20022 Payment in D365FO for Norway – Part 2 (Config) – DynFOTech, you need to activate provided configuration for each company in order to generate or import ISO20022 file:
- Legal entity (Organization administration > Organizations > Legal entities)
- Name: Company name.
- Address: The legal entity need to have a primary address with “Country/region”, “Street” and “Zip/postal code”. Country must have a value for ISO field (e.g. ISO code for Norway is “NO”.


This information will be found on Pain.001 and Camt054 files as follows:


And on “Attending note” while generating Pain.001 file:

- Contact information
- Phone: Primary phone number.
- Fax: Primary fax number.

Contact information will be found on cover letter excel file:

- Bank account: Company bank account.
- Giro account : Bank account number.

- Tax registration number: Use organization number for this field. If the company is tax registered, you can add “MVA” after the organization number.

- Return format error codes (Account payable > Setup > Payment setup > Return format error codes)
External status reason codes using for interpreting group status code with additional information that will show up while importing payment files. Following return error codes can be used:
Code | Name | Description |
AC01 | IncorrectAccountNumber | Account number is invalid or missing. |
AC03 | InvalidCreditorAccountNumber | Creditor account number invalid or missing |
AC06 | BlockedAccount | Account specified is blocked, prohibiting posting of transactions against it. |
AC07 | ClosedCreditorAccountNumber | Creditor account number closed |
AG06 | InvalidCreditorAgentCountry | Creditor agent country code is missing or invalid |
AG08 | InvalidAccessRights | Transaction failed due to invalid or missing user or access right |
AM01 | ZeroAmount | Specified message amount is equal to zero |
AM03 | NotAllowedCurrency | Specified message amount is an non processable currency outside of existing agreement |
AM11 | InvalidTransactionCurrency | Transaction currency is invalid or missing |
AM14 | AmountExceedsAgreedLimit | Transaction amount exceeds limits agreed between bank and client |
BE04 | MissingCreditorAddress | Specification of creditor’s address, which is required for payment, is missing/not correct (formerly IncorrectCreditorAddress). |
BE07 | MissingDebtorAddress | Specification of debtor’s address, which is required for payment, is missing/not correct. |
BE11 | InvalidCreditorCountry | Creditor country code is missing or invalid |
BE22 | MissingCreditorName | Creditor name is missing |
CH03 | RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture | Value in Requested Execution Date or Requested Collection Date is too far in the future |
CH20 | DecimalPointsNotCompatibleWithCurrency | Number of decimal points not compatible with the currency |
DU02 | DuplicatePaymentInformationID | Payment Information Block is not unique. |
DUPL | DuplicatePayment | Payment is a duplicate of another payment |
NARR | Narrative | Reason is provided as narrative information in the additional reason information. |
RC02 | InvalidBankIdentifier | Bank identifier is invalid or missing. Generic usage if cannot specify between debit or credit account |
RC03 | InvalidDebtorBankIdentifier | Debtor bank identifier is invalid or missing |
RC04 | InvalidCreditorBankIdentifier | Creditor bank identifier is invalid or missing |
RC07 | InvalidCreditorBICIdentifier | Creditor BIC identifier is invalid or missing |
RR01 | MissingDebtorAccountOrIdentification | Specification of the debtor’s account or unique identification needed for reasons of regulatory requirements is insufficient or missing |
RR02 | MissingDebtorNameOrAddress | Specification of the debtor’s name and/or address needed for regulatory requirements is insufficient or missing. |
RR03 | MissingCreditorNameOrAddress | Specification of the creditor’s name and/or address needed for regulatory requirements is insufficient or missing. |
RR04 | RegulatoryReason | Regulatory Reason |
RR09 | InvalidStructuredCreditorReference | Structured creditor reference invalid or missing. |
Example:

- Return format status mapping (Account payable > Setup > Payment setup > Return format status mapping)
External payment transaction status and group status codes existing in Pain.002, Camt.053 and Camt.053 files:
Description | Payment status | Return status |
Booked | Approved | BOOK |
AcceptedSettlementCompleted | Received | ACCC |
AcceptedCustomerProfile | Received | ACCP |
AcceptedFundsChecked | Received | ACFC |
AcceptedSettlementCompletedDebitorAccount | Received | ACSC |
AcceptedSettlementInProcess | Received | ACSP |
AcceptedTechnicalValidation | Received | ACTC |
AcceptedWithoutPosting | Received | ACWC |
AcceptedWithoutPosting | Received | ACWP |
PartiallyAcceptedTechnicalCorrect | Received | PATC |
Pending | Received | PDNG |
Received | Received | RCVD |
Rejected | Rejected | RJCT |
Example:

- Payment format code sets (Account payable > Setup > Payment setup > Payment format code sets)
Service level codes and local instrument needs to be defined and associates to method of payment. Some example for local instrument are as follows:
Code | Type | Name | Information |
NURG | Service level | NonurgentPayment | Payment must be executed as a non-urgent transaction, which is typically identified as an ACH or low value transaction. |
NUGP | Service level | NonurgentPriorityPayment | Payment must be executed as a non-urgent transaction with priority settlement. |
URGP | Service level | UrgentPayment | Payment must be executed as an urgent transaction cleared through a real-time gross settlement system, which is typically identified as a wire or high value transaction. |
SEPA | Service level | SingleEuroPaymentsArea | Payment must be executed following the Single Euro Payments Area scheme. |
IN | Local instrument | International payment | CrossBorderCustomerCreditTransfer |

- Method of payment – Vendor (Account payable > Setup > Payment setup > Method of payment)
- Payment status: Approved. Choose a payment status required for posting of payments.
- Payment type: Electronic payment.

- Bank account: Select a bank account that is already activated for payment with the bank. Following fields should be updated:
- Company ID: A specific value that is agreed with bank to send and receive payment file.
- IBAN
- SWIFT Code
- Division: A specific identifier for division of bank account. This field can be mandatory in regards to bank requirements.
- Address: Once this field is updated with a value, you can update division field.


- Payment specification (Account payable > Setup > Payment setup > Method of payment > Payment specification)
You need add domestic and foreign payment with local instrument and service level:

Domestics:

Foreign:

Payment specification – Foreign
- File formats > Generic electronic Export format : Yes
- File formats > Export format configuration : ISO20022 Credit transfer (NO)
- File formats > Return format secondary configuration: Camt.054
- File formats > Return format configuration : Pain.002

Note: Payment control can be used to define mandatory fields (e.g. Payment ID is mandatory)
Note: Payment attributes can be used to define attributes for the method of payment (e.g. Third-party bank)
- Method of payment – Customer (Account receivable > Setup > Payment setup > Method of payment)
- Payment status: Received. Choose a payment status required for posting of payments.
- Payment type: Electronic payment.

- Bank account: Select a bank account that is already activated for payment with the bank. Following fields should be updated:
- Company ID: A specific value that is agreed with bank to send and receive payment file.
- IBAN
- SWIFT Code
- Division: A specific identifier for division of bank account. This field can be mandatory in regards to bank requirements.
- Address: Once this field is updated with a value, you can update division field.


- File formats > Generic electronic Import format : Yes
- File formats > Import format configuration : Camt.054

- Bank statement format: In order to import electronic bank statement and automatic reconciliation, you need to setup bank statement format ISO20022 (Camt.053)

Then provide this statement format for bank account that you want to activate advanced bank reconciliation:

Then, the legal entity is activated for importing and exporting ISO20022 bank files.
Useful links:
*This post is locked for comments