Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.brale.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Webhook subscription API reference

List event types

GET /accounts/{account_id}/webhooks/event_types
Requires webhooks:read. Example:
curl https://api.brale.xyz/accounts/{account_id}/webhooks/event_types \
  -H "Authorization: Bearer {access_token}"
Response:
{
  "event_types": [
    {
      "event_type": "transfer.completed",
      "summary": "Emitted when a transfer (token order) reaches complete status."
    },
    {
      "event_type": "payment.completed",
      "summary": "Emitted when a payment reaches complete status."
    }
  ]
}

Create subscription

POST /accounts/{account_id}/webhooks
Requires webhooks:write. Use an Idempotency-Key header. Request:
{
  "url": "https://your-app.example.com/webhooks/brale",
  "events": ["transfer.completed"]
}
Response:
{
  "id": "3D3jNzs2r7Sf78qtYpRe1biscLG",
  "sharedSecret": "base64url-encoded-secret",
  "events": ["transfer.completed"],
  "url": "https://your-app.example.com/webhooks/brale",
  "status": "active"
}

List subscriptions

GET /accounts/{account_id}/webhooks
Requires webhooks:read. Response:
{
  "subscriptions": [
    {
      "id": "3D3jNzs2r7Sf78qtYpRe1biscLG",
      "events": ["transfer.completed"],
      "url": "https://your-app.example.com/webhooks/brale",
      "status": "active"
    }
  ]
}

Get subscription

GET /accounts/{account_id}/webhooks/{subscription_id}
Requires webhooks:read. The sharedSecret is not returned.

Update subscription

PATCH /accounts/{account_id}/webhooks/subscriptions/{subscription_id}
Requires webhooks:write. Use an Idempotency-Key header. Request:
{
  "url": "https://new-url.example.com/webhooks/brale",
  "events": ["transfer.completed"]
}
Important: if events is included, it replaces the entire event set. It does not merge with existing events. Note: the subscription API has an intentional path-shape inconsistency:
  • GET /accounts/{account_id}/webhooks/{subscription_id} (get one)
  • PATCH /accounts/{account_id}/webhooks/subscriptions/{subscription_id} (update)
  • DELETE /accounts/{account_id}/webhooks/subscriptions/{subscription_id} (archive)

Archive subscription

DELETE /accounts/{account_id}/webhooks/subscriptions/{subscription_id}
Requires webhooks:write. Archiving stops future deliveries. Delivery history is retained.

List delivery attempts

GET /accounts/{account_id}/webhooks/deliveries
Requires webhooks:read. Optional pagination:
page[size]=25
page[after]=cursor
page[before]=cursor
Do not send both page[after] and page[before]. Delivery logs are useful for debugging:
  • Whether Brale attempted delivery
  • What HTTP status your endpoint returned
  • Whether a delivery was retried
  • Failure messages
  • Attempt numbers