Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong default value ChrgBr #6

Closed
Nymuxyzo opened this issue Jul 3, 2024 · 7 comments
Closed

Wrong default value ChrgBr #6

Nymuxyzo opened this issue Jul 3, 2024 · 7 comments

Comments

@Nymuxyzo
Copy link

Nymuxyzo commented Jul 3, 2024

When a new SPS::CreditTransfer transaction is created, regardless of the value selected for service_level, builder.ChrgBr('SLEV') is always executed. According to the ISO manual, SLEV may only be used for SEPA payments.

image

Tested with ZKB in Switzerland

Code:

builder.ChrgBr('SLEV')

@tobischo
Copy link
Member

tobischo commented Jul 3, 2024

Hi @andre-m-dev
interestingly we have been using this for years without any issues or complaints for transfers within switzerland.

The service level currently only influences the service level code:

if group[:service_level]

So in my opinion, service_level should not directly affect the charge bearer.

We could make it optional to provide the value and use the provided charge bearer value instead of using the SLEV value.

@tobischo
Copy link
Member

tobischo commented Jul 3, 2024

As per page 47:
https://www.six-group.com/dam/download/banking-services/standardization/sps/ig-credit-transfer-v2.0.2-de.pdf

Bildschirmfoto 2024-07-03 um 13 52 40

So you are right, only for SEPA it must always be SLEV. I am wondering why it would be invalid in the general case though. Then again, we are always using an IBAN.

Could you maybe share a bit more information about your specific use case?

@Nymuxyzo
Copy link
Author

Nymuxyzo commented Jul 3, 2024

I created the transaction as follows:

sct.add_transaction(
  name:                   'XXX',
  bic:                    'ZKBKCHZZ80A',
  iban:                   'CHXXX',
  amount:                 2.00,
  currency:               'CHF',
  remittance_information: 'ACHTUNG TEST',
  batch_booking: false,
  instruction:            'InstrIDTEST',
  creditor_address: SPS::CreditorAddress.new(
    country_code:        'CH',
    street_name:         'XXX',
    building_number:     'XXX',
    post_code:           '8048',
    town_name:           'Zürich'
  )
)

and transmitted via: XE2. The technical support replied:
"In der Testdatei ist nach wie vor im B-Level der "falsche" Code für den Gebührenträger (Element "Charge Bearer") vorhanden (gelb markiert):
Gemäss dem ISO-Handbuch dürfte der Code SLEV nur für SEPA-Zahlungen verwendet werden:"

But maybe it's not the problem at all:
"Dieser Code wird aber offenbar von unserer Plausi-Prüfung ignoriert und lässt das File trotzdem durch. Abgesehen davon ist das File aber tiptop."

Hopefully this will help, otherwise you are welcome to get in touch by other ways.

@tobischo
Copy link
Member

tobischo commented Jul 3, 2024

Ok, so here would be my proposal:

  • let's make charge bearer a field that can be passed separately
  • since it is technically an optional field, I would actually make it optional and not set it unless it is given
  • add it as a very explicit mention in the release notes
  • Since we are still in the 0.x versions, it would not result in a major version change

Would that solve your issue?
In our system, I can take care of explicitly passing the field in the future so that nothing actually changes for our flow for now. Obviously I cannot take care of that for anyone else using it, but as stated: we are in terms of semver, still in the 0.x range

@Nymuxyzo
Copy link
Author

Nymuxyzo commented Jul 3, 2024

@tobischo thank you very much for your effort and time. Based on the answer from technical support, I was just wondering why the attribute "ChrgBr" is always added with the value SLEV. The proposal looks good to me and I can test it afterwards.

@tobischo
Copy link
Member

tobischo commented Jul 3, 2024

Pretty much because I may not have paid enough attention in the docs to the value being SEPA specific a few years ago 😄

@tobischo
Copy link
Member

tobischo commented Jul 3, 2024

Alright, prepared a change in #7

Please let me know what you think

@Nymuxyzo Nymuxyzo closed this as completed Jul 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants