Search

Are you looking for test card numbers?

Would you like to contact support?

Default icon

Payouts in stages

Learn how to make payouts in stages to bank accounts or wallets.

Payouts in stages require a four-eye policy check: each payout has to be confirmed and checked by a user different from the one that submitted the payout. When you have enabled these payouts, you will have two API credentials:

  • storePayout@Company.[Company Account Code] – This user can store payout details, and submit payouts.

  • reviewPayout@Company.[Company Account Code] – This user can confirm or decline payouts.

The examples on this page show payouts to a bank account. For more examples of payouts in stages to bank accounts and wallets, see payout examples.

Using payouts in stages requires compliance approval and additional configuration on our end. To enable this functionality, contact your account manager or our Support Team.

Overview

Before you can make a payout, you have to save the account details.

You can choose to save the details and then submit the payout, or you can save the details and submit the details in one call. You can use the stored details when you make the next payout to the same account.

The last step is to confirm or decline the payout.

Store details and then submit a payout

  1. Make a /storeDetail call to save the payout details.
  2. Make a /submitThirdParty call to submit the payout.
  3. Confirm or decline the payout.

Store details and immediately submit a payout

  1. Make a /storeDetailAndSubmitThirdParty call to save the payout details and submit the payout.
  2. Confirm or decline the payout.

Store payout details

To submit a payout request, the details of the account receiving the funds need to be part of a recurring contract. The recurring contract is used for subsequent payouts to this account.

You can create a recurring contract with the /storeDetail call.

The following example shows how you can store bank account details.

You can also store the details when you submit the first payout.

Store payout details
curl https://pal-test.adyen.com/pal/servlet/Payout/v67/storeDetail \
-U "storePayout@Company.[YourCompany]":"YourBasicAuthenticationPassword" \
-H "Content-Type: application/json" \
-d '{
      "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
      "recurring" : {
          "contract" : "PAYOUT"
      },
      "bank": {
        "bankName": "AbnAmro",
        "bic": "ABNANL2A",
        "countryCode": "NL",
        "iban": "NL46TEST0136169112",
        "ownerName": "J. Klaassen",
        "bankCity": "Amsterdam",
        "taxId":"bankTaxId"
      },
      "shopperReference" : "YOUR_UNIQUE_SHOPPER_ID",
      "shopperEmail" : "shopper@example.com",
      "shopperName" : {
          "firstName" : "John",
          "gender" : "MALE",
          "lastName" : "Klaassen"
      },
      "dateOfBirth" : "1990-01-01",
      "entityType" : "Company",
      "nationality" : "NL",
      "billingAddress": {
          "houseNumberOrName":"6-50",
          "street":"Simon Carmiggeltstraat",
          "city":"Amsterdam",
          "country" : "NL",
          "postalCode":"1011 DJ"
      }
  }
}'
Example response
 {
   "pspReference" : "94100010652000161",
   "recurringDetailReference" : "2313642467170922",
   "resultCode" : "Success"
}

Submit a payout

After you store the account details, you can submit payouts with a call to /submitThirdParty. You have to use the details of a recurring contract when you request the payout.

To use the latest created recurring contract, use the LATEST values in the request.

The following example shows how to make a payout to the bank account shown in the previous example.

Submit a payout
curl https://pal-test.adyen.com/pal/servlet/Payout/v67/submitThirdParty \
-U "storePayout@Company.[YourCompany]":"YourBasicAuthenticationPassword" \
-H "Content-Type: application/json" \
-d '{
  "amount":{
     "value":1000,
     "currency":"EUR"
  },
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
  "recurring":{
      "contract":"PAYOUT"
  },
  "reference":"YOUR_REFERENCE_TO_THE_RECURRING_PAYMENT",
  "shopperReference":"YOUR_UNIQUE_SHOPPER_ID",
  "shopperEmail" : "shopper@example.com",
  "shopperName":{
     "firstName":"John",
     "lastName":"Klaassen"
  },
  "dateOfBirth":"1990-01-01",
  "entityType":"Company",
  "nationality":"NL",
  "selectedRecurringDetailReference":"LATEST"
}'
Example response
 {
   "pspReference" : "9935398566023719",
   "resultCode" : "[payout-submit-received]"
}

