---
title: "Transfers"
---
You can move money between [internal accounts](/platform/accounts/overview#internal-accounts), send and receive funds to and from [external accounts](/platform/accounts/overview#external-accounts), or send and receive USDC to and from crypto wallets.

<CardGroup cols={2}>
  <Card title="Internal transfers" href="/platform/transfers/internal-transfers">
    Move funds between internal accounts (Gravv accounts).
  </Card>

  <Card title="External transfers" href="/platform/transfers/external-transfers">
    Send and receive the same currency to external accounts via ACH, Wire, SEPA, InstaPay, or Faster Payments.
  </Card>
</CardGroup>

<CardGroup cols={2}>
  <Card title="International transfers" href="/platform/transfers/international-transfers">
    Send funds to bank and mobile money accounts in over 50 countries. Recipients receive them in their local currency for cross-border payments.
  </Card>

  <Card title="Crypto transfers" href="/platform/transfers/crypto-transfers">
    Send and receive USDC to and from crypto wallets
  </Card>
</CardGroup>

## Get supported transfer currencies

Use the [Get supported currencies](/api-reference/transfer/get-v1-transfer-supported-currencies) endpoint to retrieve all fiat currencies available for transfers:

```bash title="Get supported transfer currencies request"
curl --request GET \
     --url https://api.gravv.xyz/v1/transfer/supported-currencies \
     --header 'Api-Key: <API_KEY>'
```

The response returns an array of currency objects, each with a three-letter ISO 4217 `code` and a human-readable `name`:

```json title="Get supported transfer currencies response"
{
  "data": {
    "currencies": [
      { "code": "NGN", "name": "Nigerian Naira" },
      { "code": "EUR", "name": "Euro" },
      { "code": "GHS", "name": "Ghanaian Cedi" },
      { "code": "KES", "name": "Kenyan Shilling" },
      { "code": "USD", "name": "US Dollar" }
    ]
  },
  "error": null
}
```

## Get supported countries

Use the [Get supported countries](/api-reference/transfer/get-v1-transfer-supported-countries) endpoint to retrieve the countries Gravv supports for transfers.

```bash title="Get supported countries request"
curl --request GET \
     --url https://api.gravv.xyz/v1/transfer/supported-countries \
     --header 'Api-Key: <API_KEY>'
```

The response returns an array of country objects:

```json title="Get supported countries response"
{
  "data": {
    "countries": [
      {
        "currency_code": "NGN",
        "iso3_code": "NGA",
        "iso_code": "NG",
        "name": "Nigeria"
      },
      {
        "currency_code": "KES",
        "iso3_code": "KEN",
        "iso_code": "KE",
        "name": "Kenya"
      },
      {
        "currency_code": null,
        "iso3_code": "JPN",
        "iso_code": "JP",
        "name": "Japan"
      }
    ]
  },
  "error": null
}
```

Each country object contains the following fields:

| Field           | Description                                                                                                               |
| :-------------- | :------------------------------------------------------------------------------------------------------------------------ |
| `currency_code` | Three-letter ISO 4217 code for the country's local currency. Returns `null` where a local currency code is not available. |
| `iso3_code`     | Three-letter ISO 3166-1 alpha-3 country code.                                                                             |
| `iso_code`      | Two-letter ISO 3166-1 alpha-2 country code.                                                                               |
| `name`          | Full country name.                                                                                                        |

## Get supported countries for recipient addresses

Use the [Get supported countries for address](/api-reference/transfer/get-v1-transfer-supported-countries-for-address) endpoint to retrieve the countries Gravv accepts for recipient addresses in international transfers:

```bash title="Get supported countries for address request"
curl --request GET \
     --url https://api.gravv.xyz/v1/transfer/supported-countries-for-address \
     --header 'Api-Key: <API_KEY>'
```

The response returns an array of country objects. Each object includes a two-letter ISO 3166-1 `iso_code`, the country `name`, and a `states` array. Countries without administrative divisions return an empty `states` array:

```json title="Get supported countries for address response"
{
  "data": {
    "countries": [
      {
        "iso_code": "NG",
        "name": "Nigeria",
        "states": [
          { "code": "NG-LA", "name": "Lagos" },
          { "code": "NG-FC", "name": "Federal Capital Territory" }
        ]
      },
      {
        "iso_code": "JP",
        "name": "Japan",
        "states": []
      }
    ]
  },
  "error": null
}
```

Use the `iso_code` and state `code` values directly in the `remitter_address` object when building an international transfer request. The static table below lists all countries Gravv currently supports for pay-in and pay-out.

