Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / DynFOTech / ISO20022 Payment in D365FO ...

ISO20022 Payment in D365FO for Norway – Part 6 (Import Pain.002 file)

Alireza Eshaghzadeh Profile Picture Alireza Eshaghzadeh 10,829 Moderator

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.
Pain002-Group header (<OrgnlGrpInfAndSts>)

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.
Pain002-Payment information level (<OrgnlPmtInfAndSts)

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.
Pain002-Credit Transaction Level (<TxtInfAndSts>)

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:

CodeNameDescription
AC01IncorrectAccountNumberAccount number is invalid or missing.  
AC03InvalidCreditorAccountNumberCreditor account number invalid or missing
AC06BlockedAccountAccount specified is blocked, prohibiting posting of transactions against it.
AC07ClosedCreditorAccountNumberCreditor account number closed
AG06InvalidCreditorAgentCountryCreditor agent country code is missing or invalid
AG08InvalidAccessRightsTransaction failed due to invalid or missing user or access right
AM01ZeroAmountSpecified message amount is equal to zero
AM03NotAllowedCurrencySpecified message amount is an non processable currency outside of existing agreement
AM11InvalidTransactionCurrencyTransaction currency is invalid or missing
AM14AmountExceedsAgreedLimitTransaction amount exceeds limits agreed between bank and client
BE04MissingCreditorAddressSpecification of creditor’s address, which is required for payment, is missing/not correct (formerly IncorrectCreditorAddress).
BE07MissingDebtorAddressSpecification of debtor’s address, which is required for payment, is missing/not correct.
BE11InvalidCreditorCountryCreditor country code is missing or invalid
BE22MissingCreditorNameCreditor name is missing
CH03RequestedExecutionDateOrRequestedCollectionDateTooFarInFutureValue in Requested Execution Date or Requested Collection Date is too far in the future
CH20DecimalPointsNotCompatibleWithCurrencyNumber of decimal points not compatible with the currency
DU02DuplicatePaymentInformationIDPayment Information Block is not unique.
DUPLDuplicatePaymentPayment is a duplicate of another payment
NARRNarrativeReason is provided as narrative information in the additional reason information.
RC02InvalidBankIdentifierBank identifier is invalid or missing.
Generic usage if cannot specify between debit or credit account
RC03InvalidDebtorBankIdentifierDebtor bank identifier is invalid or missing
RC04InvalidCreditorBankIdentifierCreditor bank identifier is invalid or missing
RC07InvalidCreditorBICIdentifierCreditor BIC identifier is invalid or missing
RR01MissingDebtorAccountOrIdentificationSpecification of the debtor’s account or unique identification needed for reasons of regulatory requirements is insufficient or missing
RR02MissingDebtorNameOrAddressSpecification of the debtor’s name and/or address needed for regulatory requirements is insufficient or missing.
RR03MissingCreditorNameOrAddressSpecification of the creditor’s name and/or address needed for regulatory requirements is insufficient or missing.
RR04RegulatoryReasonRegulatory Reason
RR09InvalidStructuredCreditorReferenceStructured creditor reference invalid or missing.
Return format error codes

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

https://docs.microsoft.com/en-us/dynamics365/finance/accounts-payable/create-vendor-payments-payment-proposal


This was originally posted here.

Comments

*This post is locked for comments