my-flow / fintex

Elixir-based client library for HBCI 2.2 and FinTS 3.0
Other
27 stars 17 forks source link

Lastschriften #9

Open zimt28 opened 8 years ago

zimt28 commented 8 years ago

Hi there,

thanks for sharing this library! Do you have any plans to support "SEPA-Lastschriften"? If not, do you think it would be difficult to implement this on my own?

my-flow commented 8 years ago

Hi @zimt28,

I have currently no plans to implement SEPA direct debit (short: SDD, “SEPA-Lastschriften”), but I will accept pull requests. If you want to implement this feature, you could proceed like this:

  1. Formally apply for a Creditor Identifier.
  2. Find a bank that supports SDD via HBCI, such as Postbank.
  3. Sign an SDD collection agreement with your bank.
  4. Generate a unique mandate ID.
  5. Submit SDD via online-banking application in such a way that you can trace the transmitted HBCI data (e.g. via man-in-the-middle proxy or via in-app HBCI history/log).
  6. Implement required HBCI segments by analyzing the data transfer of step 5.
  7. Implement more abstract FinTex high-level commands (methods) which makes an HTTP call using the segments defined in step 6.

Improve your algorithm by running steps 2 - 7 with multiple banks. Lather, rinse, repeat ;-)

Good luck!

iamtorsten commented 7 years ago

Look at libfintx https://github.com/mrklintscher/libfintx ... There it is already done. We have to translate code from c# to elixir on this point.

zimt28 commented 7 years ago

@mrklintscher Nice! As I don't know much about the banking standards and converting it to Elixir might be quite time consuming, it might be easier to use AWS Lambda/ Serverless or ExSharp, but I'm not sure if the latter could work on Linux.

iamtorsten commented 7 years ago

You can use mono. It runs on windows and all unix based systems.

zimt28 commented 7 years ago

@my-flow Can you recommend a Mac app that has HBCI message logs?

zimt28 commented 7 years ago

nemiah/phpSepaXml creates the messages and should be easy to convert to Elixir. I'll play around with it a bit :)