---
title: "Register transactions to track"
method: POST
path: "/webhooks/{id}/transactions"
tags: ["Webhooks"]
---

# Register transactions to track

`POST /webhooks/{id}/transactions`

## Request

- Base URL: `https://sochain.com/api/v3`
- URL: `https://sochain.com/api/v3/webhooks/{id}/transactions`
- Auth: API key in header `API-KEY`

For transaction.confirmation webhooks, up to 1,000 per call. The transactions your webhooks track at once, across all of them, are capped per plan (Free 500, Hobby 1,000, Starter 10,000, Professional 25,000, Behemoth 100,000; Free's on testnets; each stops counting once its last notify_at level is sent); past that, 403.

## Path parameters

- `id` string, required

## Request body

- TransactionList
  - `transactions` string[], required: Transaction IDs to track.

## Response `200`

Success.

- object
  - `status` 'success', required
  - `data` WebhookTransactionsAdded, required
    - `id` string, required
    - `added` integer, required: Transactions it didn't track yet.

## Other responses

- `400`: A bad parameter or body; the message says which.
- `401`: An invalid key, no key where one is needed (buckets, webhooks, /account_info), a locked account or expired plan, or both the month's requests and the keyless rate used up. Kept as 401, with this message, for v3 compatibility.
- `403`: A read-only key, or a change past your plan's limits: data.error_message says which.
- `404`: Not found.
- `413`: A body over the limit: 256 KB where a call carries addresses or transaction IDs, 64 KB otherwise.
- `415`: A body that isn't JSON: send it with Content-Type: application/json.
- `503`: Briefly unavailable; retry with backoff. May carry Retry-After.

---

[API](https://skmtc.dev/sochain/apis/sochain-api.md) · [All operations](https://skmtc.dev/sochain/apis/sochain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sochain/apis/sochain-api/revisions/80682797b38f?raw)
