python-sepaxml icon indicating copy to clipboard operation
python-sepaxml copied to clipboard

Support more SEPA versions?

Open henryk opened this issue 4 years ago • 8 comments

What is the primary obstacle to increasing the set of supported SEPA PAIN versions? For example https://github.com/raphaelm/python-fints/blob/18e361ab2c5beeddf126a601bfcc7753cf84efec/fints/client.py#L732 may choose pain.001.003.03 which I guess worked before schema validation was introduced, but fails now, because that schema is not in schemas/. Is it enough to drop the XSD file there, or are there more required steps?

henryk avatar Sep 07 '19 13:09 henryk

It should be enough to drop the XSD file, as long as the new version does not add any required fields or removes any fields. In this case, we'd need code changes to adjust the content. However, a simple test case should make that clear.

raphaelm avatar Sep 09 '19 12:09 raphaelm

comdirect needs pain.001.003.03, and yes, I fixed it by adding https://github.com/hbci4j/hbci4java/blob/master/src/main/resources/pain.001.003.03.xsd in https://github.com/raphaelm/python-sepaxml/tree/master/sepaxml/schemas to make SEPA transfer work.

Can you just add it to the package or are there some legal issues?

Thank you!

tloebhard avatar Jan 14 '21 15:01 tloebhard

I think it's fine, feel free to create a PR

raphaelm avatar Jan 14 '21 15:01 raphaelm

Ok, I checked that a bit more in detail, the only difference between pain.001.001.03.xsd and pain.001.003.03.xsd is the naming of complexType ServiceLevel (and the occurences). I the old version pain.001.003.03 it is called ServiceLevelSEPA.

As I cannot find it in https://www.iso20022.org/catalogue-messages/iso-20022-messages-archive?search=pain.001.003.03 , your pain.001.001.03.xsd is in big parts different to pain.001.001.03.xsd from hbci4java and pain.001.003.03 seems to be just an old standard - I just copy your pain.001.001.03.xsd to pain.001.003.03.xsd und set the namespace. For comdirect that works, too.

tloebhard avatar Jan 15 '21 14:01 tloebhard

@raphaelm If I understand it correctly the library is missing the latest pain that can be downloaded at https://www.iso20022.org/iso-20022-message-definitions?search=pain because BIC is no longer required since 2016. ref: https://en.wikipedia.org/wiki/ISO_9362

1oglop1 avatar Sep 16 '21 10:09 1oglop1

I've added a pain.001.003.03 I found online to the repo now, but I continue to be confused since that version does not exist at the link supplied by @1oglop1

raphaelm avatar Dec 05 '21 15:12 raphaelm

I continue to be confused since that version does not exist at the link supplied by @1oglop1

As written above - I think it is deprecated (and just still used by some banks)... Maybe that's why they don't list it anymore. But still confusing, that 001.001.03 is the current version and 001.003.03 is the old version.

tloebhard avatar Dec 06 '21 15:12 tloebhard

@raphaelm There is a possibility that I was referencing pain.001.001.XX - it took me a couple of days to understand the versioning scheme. Of the whole message set and realize that each message is versioned separately from the message set. I wish there was a simple description of their versioning scheme. Here is my understanding pain.AAA.BBB.CC. A - message type, B message sub-type, C - version. But I could be worng.

1oglop1 avatar Dec 06 '21 15:12 1oglop1

This is all very confusing. I've cleaned up versions recently and now added a PR to add the newest ones #59

raphaelm avatar Jun 15 '23 20:06 raphaelm