Integration reference
PayPal Trigger and Action reference
Start from PayPal commerce and dispute events and automate orders, captures, payments, and refunds.
Authentication
Store a PayPal REST app Client ID and Client Secret and choose sandbox or live environment.
- Trigger account type:
api_key; reconnect byreplace_credentials. - Action connection type:
api_key; available modes: Connected PayPal app.
Create or reuse the account from a Trigger or Action dialog, or manage it under Settings → Connected accounts. See Authentication and permissions for scopes and access diagnostics, or Connected accounts for reuse, reconnect, revocation, and credential rotation.
Scopes and permissions
The Trigger manifest does not declare a fixed base OAuth scope list. Installation access, API credentials, or the selected event configuration can still control available resources.
View 1 provider permissions or credential requirements
PayPal Client ID and Client Secret
Operation-specific requirements appear in the tables below. Custom event selections can add scopes dynamically, so the current Trigger or Action dialog remains authoritative for the exact consent request.
Use PayPal as a Trigger
The current provider manifest contains 26 available Trigger definitions. Representative definitions include:
- Checkout Order Approved
- Checkout Order Completed
- Payment Capture Completed
- Payment Capture Declined
- Customer Dispute Created
- Billing Subscription Cancelled
View all 26 available Trigger definitions
| Trigger | Manifest key | Delivery | Additional scopes |
|---|---|---|---|
| Any PayPal Event | paypal.any_event.instant | instant | None declared |
| Custom PayPal Events | paypal.custom_webhook_events.instant | instant | None declared |
| Checkout · Order · Approved | paypal.checkout_order_approved.instant | instant | None declared |
| Checkout · Order · Completed | paypal.checkout_order_completed.instant | instant | None declared |
| Payment · Authorization · Created | paypal.payment_authorization_created.instant | instant | None declared |
| Payment · Authorization · Voided | paypal.payment_authorization_voided.instant | instant | None declared |
| Payment · Capture · Completed | paypal.payment_capture_completed.instant | instant | None declared |
| Payment · Capture · Declined | paypal.payment_capture_declined.instant | instant | None declared |
| Payment · Capture · Pending | paypal.payment_capture_pending.instant | instant | None declared |
| Payment · Capture · Refunded | paypal.payment_capture_refunded.instant | instant | None declared |
| Payment · Capture · Reversed | paypal.payment_capture_reversed.instant | instant | None declared |
| Payment · Refund · Completed | paypal.payment_refund_completed.instant | instant | None declared |
| Payment · Refund · Failed | paypal.payment_refund_failed.instant | instant | None declared |
| Payment · Refund · Pending | paypal.payment_refund_pending.instant | instant | None declared |
| Customer · Dispute · Created | paypal.customer_dispute_created.instant | instant | None declared |
| Customer · Dispute · Updated | paypal.customer_dispute_updated.instant | instant | None declared |
| Customer · Dispute · Resolved | paypal.customer_dispute_resolved.instant | instant | None declared |
| Billing · Subscription · Created | paypal.billing_subscription_created.instant | instant | None declared |
| Billing · Subscription · Activated | paypal.billing_subscription_activated.instant | instant | None declared |
| Billing · Subscription · Updated | paypal.billing_subscription_updated.instant | instant | None declared |
| Billing · Subscription · Cancelled | paypal.billing_subscription_cancelled.instant | instant | None declared |
| Billing · Subscription · Suspended | paypal.billing_subscription_suspended.instant | instant | None declared |
| Billing · Subscription · Expired | paypal.billing_subscription_expired.instant | instant | None declared |
| Payment · Sale · Completed | paypal.payment_sale_completed.instant | instant | None declared |
| Payment · Sale · Refunded | paypal.payment_sale_refunded.instant | instant | None declared |
| Payment · Sale · Reversed | paypal.payment_sale_reversed.instant | instant | None declared |
Choose the narrowest event definition that fits the Workflow. Configure provider-specific resource and event filters in the Source dialog before adding broader Workflow Filters.
Use PayPal Actions
The current Action manifest contains 6 operations. Representative Actions include:
- Create Order
- Get Order
- Capture Order
- Get Capture
- Refund Capture
- Custom API Request
View all 6 available Action definitions
| Action | Manifest key | Access and auth | Manifest rate limit |
|---|---|---|---|
| Create Order | paypal.create_order | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
| Get Order | paypal.get_order | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
| Capture Order | paypal.capture_order | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
| Get Capture | paypal.get_capture | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
| Refund Capture | paypal.refund_capture | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
| Custom API Request | paypal.custom_api_request | PayPal Client ID and Client SecretFastHook-managed account | 2/second |
The Action editor reads its required permissions, fields, remote resource pickers, output schema, and rate limit from the provider manifest. Available fields can change with the selected operation and authentication mode.
Build a Workflow
- Create a Source using a PayPal Trigger definition.
- Create a Workflow with that Source as its Trigger.
- Add the required PayPal Action and select the connected account.
- Map Trigger or earlier-Step data into the Action fields with the field picker.
- Add a Filter, Paths, Delay, or Transformation when the route needs it.
- Activate the Workflow, produce a controlled event, and verify the run in Audit and in PayPal.
Troubleshooting PayPal
- The account is missing or cannot be selected
- Confirm the active FastHook team, provider, account status, and authentication mode. A disabled or revoked account cannot execute an Action.
- A resource picker is empty
- Verify that the connected provider identity can access the resource itself. OAuth consent does not add workspace, repository, channel, drive, project, base, or record permissions.
- The editor asks for additional scopes
- Reconnect the same account from the affected Trigger or Action so FastHook can request its current manifest scopes. Then reopen the editor and select the resource again.
- An active Workflow returns 401, 403, or a permission error
- Compare the selected operation’s access requirements below with the account recorded in Audit. Check provider-side membership and object access before repeating the Action.
- The provider returns 429 or a temporary 5xx
- Inspect the Step attempt and retryability in Audit. FastHook can retry temporary failures, but provider quotas and idempotency rules still apply.
Provider-specific checks
- Keep sandbox and live credentials and Workflows clearly separated.
- Capture and refund operations need idempotent business controls before retries or manual repetition.