Documentation Index
Fetch the complete documentation index at: https://docs.augustus.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Webhooks deliver event notifications to your server as HTTP POST requests whenever something happens in your account, for example when a payout is created or a deposit is received. You can manage webhook subscriptions, inspect delivered events, and replay failed deliveries via the Augustus Dashboard, the REST API, or the SDK. See the Webhook Subscriptions, Webhook Deliveries, and Events resources in the API Reference for the full set of endpoints.Events
Events follow theresource.action naming convention (e.g. payout.paid, deposit.received). The payload field in each delivery contains a full snapshot of the resource at the time of the event, matching the shape returned by the corresponding API endpoint.
Augustus emits events for:
- Payouts: when a payout is created, initiated, paid, or fails
- Returns: when a return is initiated, paid, fails, or arrives back in your account
- Deposits: when a deposit is received
- Conversions: when a currency conversion is created, completes, or fails
ping.test event is only emitted by the test endpoint and does not reflect any real business activity; handlers should ignore it or use it to confirm their integration is wired up correctly.
Managing subscriptions
Webhook subscriptions are managed via the Augustus Dashboard or programmatically through the API. Each subscription has an HTTPS URL and a list of event types it receives.["*"] if you want to receive every event type, including any added in the future, without having to update your subscription.
See the Webhook Subscriptions resource in the API Reference for the full set of endpoints.
Payload shape
All webhook deliveries use a consistent envelope. The example below shows apayout.paid delivery; other event types carry the same envelope but the payload shape matches the underlying resource.
Unique identifier for the event. Stable across retries of the same event. Use this to deduplicate.
Event type in
resource.action format (e.g. payout.paid, deposit.received).API version the payload was serialised at. Fixed when the event is created; stable across retries and redeliveries, even if your account’s pinned version changes in between. See Webhook versioning.
Full resource snapshot at the time of the event. The shape matches what the API returns for the same resource.
ISO 8601 UTC timestamp when the event was created.
api_version to handle older and newer payload shapes side-by-side until all in-flight events drain:
Signature verification
Augustus signs webhooks using the Standard Webhooks specification. Every delivery includes three headers for replay protection and integrity verification:| Header | Description |
|---|---|
webhook-id | Stable delivery identifier. Same as the envelope id. Use this to deduplicate retries. |
webhook-timestamp | Unix timestamp (seconds) of the delivery attempt. |
webhook-signature | One or more v1,<base64_digest> HMAC-SHA256 signatures, space-separated. Two signatures appear during secret rotation. |
Using the SDK (recommended)
The Augustus SDK handles signature verification and returns a typed event object. Theunwrap method verifies the signature, then parses and returns the event. It throws an error if verification fails.
Express
AUGUSTUS_WEBHOOK_KEY environment variable by default. You can also pass it explicitly via the key option on unwrap:
Manual verification
If you are not using the SDK, verify signatures manually:- Extract the
webhook-id,webhook-timestamp, andwebhook-signatureheaders - Construct the signed content:
{webhook-id}.{webhook-timestamp}.{raw_request_body} - Compute HMAC-SHA256 using the base64-decoded key material from your signing secret (strip the
whsec_prefix, then base64-decode) - Base64-encode the digest and compare with the
v1,value(s) in thewebhook-signatureheader - Reject deliveries where the timestamp is older than 5 minutes
Signing secrets
Your webhook signing secret is available in the Augustus Dashboard. Secrets follow the Standard Webhooks format with awhsec_ prefix followed by base64-encoded key material (e.g. whsec_dGhpcyBpcyBhbiBleGFtcGxl).
Secret rotation
You can rotate your webhook signing secret without downtime. During rotation, both the old and new secrets are active for 24 hours. Thewebhook-signature header includes signatures for both secrets during this window (space-separated), so your verification code should accept if any signature matches. At most two secrets are active at any time.
If you use the SDK’s unwrap method, rotation is handled automatically.
Testing a subscription
To verify that your receiver is reachable and signature verification is correctly wired up, trigger a synthetic delivery to any subscription. Augustus dispatches a signedping.test event through the real pipeline, using the same signing, headers, and retry schedule as a production event.
Inspecting events and deliveries
Every event Augustus sends you is recorded and queryable for 30 days via the API.- Events (
GET /v1/events,GET /v1/events/:id) represent the facts that happened on your account. Each event has a stableid(the sameidyou receive in the webhook envelope) and the full payload snapshot.
- Webhook Deliveries (
GET /v1/webhook_deliveries,GET /v1/webhook_deliveries/:id) represent the individual delivery attempts against your subscriptions. One event can fan out to multiple deliveries if you have multiple matching subscriptions. Each delivery carries anattempts[]log with per-attempt status and HTTP status code returned by your receiver.
webhook-id.
Retry policy
Failed deliveries are retried with exponential backoff for up to 15 attempts total, spanning approximately 54 hours. Deliveries that fail all attempts are marked as permanently failed and can be inspected and replayed via the Webhook Deliveries API. Your endpoint should return a2xx status code within 25 seconds to acknowledge receipt.
Event ordering
Event delivery order is not guaranteed. Your endpoint should handle out-of-order delivery gracefully and use thewebhook-id header (or the envelope id field) to deduplicate retries.