✅
Link to the plugin page:
https://zeroqode.com/plugin/paypal-payouts-api-plugin-for-bubble-1739471560700x521530230982164350
Demo to preview the plugin:
✅
Live Demo:
https://rapidevplugins2.bubbleapps.io/payout
✅
Introduction
The PayPal Payouts API Plugin allows you to integrate PayPal’s mass payment system directly into your Bubble application. Using this plugin, you can send single or bulk payments to multiple recipients quickly and securely via PayPal.
This plugin also provides functionality to generate and manage PayPal access tokens, a requirement for authenticating and executing payout requests through PayPal’s REST API.
Key Features
- Direct PayPal Payout Integration: Send payments instantly to recipients using their PayPal email addresses.
- Single or Bulk Payments: Execute one-off transfers or batch payments within a single API call.
- Access Token Management: Generate secure OAuth access tokens for verified API calls.
- Seamless Bubble Workflow Integration: Automate payout operations as part of your app workflows.
- Trusted Security: Utilize PayPal’s secure payment infrastructure for compliance and safety.
- Versatile Use Cases: Ideal for marketplaces, affiliate programs, freelancer payouts, reward systems, and prize disbursements.
Prerequisite(s)
Before you begin setup, ensure you have:
- A PayPal Developer Account (sandbox and live environments).
- Access to your Client ID and Secret Key, which can be retrieved from the PayPal Developer Dashboard.
- A verified PayPal Business Account.
- Enabled Payouts API permissions in your PayPal app settings.
How to setup
Step 1. Obtain PayPal API Credentials
Obtain PayPal API Credentials:
- Log in to your PayPal Developer Dashboard.
- Navigate to My Apps & Credentials.
- Create or select an existing REST API app.
- Copy your Client ID and Secret Key for Sandbox and/or Live environments.
Step 2. Install the Plugin
- Open your Bubble Editor.
- From the left sidebar, go to the Plugins tab.
- Click Add Plugins.
- In the search bar, type Paypal Payouts API.
- Click Install (or Buy, if it’s a paid plugin).
- Once installed, you’ll see the plugin listed under Installed Plugins.
Step 3. Configure Plugin Settings
- In your workflow:
- Go to the Workflow Tab → When Page is Loaded.
- Add a Plugin Action → Access Token Sandbox (Testing).
- Input your PayPal credentials:
- Client ID:
Example:
plain textAfjr2pNZe6s1W3WV5cuQU...
Example:
plain textEA6Ohe25y_vq_OEbiKo0WzbpeQIwY07KJyX0IQOLYAHimwxwUEAP_n********************
- Generate Access Tokens by running the action. Tokens are valid for a limited time (usually 8 hours), so ensure they are refreshed as needed.
Step 4. Store Token Values in Bubble States
After generating the token, set the following custom states on your page to manage token data dynamically:
State Name | Description |
token | Stores the access token for authorization. |
expiration | Saves the token’s expiry time. |
error | Displays any token generation errors. |
Step 5. Test API Calls (Sandbox Environment)
To simulate a payment:
- Create a Button element → add a Workflow Action → Make Payout Sandbox.
- Fill in the following fields:
Field | Description |
Authorization | Enter your valid access token (prepend with “Bearer”). |
Batch ID | Unique transaction reference (must be unique for 30 days). |
Subject | Subject line for the recipient email notification. |
Message | Custom message in the recipient’s payout email. |
Value | Payment amount (e.g., “50.00”). |
Currency | Currency code (e.g., “USD”). |
Note | Optional note for the recipient. |
Receiver Email | Recipient’s PayPal email address. |
- Once successful, the API will return a
payout_batch_id. - Store this ID as a custom state on your Payment Details Group (e.g.,
payout_batch_id).
- Verify the transaction result via your PayPal Sandbox Dashboard.
Plugin Data Calls
Payout Information
This data call lets you retrieve the details of a specific PayPal payout — including the batch ID, transaction status, recipient info, and payout timing. It’s perfect for tracking a payment after it’s sent or confirming whether a batch has completed successfully.
Parameter | Description | Type |
Authorization | Enter a valid Access Token (use the “Access Token” actions provided by this plugin). Format it as Bearer [Access Token]. | Text |
Payout ID | The unique ID for a specific payout transaction you want to look up. | Text |
Returns:
Returns a JSON response containing the full payout batch information — such as payout status, sender details, and transaction breakdown.
json{ "body batch_header payout_batch_id": "text", "body batch_header batch_status": "text", "body batch_header time_created": "undefined", "body batch_header time_completed": "undefined", "body batch_header sender_batch_header sender_batch_id": "text", "body batch_header sender_batch_header email_subject": "text", "body batch_header sender_batch_header email_message": "text", "body batch_header funding_source": "text", "body batch_header amount currency": "text", "body batch_header amount value": "number", "body batch_header fees currency": "text", "body batch_header fees value": "number", "body": { "payout_item_id": "text", "transaction_id": "text", "activity_id": "text", "transaction_status": "text", "payout_item_fee currency": "text", "payout_item_fee value": "number", "payout_batch_id": "text", "payout_item recipient_type": "text", "payout_item amount currency": "text", "payout_item amount value": "number", "payout_item note": "text", "payout_item receiver": "text", "payout_item recipient_wallet": "text", "payout_item purpose": "text", "time_processed": "undefined", "errors name": "text", "errors message": "text", "errors information_link": "text", "links": { "href": "text", "rel": "text", "method": "text", "encType": "text" } }, "body links": { "href": "text", "rel": "text", "method": "text", "encType": "text" }, "error status_code": "number", "error status_message": "text", "error body": "text", "returned_an_error": "yes/no" }
Plugin Action Calls
Make Payout Sandbox
Use this action to simulate a payout within PayPal’s Sandbox environment. It’s ideal for testing before moving to live transactions — no real funds are transferred.
Parameter | Description | Type |
Authorization | Use a valid sandbox access token (generated with the “Access Token Sandbox” action). Include it as Bearer [Access Token]. | Text |
Batch ID | A unique sender-defined ID for the payout batch (must be unique for 30 days). | Text |
Subject | Subject line of the email PayPal sends upon successful payment completion. | Text |
Message | Custom email message for payout recipients. | Text |
Value | The amount of money to send in each payout. | Text |
Currency | The currency code (e.g., USD, EUR, GBP). | Text |
Note | Optional note to include with the transaction (up to 4000 ASCII characters). | Text |
Receiver Email | The recipient’s PayPal email address. | Text |
Returns:
Returns a JSON object containing the payout batch ID, batch status, and sender metadata.
json{ "body batch_header payout_batch_id": "text", "body batch_header batch_status": "text", "body batch_header sender_batch_header sender_batch_id": "text", "body batch_header sender_batch_header email_subject": "text", "body batch_header sender_batch_header email_message": "text", "body links": { "href": "text", "rel": "text", "method": "text", "encType": "text" }, "error status_code": "number", "error status_message": "text", "error body": "text", "returned_an_error": "yes/no" }
Make Payout Live
Use this action when you’re ready to send actual payouts in production. Funds will be transferred to recipients’ PayPal accounts in real time.
Parameter | Description | Type |
Authorization | Use a valid live access token (from “Access Token Sandbox Live” action). Include as Bearer [Access Token]. | Text |
Batch ID | Unique payout batch identifier. | Text |
Subject | Subject line for the payout email. | Text |
Message | Custom message included in the payout email. | Text |
Value | Amount to send per transaction. | Text |
Currency | Currency code (e.g., USD, EUR). | Text |
Note | Optional note from the sender to the recipient. | Text |
Receiver Email | PayPal email address of the recipient. | Text |
Returns:
Returns a JSON response summarizing payout results, including
payout_batch_id, batch_status, and sender email info.json{ "batch_header sender_batch_header sender_batch_id": "text", "batch_header sender_batch_header email_subject": "text", "batch_header sender_batch_header email_message": "text", "batch_header payout_batch_id": "text", "batch_header batch_status": "text" }
Plugin Actions
Access Token Sandbox
Generates a temporary OAuth access token for testing PayPal API calls in the Sandbox environment. Use this token in your payout actions to authorize simulated transactions.
Title | Description | Type |
Client ID | The PayPal sandbox client ID associated with your developer app. | Text |
Secret ID | The PayPal sandbox secret ID associated with your developer app. | Text |
Return Values:
Title | Description | Type |
Token | The generated OAuth access token used for API authorization. | Text |
Error | Any error message returned by the API. | Text |
Expiration | Token expiration time (in seconds). | Number |
Access Token Sandbox live
Generates a live PayPal OAuth token for authorizing production payouts. Use this token only for real transactions.
Title | Description | Type |
Client ID | Your live PayPal app client ID. | Text |
Secret ID | Your live PayPal app secret key. | Text |
Return Values:
Title | Description | Type |
Token | A valid access token for live payouts. | Text |
Error | Details of any error encountered during token generation. | Text |
Expiration | Token expiration time (in seconds). | Number |
Changelogs
Update 12.08.25 - Version 1.8.0
- Bubble Plugin Page Update (Description).
Update 09.06.25 - Version 1.7.0
- Marketing update (minor change).
Update 31.05.25 - Version 1.6.0
- Minor update (Marketing update).
Update 17.02.25 - Version 1.5.0
- Acquired by Zeroqode.
Update 23.08.24 - Version 1.4.0
- Updated Description.
Update 11.12.23 - Version 1.3.0
- Bug Fixes.
Update 12.10.23 - Version 1.2.2
- Updated Description.
Update 26.09.23 - Version 1.2.1
- Updated Demo Page.
Update 22.09.23 - Version 1.2.0
- Server Update.
Update 13.09.23 - Version 1.1.1
- Minor Fix.
Update 03.01.23 - Version 1.1.0
- New Details.
Update 30.06.21 - Version 1.0.1
- fixed bug.
Update 30.06.21 - Version 1.0.0
- First Release.