To pay out funds to a third-party card, you must collect the card details, such as the card number and expiry date. With these details, you can also use the /payments endpoint to make requests for additional card data. For example, you can check if the card is eligible for payouts, or the details that you need to set up recurring payouts.
If you are fully PCI compliant, you are allowed to use raw card details to make API requests. Otherwise, you must collect and encrypt the card details using our Card Component. Then, you can use the encrypted card details to make API requests.
Additionally, if you are not fully PCI compliant, or want to make recurring payouts to a card, you must use the /payments endpoint to tokenize the card details before making a card payout request.
This page explains how to:
- Enable your account to receive additional card data.
- Check if the card is eligible for payouts.
- Store card details.
Requirements
Ensure that:
- You reached out to your Adyen contact to enable the feature on your account.
- Your company API credential (ws@Company.[YourCompanyAccount]) has the following roles to use with the Checkout API.
- Checkout webservice role
- Merchant Recurring role
- Checkout encrypted cardholder data
- (If you are fully PCI compliant) API PCI Payments role
- Your server receives and accepts webhooks.
Enable your account to receive additional data
To check the eligibility of a card or store card details, you need additional card data that you receive in a /payments response. However, you must first enable your account to receive additional data, such as:
- Card eligibility details
- The card's Bank Identification Number (BIN)
- Details regarding recurring payouts
To enable your account to receive additional data:
- 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 parameters, this enables the
cardBin
in the /payments response. - To get the details required to make recurring payouts to a card, under Payment, select Recurring details.
- Select Save configuration.
Check if the card is eligible for payouts
If you have enabled your account to receive eligibility details, you can check whether a card is eligible for payouts by making a zero-auth payment. Do the following:
-
Make a zero-auth payment by creating a POST /payments request, specifying the following parameters:
Request parameter Required Description amount.currency Set to the currency that is applicable to the card. amount.value Set to 0 (zero). paymentMethod An object that contains the details of the card that you want to pay out to. You can only include raw card data in the request if you are fully PCI compliant. Otherwise, use our Card Component to securely collect and encrypt card details.merchantAccount The identifier of your merchant account. reference Your unique reference to identify the payment request. returnUrl The URL to return in case that you must redirect the cardholder. The following tabs show how to make a zero-auth payment request using raw or encrypted card data.
-
In the response, check the following parameters in the
additionalData
object, which include eligibility information:Response parameter Possible values Description for Visa Description for Mastercard payoutEligible Y Eligible for payouts.
Eligible for both domestic and cross-border payouts.
D Not applicable
Only eligible for domestic payouts.
N or U Not eligible for payouts.
Not eligible for payouts.
fundsAvailability This is only returned ifpayoutEligible
is Y or DI The card supports fast funds.
The product type is Prepaid or Debit.
N Otherwise
Otherwise
Store card details
You must store card details using tokenization if:
- You want to make recurring payouts to the card.
- You are not fully PCI compliant, which means that you cannot process raw card details.
To tokenize and store card details:
-
Make a POST /payments request, specifying the following parameters:
Request parameter Required Description amount.currency Set to the currency that is applicable to the card. amount.value Set to 0 (zero) to combine with a zero-auth payment. paymentMethod An object that contains the details of the card that you want to pay out to. You can only include raw card data in the request if you are fully PCI compliant. Otherwise, use our Card Component to securely collect and encrypt card details.billingAddress An object that contains the address details of the cardholder. enablePayOut Set to true. merchantAccount The identifier of your merchant account. recurringProcessingModel Specifies the type of recurring payment.
— For one-off payouts: set to CardOnFile.
— For recurring payouts: set to Subscription.reference Your unique reference to identify the payment request. returnUrl The URL to return in case that you must redirect the cardholder. shopperReference Your unique reference to identify the cardholder. storePaymentMethod Set to true. The following tabs show examples that combine a zero-auth payment request with creating a token that represents the card details.
The token is created after a successful payment authorization. This ensures that the payment details are linked to an active, chargeable account.
-
Find the token in the
additionalData.recurring.recurringDetailReference
parameter. This parameter is included in:- The successful authorization response, if you enabled your account to receive additional data.
- The RECURRING_CONTRACT webhook.
The following tabs show examples for authorized payment responses that include the token.
-
In your system, store the following parameters together, so that the token is associated with the cardholder:
additionalData.recurring.recurringDetailReference
shopperReference
You must provide these values when making a card payout request.