# MT202 to pacs.009.001.08
The `mt202` migration feature converts a bounded parsed MT202 into the existing
generated `pacs.009.001.08::Document`. It does not define a second ISO 20022
model.
```rust
use rust_iso20022_migration::mt202;
let input = "{4:\n:20:REF-202\n:32A:260928USD1,00\n-}";
let conversion = mt202::convert(input)?;
let generated = conversion.message;
let report = conversion.mapping_report;
# Ok::<(), mt202::Mt202Error>(())
```
## Mapping table
| `20` | group/message transaction identifiers | Derived | One reference supplies message, end-to-end, and transaction identifiers. |
| `21` | `PmtId/InstrId` | Ambiguous | Provisional mapping because pacs.009 has no exact related-reference equivalent. |
| `32A` | settlement date/currency/amount | Ambiguous | Splits the value and applies an explicit `20YY` century policy. |
| `52A` | `Dbtr/FinInstnId/BICFI` | Exact | Direct validated BIC only. |
| `53A` | `InstgAgt/FinInstnId/BICFI` | Ambiguous | Provisional sender-correspondent role mapping. |
| `56A` | `IntrmyAgt1/FinInstnId/BICFI` | Derived | Maps the correspondent chain position to the first intermediary. |
| `57A` | `CdtrAgt/FinInstnId/BICFI` | Exact | Direct validated BIC only. |
| `58A` | `Cdtr/FinInstnId/BICFI` | Exact | Direct validated beneficiary-institution BIC. |
| `72` | none | Ambiguous | Requires manual interpretation. |
| any other tag | none | Unsupported | Visible in the report and `unmapped_fields`. |
Every parsed field is represented exactly once. Ambiguous and unsupported
fields remain in `unmapped_fields`, even when a provisional target is supplied.
Warnings and reports never copy field values.
## Validation and limitations
Dates, currencies, amounts, and BICs use the core SDK's typed helpers before a
generated field is created. The resulting generated document is checked by the
`pacs.009.001.08` L2 binding for declared transaction count and currency/amount
precision, then XML round-tripped as the same generated type.
Only direct 8- or 11-character BIC options are supported. Account-line options,
free-text institution variants, cover-payment semantics, and scheme-specific
correspondent policies are not reconstructed. The `20YY` century, tag `21`,
tag `53A`, and tag `72` require review. The conversion is not claimed lossless
and does not guarantee bank/network acceptance, certification, onboarding,
regulatory compliance, or legal compliance.