Quickstart
- Create a workspace. New workspaces start in test mode.
- In Settings → API keys, create a test key with the
events:writescope. - Send an
order.createdevent for a test customer. - Open Events in the dashboard to see the recorded event and the rendered notification.
Authentication
Authenticate every request with a bearer token. Test keys start with adx_test_ and live keys with adx_live_. Keep live keys on your server; never put them in browser or mobile code.
Authorization: Bearer adx_test_••••••••••••
Create an event
POST /api/v1/events
POST /api/v1/events
Content-Type: application/json
Idempotency-Key: 6f1c2a0e-payment-ADX-10482
{
"type": "payment.confirmed",
"order_id": "ADX-10482",
"customer_id": "cus_28491",
"amount": 1284.00,
"currency": "USD"
}
Parameters
| Field | Type | Description |
|---|---|---|
type | string | Required. One of the event types. |
customer_id | string | Required. The customer the event belongs to. Notifications go to this customer's email address. |
order_id | string | Required for order, payment and invoice events. |
amount | number | Required for payment and invoice events. Decimal amount in the given currency. |
currency | string | Three-letter ISO 4217 code, e.g. USD. |
occurred_at | string | Optional ISO 8601 timestamp. Defaults to the time Adionexus received the event. |
metadata | object | Optional key–value pairs, available to templates and shown in the event log. |
Response
202 Accepted
{
"id": "evt_7Hq2Lw9XbN",
"type": "payment.confirmed",
"status": "accepted",
"order_id": "ADX-10482",
"workflows": ["order.mark_paid", "invoice.generate", "notify.payment_receipt"],
"received_at": "2026-10-02T09:58:32Z"
}
Event types
| Type | Record update | Default notification |
|---|---|---|
order.created | Order created as pending | Order confirmation |
payment.confirmed | Order marked paid, invoice generated | Payment receipt |
payment.failed | Payment attempt recorded with reason | Payment failure notice |
invoice.created | Invoice opened | Invoice notification |
order.shipped | Order marked shipped | Shipping notification |
order.completed | Order closed | Order completion |
account.verification_requested | Verification token issued | Account verification |
account.verified | Account activated | Account activation |
password.reset_requested | Reset token issued (expires in 60 min) | Password reset email |
Idempotency
Send an Idempotency-Key header with each event. If a request is retried with the same key within 24 hours, Adionexus returns the original response and does not record a second event or send a second notification.
Notifications
Each event type maps to one template, editable under Settings → Notifications. Adionexus sends at most one message per event to the customer it belongs to. Delivery, bounce and complaint results are attached to the event in the log.
Addresses that hard-bounce or file a complaint are added to the workspace suppression list automatically. See the Sending Policy for details.
Sending domains
To deliver from your own domain, add it under Settings → Sending domain and publish the DNS records shown there:
- Three DKIM
CNAMErecords. - An
MXand SPFTXTrecord for the custom MAIL FROM subdomain. - A DMARC
TXTrecord at_dmarc.yourdomain.com.
Live mode becomes available once all records are verified.
Errors
| Status | Meaning |
|---|---|
400 | Invalid body or unknown event type. The response includes the failing field. |
401 | Missing or invalid API key. |
403 | Key lacks the events:write scope, or live sending is paused for the workspace. |
404 | Referenced customer_id or order_id does not exist. |
409 | Idempotency key reused with a different body. |
429 | Rate limit reached. Retry after the time in the Retry-After header. |
Questions about the API: help@adionexus.web.id