Skip to main content
You can use this pattern to send payouts to multiple recipients with a single API call.
You can send payouts to PayPal accounts and Venmo users.
Useful resource: PayPal API Executor

Important information

Ensure to review the following information before you send payouts.

Rate-limiting guideline

PayPal does not have a published rate-limiting policy. To ensure site security and stability for merchants, we might temporarily apply rate limiting if we see unusual or abusive traffic. We hold the rate limit until we know the traffic is safe. For Payouts API, we allow 400 POST requests per minute. If you get an HTTP 429 Unprocessable Entity - RATE_LIMIT_REACHED message, you have exceeded the rate limit. If this affects your integration, contact Merchant Technical Support. You can use webhooks for status updates instead of repeated API calls through polling and reuse OAuth 2.0 access tokens (till their expiry time) to avoid unnecessary requests.

Payouts SDK

You can use the PayPal Payouts SDK as an alternative to direct API integration. The SDK provides methods for authentication, request construction, and error handling in multiple programming languages. For more information, see Payouts SDK.

End-to-end workflow

Payouts API end-to-end workflow diagram

Prerequisites

Send payouts

You can use the procedures in this section to send payouts using the Payouts API.

1. Create payout batch

Use a valid access token and make a POST call to the /v1/payments/payouts endpoint.
You can use the PayPal-Request-Id header parameter to implement idempotency.
Include the following parameters: For information on all parameters, see API reference.
A successful call returns a 201 Created response. The response includes the following parameters:

2. Track status

After placing the payouts request, you can code your app to track the payout status by polling for updates or using webhooks.

Poll for updates

Use a valid access token and make a GET call to the /v1/payments/payouts/{ID} endpoint.
Path parameter: ID is the payout_batch_id returned in the Create payout batch response.
You can customize the request and choose which information to get in the response. See Get specific payouts details.
A successful call returns a 200 OK response. The response includes the following parameters:
For information on all parameters, see API reference.

Use webhooks

Webhook events are external events that your app does not know about unless it receives event notifications. For example, a payout processed or completed is a webhook event. You can subscribe to such events and register a callback (listener) URL. When the event occurs, PayPal sends a notification to the registered callback URL. You can code your app to perform relevant actions based on the event notification it receives. To handle webhook events:
  1. Review the list of webhook events for Payouts and select the events for your app to subscribe.
  2. Subscribe to the selected webhook events through one of the following means:
    • PayPal developer account: Log in to your account, go to App details page > Features > Webhooks, and subscribe to webhook events.
    • Webhooks management API.
  3. In your server-side app code, define a webhook handler that:
For more information, see Webhooks overview and Webhooks integration guide.

3. Handle errors

PayPal uses standard HTTP status codes to indicate the result of an API request:
  • 2xx: Success
  • 4xx: Incorrect request (for example, missing parameter)
  • 5xx: PayPal server error
When an API call returns an error, the response includes a JSON body with the error details and HATEOAS links to help you diagnose and resolve issues. In your app code, include the logic to review the error code, message, and related links to determine the cause. Implement actions based on the error processing. For more information, see API responses.

4. Test

Use the PayPal sandbox environment to ensure your integration works as expected and meets all business and technical requirements before you go live. Testing your Payouts API integration involves:
  • Testing end-to-end payouts flow to verify money movement from your business account to your personal account (in case of PayPal payouts) or out of your business account (in case of Venmo payouts).
  • Testing API calls.

Test API calls: use test values and simulate responses

To simulate Payouts API responses, inject test values in the request payload or as a path parameter in the request URL. These methods allow you to trigger specific error responses without creating actual payouts.

5. Go live

  1. Set up live account.
  2. Set up webhooks to get real-time notifications about payout events, such as completed or failed payouts.
  3. Go live with your app.