---
title: "Send a test delivery"
method: POST
path: "/v1/accounts/{accountId}/webhooks/endpoints/{endpointId}/test"
tags: ["Webhooks"]
---

# Send a test delivery

`POST /v1/accounts/{accountId}/webhooks/endpoints/{endpointId}/test`

## Request

- Base URL: `https://api.assinafy.com.br`
- URL: `https://api.assinafy.com.br/v1/accounts/{accountId}/webhooks/endpoints/{endpointId}/test`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
- TypeScript: <https://skmtc.dev/assinafy/apis/assinafy-api-reference/docs/v1/accounts/:accountId/webhooks/endpoints/:endpointId/test/post.ts> (a function with typed inputs; its response is checked against the schema)

Sends the endpoint one `webhook_test` event now, signed and sent like any delivery, and returns the entry of that attempt (`kind: manual`, also listed in the delivery history). It goes to this endpoint only, whatever events it subscribes to, and also while the endpoint is paused or inactive; it neither lifts a pause nor counts toward one. The endpoint has 10 seconds to answer. Its `payload` and `origin` are `null`; the endpoint object carries its id, name, url, events and status, never its secret. No endpoint can subscribe to `webhook_test`, and it is not listed in `GET /webhooks/event-types`. Its `payload` and `origin` are `null`; the endpoint object carries its id, name, url, events and status, never its secret. No endpoint can subscribe to `webhook_test`, and it is not listed in `GET /webhooks/event-types`. The event names the endpoint as its `subject` and `object` and carries nothing about the workspace beyond `account_id`: no billing and no members. Up to 10 tests per user every 10 minutes. Requires the `webhooks:write` OAuth scope.

[Copy as Markdown](https://api.assinafy.com.br/v1/docs/markdown?method=post&path=%2Fv1%2Faccounts%2F%7BaccountId%7D%2Fwebhooks%2Fendpoints%2F%7BendpointId%7D%2Ftest) [Open in ChatGPT](https://chatgpt.com/?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dpost%26path%3D%252Fv1%252Faccounts%252F%257BaccountId%257D%252Fwebhooks%252Fendpoints%252F%257BendpointId%257D%252Ftest%20and%20help%20me%20integrate%20this%20endpoint.) [Open in Claude](https://claude.ai/new?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dpost%26path%3D%252Fv1%252Faccounts%252F%257BaccountId%257D%252Fwebhooks%252Fendpoints%252F%257BendpointId%257D%252Ftest%20and%20help%20me%20integrate%20this%20endpoint.)

## Path parameters

- `accountId` string, required
- `endpointId` string, required

## Response `200`

The entry of the test delivery

- object: Standard success wrapper. Operations add their own `data`.
  - `status` integer: HTTP status code, mirrored in the body.
  - `message` string: Human-readable message; empty on success.
  - `data` WebhookDispatch: A single webhook delivery-history entry.
    - `resource` string: Always `activity_dispatching_history` in single-resource responses.
    - `id` string: Dispatch entry ID.
    - `event` string: Event type that triggered the dispatch.
    - `activity_id` integer: Internal activity ID associated with the dispatch.
    - `endpoint_id` string, nullable: ID of the webhook endpoint the delivery was sent to (`null` once that endpoint is deleted).
    - `endpoint` string, nullable: URL that received the request.
    - `payload` object, nullable: JSON payload sent to the endpoint.
    - `delivered` boolean: Whether delivery succeeded.
    - `webhook_id` string, nullable: The `webhook-id` header of the request: the same on every attempt of this event to this endpoint.
    - `attempt` integer, nullable: Which attempt of this event to this endpoint the entry records, counted from 1.
    - `kind` 'scheduled' | 'probe' | 'manual': `scheduled`: the delivery of the event as it happened; `probe`: the one delivery we send to a paused endpoint to see whether it answers; `manual`: asked for through **Retry webhook delivery** or **Send a test delivery**.
    - `will_retry` boolean: Whether another attempt follows this one. `false` on a delivered entry and on the last attempt of a failed one.
    - `duration_ms` integer, nullable: How long the endpoint took to answer or fail, in milliseconds. `null` when no request was sent (a host that does not resolve, an address that is not public) and on entries recorded before it was measured.
    - `http_status` integer, nullable: HTTP status returned (null if connection failed).
    - `response_body` string, nullable: Endpoint response body, truncated to 2000 chars.
    - `error` string, nullable: Delivery error message, if any.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `401`: Missing or invalid credentials.
- `404`: The requested resource does not exist.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error.

## Changes

> 19 revisions in range; 1 not diffed.

- **2026-11-04** `5fcad067d962`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/assinafy/apis/assinafy-api-reference/changes/v1/accounts/:accountId/webhooks/endpoints/:endpointId/test/post.md)

---

[API](https://skmtc.dev/assinafy/apis/assinafy-api-reference.md) - [All operations](https://skmtc.dev/assinafy/apis/assinafy-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/assinafy/apis/assinafy-api-reference/revisions/f4fa0790d9f8?raw)
