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
  • data
    Type: object
    required

    Who sent the message and which conversation it belongs to.

  • eventId
    Type: string
    required

    Idempotency key. Stable across retries of the same delivery; safe to dedupe on.

  • timestamp
    Type: string Format: date-time
    required

    When this webhook was emitted (ISO 8601, UTC).

  • type
    const:  
    message.received
    required
Responses
  • 2XX

    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