Land an inbound provider payload as a ticket or reply
Land a provider payload as a ticket create or a ticket reply.
/v1/ingest/{channel}No credential- Operation id
- ingest_channel_message
- Access
- Public by design. No credential is required or consulted.
/v1/ingest/{channel}Land a provider payload as a ticket create or a ticket reply.
This is where a channel provider posts inbound traffic. {channel} is the
channel id, such as sms or whatsapp, and payload is that provider's
own message body, verbatim. The channel's adapter is what understands it,
so nothing here has to be reshaped first.
Whether the message opens a ticket or threads onto an existing one is
decided from the payload, not by the caller. was_created says which
happened and ticket_id names the ticket either way.
Redelivery is a success, not a duplicate. A message that already landed
answers with the same ticket, was_created: false and was_duplicate: true, and nothing is written twice. A retrying provider is never told to
retry harder.
A payload the adapter cannot read is 400 channel_payload_invalid and
nothing is written. An unregistered channel is 400 or 404 rather than a
silently dropped message.
A 429 means come back later, with Retry-After in seconds. Nothing was
written, and a redelivery that turns out to be a duplicate is refunded
rather than charged, so an idempotent retry storm cannot throttle out the
messages behind it.
Tenancy: public and unauthenticated by design. No credential and no role is required or consulted; the workspace is resolved from the request itself (a body tenant_id, a URL token, or an agent id).
Access: no credential.
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/ingest/string" \ -H "Content-Type: application/json" \ -d '{ "tenant_id": "73fc37a9-8235-56c7-a296-772adf8f6dbe", "payload": { "From": "+15550100", "To": "+15550199", "Body": "my card was declined", "MessageSid": "SM0001" } }'{ "channel": "sms", "ticket_id": "5e8b0c31-7a4d-4f92-b6c8-1d3e2a5f7b90", "customer_id": "9f1d6c4e-6b6e-4b31-9a5b-2f1c9a4d5e60", "was_created": true, "was_duplicate": false}