Skip to main content
Send international wire transfers to any bank worldwide via SWIFT. The platform handles message routing, correspondent banking and status tracking - you integrate one API and consume webhooks.

How a payment flows

You create the payment, the platform routes it through the SWIFT network to the correspondent bank, and every status change comes back to you as a webhook. The final outcome is confirmed by tracking the payment via the SWIFT Frontend API. Whether a payment needs approval before it goes out depends on the transaction signing setting of your tenant (see Before you send).
Created → Sent to clear → Accepted → Completed
Full status lifecycle, error flows and webhook reference: Payment statuses.

Before you send

One call covers it all - Bank Information API (GET /v1/bank-info/{iban}) returns the bank’s BIC, name and a per-scheme reachability map including SWIFTCORE:
Use it to validate the IBAN and confirm the beneficiary bank is a reachable SWIFT participant (SWIFTCORE: true). The same check also runs automatically during payment processing - a payment to an unreachable bank is rejected with a clear validation error instead of being sent.
You do not need to supply the beneficiary bank’s BIC - when the creditor account is an IBAN, the platform resolves the BIC from it automatically. Provide creditor.agentBic only when the account is not an IBAN.
Always send an Idempotency-Key header when creating payments to prevent duplicates during retries.
Without idempotency, network retries can result in duplicate transfers.
Signing is a per-tenant setting - it can be enabled or disabled for your account.Signing disabled (default): no approval step is needed - the payment goes straight out.Created → Sent to clear → ...Signing enabled: every payment must be approved before it is sent. It waits in To sign until approved via the sign, approve or decline APIs (or the PGW UI). Declining cancels the payment.Created → To sign → Signed → Sent to clear → ...

Create a payment

The full request and response schema - all fields, validation rules and examples - is in the API reference below.

Charge bearer

SWIFT transfers may incur correspondent bank charges. Choose who pays via charges.bearer:

DEBT

You pay all chargesBeneficiary receives the full amount

SHAR

Shared charges (default)Each party pays their bank’s fees

CRED

Beneficiary paysCharges deducted from the amount

Integration Checklist

1

Implement idempotency

Generate and persist Idempotency-Key for each payment
2

Check beneficiary bank reachability

Use the Bank Information API to confirm the beneficiary bank is a reachable SWIFT participant
3

Handle multi-currency

Specify source and target currencies correctly
4

Implement webhook receiver

Track payment status via webhooks

API Reference

Create SWIFT payment

POST /v2/transactions/swift - complete field documentation

Bank information

GET /v1/bank-info/{iban} - BIC and SWIFT reachability check

Sign transactions

POST /v1/transactions/signatures - sign payments waiting in To sign

Approve / decline

PATCH /v1/transactions/{id}:approve and :decline

Next Steps

Payment statuses

What happens after you send - every status explained

Cancel SWIFT payments

Stop a payment that should not go through
Last modified on August 5, 2026