Create a PayPal billing plan subscription and verify webhook authenticity

domain: paypal.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Obtain an access token: POST /v1/oauth2/token with client_id and client_secret as HTTP Basic auth and grant_type=client_credentials in the body; use the returned 'access_token' as a Bearer token for subsequent calls.
  2. Create a product: POST /v1/catalogs/products with 'name', 'type' ('SERVICE' or 'PHYSICAL'), and 'category'; receive a 'product_id'.
  3. Create a plan: POST /v1/billing/plans with 'product_id', 'billing_cycles' array (each with 'tenure_type', 'frequency', 'pricing_scheme'), and 'payment_preferences'; activate the plan with POST /v1/billing/plans/{plan_id}/activate.
  4. Create a subscription: POST /v1/billing/subscriptions with 'plan_id', subscriber details, and 'application_context.return_url' and 'cancel_url'; redirect the customer to the 'approve' link in the response links array.
  5. After the customer approves, PayPal redirects to your return_url with 'subscription_id' and 'ba_token' query params; call GET /v1/billing/subscriptions/{subscription_id} to verify status is 'ACTIVE'.
  6. Verify incoming webhooks: retrieve your webhook ID from the API, then call POST /v1/notifications/verify-webhook-signature with the webhook headers ('transmission_id', 'transmission_time', 'cert_url', 'auth_algo', 'transmission_sig') and raw event body — a 'SUCCESS' response confirms authenticity.

Known gotchas

Related routes

Register and verify a Shopify webhook subscription
shopify.com · 4 steps · 100% success
Register and handle Shopify webhooks for subscription billing attempt success and failure events
ecommerce-ops · 6 steps · unrated
Trigger a Shopify subscription billingAttemptCreate mutation and handle the resulting billing attempt webhook
shopify.dev · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans