Once you have generated Payment file (Pain001 – CustomerCreditTransferInitiation; pain.001.001.03; Norwegian: Utbetalingsfil) from vendor payment journal in D365FO via GER config “ISO20022 Credit transfer (NO)”, it can be sent directly to bank via integration or can be uploaded to Corporate Netbank manually.
Then, Bank will generate a payment status report via an electronic log (i.e. Pian002 file; Norwegian: Mottaksretur) on different level for receiving and rejecting the payment file.
PS. Pain001 file will be either in “Structured” or “Unstructured” format.
Pain002 file can occur on different levels:
- Group header (<OrgnlGrpInfAndSts>): It will confirm the receipt of the Pain.001 and perform content validation. It will consist either accepted (ACTC) or rejected (RJCT). It is related to syntax and compliance validations of Pain.001 file.

Note: If is rejected (i.e. <GrpSts>RJCT</GrpSts>) whole Pain.001 must be rectified and re-send to bank.
- Payment information level (<OrgnlPmtInfAndSts>): It will indicate if bank has found a business error on payment level. It will consist rejected (RJCT) or pending (PDNG) or accepted with change (ACWC) status.

Note: Tag Part (<PmtInfSts>PART</PmtInfSts>) will be applied when business error found on one or more credit transactions levels while all transactions are not rejected.
- Credit Transaction Level (<TxtInfAndSts>): It will indicate each single transaction status report. It will consist rejected (RJCT) or pending (PDNG) or accepted with change (ACWC) status.

Note: Rejected transactions (<TxSts>RJCT</TxSts>) need to be rectified that re-send to bank via generating a new Pain001 file.
Note: Pending transactions (<TxSts>PDNG</TxSts>) means that the transaction is on-hold because of insufficient funds or bank is still processing the transaction.
In order to get better overview of error messages while importing Pain002 files, you need to define error codes on (Account payable > Setup > Payment setup > Return format error codes). These external status reason codes are used 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. |
Useful links:
https://docs.microsoft.com/en-us/dynamics365/finance/localizations/emea-iso20022-file-formats
https://docs.microsoft.com/en-us/dynamics365/finance/accounts-payable/sepa-credit-transfer
*This post is locked for comments