Migrate records between versions
migrate_recordsMigrate flat payment records between pain.001 schema versions (e.g., .03 to .09) when your bank requires a different version. Reports renamed, derived, or dropped fields during transformation.
Instructions
Migrate flat payment records between two pain.001 schema versions.
Use this to upgrade/downgrade records when your bank requires a
different pain.001 version than your source data uses (e.g. move
``.03`` rows to ``.09``); it reports which fields were renamed, derived,
or dropped. This transforms records only — run ``validate_records``
afterwards, then ``generate_message`` to emit XML.
Wraps :class:`pain001.migration.VersionMapper`. Returns the
migrated rows plus a summary of which fields were renamed,
derived, or dropped; ``{"error": ...}`` if either version is
unsupported.
Args:
records: Records in the ``from_version`` shape.
from_version: Source pain.001 version (e.g. ``"pain.001.001.03"``).
to_version: Target pain.001 version (e.g. ``"pain.001.001.09"``).
Returns:
``{"records": [...], "migrated": int, "from": str, "to": str}``
or ``{"error": ...}``.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| records | Yes | Flat payment records in the from_version shape, each a dict of field name → value, to transform to to_version. | |
| to_version | Yes | Target pain.001 schema version to migrate the records to, e.g. 'pain.001.001.09' — see list_message_types. | |
| from_version | Yes | Source pain.001 schema version the records currently use, e.g. 'pain.001.001.03' — see list_message_types. |