We are no longer accepting new integrations with the Payout API; use the Transfers API instead. With the Transfers API, you can:
- Handle multiple payout use cases with a single API.
- Use new payout functionalities, such as instant payouts.
- Receive webhooks with more details and defined transfer states.
- Building a new integration, refer to Pay out to third-party cards to integrate with the Transfers API.
- Already integrated with the Payout API, reach out to your Adyen contact for information on how to migrate to the Transfers API.
Adyen supports paying out to Mastercard and Visa cards instantly, immediately returning the result of the payout attempt.
With one /payout call, you can pay out to your customers for a variety of money transfer and funds disbursement use cases.
The funds will be made available within 30 minutes, but are typically available within 2 minutes. How long it takes depends on the issuer. And, the payout will immediately be reflected on the cardholder's debit card balance or open-to-buy credit limit.
There are two main use cases for instant card payouts:
- Funds disbursements: you pay out to your sellers, customers, freelancers, and so on. The purpose is typically crediting someone for delivering goods or services.
- Money transfers: you facilitate the transfer of money between two individuals, virtual wallets, or accounts. The purpose is typically moving funds.
These two use cases require different fields to be submitted in the payout request, as you can see in the examples.
How it works
-
Contact your Adyen account manager or our Support Team to enable instant card payouts.
Using instant card payouts often requires a local entity, and requires compliance approval and additional configuration on our end. -
Configure your account to receive additional details in the API response.
You need these details to determine if the card is eligible for payouts. You also need additional details if you plan to make recurring payouts. -
Make a zero-auth payment to check if the card is eligible for payouts.
If you plan to make recurring payouts, tokenize the card details by adding some parameters to the zero-auth payment request. You can then use the token to make future recurring payouts. -
Make a payout. See money transfers or funds disbursements.
Enable additional details in the API response
- In your Customer Area, go to Developers > Additional data.
- Select the fields that you want to include.
- To get the card eligibility details, under Card, select Card bin payout details.
- To get the card BIN details, under Card, select Card bin details. Among other things, this will return the
fundingSource
and thecardBin
. - To get the recurring details in the response so you can make more payments to the same card, under Payment, select Recurring details.
- Select Save configuration.
Check if the card is eligible for payouts
-
Submit a POST /payments request with:
- merchantAccount: your merchant account.
- paymentMethod: an object containing your customer's card details.
You can only pass raw card data if you are fully PCI compliant. Otherwise, use our Card Component to securely collect and encrypt card details.
- amount: set the
amount.value
to zero, and theamount.currency
to the currency that is applicable to the card.
-
Check the payoutEligible parameter in the response. If the card is eligible for payouts, the possible values are:
- Y: eligible for payout. For Mastercard, this means that the card is eligible for both domestic and cross-border payouts.
- D: applies only to Mastercard. This means that the card is eligible only for domestic payouts.
If you receive an N or U, the card cannot be used for payouts.
-
Check the fundsAvailability parameter in the response. The possible values are:
- I: The card supports instant funds.
- N: The card does not support instant funds.
For Mastercard, the field is only returned if
payoutEligible
is Y or D.
Tokenize the card details
For recurring payouts, you have to tokenize the card details. You can do this by creating a recurring contract through a /payments request.
The example below combines the zero-auth call with creating a token that represents the card details.
Funds disbursements
The examples below demonstrate how to send a one-off or recurring funds disbursement payout. Submit this request to the /payout endpoint.
The data you submit in your requests must meet our requirements to pass our data validation checks.
Money transfers
The examples below demonstrate how to send a one-off or recurring payout to transfer money from one individual to another, and how to transfer money from a virtual wallet or account onto a card.
The difference between these scenarios is the funding source, and what you send in the fundSource
object.
For individuals:
- Funds are transferred from one card to another.
- Provide the details of the sender in the
fundSource
object. - The
additionalData.fundingSource
is usuallyDEBIT
.
For virtual wallets or accounts:
- Funds are cashed out from the wallet or account onto a card.
- Provide the details of the virtual wallet or account that the funds are moved out of in the
fundSource
object. - The
additionalData.fundingSource
isDEPOSIT_ACCOUNT
. The source is a deposit account because the virtual wallet or account is provided by a separate company. The person who opened the virtual wallet or account owns the funds deposited in it. The funds can be transferred to their own card, or to a different person's card.
In addition, for Visa transactions:
- Include a
networkTxReference
. With money transfers, the payout is preceded by a 'pay-in' transaction where funds go from the shopper to the merchant. In the case of Visa transactions, you can connect the two transactions by including thenetworkTxReference
from the pay-in response in your payout request.
Submit your payout request to the /payout endpoint. The data you submit in your requests must meet our requirements to pass our data validation checks.
Data validation
We perform additional validations when facilitating money transfers between different entities, and decline transactions where the data provided does not meet our requirements.
- The
shopperName
, andbillingAddress
fields values can not:- Consist only of spaces, symbols, numbers.
- Include emojis.
- Be N/A, or null.
- The
shopperName
, andbillingAddress
fields can only contain the following special characters:,
,.
,;
,:
,-
,—
,/
,\
,+
,&
,!
,?
,@
,(
,)
,"
,'
. - The
shopperName
can not be a common placeholder name, like John Doe. - The combined number of characters for the
firstName
andlastName
fields in theshopperName
can not be less than 3. - The
billingAddress.street
field can not consist of less than 3 characters. - The different fields in the
billingAddress
can not have the same value. - The
dateOfBirth
can not be earlier than 1900.
Supported countries/regions and currencies
You can only make domestic payouts. This means that you can only pay out to a card when it is used in the country/region of its issue, and in the currency of that country/region. For cards issued in the European Economic Area (EEA), payouts inside the EEA are considered domestic.
In other cases, for cross-border payouts, contact your account manager or our Support Team. In most cases, a local entity is required.
Below is the list of countries/regions where instant card payouts are allowed:
Recipient country/region | Card payouts |
---|---|
Australia | |
Austria | |
Belgium | |
Bulgaria | |
Canada | |
Croatia | |
Cyprus | |
Czech Republic | |
Denmark | |
Estonia | |
Finland | |
France | |
Germany | |
Greece | |
Hungary | |
Iceland | |
Ireland | |
Italy | |
Latvia | |
Liechtenstein | |
Lithuania | |
Luxembourg | |
Netherlands | |
Norway | |
Poland | |
Portugal | |
Romania | |
Slovakia | |
Slovenia | |
Spain | |
Sweden | |
Switzerland | |
United Kingdom | |
United States |