Skip to main content
cURL
Cost: Free.
Needs the webhooks:write scope, and orders:read as well on an endpoint with order event types. Alura queues a webhook.test event, signed like every delivery, and answers with its delivery as pending. It’s sent within seconds, once, without retries. Follow it with List deliveries.
  • The event has the usual envelope, with shop_id set to null and data set to {"event_type": "webhook.test"}.
  • It works on a disabled endpoint too.
  • It isn’t stored as an event, so List events doesn’t show it.
How to check the signature is on Verifying webhooks.

Authorizations

Authorization
string
header
required

An API key: Authorization: Bearer alura_sk_....

Headers

Idempotency-Key
string

Makes a retry safe: the same key with the same request within 24 hours returns the first result (with Idempotent-Replayed: true) instead of writing again. The same key with a different request is a 409 conflict; while the first request still runs, 409 idempotency_processing.

Required string length: 1 - 255

Path Parameters

id
string
required

The webhook endpoint ID (we_...).

Required string length: 1 - 64
Example:

"we_01JMOCK0000000000000000000"

Response

OK

object
string
required
Allowed value: "webhook_delivery"
id
string
required

dlv_...: this attempt, also sent as the alura-delivery-id header.

event_id
string
required

The event sent (evt_...). It is also the webhook-id header, the same on every attempt of the event: de-duplicate on it.

attempt
integer
required

1 for the first attempt, up to 8: retries come 5 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours, 10 hours and 10 hours after a failure.

status
enum<string>
required

pending: not sent yet (due at next_attempt_at). succeeded: your endpoint answered 2xx. failed: it did not, or the attempt was cancelled (error says why).

Available options:
pending,
succeeded,
failed
http_status
integer | null
required

The HTTP status your endpoint answered; null when there was no answer or it wasn't sent.

duration_ms
integer | null
required

How long the attempt took, connection included; null when it was not made.

error
string | null
required

Why an attempt failed without a usable answer: dns_failed, address_refused (the URL resolves to a private or local address), connect_failed, tls_failed, timeout (15 seconds), invalid_response, redirect_not_followed (a 3xx; redirects are never followed), invalid_url, internal_error (Alura could not finish the attempt; it is retried on the schedule); or why it was cancelled without being sent: endpoint_disabled, endpoint_changed (the endpoint's filters no longer want the event), event_expired. Null otherwise.

created_at
string
required

When the attempt was made; for a pending one, when it was queued.

next_attempt_at
string | null
required

For pending, when it is due; for failed, when the retry is due. Null when nothing follows.