# International Wires

[API Documentation](/api/international-wire/create-an-international-wire-transfer)

Looking to send funds internationally or receive funds from abroad? Column is directly integrated with SWIFT to power your international transfers. The Society for Worldwide Interbank Financial Telecommunication ([SWIFT](https://www.swift.com/)) is a secure global messaging system that runs on a global network of financial institutions. Column leverages the SWIFT messaging system to communicate money transfers between banks and local payment rails.

Via our APIs, you can send and receive international transfers through the SWIFT network. Moreover, Column's API exposes the raw SWIFT message for your incoming and outgoing international transfers. Alternatively, we can parse the SWIFT message and just provide the important fields in our API responses.

We built and operate our SWIFT connection to give you the broadest global reach. Access over 150 global currencies through our network and bring simplicity to your international transfers.

Missing something that you'd find helpful? Send us an email at <support@column.com>.

## Smallest Units of Currencies

Column follows [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) to decide the smallest units of currencies.

- Currencies without a minor unit:
  - `BIF`, `CLP`, `DJF`, `GNF`, `ISK`, `JPY`, `KMF`, `KRW`, `PYG`, `RWF`, `UGX`, `UYI`, `VND`, `VUV`, `XAF`, `XOF`, and `XPF`.
  - e.g., `amount=12345, currency_code=JPY` means `JPY 12345`

- Currencies with 3 digits after the decimal separator:
  - `BHD`, `IQD`, `JOD`, `KWD`, `LYD`, `OMR`, and `TND`.
  - e.g., `amount=12345, currency_code=KWD` means `KWD 12.345`

- Currencies with 4 digits after the decimal separator:
  - `CLF`, and `UYW`.
  - e.g., `amount=12345, currency_code=CLF` means `CLF 1.2345`

- All other currencies have 2 digits after the decimal separator.
  - e.g., `amount=12345, currency_code=EUR` means `EUR 123.45`
  - Note: `HUF` and `TWD` require whole forint values (digits after the decimal separator must be 0s)

#### Use Correct Smallest Units

Please make sure you are using the correct smallest units of the given currency codes in your requests. If you do not, transfer amounts may be wrong by orders of magnitude.

## Various Amounts

International wire transfers have several fields for different types of amounts and currencies.

| Field                        | Outgoing Transfer                                                                                                                                                                                                       | Incoming Transfer                                                                                                                        |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `amount/currency`            | Amount debited from a user's account. Always in the currency of originator account.                                                                                                                                     | Amount credited to a user's account. Always in the currency of beneficiary account.                                                      |
| `instructed_amount/currency` | Amount/currency specified in your API requests.                                                                                                                                                                         | Amount/currency ordered by an originator, before deduction of charges.                                                                   |
| `settled_amount/currency`    | Amount/currency sent to a beneficiary bank by Column. Always the same as `instructed_amount/currency`.                                                                                                                  | Amount/currency received by Column, after deduction of charges or FX conversions by intermediary banks.                                  |
| `returned_amount/currency`   | Amount/currency credited to a user's account after being returned by the beneficiary bank. Always in the currency of originator account. `return_amount` may be larger than `amount` depending on FX rate fluctuations. | Amount/currency debited from a user account after being returned to the beneficiary bank. Always in the currency of beneficiary account. |

In the following examples, we don't consider processing charges.

### Example: Outgoing Transfer

Suppose you call our API to send `CNY 6872.10` and the foreign exchange rate for `USD/CNY` is `6.8721` for your request. One week later, this transfer is returned by the beneficiary bank with `CNY 6672.10` after they deducted charges. The foreign exchange rate for `CNY/USD` is `0.1428` when funds are returned to Column. Field values of the international wire transfer object are as follows:

- `amount/currency`: `USD 1000.00` (i.e., `6872.10 / 6.8721`)
- `instructed_amount/currency`: `CNY 6872.10`
- `settled_amount/currency`: `CNY 6872.10`
- `returned_amount/currency`: `USD 952.77` (i.e., `6672.10 * 0.1428`)

### Example: Incoming Transfer

Suppose Column receives `CNY 6000.00` and the foreign exchange rate for `CNY/USD` is `0.1428` when Column receives funds. One week later, you request to return this transfer on behalf of the beneficiary. Field values of the international wire transfer object are as follows:

- `amount/currency`: `USD 856.80` (i.e., `6000.00 * 0.1428`)
- `instructed_amount/currency`: `CNY 6000.00`
- `settled_amount/currency`: `CNY 6000.00`
- `returned_amount/currency`: `USD 856.80`

## Valid Characters Permitted

The SWIFT message system defines a set of valid characters permitted in SWIFT messages. Messages with invalid characters will be rejected by the SWIFT system. The following regular expression can be used to detect invalid characters `[^A-Za-z\d/\-?:( ).,'+]`. Valid characters include:

- Alphanumeric: `A-Z`, `a-z`, `0-9` and spaces
- `.` (period)
- `,` (comma)
- `?` (question mark)
- `:` (colon)
- `/` (forward slash)
- `(` (left parenthesis)
- `)` (right parenthesis)
- `'` (apostrophe)
- `+` (plus)
- `-` (minus/hyphen)

The following additional characters are allowed for emails:

- `@` (at)
