Migrate records between versions
migrate_recordsMigrate flat payment records between pain.001 schema versions, reporting renamed, derived, or dropped fields during upgrade or downgrade.
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. |