PayPal MCP Server for Cloudflare Workers
Test PayPal tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test PayPal tools interactively. No credit card required.
paypal_delete_invoice_refundDelete a refund record from an invoice. Args: - invoice_id: The invoice ID - transaction_id: The refund transaction ID to delete Returns: Confirmation of deletion.
paypal_cancel_payout_itemCancel an unclaimed payout item. Only works for items with status UNCLAIMED. Args: - payout_item_id: The payout item ID to cancel Returns: The cancelled payout item details.
paypal_get_planGet details of a billing plan. Args: - plan_id: The plan ID - format: Response format ('json' or 'markdown') Returns: Plan details including billing cycles and payment preferences.
paypal_list_disputesList disputes with optional filtering. Args: - start_time: Filter disputes created after this time (ISO 8601) (optional) - disputed_transaction_id: Filter by transaction ID (optional) - page_size: Number of disputes per page (optional) - next_page_token: Token for pagination (optional) - dispute_state: Filter by state (optional) - format: Response format ('json' or 'markdown') Returns: Paginated list of disputes.
paypal_get_disputeGet details of a dispute. Args: - dispute_id: The dispute ID - format: Response format ('json' or 'markdown') Returns: Dispute details including reason, status, and messages.
paypal_accept_disputeAccept a dispute claim (liability). Refunds the disputed amount to the buyer. Args: - dispute_id: The dispute ID to accept - note: Note about acceptance (optional) - accept_claim_reason: Reason for accepting (optional) - refund_currency_code: Currency for refund (optional) - refund_value: Refund amount (optional, defaults to disputed amount) Returns: Updated dispute details.
paypal_send_dispute_messageSend a message to the other party in a dispute. Args: - dispute_id: The dispute ID - message: Message content (required) Returns: Confirmation of message sent.
paypal_make_dispute_offerMake a settlement offer to the buyer. Args: - dispute_id: The dispute ID - note: Note about the offer (required) - offer_type: Type of offer (required) - offer_currency_code: Offer currency (required for REFUND types) - offer_value: Offer amount (required for REFUND types) Returns: The offer details.
paypal_escalate_disputeEscalate a dispute to a PayPal claim. Args: - dispute_id: The dispute ID to escalate - note: Note about escalation (required) Returns: Updated dispute details.
paypal_provide_dispute_evidenceProvide evidence for a dispute. Args: - dispute_id: The dispute ID - evidence_type: Type of evidence (optional) - notes: Evidence notes (optional) - tracking_number: Tracking number if applicable (optional) - carrier_name: Carrier name if applicable (optional) Returns: Confirmation of evidence provided.
paypal_acknowledge_return_itemAcknowledge that a returned item was received. Args: - dispute_id: The dispute ID - note: Acknowledgement note (required) - acknowledgement_type: Type of acknowledgement (required) Returns: Updated dispute details.
paypal_appeal_disputeAppeal a resolved dispute decision. Args: - dispute_id: The dispute ID to appeal - appeal_reason: Reason for appeal (required) - notes: Additional notes (optional) Returns: Appeal result.
paypal_search_invoicesSearch invoices with filters. Args: - recipient_email: Filter by recipient email (optional) - recipient_name: Filter by recipient name (optional) - invoice_number: Filter by invoice number (optional) - status: Filter by status (optional) - reference: Filter by reference (optional) - currency_code: Filter by currency (optional) - memo: Filter by memo (optional) - page: Page number (optional) - page_size: Items per page (optional) - format: Response format Returns: List of matching invoices.
paypal_create_invoiceCreate a draft invoice. Args: - invoice_number: Custom invoice number (optional, auto-generated if not provided) - reference: Merchant reference (optional) - currency_code: Invoice currency (required) - recipient_email: Recipient's email address (required) - recipient_name: Recipient's name (optional) - items: JSON array of invoice items with format: [{"name": "Item name", "quantity": "1", "unit_amount": {"currency_code": "USD", "value": "100.00"}, "description": "optional description"}] - note: Note to recipient (optional) - terms_and_conditions: Terms and conditions (optional) - memo: Private merchant memo (optional) Returns: The created draft invoice with ID.
paypal_list_invoicesList invoices with optional filtering. Args: - page: Page number (optional) - page_size: Items per page (optional) - format: Response format ('json' or 'markdown') Returns: Paginated list of invoices.
paypal_get_invoiceGet details of an invoice. Args: - invoice_id: The invoice ID - format: Response format ('json' or 'markdown') Returns: Invoice details including items, amounts, and status.
paypal_update_invoiceFully update a draft invoice. Args: - invoice_id: The invoice ID to update - invoice_data: Complete invoice JSON data to replace existing Returns: The updated invoice.
paypal_delete_invoiceDelete a draft invoice. Args: - invoice_id: The invoice ID to delete Returns: Confirmation of deletion.
paypal_send_invoiceSend an invoice to the recipient. Args: - invoice_id: The invoice ID to send - subject: Email subject (optional) - note: Additional note (optional) - send_to_invoicer: Also send to invoicer (optional) - send_to_recipient: Send to recipient (default: true) - additional_recipients: JSON array of additional email addresses (optional) Returns: Confirmation of sending.
paypal_send_invoice_reminderSend a reminder for an unpaid invoice. Args: - invoice_id: The invoice ID - subject: Email subject (optional) - note: Reminder note (optional) - additional_recipients: JSON array of additional emails (optional) Returns: Confirmation of reminder sent.
paypal_cancel_invoiceCancel a sent invoice. Args: - invoice_id: The invoice ID to cancel - subject: Cancellation email subject (optional) - note: Cancellation note (optional) - send_to_invoicer: Send cancellation to invoicer (optional) - send_to_recipient: Send cancellation to recipient (default: true) Returns: Confirmation of cancellation.
paypal_record_invoice_paymentRecord an external payment for an invoice. Args: - invoice_id: The invoice ID - method: Payment method (BANK_TRANSFER, CASH, CHECK, CREDIT_CARD, DEBIT_CARD, PAYPAL, WIRE_TRANSFER, OTHER) - currency_code: Payment currency - value: Payment amount - payment_date: Date of payment (optional) - note: Payment note (optional) Returns: The payment ID.
paypal_delete_invoice_paymentDelete an external payment record from an invoice. Args: - invoice_id: The invoice ID - transaction_id: The transaction/payment ID to delete Returns: Confirmation of deletion.
paypal_record_invoice_refundRecord an external refund for an invoice. Args: - invoice_id: The invoice ID - method: Refund method - currency_code: Refund currency - value: Refund amount - refund_date: Date of refund (optional) Returns: The refund ID.
paypal_generate_invoice_numberGenerate the next invoice number. Returns: The next invoice number to use.
paypal_generate_invoice_qr_codeGenerate a QR code for an invoice payment. Args: - invoice_id: The invoice ID - width: QR code width in pixels (default: 500) - height: QR code height in pixels (default: 500) - action: QR code action - 'pay' or 'details' (default: pay) Returns: Base64 encoded QR code image.
paypal_create_orderCreate a new PayPal order for payment processing. Args: - intent: Payment intent - 'CAPTURE' for immediate capture or 'AUTHORIZE' for authorization - currency_code: ISO 4217 currency code (e.g., 'USD', 'EUR') - value: Order amount as string (e.g., '100.00') - description: Description of the purchase (optional) - reference_id: Merchant reference ID for the purchase unit (optional) - return_url: URL to redirect after payment approval (optional) - cancel_url: URL to redirect if payment cancelled (optional) Returns: The created order with ID and approval links.
paypal_get_orderGet details of a PayPal order by ID. Args: - order_id: The PayPal order ID - format: Response format ('json' or 'markdown') Returns: Complete order details including status, amounts, and payment info.
paypal_update_orderUpdate a PayPal order with patch operations. Args: - order_id: The PayPal order ID to update - op: Patch operation type - path: JSON Pointer path to update (e.g., '/purchase_units/@reference_id==\\'default\\'/amount') - value: New value for the path (as JSON string) Returns: Confirmation of update.
paypal_authorize_orderAuthorize payment for an approved order. Use for orders with intent='AUTHORIZE'. Args: - order_id: The PayPal order ID to authorize Returns: The order with authorization details.
paypal_capture_orderCapture payment for an approved order. Use for orders with intent='CAPTURE'. Args: - order_id: The PayPal order ID to capture Returns: The order with capture details.
paypal_get_authorizationGet details of an authorization by ID. Args: - authorization_id: The PayPal authorization ID - format: Response format ('json' or 'markdown') Returns: Authorization details including status, amount, and expiration.
paypal_capture_authorizationCapture an authorized payment. Args: - authorization_id: The authorization ID to capture - currency_code: Currency for capture amount (optional, uses auth currency if not provided) - value: Amount to capture as string (optional, captures full amount if not provided) - final_capture: Whether this is the final capture (default: true) - note_to_payer: Note to the payer (optional) - invoice_id: Merchant invoice ID (optional) Returns: The capture details.
paypal_reauthorizeReauthorize an authorization that is about to expire. Can only be done within 3 days of expiration. Args: - authorization_id: The authorization ID to reauthorize - currency_code: Currency code for the reauthorization amount (optional) - value: Amount for reauthorization (optional) Returns: The new authorization details.
paypal_void_authorizationVoid an authorization. Releases the held funds back to the payer. Args: - authorization_id: The authorization ID to void Returns: Confirmation of void.
paypal_get_captureGet details of a captured payment. Args: - capture_id: The PayPal capture ID - format: Response format ('json' or 'markdown') Returns: Capture details including status, amount, and seller protection.
paypal_list_plansList billing plans with optional filtering. Args: - product_id: Filter by product ID (optional) - page: Page number (optional) - page_size: Items per page (optional) - format: Response format ('json' or 'markdown') Returns: Paginated list of plans.
paypal_refund_captureRefund a captured payment, either partially or fully. Args: - capture_id: The capture ID to refund - currency_code: Currency for refund amount (optional, uses capture currency if not provided) - value: Amount to refund as string (optional, refunds full amount if not provided) - note_to_payer: Note to the payer about the refund (optional) - invoice_id: Merchant invoice ID (optional) Returns: The refund details.
paypal_get_refundGet details of a refund. Args: - refund_id: The PayPal refund ID - format: Response format ('json' or 'markdown') Returns: Refund details including status and amount.
paypal_create_payoutCreate a batch payout to send money to multiple recipients. Args: - sender_batch_id: Unique ID for this batch (required) - email_subject: Subject of payout email (optional) - email_message: Message in payout email (optional) - recipients: JSON array of payout items with format: [{"recipient_type": "EMAIL", "receiver": "email@example.com", "amount": {"value": "10.00", "currency": "USD"}, "note": "optional note", "sender_item_id": "unique_id"}] Returns: The created payout batch with batch ID and status.
paypal_get_payout_batchGet details of a payout batch. Args: - payout_batch_id: The payout batch ID - page: Page number for payout items (optional) - page_size: Number of items per page (optional) - format: Response format ('json' or 'markdown') Returns: Batch details including status, amounts, and payout items.
paypal_get_payout_itemGet details of an individual payout item. Args: - payout_item_id: The payout item ID - format: Response format ('json' or 'markdown') Returns: Payout item details including status and recipient info.
paypal_create_productCreate a catalog product for use with billing plans. Args: - name: Product name (required) - type: Product type - 'PHYSICAL', 'DIGITAL', or 'SERVICE' (required) - description: Product description (optional) - category: Product category (optional, e.g., 'SOFTWARE', 'SERVICES') - image_url: Product image URL (optional) - home_url: Product home page URL (optional) Returns: The created product with ID.
paypal_list_productsList catalog products. Args: - page: Page number (optional) - page_size: Items per page (optional) - format: Response format ('json' or 'markdown') Returns: Paginated list of products.
paypal_get_productGet details of a catalog product. Args: - product_id: The product ID - format: Response format ('json' or 'markdown') Returns: Product details including name, type, and description.
paypal_update_productUpdate a catalog product with patch operations. Args: - product_id: The product ID to update - op: Patch operation type - path: JSON Pointer path to update (e.g., '/description') - value: New value as JSON string Returns: Confirmation of update.
paypal_create_planCreate a billing plan for recurring payments. Args: - product_id: ID of the product this plan belongs to (required) - name: Plan name (required) - description: Plan description (optional) - status: Plan status - 'ACTIVE' or 'INACTIVE' (default: ACTIVE) - billing_cycles: JSON array of billing cycles with format: [{"frequency": {"interval_unit": "MONTH", "interval_count": 1}, "tenure_type": "REGULAR", "sequence": 1, "total_cycles": 0, "pricing_scheme": {"fixed_price": {"value": "10.00", "currency_code": "USD"}}}] - payment_preferences: JSON object with setup_fee, auto_bill_outstanding, etc. (optional) Returns: The created plan with ID.
paypal_update_planUpdate a billing plan with patch operations. Args: - plan_id: The plan ID to update - op: Patch operation type - path: JSON Pointer path to update (e.g., '/description') - value: New value as JSON string Returns: Confirmation of update.
paypal_activate_planActivate a billing plan. Args: - plan_id: The plan ID to activate Returns: Confirmation of activation.
paypal_deactivate_planDeactivate a billing plan. Args: - plan_id: The plan ID to deactivate Returns: Confirmation of deactivation.
paypal_update_plan_pricingUpdate pricing for a billing plan. Args: - plan_id: The plan ID - pricing_schemes: JSON array of pricing scheme updates Returns: Confirmation of pricing update.
paypal_create_subscriptionCreate a subscription for a billing plan. Args: - plan_id: The plan ID to subscribe to (required) - subscriber_email: Subscriber's email address (optional) - subscriber_given_name: Subscriber's first name (optional) - subscriber_surname: Subscriber's last name (optional) - start_time: Subscription start time in ISO 8601 format (optional) - custom_id: Custom merchant ID for tracking (optional) - return_url: URL to redirect after approval (optional) - cancel_url: URL to redirect if cancelled (optional) Returns: The created subscription with approval links.
paypal_get_subscriptionGet details of a subscription. Args: - subscription_id: The subscription ID - format: Response format ('json' or 'markdown') Returns: Subscription details including status, billing info, and subscriber.
paypal_update_subscriptionUpdate a subscription with patch operations. Args: - subscription_id: The subscription ID to update - op: Patch operation type - path: JSON Pointer path to update - value: New value as JSON string Returns: Confirmation of update.
paypal_revise_subscriptionRevise a subscription (change plan, quantity, etc.). Args: - subscription_id: The subscription ID to revise - plan_id: New plan ID (optional) - quantity: New quantity (optional) - effective_time: When revision takes effect (optional) Returns: The revised subscription details.
paypal_suspend_subscriptionSuspend an active subscription. Args: - subscription_id: The subscription ID to suspend - reason: Reason for suspension (required) Returns: Confirmation of suspension.
paypal_activate_subscriptionActivate a suspended subscription. Args: - subscription_id: The subscription ID to activate - reason: Reason for activation (required) Returns: Confirmation of activation.
paypal_cancel_subscriptionCancel a subscription. Args: - subscription_id: The subscription ID to cancel - reason: Reason for cancellation (required) Returns: Confirmation of cancellation.
paypal_capture_subscription_paymentCapture an outstanding payment for a subscription. Args: - subscription_id: The subscription ID - note: Note about the capture (required) - capture_type: Type of capture - 'OUTSTANDING_BALANCE' (required) - currency_code: Currency code (required) - value: Amount to capture (required) Returns: The capture transaction details.
paypal_list_subscription_transactionsList transactions for a subscription. Args: - subscription_id: The subscription ID - start_time: Start of date range (ISO 8601) (required) - end_time: End of date range (ISO 8601) (required) - format: Response format ('json' or 'markdown') Returns: List of subscription transactions.
paypal_add_trackingAdd tracking information for a captured payment. Args: - transaction_id: The PayPal transaction/capture ID (required) - tracking_number: Carrier tracking number (required) - carrier: Carrier name (required, e.g., 'UPS', 'FEDEX', 'USPS', 'DHL') - carrier_name_other: Custom carrier name if carrier is 'OTHER' (optional) - status: Tracking status - 'SHIPPED', 'ON_HOLD', 'DELIVERED', 'CANCELLED' (required) - notify_buyer: Send tracking notification to buyer (default: true) - shipment_date: Date of shipment (optional) Returns: The tracking information.
paypal_add_tracking_batchAdd tracking information for multiple shipments in a batch. Args: - trackers: JSON array of tracking objects with format: [{"transaction_id": "...", "tracking_number": "...", "carrier": "UPS", "status": "SHIPPED"}] Returns: Batch result with success/failure for each tracker.
paypal_get_trackingGet tracking information for a transaction. Args: - transaction_id: The PayPal transaction/capture ID - tracking_number: The tracking number - format: Response format ('json' or 'markdown') Returns: Tracking details including status and carrier.
paypal_update_trackingUpdate tracking information for a shipment. Args: - transaction_id: The PayPal transaction/capture ID (required) - tracking_number: The tracking number (required) - carrier: New carrier code (optional) - carrier_name_other: Custom carrier name (optional) - status: New tracking status (optional) - notify_buyer: Send update notification (optional) Returns: Confirmation of update.
paypal_list_transactionsSearch transactions within a date range. Args: - start_date: Start of date range (ISO 8601) (required) - end_date: End of date range (ISO 8601) (required) - transaction_id: Filter by transaction ID (optional) - transaction_type: Filter by transaction type (optional) - transaction_status: Filter by status (optional) - transaction_amount: Filter by amount (optional) - transaction_currency: Filter by currency (optional) - payment_instrument_type: Filter by payment type (optional) - store_id: Filter by store ID (optional) - terminal_id: Filter by terminal ID (optional) - page: Page number (optional) - page_size: Items per page (optional) - format: Response format ('json' or 'markdown') Returns: List of transactions matching criteria.
paypal_get_balancesGet account balances. Args: - as_of_time: Get balances as of this time (ISO 8601) (optional) - currency_code: Filter by currency (optional) - format: Response format ('json' or 'markdown') Returns: Account balances by currency.
paypal_create_webhookCreate a webhook to receive event notifications. Args: - url: Webhook endpoint URL (required, must be HTTPS) - event_types: JSON array of event type names to subscribe to, e.g., ["PAYMENT.CAPTURE.COMPLETED", "PAYMENT.CAPTURE.DENIED"] Returns: The created webhook with ID.
paypal_list_webhooksList all webhooks for this application. Args: - format: Response format ('json' or 'markdown') Returns: List of webhooks with their URLs and event subscriptions.
paypal_get_webhookGet details of a webhook. Args: - webhook_id: The webhook ID - format: Response format ('json' or 'markdown') Returns: Webhook details including URL and subscribed events.
paypal_update_webhookUpdate a webhook with patch operations. Args: - webhook_id: The webhook ID to update - op: Patch operation type - path: JSON Pointer path to update (e.g., '/url' or '/event_types') - value: New value as JSON string Returns: The updated webhook.
paypal_delete_webhookDelete a webhook. Args: - webhook_id: The webhook ID to delete Returns: Confirmation of deletion.
paypal_list_webhook_event_typesList all available webhook event types. Args: - format: Response format ('json' or 'markdown') Returns: List of event types that can be subscribed to.
paypal_list_webhook_eventsList webhook event notifications. Args: - page_size: Number of events per page (optional) - start_time: Filter events after this time (ISO 8601) (optional) - end_time: Filter events before this time (ISO 8601) (optional) - transaction_id: Filter by transaction ID (optional) - event_type: Filter by event type (optional) - format: Response format ('json' or 'markdown') Returns: List of webhook events.
paypal_get_webhook_eventGet details of a webhook event. Args: - event_id: The event ID - format: Response format ('json' or 'markdown') Returns: Event details including type, resource, and summary.
paypal_resend_webhook_eventResend a webhook event notification. Args: - event_id: The event ID to resend - webhook_ids: JSON array of webhook IDs to send to (optional, sends to all if not specified) Returns: Confirmation of resend.
paypal_verify_webhook_signatureVerify the signature of a webhook event. Args: - auth_algo: The auth algorithm from header - cert_url: The certificate URL from header - transmission_id: The transmission ID from header - transmission_sig: The transmission signature from header - transmission_time: The transmission time from header - webhook_id: Your webhook ID - webhook_event: The full webhook event JSON Returns: Verification status.
paypal_simulate_webhook_eventSimulate a webhook event for testing. Args: - webhook_id: The webhook ID to simulate for (optional) - url: URL to send simulated event to (optional if webhook_id provided) - event_type: Event type to simulate (required) - resource_version: API resource version (optional, default: '1.0') Returns: The simulated event details.
paypal_delete_invoice_refund{
"invoice_id": "example_invoice_id",
"transaction_id": "example_transaction_id"
}paypal_cancel_payout_item{
"payout_item_id": "example_payout_item_id"
}paypal_get_plan{
"format": "example_format",
"plan_id": "example_plan_id"
}