API template library

PayPal REST mock API and live sandbox

A WireMock simulation of PayPal's REST API — covering orders, subscriptions and billing plans, payouts, disputes, webhooks, and tracking.

Vendor
PayPal
Functionality
Orders, subscriptions, payouts, disputes
Spec version
1.0.0
Endpoints
118
Stubs
100
Protocol
REST
Validation
AI-validated Before publication, an AI agent exercised these endpoints against the real PayPal API through WireMock's recording proxy, and the recorded traffic was used to verify each stub's request and response shapes.

Live sandbox · no signup, no API key

PayPal Full

A running WireMock Cloud instance of this template, callable right now from a terminal, a script, or an AI agent.

Base URL
https://3r311.wiremockapi.cloud

GET List trackers by query (stateful)

curl -s -X GET 'https://3r311.wiremockapi.cloud/v1/shipping/trackers'

POST Create webhook lookup (stateful)

curl -s -X POST 'https://3r311.wiremockapi.cloud/v1/notifications/webhooks-lookup' \
  -H 'Content-Type: application/json' \
  -d '{}'

DELETE Delete webhook lookup (stateful)

curl -s -X DELETE 'https://3r311.wiremockapi.cloud/v1/notifications/webhooks-lookup/your-webhook_lookup_id'
Method Path Summary
POST /seed/authorizations/{authorization_id} Seed authorization test data
POST /seed/disputes/{dispute_id} Seed dispute test data
POST /seed/orders/{order_id} Seed order test data
POST /seed/webhook-events/{event_id} Seed webhook event test data
GET /v1/billing/plans List plans
POST /v1/billing/plans Create plan
GET /v1/billing/plans/{id} Show plan details
PATCH /v1/billing/plans/{id} Update plan
POST /v1/billing/plans/{id}/activate Activate plan
POST /v1/billing/plans/{id}/deactivate Deactivate plan
POST /v1/billing/plans/{id}/update-pricing-schemes Update pricing
POST /v1/billing/subscriptions Create subscription
GET /v1/billing/subscriptions/{id} Show subscription details
PATCH /v1/billing/subscriptions/{id} Update subscription
POST /v1/billing/subscriptions/{id}/activate Activate subscription
POST /v1/billing/subscriptions/{id}/cancel Cancel subscription
POST /v1/billing/subscriptions/{id}/capture Capture authorized payment on subscription
POST /v1/billing/subscriptions/{id}/revise Revise plan or quantity of subscription
POST /v1/billing/subscriptions/{id}/suspend Suspend subscription
GET /v1/billing/subscriptions/{id}/transactions List transactions for subscription
GET /v1/catalogs/products List products
POST /v1/catalogs/products Create product
GET /v1/catalogs/products/{product_id} Show product details
PATCH /v1/catalogs/products/{product_id} Update product
GET /v1/customer/disputes List disputes
GET /v1/customer/disputes/{id} Show dispute details
PATCH /v1/customer/disputes/{id} Partially update dispute
POST /v1/customer/disputes/{id}/accept-claim Accept claim
POST /v1/customer/disputes/{id}/accept-offer Accept offer to resolve dispute
POST /v1/customer/disputes/{id}/acknowledge-return-item Acknowledge returned item
POST /v1/customer/disputes/{id}/adjudicate Settle dispute
POST /v1/customer/disputes/{id}/appeal Appeal dispute
POST /v1/customer/disputes/{id}/deny-offer Deny offer to resolve dispute
POST /v1/customer/disputes/{id}/escalate Escalate dispute to claim
POST /v1/customer/disputes/{id}/make-offer Make offer to resolve dispute
POST /v1/customer/disputes/{id}/provide-evidence Provide evidence
POST /v1/customer/disputes/{id}/provide-supporting-info Provide supporting information for dispute
POST /v1/customer/disputes/{id}/require-evidence Update dispute status
POST /v1/customer/disputes/{id}/send-message Send message about dispute to other party
POST /v1/notifications/simulate-event Simulate webhook event
POST /v1/notifications/verify-webhook-signature Verify webhook signature
GET /v1/notifications/webhooks List webhooks
POST /v1/notifications/webhooks Create webhook
GET /v1/notifications/webhooks-event-types List available events
GET /v1/notifications/webhooks-events List event notifications
GET /v1/notifications/webhooks-events/{event_id} Show event notification details
POST /v1/notifications/webhooks-events/{event_id}/resend Resend event notification
GET /v1/notifications/webhooks-lookup List webhook lookups
POST /v1/notifications/webhooks-lookup Create webhook lookup
DELETE /v1/notifications/webhooks-lookup/{webhook_lookup_id} Delete webhook lookup
GET /v1/notifications/webhooks-lookup/{webhook_lookup_id} Show webhook lookup details
DELETE /v1/notifications/webhooks/{webhook_id} Delete webhook
GET /v1/notifications/webhooks/{webhook_id} Show webhook details
PATCH /v1/notifications/webhooks/{webhook_id} Update webhook
GET /v1/notifications/webhooks/{webhook_id}/event-types List event subscriptions for webhook
GET /v1/payment-experience/web-profiles List web experience profiles
POST /v1/payment-experience/web-profiles Create web experience profile
DELETE /v1/payment-experience/web-profiles/{id} Delete web experience profile
GET /v1/payment-experience/web-profiles/{id} Show web experience profile details by ID
PATCH /v1/payment-experience/web-profiles/{id} Partially update web experience profile

+58 more endpoints in the full spec.

Unauthenticated WireMock Cloud demo sandbox for PayPal — not an official PayPal sandbox, and it returns simulated example data only.

What's inside the PayPal template

Rather than one product API, this template consolidates PayPal's public REST surface — Orders, Billing, Disputes, Webhooks, Catalog Products, Payment Experience, and more — behind a single base URL. It also behaves more like a live system than most mocks: fetch an order that doesn't exist and you get PayPal's genuine RESOURCE_NOT_FOUND error envelope on a 404, complete with debug_id and issue details, so the unhappy path your error handler parses is present alongside the happy one.

  • Orders & payments — checkout order retrieval plus authorization handling
  • Billing — the subscription lifecycle end to end — create, activate, suspend, revise, capture, cancel
  • Catalog — the product records that plans and subscriptions hang off
  • Disputes — the full contest lifecycle — evidence, offers, escalation, adjudication, appeal
  • Webhooks — registration, event-type listings, lookups, signature verification, event resends
  • Payment experience — web-profile CRUD for checkout page customization
  • Tracking — shipment tracker queries

Frequently asked questions

None — requests go straight in, with no bearer token and no client-id/secret exchange. That's the point: the OAuth dance PayPal requires before its own sandbox will answer is exactly the setup cost this mock removes. It also means real merchant credentials should never be aimed here.

Parts are, unusually for a template sandbox. Create a webhook lookup, for example, and subsequent list calls include the record you created until it's deleted — enough to test create-read-delete round trips rather than isolated responses.

PayPal's sandbox is a real system: accounts to provision, tokens to refresh, state that drifts between test runs, and occasional maintenance windows. The WireMock simulation trades that realism for control — instant setup, deterministic bodies, and error cases you can rely on in assertions.

The verify-webhook-signature endpoint is stubbed, so code that calls it completes its flow against the mock. Logic that must observe both SUCCESS and FAILURE verdicts belongs in a private WireMock Cloud copy, where each outcome gets its own stub you can trigger at will.

Vendor names identify APIs represented by WireMock template sources. This page does not imply vendor endorsement, certification, partnership, or official integration status.