Skip to main content
POST
/
v2
/
webhooks
Create a webhook
curl --request POST \
  --url https://sandbox.groundtech.co/v2/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://ops.acme-treasury.com/webhooks/ground",
  "events": [
    "portfolio_wallet.balance.updated",
    "portfolio_wallet.withdrawal.status_changed"
  ],
  "description": "Notify treasury operations when wallet balances or withdrawals change"
}
'
{
  "id": "6b6a0502-9d38-4f94-83fe-06706adbdc51",
  "url": "https://ops.acme-treasury.com/webhooks/ground",
  "events": [
    "portfolio_wallet.balance.updated",
    "portfolio_wallet.withdrawal.status_changed"
  ],
  "secret": "ad4d5592b46c4b9361f0aa4f3b27fcaa8015751d0417e3993d7f5454652c5ab8",
  "createdAt": "2026-05-01T17:32:08.000Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.groundtech.co/llms.txt

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

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://ops.acme-treasury.com/webhooks/ground"

events
enum<string>[]
required

Event types to subscribe to.

Minimum array length: 1
Available options:
portfolio_wallet.balance.updated,
portfolio_wallet.deposit.status_changed,
portfolio_wallet.withdrawal.status_changed,
portfolio_wallet.withdrawal.payout.status_changed,
portfolio_wallet.position.updated,
portfolio_wallet.strategy.status_changed
description
string | null
Example:

"Notify treasury operations when wallet balances or withdrawals change"

Response

Webhook created

id
string<uuid>
url
string<uri>
events
string[]
secret
string

Signing secret. Only returned on creation. Store securely.

createdAt
string<date-time>