Skip to main content

Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See Getting Started on the Braintree connector page.

Copy your Native Webhook URL

The Native Webhook URL is generated once a Braintree account has been linked. Braintree sends every notification to this URL.

  • Open the linked account in StackOne.
  • Copy the value from Native Webhook URL.
  • Treat this URL as a secret. Anyone holding it can post notifications to your account.

Creating the webhook in Braintree

Braintree webhooks are created in the Control Panel. One webhook covers every notification you select.

1

Open the settings menu

Sign in to the Braintree Control Panel for your environment (Braintree production Control Panel or Braintree sandbox Control Panel), then click the settings gear icon in the top-right corner.

Braintree Control Panel home page with the settings gear icon in the top-right corner highlighted.
2

Open the API settings

In the settings menu, select API.

Open Braintree settings menu with the API entry highlighted.
3

Open the Webhooks tab

On the API page, click the Webhooks tab next to Keys.

Braintree API page with the Webhooks tab highlighted and the API key values redacted.
4

Create a new webhook

Click + Create New Webhook.

Braintree Webhooks page with no webhooks yet and the Create New Webhook button highlighted.
5

Paste the Native Webhook URL

Paste the Native Webhook URL into Destination URL (HTTPS only).

Braintree New Webhook form with the Destination URL (HTTPS only) field highlighted.
6

Select the notifications

Under Notifications, tick every event you want StackOne to receive. The list is grouped into Subscription, Dispute, Disputed Transaction, Disbursement, Payment Method and Refund.

  • Braintree only sends the notifications ticked here, so tick every event you plan to enable in StackOne.
  • Some groups appear only when the related feature is enabled on your gateway.
Braintree Notifications checklist with the Subscription and Dispute notifications ticked and highlighted.
7

Save the webhook

Scroll to the bottom of the form and click Create Webhook.

Bottom of the Braintree New Webhook form with the Create Webhook button highlighted.
8

Check the destination URL

The webhook is listed as (ENABLED). Click Check URL to send a test notification.

  • StackOne acknowledges the test notification without creating an event.
  • Use Edit later to change the selected notifications.
Braintree Webhooks list showing the enabled webhook with the Check URL action highlighted.

Available webhook events

The following Braintree events can be enabled. Only events selected in StackOne and ticked on the Braintree webhook are delivered.

1

Subscription events

Events related to recurring billing subscriptions. Braintree lists these under Subscription.

  • Subscription Billing Skipped (subscription_billing_skipped) — Fired when a subscription billing cycle is skipped
  • Subscription Canceled (subscription_canceled) — Fired when a subscription is canceled
  • Subscription Charged Successfully (subscription_charged_successfully) — Fired when a recurring charge succeeds
  • Subscription Charged Unsuccessfully (subscription_charged_unsuccessfully) — Fired when a recurring charge fails
  • Subscription Expired (subscription_expired) — Fired when a subscription reaches the end of its billing cycles
  • Subscription Trial Ended (subscription_trial_ended) — Fired when a subscription’s trial period ends
  • Subscription Went Active (subscription_went_active) — Fired when a subscription becomes Active, on its first authorized charge or on recovery from Past Due
  • Subscription Went Past Due (subscription_went_past_due) — Fired when a subscription moves to Past Due after a failed charge
2

Dispute events

Events related to chargebacks, retrievals and pre-arbitrations. Braintree lists these under Dispute and Disputed Transaction.

  • Dispute Opened (dispute_opened) — Fired when a new dispute is opened
  • Dispute Under Review (dispute_under_review) — Fired when a dispute moves to under review
  • Dispute Accepted (dispute_accepted) — Fired when you accept a dispute instead of providing evidence
  • Dispute Auto Accepted (dispute_auto_accepted) — Fired when Braintree accepts a dispute automatically
  • Dispute Disputed (dispute_disputed) — Fired when you finalize evidence and contest a dispute
  • Dispute Expired (dispute_expired) — Fired when the reply-by date passes without a response
  • Dispute Won (dispute_won) — Fired when the bank rules in your favor
  • Dispute Lost (dispute_lost) — Fired when the bank rules in the customer’s favor
  • Disputed Transaction Custom Fields Updated (disputed_transaction_custom_fields_updated) — Fired when a custom field on a disputed transaction is updated
3

Transaction, refund and disbursement events

Events related to settlement and payouts. Braintree lists these under Disbursement and Refund; the transaction events appear only when the related feature (such as ACH, Fraud Protection Advanced or transaction retries) is enabled on your gateway.

  • Transaction Disbursed (transaction_disbursed) — Fired when a transaction is disbursed to your bank account
  • Transaction Settled (transaction_settled) — Fired when a transaction settles, for ACH, US bank account and some local payment methods
  • Transaction Settlement Declined (transaction_settlement_declined) — Fired when settlement of an ACH or US bank account transaction is declined
  • Transaction Reviewed (transaction_reviewed) — Fired when a Fraud Protection Advanced decision on a transaction is reviewed
  • Transaction Retried (transaction_retried) — Fired when Braintree retries a declined transaction
  • Refund Failed (refund_failed) — Fired when a refund fails
  • Disbursement (disbursement) — Fired when a disbursement of settled funds is sent to your account
4

Payment method events

Events related to vaulted payment methods. Braintree lists these under Payment Method; Local Payment, Account Updater and Grant API events appear only when those features are enabled on your gateway.

  • Payment Method Revoked By Customer (payment_method_revoked_by_customer) — Fired when a customer revokes a vaulted payment method, such as a PayPal billing agreement or Venmo account
  • Payment Method Customer Data Updated (payment_method_customer_data_updated) — Fired when customer data behind a vaulted payment method changes
  • Local Payment Completed (local_payment_completed) — Fired when a buyer completes a local payment method flow
  • Local Payment Expired (local_payment_expired) — Fired when a local payment expires before it is funded
  • Local Payment Funded (local_payment_funded) — Fired when a local payment is funded
  • Local Payment Reversed (local_payment_reversed) — Fired when a local payment is reversed
  • Account Updater Daily Report (account_updater_daily_report) — Fired when the daily Account Updater report of updated vaulted cards is ready
  • Granted Payment Instrument Update (granted_payment_instrument_update) — Fired when a payment instrument shared through the Grant API is updated
  • Granted Payment Method Revoked (granted_payment_method_revoked) — Fired when a payment method shared through the Grant API is revoked
  • Grantor Updated Granted Payment Method (grantor_updated_granted_payment_method) — Fired when the grantor updates a payment method shared through the Grant API
  • Recipient Updated Granted Payment Method (recipient_updated_granted_payment_method) — Fired when the recipient updates a payment method shared through the Grant API

Delivery format

Details of how Braintree delivers notifications to StackOne.

1

Encoded notifications

Each request carries one notification as a form-encoded bt_signature and bt_payload, where bt_payload is base64-encoded XML. StackOne decodes it and routes it to the matching event. The event data holds the kind, timestamp, the decoded notification_xml and the original bt_signature and bt_payload.

  • StackOne does not verify the Braintree signature. To confirm a notification is authentic, pass bt_signature and bt_payload to the Braintree SDK webhook parse method.
  • Braintree retries a notification that is not acknowledged. A retried notification keeps the same event ID.

Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.