# Card transfers

Card transfers provide a convenient way for Revolut users to send money to non-Revolut cards.
They are an alternative to bank transfers, offering the following benefits:

- **Wide currency support:** Send payouts in 50+ local currencies across 70+ countries. Ideal for international transactions.
- **Speedy settlement:** Transactions are typically settled within minutes, ensuring swift delivery of funds to your recipients.
- **No PAN required:** You don't need to know the card's number to be able to send money to it.
  For more details, see the [Card transfer flow](#card-transfer-flow).

## Card transfer flow

The flow differs depending on your scenario:

- **First transfer to a recipient:** Don't know the card's PAN number? No problem!
  Use the Business API to [issue a payout link](#transfer-via-payout-link), which the recipient can then redeem to their card.

  :::tip
  Use the payout link to collect the recipient's details, and save them as a counterparty for future use.
  :::

- **Subsequent transfers to the recipient:** Already saved the card [counterparty](/docs/guides/manage-accounts/counterparties/create-a-counterparty)?
  Make a [transfer to a saved card](#transfer-to-a-saved-card).

![Card transfer flow](/img/manage-accounts/p2c-flow.svg)

:::info
To send money to another Revolut account, use [Revtag](https://help.revolut.com/help/transfers/internal-transfers/username-payments/revtags/) instead.
:::

### Transfer via payout link

One of the benefits of the payout link is that you don't need to know the PAN of the card you want to send the money to.
The recipient fills in their own details when they use the link to redeem the money.

Use the [Business API](/docs/api/business) to make a card transfer via [payout link](/docs/guides/manage-accounts/transfers/payout-links).
To do that, [create a payout link](/docs/api/business#create-payout-link) and set the payout method to `card`.

![Card transfer flow - payout links](/img/manage-accounts/p2c-flow-payout-link.svg)

:::tip
You can also add other supported payout methods and let the recipient decide how they want to redeem the money.
:::

For more details, see [Send money via link: Link payment flow](/docs/guides/manage-accounts/transfers/payout-links#link-payment-flow), or:

[See the API reference: Create a payout link](/docs/api/business#create-payout-link)

### Transfer to a saved card

If you have already [added the card counterparty](/docs/guides/manage-accounts/counterparties/create-a-counterparty), you can use the [Business API](/docs/api/business) to make transfers to this card.

:::tip
To send money to a new card, send a [transfer via payout link](#transfer-via-payout-link).
:::

#### Check transfer field requirements

:::note
This feature is not available in Sandbox.
:::

##### When to check field requirements

Depending on the source account, destination, and business profile, certain fields in the [`/pay`](/docs/api/business#create-payment) request — such as `charge_bearer` or `reference` — become required or applicable.

Use the `/pay/fields` endpoint to dynamically discover these contextual fields before making a card transfer.
This is especially useful for high-volume or multi-currency payout systems where the required fields vary across card destinations.

##### Check field requirements

Send a `POST` request to the `/pay/fields` endpoint providing the following details:
- **Account ID**: The ID of the account from which the transfer will be made.
- **Counterparty ID**: The ID of the card counterparty.
- If the counterparty has multiple cards, you must also specify the **ID of the card** to which you want to transfer the money.

The response contains a `fields` array where each item describes a conditionally required or applicable field:
- **Name**: The field name, matching the [`/pay`](/docs/api/business#create-payment) endpoint request body (e.g. `reference`, `charge_bearer`).
- **Required**: Whether the field must be provided for this transfer.
- **Validation**: Validation rules such as `min_length`, `max_length`, and `regex` constraints.
- **Options**: Allowed values for the field, if applicable. Each option has a `value` and an optional `default` flag.

Fields with `options` must use one of the listed values when provided to the [`/pay`](/docs/api/business#create-payment) endpoint. Fields with `validation` must satisfy the specified constraints (e.g. character length, regex pattern).

:::warning [Always required fields are omitted]
Universally required fields (`amount`, `account_id`, `receiver`, and `request_id`) are always required when calling the [`/pay`](/docs/api/business#create-payment) endpoint and are **intentionally excluded** from the response.
:::

[See the API reference: Check transfer field requirements](/docs/api/business#get-payment-requirements)

#### Check costs and delivery time before paying

Before [executing a card transfer](#make-the-card-transfer), you can optionally request an indicative quote to see the expected fees and processing time without committing to the transfer.

This is especially useful when sending card transfers to different regions or currencies, where fees may vary significantly.

To get an indicative quote, use the `POST /pay/indicative-quote` endpoint with the same details you would provide for a transfer (account ID, recipient card, amount, currency).

:::note [Sandbox behaviour]
In Sandbox, this feature is only available for testing.
While **incomplete** or **invalid requests** will return production-like error responses, **complete and valid requests** in Sandbox do not return real values and `estimated_arrival` will always return `instant`.
:::

[See the API reference: Get an indicative quote](/docs/api/business#get-indicative-quote)

#### Make the card transfer

To make the card transfer, make a request to the `/pay` endpoint providing the following details:

- **Request ID**: An ID for the transaction, used for idempotency to prevent duplicate requests from being processed. UUID is recommended.
- **Account ID**: The ID of **your own** account from which you want to make the transfer.
- **Receiver's counterparty ID**: The ID of the card counterparty that you previously created.

  :::tip
  You can look up your counterparty's ID and card ID by [retrieving a list of your counterparties](/docs/api/business#get-counterparties) filtered by the counterparty's name.
  :::

- **Amount**: The amount of money that you want to send.
- **Currency**: The currency in which you want to make the transfer.
- **Reference**: A short message which helps both you and the recipient to identify the payment.
  You can use it to include an invoice number, account or transaction ID, or any other reference meaningful to you.

For more details, and example requests and responses:

[See the API reference: Create a transfer to another account or card](/docs/api/business#create-payment)

For more types of transfers, see the [transfers overview](/docs/guides/manage-accounts/transfers/send-money).

## Supported cards and fees

Card transfers are supported for non-Revolut cards issued by the following providers:

- Visa
- Mastercard

For pricing, go to [Card Transfer Fees - Business](https://www.revolut.com/legal/Card-Transfer-Fees-Business/) and select the proper country from the dropdown in the footer.

To learn about all fees and limits for different Revolut Business plans, go to [Business Fees](https://www.revolut.com/legal/business-fees/), select your country from the dropdown and select your plan.

## What's next

Now that you've made your transaction, learn how to:

- [Retrieve your transaction data](/docs/guides/manage-accounts/accounts-and-transactions/retrieve-transactions) and check its details
- [Map transaction data](/docs/guides/manage-accounts/accounts-and-transactions/map-transaction-data) to a related transaction or card