Changelog
Changelog
Why This Migration is Required
The November 16, 2026 Fedwire ISO 20022 changes are the forcing function for V2. As part of this release, Fedwire is replacing fully unstructured postal addresses with a hybrid address format. The new format supports either fully structured addresses or structured addresses with up to two free-form address lines, but at minimum requires country and town_name as structured fields. Today, the V1 create-wire request accepts a fully unstructured address (line_one, line_two, line_three). After November 16, that shape will no longer be accepted. V2 introduces a new address object that supports the ISO hybrid address format. Since this changes the request schema, it requires a new API version rather than an in-place update to V1.
V2 also enforces stricter validation on all rail-bound text fields, rejecting carriage returns, line feeds, tabs, and whitespace-only values.
Since this migration already requires a new API version, V2 also introduces a focused set of improvements including corridor classification, consolidated routing identifiers, and enum-based return and rejection reasons so partners only need to migrate once instead of absorbing multiple breaking changes over time.
Timeline
The detailed migration runbook including the per-program cutover sequence, V1 deprecation timing, and maintenance windows will be shared as the migration plan is finalized. Contact your TAM with questions about your specific timeline.
Summary of Breaking Changes
1. Update Wire Creation (POST /v2/wires)
Several fields in the request body have changed. The top-level diff:
1a. corridor_type Is Now Required
Set to "domestic" or "international". This value drives the validation rules for several other fields below.
In addition, you may also include the new optional ultimate_debtor object:
1b. Routing Number Moved To local_routing_identifier.value
creditor_agent.routing_number no longer exists in v2. Pass the 9-digit ABA routing number through creditor_agent.local_routing_identifier.value instead. This field is required when corridor_type is "domestic".
instructed_agent if you use it.
1c. business_identifier_code (BIC) Is Now Corridor-type Conditional
In v1, BIC was informally required for international wires. In v2 this is enforced:
corridor_type: "international"→business_identifier_coderequiredcorridor_type: "domestic"→business_identifier_codenot accepted
1d. creditor.address Is Restructured
v2 adopts an ISO 20022 hybrid address format. line_three is removed and two new required fields are added: town_name and country.
If you were putting city/state/country intoline_twoorline_three, split those values into the new structured fields.
1e. Read-only Fields Removed From Request Schemas
In v1,payment_identifiers and remittance_details included several readOnly fields that were silently ignored in requests. In v2 these are absent from the request schema entirely — sending them will cause an error. If your code serializes a full wire object back into a create request, strip these fields first.
payment_identifiers — only end_to_end_identification is accepted; remove:
message_identification,uetr,instruction_identification,return_identification
remittance_details — only message_to_creditor and transfer_purpose are accepted; remove:
payment_notification,message_to_receiving_fi,fi_to_fi_message
2. Update Wire Return Reasons
POST /v2/wires/{wire_id}/return renames return_code to reason and replaces ISO 20022 codes with human-readable strings.
v1 request:
Full Mapping
3. Handle New Response Fields
v2 wire responses include new fields. You don’t have to use them, but you should not break if they appear.4. V1 Return Window
Wires submitted through the V1 API before the migration deadline will remain returnable for 3 months after November 16. After February 16, 2027, V1 wires can no longer be returned. If you have V1 wires that may need to be returned, submit any return requests before that window closes.Detailed Changes
Wire V2 Object
The V2 wire object keeps the overall V1 shape and field names, with a focused set of ISO-driven additions and changes. The most significant differences from V1 are the hybrid address model, the consolidation of routing numbers intolocal_routing_identifier, the new corridor_type and initiating_party fields, and the move from raw ISO codes to normalized enums on return reasons.
Key Changes vs. V1
Statuses
Wire statuses are unchanged from V1 for this migration. The full status set (created, scheduled, processing, posted, under_review, rejected, canceled, cancel_pending) continues to be returned as it is today.
The planned changes differ by direction:
- Outgoing wires:
scheduled,processing, andcancel_pendingwill be deprecated, leaving the lifecyclecreated→under_review→posted/rejected/canceled. - Incoming wires:
under_reviewwill become an active status (and thewire.under_reviewwebhook will begin firing for incoming wires), leaving the lifecycleunder_review→posted/rejected.
Example Wire V2 Object
Detailed API Changes by Endpoint
Create a Wire:POST /v2/wires
V2 Request Example
GET /v2/wires
Retrieve a Wire:
GET /v2/wires/{wire_id}
Update a Wire:
PATCH /v2/wires/{wire_id}
Cancel a Wire:
POST /v2/wires/{wire_id}/cancel
Return a Wire:
POST /v2/wires/{wire_id}/return
Request Return:
POST /v2/wires/{wire_id}/request_return
For the full request and response schema, see the Return Requests guide.
Reject Return Request:
POST /v2/wires/{wire_id}/reject_return_request
For the full request and response schema, see the Return Requests guide.

