Search

Are you looking for test card numbers?

Would you like to contact support?

Marketpay icon

Payouts

Learn how to make automatic or manual payouts to sub-merchants.

After an account holder starts receiving funds to their account, these funds can be paid out according to the current payout tier of the account holder. For more information on possible tiers and Know Your Customer (KYC) checks required for payouts, refer to Verification checks.

You can support the following payout methods:

Automatic payouts

You can only perform automatic payouts for bank accounts. Automatic card payouts are not supported.

By default, your marketplace account is configured to automatically send payouts daily to all eligible account holders. If you want to change the default schedule for your marketplace, contact Support Team.

You receive an ACCOUNT_HOLDER_PAYOUT notification after automatic payouts are initiated. Refer to Payout notifications to learn about payout status codes.

Update automatic payout schedule for an account holder

In addition, you can set a new payout schedule for a particular account holder. To do this, make an /updateAccount call and pass a new schedule in the payoutSchedule object.

Possible schedule values are:

schedule Description
DAILY Every day at midnight (00:00:00 CET).
MONTHLY Monthly at midnight (00:00:00 CET).
WEEKLY Weekly at midnight (00:00:00 CET).
WEEKLY_ON_TUE_FRI_MIDNIGHT Weekly every Tuesday and Friday at midnight (00:00:00 CET).
BIWEEKLY_ON_1ST_AND_15TH_AT_MIDNIGHT Monthly on the 1st and 15th at midnight (00:00:00 CET).
YEARLY Every year on January 1st at midnight (00:00:00 CET).
HOLD No scheduled payout by Adyen.
In this case, you need to provide a reason for putting the payouts on hold.
All payouts to this account holder have to be now triggered manually.
Update payout schedule request
{
    "accountCode": "198360329",
    "payoutSchedule": {
        "{hint:Optional. How to handle previously scheduled payouts.}action{/hint}": "CLOSE",
        "{hint:Required when the schedule parameter is set to HOLD.}reason{/hint}": "Update the payout schedule",
        "schedule": "WEEKLY"
    }
}
Response
{
    "invalidFields": [],
    "pspReference": "8515659450108985",
    "accountCode": "198360329",
    "payoutSchedule": {
        "schedule": "WEEKLY"
    }
}

You receive a response that may contain any of the following status codes:

  • HTTP 200: You can use the information returned in API response but wait for the ACCOUNT_UPDATED notification to confirm when the resource has been updated in our central database.
  • HTTP 202: The request has been acknowledged and added to the queue. Use the response to check and confirm the changes you made. Wait for the ACCOUNT_UPDATED notification to confirm if the payout schedule has been successfully updated.

Manual payouts

Contact our Support Team to disable automatic scheduled payouts first before you can enable manual payouts.

Make a /payoutAccountHolder request to manually trigger payouts to your sub-merchant's bank account or to a card eligible for payouts.

Manual pay out to a bank account request
{
   "accountCode":"118731451",
   "amount":{
      "currency":"EUR",
      "value":99792
   },
   "accountHolderCode":"TestAccountHolder877209",
   "description":"12345 – Test",
   "bankAccountUUID":"000b81aa-ae7e-4492-aa7e-72b2129dce0c"
}
Response
{
   "invalidFields": [],
   "pspReference":"9914719437810080",
   "bankAccountUUID":"000b81aa-ae7e-4492-aa7e-72b2129dce0c"
}
Response in case of a validation error
{
  "invalidFields": [
    {
      "errorCode": 29,
      "errorDescription": "Account code does not exist or invalid",
      "fieldType": {
        "field": "accountCode",
        "fieldName": "accountCode"
      }
    }
  ],
  "pspReference": "8515659454939302",
  "resultCode": "Failed"
}

Wait for the ACCOUNT_HOLDER_PAYOUT notification to confirm the status of the payout. Refer to Payout notifications to learn about payout status codes.

For detailed information on possible error codes, refer to General error codes.

Payout notifications

After you make a /payoutAccountHolder request, wait for the ACCOUNT_HOLDER_PAYOUT notification to confirm the status of the payout.

The ACCOUNT_HOLDER_PAYOUT may contain any of the following status.statusCode:

statusCode Description Action to take
Initiated The payout has been scheduled to be sent to the sub-merchant's bank. Inform your sub-merchant to expect the funds within a couple of business days.
Failed A payout can fail due to any of the following reasons:

  • Validation error. For example, payouts are not enabled for the account holder. You receive an invalidFields array in the notification.
  • Funds have been returned to Adyen. The notification is sent with status.message.code 10_069.

For detailed information on error codes and messages, refer to General error codes.

A failed payout will have a new pspReference, different from the initial payout.
Check the notification and review why the payout failed.

  • If you received invalidFields, the payout failed due to validation error. Review and update the account holder payout state, if needed.
  • If you received status.message.code 10_069, the payout failed because the funds have been returned to Adyen. Ask your sub-merchant to check and update their bank account details.

If you are using automatic payouts and the payout has been returned, the account holder's payout state will be automatically disabled. Update their bank account details and re-enable the payout state by making an /updateAccountHolderState request.

You can link the returned payout to the initial payout using the MarketPay payments accounting report.

Refund last transactions

With the /refundNotPaidOutTransfers call, you can schedule a refund for all of the transactions that have occurred since the last payout and have not been paid out yet.

Refund not paid out transactions request
{
   "accountHolderCode":"TestAccountHolder502924",
   "accountCode":"189184578"
}
Response
{
   "pspReference":"9914764308750114",
   "resultCode":"Received"
}

Wait for the SCHEDULED_REFUNDS notification to confirm the status of the request.

See also