diff --git a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php index 02af781..1540420 100644 --- a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php @@ -138,8 +138,17 @@ public function visitGroupHeader(GroupHeader $groupHeader) protected function getFinancialInstitutionElement($bic) { $finInstitution = $this->createElement('FinInstnId'); - $finInstitution->appendChild($this->createElement('BIC', $bic)); - + + if (strtoupper($bic)==='NOTPROVIDED') { + $other = $this->createElement ( 'Othr' ); + $id = $this->createElement ( 'Id', 'NOTPROVIDED' ); + $other->appendChild ( $id ); + $finInstitution->appendChild ( $other ); + } + else { + $finInstitution->appendChild($this->createElement('BIC', $bic)); + } + return $finInstitution; } diff --git a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php index 95b51f0..f078fc3 100644 --- a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php @@ -130,6 +130,9 @@ public function visitTransferInformation(TransferInformationInterface $transacti $directDebitTransactionInformation = $this->createElement('DrctDbtTxInf'); $paymentId = $this->createElement('PmtId'); + if ($transactionInformation->getInstructionId()) { + $paymentId->appendChild($this->createElement('InstrId', $transactionInformation->getInstructionId())); + } $paymentId->appendChild( $this->createElement('EndToEndId', $transactionInformation->getEndToEndIdentification()) ); diff --git a/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php b/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php index 39ee1c4..8555484 100644 --- a/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php +++ b/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php @@ -108,6 +108,9 @@ public function addTransfer($paymentName, array $transferInformation) $transfer->setMandateSignDate(new \DateTime($transferInformation['debtorMandateSignDate'])); } $transfer->setRemittanceInformation($transferInformation['remittanceInformation']); + if (isset($transferInformation['InstrId'])) { + $transfer->setInstructionId($transferInformation['InstrId']); + } if (isset($transferInformation['endToEndId'])) { $transfer->setEndToEndIdentification($transferInformation['endToEndId']); } else {