Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a71e716f

Von Moritz Bunkus vor etwa 1 Monat hinzugefügt

  • ID a71e716f4939a0f2006d87b2e0f4e2259606c8c1
  • Vorgänger 41b5fc79
  • Nachfolger 23781add

SEPA: Anpassungen an Standard Version 3.8 (pain.008.001.08 / pain.001.001.09)

Grundlage bildet »Anlage 3
der Schnittstellenspezifikation für die
Datenfernübertragung zwischen Kunde und
Kreditinstitut gemäß DFÜ-Abkommen
„Spezifikation der Datenformate“
Version 3.8 vom 08.04.2024
gültig ab 17. November 2024
Final Version«

von

https://www.ebics.de/de/datenformate

Unterschiede anzeigen:

SL/SEPA/XML.pm
134 134
  my $xml    = XML::Writer->new(OUTPUT      => \$output,
135 135
                                DATA_MODE   => 1,
136 136
                                DATA_INDENT => 2,
137
                                ENCODING    => 'utf-8');
137
                                ENCODING    => 'UTF-8');
138 138

  
139 139
  my @now       = localtime;
140 140
  my $time_zone = strftime "%z", @now;
......
143 143
  my $is_coll   = $self->{collection};
144 144
  my $cd_src    = $is_coll ? 'Cdtr'              : 'Dbtr';
145 145
  my $cd_dst    = $is_coll ? 'Dbtr'              : 'Cdtr';
146
  my $pain_id   = $is_coll ? 'pain.008.001.02'   : 'pain.001.001.03';
146
  my $pain_id   = $is_coll ? 'pain.008.001.08'   : 'pain.001.001.09';
147 147
  my $pain_elmt = $is_coll ? 'CstmrDrctDbtInitn' : 'CstmrCdtTrfInitn';
148 148
  my @pii_base  = (strftime('PII%Y%m%d%H%M%S', @now), rand(1000000000));
149 149

  
......
194 194
    }
195 195
    $xml->endTag('PmtTpInf');
196 196

  
197
    $xml->dataElement($is_coll ? 'ReqdColltnDt' : 'ReqdExctnDt', $master_transaction->get('execution_date'));
197
    if ($is_coll) {
198
      $xml->dataElement('ReqdColltnDt', $master_transaction->get('execution_date'));
199
    } else {
200
      $xml->startTag('ReqdExctnDt');
201
      $xml->dataElement('Dt', $master_transaction->get('execution_date'));
202
      $xml->endTag('ReqdExctnDt');
203
    }
204

  
198 205
    $xml->startTag($cd_src);
199 206
    $xml->dataElement('Nm', encode('UTF-8', substr($self->{company}, 0, 70)));
200 207
    $xml->endTag($cd_src);
......
207 214

  
208 215
    $xml->startTag($cd_src . 'Agt');
209 216
    $xml->startTag('FinInstnId');
210
    $xml->dataElement('BIC', $master_transaction->get('src_bic', 20));
217
    $xml->dataElement('BICFI', $master_transaction->get('src_bic', 20));
211 218
    $xml->endTag('FinInstnId');
212 219
    $xml->endTag($cd_src . 'Agt');
213 220

  
214 221
    $xml->dataElement('ChrgBr', 'SLEV');
215 222

  
223
    if ($is_coll) {
224
      $xml->startTag('CdtrSchmeId');
225
      $xml->startTag('Id');
226
      $xml->startTag('PrvtId');
227
      $xml->startTag('Othr');
228
      $xml->dataElement('Id', encode('UTF-8', substr($self->{creditor_id}, 0, 35)));
229
      $xml->startTag('SchmeNm');
230
      $xml->dataElement('Prtry', 'SEPA');
231
      $xml->endTag('SchmeNm');
232
      $xml->endTag('Othr');
233
      $xml->endTag('PrvtId');
234
      $xml->endTag('Id');
235
      $xml->endTag('CdtrSchmeId');
236
    }
237

  
216 238
    foreach my $transaction (@{ $transaction_group->{transactions} }) {
217 239
      $xml->startTag($is_coll ? 'DrctDbtTxInf' : 'CdtTrfTxInf');
218 240

  
......
230 252
        $xml->startTag('MndtRltdInf');
231 253
        $xml->dataElement('MndtId', $self->_restricted_identification_sepa2($transaction->get('mandator_id')));
232 254
        $xml->dataElement('DtOfSgntr', $self->_restricted_identification_sepa2($transaction->get('date_of_signature')));
233
        $xml->endTag('MndtRltdInf');
234 255

  
235
        $xml->startTag('CdtrSchmeId');
236
        $xml->startTag('Id');
237
        $xml->startTag('PrvtId');
238
        $xml->startTag('Othr');
239
        $xml->dataElement('Id', encode('UTF-8', substr($self->{creditor_id}, 0, 35)));
240
        $xml->startTag('SchmeNm');
241
        $xml->dataElement('Prtry', 'SEPA');
242
        $xml->endTag('SchmeNm');
243
        $xml->endTag('Othr');
244
        $xml->endTag('PrvtId');
245
        $xml->endTag('Id');
246
        $xml->endTag('CdtrSchmeId');
256
        $xml->endTag('MndtRltdInf');
247 257

  
248 258
        $xml->endTag('DrctDbtTx');
249 259

  
......
257 267

  
258 268
      $xml->startTag("${cd_dst}Agt");
259 269
      $xml->startTag('FinInstnId');
260
      $xml->dataElement('BIC', $transaction->get('dst_bic', 20));
270
      $xml->dataElement('BICFI', $transaction->get('dst_bic', 20));
261 271
      $xml->endTag('FinInstnId');
262 272
      $xml->endTag("${cd_dst}Agt");
263 273

  

Auch abrufbar als: Unified diff