Implement EBICS 3.0
Implementation of H005 schema for EBICS 3.0. Fixes #9, fixes #98, fixes #100, fixes #30, fixes #25
Here's a summary of the changes that should help what changed and why:
- Addition of H005 files wherever there were H004 files before (serializers, signers, order types, test cases, XSDs, ...)
- Orders are now exported as OrdersH004 and Orders (for backwards compability, but deprecated).
- In addition OrdersH005 is exported
- Predefined orders for H004 and XSDs were moved to a separate H004 folder but didn't change in content
- Key management
- Keys don't contain an isPublic property anymore but rather a type which can be 'public', 'private' or 'certificate'.
- For H004, everything still works as before
- For H005, we no longer receive bank public keys in the HPB transaction but rather certificates. These are also stored in PEM format. Certificates for the subscriber's private keys are automatically generated when reading the private key
- Client output:
- As mentioned in issue #100, Client.upload does not return error codes, making it impossible to see what went wrong. I have therefore adapted the upload output to match the other operations while keeping as much backwards-compatibility as possible (keys 0, 1 and Symbol.iterator). PR #101 thus becomes obsolete.
- TypeScript types
- As I have a strong preference for TypeScript, I have added types for the public interface of the library, including the Client, BankLetter and all orders (H004 and H005)
- Test cases have been updated to still work for H004 and also cover H005
I'm happy for any suggestions
Alright, EBICS 3.0 is working and ready to be reviewed. @nanov
Note: The EBICS test enviornment of CreditSuisse seems to be dead. The one of ZKB has some flaws where pain.001 uploads submitted via EBICS 3.0 are accepted (both error codes 000000) but neither listed on their UI nor returned via camt.052/053. I talked to ZKB and they seemed to know / not to care too much since it's only a test platform. They suggested I just test in PROD :-).
The test platform of PostFinance is working fine though. Maybe someone with access to a French platform could also verify that it works on those?
Alright, EBICS 3.0 is working and ready to be reviewed. @nanov
Note: The EBICS test enviornment of CreditSuisse seems to be dead. The one of ZKB has some flaws where pain.001 uploads submitted via EBICS 3.0 are accepted (both error codes 000000) but neither listed on their UI nor returned via camt.052/053. I talked to ZKB and they seemed to know / not to care too much since it's only a test platform. They suggested I just test in PROD :-).
The test platform of PostFinance is working fine though. Maybe someone with access to a French platform could also verify that it works on those?
Thanks for the update! 🙌 We are currently running tests with Credit Suisse, PostFinance, and Raiffeisen.
@bvisible, what does your testing reveal so far? Have you found anything missing or not working? @nanov, are you or potentially another maintainer able to review?
@bvisible, what does your testing reveal so far? Have you found anything missing or not working?
@sumbricht Not yet, we are in contact with Raiffeisen because we have a problem with their EBICS 3.0 BTU. I will keep you informed.
@bvisible, @nanov, FYI, I'm also implementing H3K for CA-certificate-based initialization instead of using INI and HIA. It should be working already but I'll wait with integrating that until we have had a successful run against production.