---
title: "Send a test webhook to the configured URL"
method: POST
path: "/webhooks/test"
tags: ["Webhooks"]
---

# Send a test webhook to the configured URL

`POST /webhooks/test`

Sends a single webhook with fixture data to the client's configured URL. Uses the client's real webhook secret so signature verification works as in production. Envelope and persisted payload both carry `"test": true` so the receiver can filter and the dashboard can mark it.

## Headers

- `x-api-key` string, required — API key for authentication
- `x-api-version` string — API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.

## Request body

- TestWebhookRequestBody
  - `type` 'deposit-received' | 'bridge-started' | 'bridge-delayed' | 'bridge-complete' | 'bridge-failed' | 'deposit-rejected' | 'deposit-delayed' | 'deposit-refunded' | 'onramp-order' | 'error', required — Which webhook type to simulate

## Response `200`

Test webhook dispatched

- TestWebhookResponse
  - `message` string, required
  - `eventId` string, required

## Other responses

- `400` — Invalid request, unknown type, or client has no webhook URL configured
- `403` — API key lacks required deposits scope

---

[API](https://skmtc.net/rhinestonewtf/apis/deposit-service-api.md) · [All operations](https://skmtc.net/rhinestonewtf/apis/deposit-service-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhinestonewtf/deposit-service-api/versions/ce4e0abfe33a/schema)
