Skip to content

Add pain.001.001.09 and pain.008.001.08#117

Open
tobischo wants to merge 3 commits intosalesking:masterfrom
viafintech:feature/add-pain-formats-for-containers
Open

Add pain.001.001.09 and pain.008.001.08#117
tobischo wants to merge 3 commits intosalesking:masterfrom
viafintech:feature/add-pain-formats-for-containers

Conversation

@tobischo
Copy link
Copy Markdown
Contributor

This pull request adds support for generating pain.001.001.09 and pain.008.001.08 files.

The relevant difference is surprisingly small.

For pain.001.001.09 the difference for the requested execution date is that it now supports date and date time for facilitating instant transfers eventually. In this pull request I skipped the changes to allow passing a time or date time value instead of the date. It should be a relatively simple addition, however it does require adapting the validate_requested_date_after function to a higher degree than I would want to add in this pull request.

I would appreciate any feedback on this

@tobischo tobischo mentioned this pull request Jun 3, 2024
@MerciMax
Copy link
Copy Markdown

Hello @tobischo -> What's the status of this PR? Should we merge it anytime soon? cc @ledermann

@tobischo
Copy link
Copy Markdown
Contributor Author

As far as I am concerned it is ready.
The changes from a version we installed from an internal gem server have been in use in production since about the time I created this PR.

@MerciMax
Copy link
Copy Markdown

@tobischo Addressing this then:

In this pull request I skipped the changes to allow passing a time or date time value instead of the date. It should be a relatively simple addition, however it does require adapting the validate_requested_date_after function to a higher degree than I would want to add in this pull request.

does this bothered you in production for v9 sepa_xml ?

@tobischo
Copy link
Copy Markdown
Contributor Author

Not so far, but we also didn't need instant payment support.

For regular sepa credit transfers, date is sufficient.

For supporting sepa instant transfers, date time would be required.

That is why I highlighted that I skipped it. It needs to be clear that it is a limitation and for you to decide if you would want to merge the change as is or whether you'd require it to be added before merging.

PhilMeyr referenced this pull request in AdVitam/sepa_rator Apr 3, 2026
….001.12 support

- Add support for ISO 20022 newer schema versions (.09/.13 for credit
  transfers, .08/.12 for direct debits) using official ISO XSDs
- Use BICFI element instead of BIC for newer schemas (ISO renaming)
- Use nested ReqdExctnDt/Dt structure for pain.001.001.09+
- Fix PR #117 bug: use group[:account].bic (not account.bic) in
  direct_debit.rb CdtrAgt block to preserve per-group creditor BIC
- Add 24 new XSD validation tests (228 total, 0 failures, 100% coverage)
- Include AUDIT.md with comprehensive gem audit findings
tobischo added 2 commits April 3, 2026 16:09
Ruby 3.2 is only end of life since March 2026, so probably still used
Rails 6.1 is end of life since 2024
@tobischo
Copy link
Copy Markdown
Contributor Author

tobischo commented Apr 3, 2026

@MerciMax maybe worth looking at AdVitam/sepa_rator#1

The bug mentioned in there I also addressed here. We could introduce the newer formats directly as well or leave it for a separate change.
My use case were for embedding in container format, where those specific versions I added here are required (for the specific version of the container format).

Since tests started failing for ActiveModel 6.1 I updated the ruby and active model versions to cover some that are maybe only somewhat recently end of life: https://endoflife.date/rails, https://endoflife.date/ruby

Regarding sepa instant payments, I would suggest adding a requested_time field, which should be filled instead of the requested_date field to make the semantics clearer. Only one of the two should be set. I would also consider rather adding that in a separate change for ease of code review.

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

Successfully merging this pull request may close these issues.

2 participants