v1

latestOpenAPI 3.0.12026-07-243686491.1 MB
Messages

Send a message to a user.

Sends a message to one of your users on the selected channels (in-app inbox, mobile push, email, SMS). The user must belong to your operator.<br/><br/>Messages do not support the partnerExternalId / partnerCustomPayload custom-data fields (§11) — they are transient delivery records rather than partner-managed entities.<br/><br/>Clients may send an Idempotency-Key header for safe retry semantics; the header is currently accepted and ignored (no enforcement yet).<br/><br/>Required scope: messages:write

post/api/v1/messages

Headers

Idempotency-Keystring
Example:01HX5Z6Q1ABC1234FZ7K9PQRDE

Opaque client-supplied key used for safe retries. Accepted today; behavior not yet enforced.

Request body

recipientUserIdinteger

Id of the user to send the message to. The user must belong to your operator.

bodystring required

The message body. 1–4096 characters.

subjectstring nullable

Optional subject / title. Up to 140 characters. Used as the push/email title; falls back to a default when omitted.

actionUrlstring nullable

Optional deep link opened from the message. Must be an https:// URL, a monta-app:// deeplink, or an internal /path.

Example request

{
  "recipientUserId": 42,
  "body": "Your charge at Main Street is complete.",
  "subject": "Charge complete",
  "actionUrl": "https://app.monta.com/charges/42",
  "channels": {
    "webInbox": true
  }
}

Response

The message was accepted and is being delivered

idstring required

Id of the message.

recipientUserIdinteger

Id of the user the message was sent to.

bodystring required

The message body.

subjectstring nullable

Subject / title, if one was set.

actionUrlstring nullable

Deep link carried by the message, if any.

readAtstring date-time nullable

When the recipient read the message, or null if unread.

createdAtstring date-time required

When the message was created.

Example response

{
  "id": "1024",
  "recipientUserId": 42,
  "body": "Your charge at Main Street is complete.",
  "subject": "Charge complete",
  "channels": {
    "webInbox": true
  },
  "deliveryResults": {
    "webInbox": {
      "status": "delivered",
      "at": "2026-06-26T13:40:01Z"
    },
    "mobilePush": {
      "status": "delivered",
      "at": "2026-06-26T13:40:01Z"
    },
    "email": {
      "status": "delivered",
      "at": "2026-06-26T13:40:01Z"
    },
    "sms": {
      "status": "delivered",
      "at": "2026-06-26T13:40:01Z"
    }
  },
  "readAt": "2026-06-26T13:47:14.123Z",
  "createdAt": "2026-06-26T13:40:00Z"
}