Skip to main content
POST
/
webhooks
/
registrations
Register a webhook endpoint
curl --request POST \
  --url https://sandbox.trybraid.xyz/webhooks/registrations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://api.partner.com/webhooks/braid",
  "eventTypes": [
    "portfolio_wallet.balance.updated"
  ],
  "description": "Alerts our ledger service when balances change"
}
'
{ "id": "1e9b4d42-0e0d-4a0e-9c55-3d6a1df3b9c1", "url": "https://api.partner.com/webhooks/braid", "status": "active", "eventTypes": [ "portfolio_wallet.balance.updated", "portfolio_wallet.deposit.status_changed" ], "description": "Alerts our ledger service when balances change", "createdAt": "2026-02-08T18:04:10.123Z", "disabledAt": null, "disabledReason": null, "secret": "redacted_shared_secret_only_returned_once" }

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
url
string<uri>
required
Example:

"https://api.partner.com/webhooks/braid"

eventTypes
enum<string>[]
required

Event types to subscribe to.

Available options:
yield_wallet.balance.updated,
yield_wallet.withdrawal.status_changed,
yield_wallet.deposit.status_changed,
portfolio_wallet.balance.updated,
portfolio_wallet.deposit.status_changed,
portfolio_wallet.withdrawal.status_changed,
portfolio_wallet.withdrawal.payout.status_changed,
portfolio_wallet.strategy.status_changed,
portfolio_wallet.position.updated
Example:
["portfolio_wallet.balance.updated"]
description
string
Example:

"Alerts our ledger service when balances change"

Response

Webhook registration created

id
string
url
string<uri>
status
string
eventTypes
string[]
description
string | null
createdAt
string<date-time>
disabledAt
string<date-time> | null
disabledReason
string | null
secret
string

Shared signing secret. It is only returned during registration and cannot be retrieved later.