skillfed

sepaxml

Python SEPA XML implementations

sepaxml v2.7.0 359.6K downloads/30d#7,248 on PyPI134
Permissive license MIT License AGING released

What it is and what it does

sepaxml is a Python library that generates SEPA XML payment files conforming to ISO 20022 PAIN standards. It handles two main payment types: direct debits (PAIN.008 series) and credit transfers (PAIN.001 series), with support for multiple schema versions ranging from 001.02 to 001.11. The library takes payment configuration and transaction details as dictionaries, validates them against the appropriate XML schema, and exports compliant SEPA XML that can be submitted to European banks.

The package wraps xmlschema for validation and text-unidecode for character handling, making it suitable for applications that need to generate payment files programmatically. It supports optional address fields, batch processing, and various payment types (FRST, RCUR, OOFF, FNAL for debits; standard transfers for credits). The library is maintained but aging—last updated 346 days ago—and carries a permissive MIT license.

Use it for:

  • Generate direct debit XML files for recurring subscription or utility billing in SEPA countries
  • Create credit transfer payment files for payroll or vendor payments in EUR
  • Integrate SEPA payment generation into accounting or ERP systems for automated bank file export
  • Batch process multiple payments into a single validated SEPA XML document for bank submission
  • Support multi-country European payment workflows with optional address fields for compliance

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates SEPA XML payment files for direct debits and credit transfers, supporting multiple PAIN schema versions (001 and 008 series) used in European banking.

Yes, if you need SEPA XML generation for European banking workflows. The package is stable, has low dependencies, carries a permissive license, and handles the core use case well. However, be aware that maintenance is aging (last release 346 days ago) and Python version support in classifiers only extends to 3.6—verify compatibility with your target Python version before committing to production use.

Install

sepaxml on PyPI

pip

pip install sepaxml

uv

uv add sepaxml

poetry

poetry add sepaxml

Installing sepaxml

Before you install

Low install friction with only two runtime dependencies. Maintenance status is aging—last release was 346 days ago and the repository shows no recent commits, though it remains unarchived and has accumulated 134 stars.

License in practice

MIT License permits commercial and private use with minimal restrictions, requiring only attribution and inclusion of the license notice.

Quickstart

pip install sepaxml

from sepaxml import SepaDD
import datetime

config = {
    "name": "Account Holder",
    "IBAN": "NL50BANK1234567890",
    "BIC": "BANKNL2A",
    "creditor_id": "DE26ZZZ00000000000",
    "currency": "EUR"
}
sepa = SepaDD(config, schema="pain.008.001.02")
payment = {"name": "Payer", "IBAN": "NL50BANK1234567890", "amount": 5000}
sepa.add_payment(payment)
xml_output = sepa.export(validate=True)

Verify before relying

  • Whether the package works reliably with modern Python versions beyond 3.6, given classifiers list only up to 3.6
  • Current test coverage and whether all supported PAIN schema versions are actively validated
  • Whether validation against ISO 20022 schemas is comprehensive or has known gaps

Package facts

License MIT License (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 2 — xmlschema, text-unidecode
Maintenance aging — 346 days since the last release
Last repo commit
First released
Downloads 359,647/month — #7,248 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: sepaxml-2.7.0-py3-none-any.whl

Keywords: xml, banking, sepa

Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Other AudienceLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6

Tags

sepa xml generatordirect debit xmlcredit transfer xmlpain schema xmleuropean banking xmlsepa payment filexml banking format
bankingxml-generationsepa-payments

More Software Development packages