Documentation
SMS API Messages

Inbound SMS

Configure a virtual number and receive inbound SMS messages as secure callback requests.

Your account needs a virtual number to receive SMS messages. Once a callback URL is configured, iP.1 sends inbound messages to it with POST.

Prerequisites

  1. Order a subscription or add-on for a virtual number.
  2. Open the user portal.
  3. Go to the SMS settings for inbound SMS.
  4. Enter an absolute HTTPS callback URL.

The callback must respond with 200 OK after receiving the message. According to the published documentation, any other status causes a later retry.

Example payload

{
  "id": "message_in_abc123",
  "batchId": "batch_in_abc123",
  "owner": "ip1-XXXXX",
  "sender": "46700000000",
  "recipient": "46760000000",
  "body": "Yes, that time works.",
  "direction": "mo",
  "segments": 1,
  "type": "sms",
  "datacoding": "GSM",
  "priority": 1,
  "statuses": [
    {
      "created": "2026-10-05T08:03:21Z",
      "code": 201,
      "duration": 1
    }
  ],
  "modified": "2026-10-05T08:03:21Z",
  "mcc": "240",
  "mnc": "01"
}

Fields

Field Type Description
id string Inbound message ID.
batchId string Parent batch.
owner string Account that owns the virtual number.
sender string Mobile number that sent the SMS.
recipient string Your virtual number.
body string Message content.
direction string mo (Mobile Originated).
segments integer Number of SMS segments.
type string Message type.
datacoding string gsm or ucs. Older documentation mistakenly called the Unicode option flash; the correct term elsewhere in the API reference is ucs.
priority integer Message priority.
statuses object[] Status events.
modified string Latest update in ISO 8601.
mcc string | null Mobile Country Code when available.
mnc string | null Mobile Network Code when available.

Implementation guidance

  • respond only after validating the payload and placing it safely in a queue
  • make the receiver idempotent using id
  • treat body as data, never as HTML or code
  • impose limits on payload size and processing time
  • minimize storage of phone numbers and message text
  • create alerts for repeated callback errors

To read a continuous history for a participant, use the conversation endpoints.

Choose the purposes you consent to. Necessary storage is used only to remember your choice.