For some banks, such as BCV, not indicating anything in the Notification Instruction in combination with the Batch Booking value set to true is processed by the bank with a global debit notification without details.
In result, the camt.053 file does not include the EndToEndId.
If we want to receive the details of all the transactions from our payment in the camt.053 file and at the same time have a single grouped entry on our account statement, our XML has to contain CWD in the Notification Instruction.
This pull request adds the Notification Instruction based on six-group implementation guideline[^1] and tests.
Usage
$payment = new PaymentInformation(
'payment-001',
'InnoMuster AG',
new BIC('ZKBKCHZZ80A'),
new IBAN('CH6600700110000204481')
);
/**
* Available types:
* NOA - No Advice
* SIA - Single Advice
* CND - Collective Advice No Details
* CWD - Collective Advice With Details
*/
$payment->setNotificationInstruction(new NotificationInstruction('CWD'));
Notes
When used, this instruction should not be used withPmtInf/DbtrAcct/Tp/Code at the same time. The library doesn't support Code at the moment so it shouldn't be an issue
Some types are not compatible with the batch booking when set to false/true, this PR include a validation based on the Swiss Business Rules[^2]
The name Notification Instruction has been choose as it's referred as such in the implementation guideline. [...] notification instruction CND/NOA results in a confidential payment. I realized later that it seems to be more used with the term Debit Advice. I would be happy to rename to Debit Advice if this is preferred.
Motivation
For some banks, such as BCV, not indicating anything in the Notification Instruction in combination with the Batch Booking value set to
true
is processed by the bank with a global debit notification without details.In result, the camt.053 file does not include the
EndToEndId
.If we want to receive the details of all the transactions from our payment in the camt.053 file and at the same time have a single grouped entry on our account statement, our XML has to contain
CWD
in the Notification Instruction.This pull request adds the Notification Instruction based on six-group implementation guideline[^1] and tests.
Usage
Notes
PmtInf/DbtrAcct/Tp/Code
at the same time. The library doesn't supportCode
at the moment so it shouldn't be an issueReferences
[^1]: Implementation guideline: https://www.six-group.com/dam/download/banking-services/interbank-clearing/en/standardization/iso/swiss-recommendations/implementation-guidelines-ct.pdf#page=31 [^2]: Swiss Business Rule: https://www.six-group.com/dam/download/banking-services/interbank-clearing/en/standardization/iso/swiss-recommendations/business-rules.pdf#page=48