- Create a new PayPal order for payment processing
- Show details for an order by ID
- Capture payment for an approved order
- Authorize payment for an approved order
- Update an order with CREATED or APPROVED status
- Retrieve details of a captured payment
- Refund a captured payment in full or partially
- Retrieve details of a specific refund
- Retrieve details of an authorized payment
- Capture an authorized payment
- Void an authorized payment
- List invoices with optional filtering and pagination
- Retrieve details of a specific invoice by ID
- Create a new draft invoice
- Fully update an existing invoice
- Delete a draft invoice by ID
- Send or schedule a draft invoice to the recipient
- Cancel a sent invoice
- Records an external payment (cash, check, bank transfer, etc.) against a sent invoice via POST /v2/invoicing/invoices/{invoice_id}/payments. The invoice must be in SENT, PARTIALLY_PAID, or PAYMENT_PENDING status — DRAFT or CANCELLED invoices return 422 Unprocessable Entity, so use send_invoice first if needed. Returns an EXTR-prefixed payment_id usable with delete_external_payment to reverse the record.
- Generate the next sequential invoice number
- Search for invoices using filters via POST /v2/invoicing/search-invoices. All filter fields go in the request body (not query params except page, page_size, total_required). An empty body (no filters) returns all invoices.
- Send a reminder to the payer about an invoice. The invoice must have at least one recipient with an email address — invoices without primary_recipients will return 400.
- Records a refund against a paid invoice via POST /v2/invoicing/invoices/{invoice_id}/refunds. If the total refunded amount equals all payments, the invoice status changes to REFUNDED; otherwise it changes to PARTIALLY_REFUNDED.
- Delete an external payment from an invoice
- List catalog products with pagination
- Retrieve details of a specific catalog product
- Create a new catalog product
- Update a catalog product's description, category, image_url, or home_url fields using JSON Patch with "add" or "remove" operations. Returns 204 No Content on success.
- List subscription billing plans with pagination
- Retrieve details of a specific subscription plan
- Create a new subscription billing plan linked to a product, defining pricing, billing cycles, and payment preferences. For simple flat-rate plans use fixed_price, NOT VOLUME pricing. VOLUME and TIERED require 2+ tiers and quantity_supported=true.
- Update a billing plan's name, description, payment preferences, or tax settings using JSON Patch. Returns 204 No Content on success.
- Activate a billing plan that was created with status CREATED. Returns 204 No Content on success.
- Deactivate an ACTIVE billing plan. No new subscriptions can be created against it. Returns 204 No Content on success.
- Retrieve the full details of a specific PayPal subscription including its status, billing info, subscriber details, and plan configuration
- Create a new PayPal subscription that enrolls a subscriber into a billing plan, returning HATEOAS approval links the subscriber must visit to activate billing
- Update an ACTIVE or SUSPENDED subscription using JSON Patch operations. Returns 204 No Content on success.
- Revise the plan, quantity, or shipping details of a subscription. Requires buyer re-approval via redirect.
- Cancel an active subscription
- Suspend an active subscription
- Activate a suspended subscription
- List transactions for a specific subscription
- Create a batch payout to send payments to multiple recipients (max 15,000 items). sender_batch_id must be unique per 30 days even on failed attempts. Default to PAYPAL wallet — VENMO is US-only and unsupported in sandbox.
- Retrieve details of a batch payout
- Retrieve details of a specific payout item
- ONLY works on UNCLAIMED payout items — PENDING items cannot be cancelled (returns 400). Always check transaction_status with get_payout_item first before calling this action.
- List disputes with optional filtering by state, date range, or transaction ID. Supports page and page_size (1-50, default 10) for pagination. dispute_state accepts only ONE value per call.
- Retrieve details of a specific dispute
- Accept a dispute claim and refund the buyer
- Send a message about a dispute to the other party
- Escalate a dispute to a PayPal claim
- Search for transactions within a date range
- List account balances by currency
- List all webhooks for the app
- Show webhook details
- Create a new webhook to receive event notifications. WARNING — PayPal sends a live HTTPS request to the URL at creation time and returns 400 if unreachable. Do NOT use example.com, localhost, or placeholder URLs.
- Delete a webhook by ID
- Update a webhook's URL or event types using JSON Patch. Only the "replace" operation is supported.
- List all available webhook event types
- List webhook event notifications with optional filtering by date range, transaction ID, or event type. If filtering by date, start_time and end_time must both be in the past and within a 30-day window (use 29 days to be safe).
- Retrieve details of a specific webhook event notification by ID
No matching actions