Skip to content
All connectors
PayPal logo

PayPal

Accounting, billing & payments

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.

  1. Ready to connect: doneEvery listed action is built in.
  2. 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.
PayPal with Nexra

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 invoiceinvoices.createApproval by rule
  • Create checkout orderorders.createApproval by rule
  • List balancesbalances.listRead

Example flow

  1. PayPal · List balancesbalances.listDone
  2. PayPal · Create draft invoiceinvoices.createMaker-checker
  3. 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

  1. Create the PayPal credentials described above with the narrowest permissions your flows need.
  2. 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
  3. 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.