Skip to main content
MM7 is the 3GPP SOAP/XML protocol (TS 23.140) used by carrier MMSCs and enterprise MMS platforms. Telnyx exposes an MM7 gateway so systems that already speak MM7 can send and receive MMS through Telnyx without rewriting to the JSON Messages API. The gateway implements MM7 version 6.8.0.

Prerequisites

  • A Telnyx account with an API key
  • A US/Canada long code, toll-free number, or short code with MMS enabled, assigned to a messaging profile
  • For receiving: a publicly reachable webhook endpoint that accepts multipart/related and text/xml POST requests

Send MMS via MM7

Submit a standard MM7 SubmitReq to:
Authenticate with your Telnyx API key as a Bearer token, exactly as for all other v2 API endpoints. The request is a multipart/related body: the first part is the MM7 SOAP envelope (SubmitReq), remaining parts are the media attachments. The sender number must be owned by the account authenticating with the Bearer token. Each SubmitReq carries a TransactionID — Telnyx returns the same value in the response header so requests can be correlated.
The outbound MMS submitted via MM7 flows through the same routing, anti-spam, and rate-limiting pipeline as MMS sent through the Messages API. SubmitReq supports To and Cc recipients, ShortCode and Number address forms, and a Subject element. Media content is re-hosted on Telnyx storage.

Request

Use <ShortCode> in place of <Number> for short-code senders and recipients.

Response

On acceptance, Telnyx returns an MM7 SubmitRsp with status 1000 (Success) and the Telnyx MessageID:
Delivery reports for MM7-submitted messages are delivered to your messaging profile’s standard webhook as regular Telnyx JSON delivery events, unless you opt into MM7-native webhooks (see below).

Status codes

The gateway always returns an MM7 response. Check both the HTTP status code and the Content-Type header: requests stopped at the edge router (authentication, routing) return a JSON error body instead of an MM7 response.

Limits

Receive MMS via MM7

By default, inbound MMS and delivery reports arrive as regular Telnyx JSON webhooks. To receive them as MM7 payloads instead, configure mm7_metadata on the messaging profile that owns the destination numbers:
If you have no failover webhook, omit mm7_failover_webhook_url from the request body. Passing an explicit null for either field is rejected with error 10026 (invalid parameter type).
With mm7_metadata configured, the profile’s MM7 webhook receives POST requests with two payload types:
  • DeliverReq — inbound MMS from a handset. The SOAP envelope names sender, recipients, and subject; the multipart/related body carries the message content parts, with start pointing at the SMIL part.
  • DeliveryReportReq — MM7 delivery reports for messages submitted via MM7. The envelope carries the original MessageID, MMStatus, StatusText, sender, and recipient.
The webhook must accept POST requests from Telnyx IP addresses. A non-2xx response (or connection failure) to the primary webhook triggers delivery to mm7_failover_webhook_url when configured.
MM7 webhook payloads are not currently signed. Allowlist Telnyx IP addresses on your endpoint while payload signing is being added.

Troubleshooting

The SenderAddress in the SubmitReq does not match a number owned by the authenticating account, the number is not assigned to a messaging profile, or an explicit null was sent for an mm7_metadata field. Verify number ownership and profile assignment.
The request was stopped at the edge router before reaching the MM7 gateway — usually authentication or a malformed Content-Type. Confirm the Bearer token and that Content-Type is multipart/related with a boundary (and start pointing at the SOAP part). Check the HTTP status code alongside the body.
The total request body — SOAP envelope plus all media parts, after any base64 expansion — must be under 2 MB. Split large media across multiple submissions or downscale media.
Confirm mm7_metadata is set on the messaging profile that owns the destination number for inbound, or the profile used at submit time for delivery reports. Without mm7_metadata, all events arrive as standard JSON webhooks. Also confirm the endpoint accepts multipart/related and text/xml POSTs and allowlists Telnyx IPs.

Next steps

Send & Receive MMS

Send MMS via the JSON Messages API with media attachments.

Messaging Profiles

Configure profiles, webhooks, and number pools.

Receiving Webhooks

Standard JSON webhook setup and signature verification.

MMS Media & Transcoding

Supported media formats and carrier size limits.