Webhook
Message received
Fires when you receive a chat message (from the other party, or from CardNexus support). Metadata only — no message text; fetch the conversation to read it. data.context is a discriminated union keyed on type; today it is always order, and new conversation types are added there without breaking your integration.
Body
required
application/json
- Type: objectdatarequired
Who sent the message and which conversation it belongs to.
- Type: stringevent
Id requiredIdempotency key. Stable across retries of the same delivery; safe to dedupe on.
- Type: string Format: date-timetimestamprequired
When this webhook was emitted (ISO 8601, UTC).
- typeconst:message.receivedrequired
Responses
- 2
X X Acknowledged. Return any 2XX status to ack receipt; non-2XX triggers Svix's retry schedule.
Request Example for postmessage.received
{
"type": "message.received",
"eventId": "e5f0a1b2c3d4e5f6a7b8c9d0",
"timestamp": "2026-06-14T10:00:03.000Z",
"data": {
"threadId": "b3JkZXI6T1ItQVNOQkMtMTptYWlu",
"messageId": "e5f0a1b2c3d4e5f6a7b8c9d0",
"context": {
"type": "order",
"orderNumber": "OR-ASNBC-1",
"scope": "main",
"yourRole": "seller"
},
"sender": {
"username": "north_arena_tcg"
},
"sentAt": "2026-06-14T10:00:00.000Z",
"hasAttachments": false
}
}
No Body