Store details and submit a payout

You can store the account details and make a payout request in a single API call to /storeDetailAndSubmitThirdParty

To do this, set the recurring value to RECURRING,PAYOUT. This creates a recurring contract, which can be used for subsequent payouts to this account. 

Store payout details
curl https://pal-test.adyen.com/pal/servlet/Payout/v67/storeDetailAndSubmitThirdParty \
-U "storePayout@Company.[YourCompany]":"YourBasicAuthenticationPassword" \
-H "Content-Type: application/json" \
-d '{
  "amount":{
     "value":2000,
     "currency":"EUR"
  },
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
  "recurring":{
      "contract":"RECURRING,PAYOUT"
  },
  "bank": {
    "bankName" : "Deutsche Bank",
    "iban" : "DE87123456781234567890",
    "countryCode" : "DE",
    "ownerName" : "A. Schneider"
  },
  "reference":"YOUR_REFERENCE_TO_THE_RECURRING_PAYMENT",
  "shopperReference":"YOUR_UNIQUE_SHOPPER_ID",
  "shopperEmail":"shopper@example.com",
  "shopperName":{
     "firstName":"A.",
     "lastName":"Schneider"
  },
  "dateOfBirth":"1990-01-01",
  "entityType":"Company",
  "nationality":"NL"
}'
Example response
 {
   "pspReference" : "9935398566023719",
   "resultCode" : "[payout-submit-received]"
}

Confirm or decline a payout

You need to confirm or decline all payouts within 7 days. After that, the payout expires.

You can also confirm and decline payouts manually in your Customer Area > Transactions > Payouts.

Confirm a payout

To confirm a payout, call the /confirmThirdParty endpoint. In the originalReference field, specify the PSP reference from the /submitThirdParty or the /storeDetailAndSubmitThirdParty response.

Confirm payout
curl https://pal-test.adyen.com/pal/servlet/Payout/v67/confirmThirdParty \
-U "reviewPayout@Company.[YourCompany]":"YourBasicAuthenticationPassword" \
-H "Content-Type: application/json" \
-d '{
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
  "originalReference" : "9935398566023719"
}'

Your admin user assigns the permissions for confirming payment details. If they are unable to assign these permissions, they should contact Support Team.

Decline a payout

To decline a payout, call the /declineThirdParty endpoint. In the originalReference field, specify the PSP reference from the /submitThirdParty or the /storeDetailAndSubmitThirdParty response.

Decline payout
curl https://pal-test.adyen.com/pal/servlet/Payout/v67/declineThirdParty \
-U "reviewPayout@Company.[YourCompany]":"YourBasicAuthenticationPassword" \
-H "Content-Type: application/json" \
-d '{
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
  "originalReference" : "9935398566023719"
}'

Your admin user assigns the permissions for declining payment details. If they are unable to assign these permissions, they should contact Support Team.

Supported countries

Below is an overview of the supported countries for each payout method, according to recipient country.

Note that: 

  • You can only pay out in the local currency.
  • In most cases, a local entity is required.
Recipient country Bank payouts Skrill PayPal Neteller
United States -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Austria -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Belgium -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Republic of Cyprus -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Estonia -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Finland -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
France -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Germany -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Greece -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Ireland -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Italy -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Latvia -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Liechtenstein -white_check_mark- -white_check_mark-
Lithuania -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Luxembourg -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Malta -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Principality of Monaco -white_check_mark-
Netherlands -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Poland -white_check_mark-
Portugal -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Republic of San Marino -white_check_mark-
Slovakia -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Slovenia -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Spain -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-
Switzerland -white_check_mark- -white_check_mark-
United Kingdom -white_check_mark- -white_check_mark- -white_check_mark- -white_check_mark-

See also