Establish FileAct connectivity with your correspondent bank through a SWIFT Service Bureau or SWIFT Alliance Lite2 connection; obtain the bank's BIC and the specific FileAct channel parameters (file naming conventions, SWIFT DN for the receiving bank, and envelope type)
Structure the pain.001 file per the bank's Message Implementation Guide: Group Header with InitgPty LEI and control totals; Payment Information blocks per currency or execution date; CreditTransferTransactionInformation blocks per beneficiary including Cdtr IBAN, CdtrAgt BIC, InstdAmt, and RmtInf structured references
Wrap the pain.001 XML in a SWIFT FileAct file envelope following the bank's naming convention (typically including date, time, and sequence number in the filename) and transmit via your SWIFT connectivity solution; retain the FileAct delivery notification as proof of submission
Await a pain.002 Payment Status Report returned via FileAct from the bank; parse TxInfAndSts for each transaction — ACCP (accepted) and ACWC (accepted with change) indicate processing; RJCT (rejected) includes StsRsnInf/Rsn/Cd identifying the specific rejection reason per the ISO 20022 external code list
For cross-border payments, populate CdtTrfTxInf/InstrForCdtrAgt with correspondent bank instructions if required; include the purpose code (Purp/Cd) from the ISO 20022 external purpose code list to facilitate regulatory classification in the recipient country
Implement end-to-end tracking by preserving the EndToEndId assigned in the pain.001 through the payment lifecycle and matching it against the UETR (Unique End-to-end Transaction Reference) generated by the bank if the payment moves over SWIFT gpi rails
Known gotchas
SWIFT FileAct has strict file size limits and character encoding requirements — files containing non-UTF-8 characters or exceeding the maximum file size are rejected at the FileAct transport layer before the bank sees the pain.001 content, and the rejection appears as a transport error rather than a payment status, which can be confused with a connectivity issue
Pain.001 files submitted for cross-border payments may be processed by multiple correspondent banks, each applying their own MIG interpretations; a field that is optional in your bank's MIG (such as structured remittance information) may be mandatory for the correspondent bank in the beneficiary country, causing the payment to be returned or held
Banks may reformat or truncate EndToEndId when passing payments through correspondent chains; the UETR is more reliable for end-to-end tracking via SWIFT gpi, but not all banks provide UETR assignment for non-gpi payments, leaving some cross-border payments without a trackable unique reference
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp