Payments
PayPal Webhooks
Global payments platform. Receive events for payments, disputes, subscriptions, and payouts.
Connecting PayPal to Hookbase
Create a source in Hookbase first — it gives you an ingest URL to paste into PayPal. Then:
- 1Go to PayPal Developer Dashboard → Apps & Credentials
- 2Select your app and scroll to Webhooks
- 3Click "Add Webhook" and paste your Hookbase ingest URL
- 4Select the event types you want to receive and click Save
- 5Copy the Webhook ID PayPal shows for the new webhook and paste it into the source in Hookbase
- 6PayPal's Webhooks simulator signs with the placeholder ID "WEBHOOK_ID", so simulator events fail verification on a source that stores your real ID. Use a sandbox transaction to test end to end
Signature verification
Set the source's provider to paypal and paste the signing secret. Every request is checked before the event is stored, and anything that fails is rejected rather than quietly recorded.
- Algorithm
- SHA256withRSA (PayPal certificate)
- Header
- PAYPAL-TRANSMISSION-SIG
- Where to find the secret
- PayPal Developer Dashboard → Apps & Credentials → your app → Webhooks → the Webhook ID next to your Hookbase URL (e.g. 3TR748995U920805P). It is an identifier, not a key: PayPal signs with its own certificate, and the Webhook ID ties each signature to this webhook.
PayPal event types
8 of the events people route most often. Hookbase accepts every event PayPal sends, whether or not it is listed here.
PAYMENT.CAPTURE.COMPLETED
A payment capture was completed
PAYMENT.CAPTURE.DENIED
A payment capture was denied
PAYMENT.CAPTURE.REFUNDED
A captured payment was refunded
CHECKOUT.ORDER.APPROVED
A checkout order was approved by the buyer
BILLING.SUBSCRIPTION.CREATED
A billing subscription was created
BILLING.SUBSCRIPTION.CANCELLED
A billing subscription was cancelled
CUSTOMER.DISPUTE.CREATED
A customer dispute was created
PAYMENT.PAYOUTS-ITEM.SUCCEEDED
A payout item succeeded
What a PayPal webhook looks like
A PAYMENT.CAPTURE.COMPLETED payload. Hookbase stores the raw body exactly as it arrived, so this is also what you get back on a replay.
{
"id": "WH-1234567890",
"event_type": "PAYMENT.CAPTURE.COMPLETED",
"resource_type": "capture",
"resource": {
"id": "CAP-1234567890",
"status": "COMPLETED",
"amount": {
"currency_code": "USD",
"value": "50.00"
},
"create_time": "2024-01-15T10:30:00Z"
},
"create_time": "2024-01-15T10:30:01Z"
}Start receiving PayPal webhooks
Create a source, paste the URL into PayPal, and watch the first event arrive. The free tier includes 1,000 events a month.
Get Started Free