PayPal
Keep PayPal in step with your orders, invoices and payments without re-keying, with the right person approving what changes.
27 ways to read, 6 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with PayPal, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create draft invoice
invoices.createApproval by rule - Create checkout order
orders.createApproval by rule - List balances
balances.listRead
Example flow
- PayPal · List balances
balances.listDone - PayPal · Create draft invoice
invoices.createMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches PayPal.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to PayPal
- PayPal's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a PayPal test account before you go live.
For developers
Technical detail
PayPal REST: orders, captures, refunds, invoices, plans, subscriptions, products, disputes, transaction search, withdrawals, fees, balances and webhooks; drafts invoices and creates orders.
PayPal API docs- Source actions
- 27
- Destination actions
- 6
- Data types
- 18
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
authorizations1
- Get authorizationSource
Read one PayPal authorization by ID.
balances1
- List balancesSource
Read total, available and withheld balance per currency; not a request to move funds.
captures1
- Get captureSource
Read one captured payment with its fee and net breakdown.
disputes2
- Get disputeSource
Read one dispute with its outcome; buyer details, messages and evidence are omitted.
- List disputesSourceIncremental
Read disputes and chargebacks, optionally updated since a time.
fees1
- List fee chargesSourceIncremental
Read fees PayPal charged as their own balance entries (event codes T0100 to T0118, for example chargeback, dispute and monthly fees). Per-payment fees are the fee field of each transaction.
invoice templates2
- Get invoice templateSource
Read one PayPal invoice template by ID.
- List invoice templatesSource
Read invoice templates (name and defaults; invoicer contact details omitted).
invoices5
- Create draft invoiceDestinationNot retried automaticallyApproval before production
Create a DRAFT invoice. It is not sent, so the recipient is not notified and no money moves.
- Get invoiceSource
Read one PayPal invoice by ID.
- List invoicesSource
Read invoices, newest first.
- Search invoicesSource
Search invoices by number, reference, status, currency or date ranges.
- Replace invoiceDestinationProvider duplicate protectionApproval before production
Fully replace an invoice's details and items. Nexra always sets send_to_recipient and send_to_invoicer to false so no email is sent.
orders2
- Create checkout orderDestinationProvider duplicate protectionApproval before production
Create a PayPal order the buyer approves on PayPal. The order stays CREATED; Nexra never authorizes or captures it.
- Get orderSource
Read one order with its purchase units and related capture IDs.
payouts1
- List withdrawals to bankSourceIncremental
Read money moved out of the PayPal balance to a bank account or card (withdrawal event codes T0400 to T0403), with amount, fee and remaining balance.
plans3
- Create billing plan (inactive)DestinationProvider duplicate protectionApproval before production
Create a subscription plan in the CREATED state, so no subscription can use it until it is activated in PayPal.
- Get billing planSource
Read one PayPal billing plan by ID.
- List billing plansSource
Read subscription plans with billing cycles and prices.
products4
- Create catalog productDestinationProvider duplicate protectionApproval before production
Create a catalog product for subscription plans.
- Get productSource
Read one PayPal product by ID.
- List catalog productsSource
Read catalog products used by billing plans.
- Update catalog productDestinationProvider duplicate protectionApproval before production
Replace a product's description, category, image URL or home URL.
refunds2
- Get refundSource
Read one PayPal refund by ID.
- List refundsSourceIncremental
Read payment refunds from the PayPal balance (event codes T1107 and T1120), with the original transaction as the reference and any fee returned.
subscription transactions1
- List subscription transactionsSource
Read the payments collected for one subscription in a time range.
subscriptions1
- Get subscriptionSource
Read one subscription's status and billing state; subscriber details omitted.
transactions1
- List reporting transactionsSourceIncremental
Read Transaction Search records with gross amount, fee and running balance, in a date range of at most 31 days (the last 31 days when no start date is given).
webhook event types1
- List webhook event typesSource
Event types PayPal can send to a webhook.
webhook events2
- Get webhook eventSource
Read one PayPal webhook event by ID.
- List webhook eventsSourceIncremental
Read event notifications PayPal generated, for example to backfill missed webhooks.
webhooks2
- Get webhookSource
Read one PayPal webhook by ID.
- List webhooksSource
Read the webhook endpoints registered for the app or account.
Access and limits
- Authentication
- PayPal REST app credentials or access token
- Plans and access
- A PayPal business account with a REST app (client ID and secret) that has the features you need, such as Transaction Search, Invoicing and Subscriptions. Transaction Search must be enabled on the app; data can lag up to three hours. Disputes, invoicing and subscriptions need those features on the app.
- Test environment
- Use a sandbox REST app and api-m.sandbox.paypal.com.
- Rate limits
- PayPal applies per-app limits and returns HTTP 429 (RATE_LIMIT_REACHED); Nexra honours Retry-After with bounded retries.
- Pagination
- Invoices, templates, plans and products page with page and page_size; transaction search uses total_pages; disputes and webhook events follow the next link.
- Provider events
- PayPal webhooks (PAYMENT.CAPTURE.*, CHECKOUT.ORDER.*, INVOICING.*, BILLING.SUBSCRIPTION.*, CUSTOMER.DISPUTE.*) are registered on the REST app; registrations and past events can be read here. Flows can start the moment something happens: when a payment is captured; when a payment capture is declined; when a captured payment is refunded; when a buyer approves a checkout.
Before you build a flow
- Intentional exclusions: capturing, authorizing, reauthorizing, voiding or confirming orders and authorizations; refunds; sending payouts (PayPal Payouts API) or withdrawals; sending, reminding, cancelling or deleting invoices and recording invoice payments or refunds; creating, revising, suspending, cancelling, activating or capturing subscriptions; activating, deactivating or repricing plans; all dispute actions (evidence, offers, claims, messages); creating, updating, deleting or simulating webhooks and resending events; vault payment tokens.
- PayPal has no list endpoint for orders, captures, refunds or subscriptions; find their IDs through transaction search, webhook events or invoices. Refunds, withdrawals to bank and fee charges are listed from Transaction Search by event code.
- Transaction search covers at most 31 days per request, needs Transaction Search enabled and can lag by up to three hours. Reads that run on a schedule re-read the last four hours each run; a start date more than 31 days before the end is rejected, so a scheduled read paused for over a month needs its read position reset.
- Payouts: PayPal has no settlement batches or payout reports in its API. Withdrawals from the PayPal balance (event codes T0400 to T0403) are the payouts, and the balance-affecting transactions between them are their lines; Transaction Search reports a fee per transaction but no net amount.
- Payer names, emails, addresses, phone numbers and dispute messages are not mapped. Invoice recipient emails are sent in request bodies only.
- Invoice creation has no documented idempotency key in PayPal's Invoicing API, so an uncertain create is never repeated; orders, plans and products use PayPal-Request-Id.
- Monetary values are decimal strings in major units, preserved as text.
Developer reference
- Create the PayPal credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose PayPal, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/paypal and the Connections API.