Payments
Braintree Webhooks
PayPal-owned payment platform. Receive events for transactions, subscriptions, disputes, and disbursements.
Connecting Braintree to Hookbase
Create a source in Hookbase first — it gives you an ingest URL to paste into Braintree. Then:
- 1In the Braintree Control Panel, click the gear icon → API → Webhooks tab (your role needs the "Manage Webhooks" permission)
- 2Click "Create New Webhook" and paste your Hookbase ingest URL
- 3Select the notification kinds to receive, then click "Create Webhook"
- 4Go to gear icon → API → API Keys and copy the Public Key, then click View to copy the Private Key
- 5Paste them into your Hookbase source as public_key:private_key (colon-joined)
Signature verification
Set the source's provider to braintree 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
- SHA1 with public/private key pair
- Header
- bt_signature (form-encoded POST body, not a header)
- Where to find the secret
- Braintree Control Panel → gear icon → API → API Keys → Public Key + Private Key (click View in the Private Key column). Enter them as "<public_key>:<private_key>". Braintree has no webhook-specific secret; it signs with your API key pair. Keys are per-user, so consider a dedicated API key for Hookbase so rotating a person's keys doesn't break verification.
Braintree event types
9 of the events people route most often. Hookbase accepts every event Braintree sends, whether or not it is listed here.
subscription_charged_successfully
A subscription was successfully charged
subscription_charged_unsuccessfully
A subscription charge failed
subscription_canceled
A subscription was canceled
subscription_went_past_due
A subscription went past due
transaction_settled
A transaction was settled
transaction_settlement_declined
A transaction settlement was declined
dispute_opened
A dispute was opened
dispute_lost
A dispute was lost
disbursement
Funds were disbursed to the merchant
What a Braintree webhook looks like
A subscription_charged_successfully payload. Hookbase stores the raw body exactly as it arrived, so this is also what you get back on a replay.
{
"kind": "subscription_charged_successfully",
"timestamp": "2024-01-15T10:30:00Z",
"subject": {
"subscription": {
"id": "sub_abc123",
"plan_id": "premium_monthly",
"status": "Active",
"price": "29.99",
"transactions": [
{
"id": "txn_def456",
"amount": "29.99",
"status": "settled"
}
]
}
}
}Start receiving Braintree webhooks
Create a source, paste the URL into Braintree, and watch the first event arrive. The free tier includes 1,000 events a month.
Get Started Free