Monta
Monta API

Messages


List messages you have sent.

GET
https://partner-api.monta.com
/api/v1/messages

Lists the messages your operator has sent, newest first. Required scope: messages:read

List messages you have sent. › query Parameters

userId
​integer | null · int64

Only return messages sent to this user.

Example: 42
readState
​string | null · enum

Filter by whether the recipient has read the message.

Enum values:
read
unread
any
Example: unread
after
​string | null

Cursor from a previous response's meta.after to retrieve the next page.

perPage
​integer | null · int32 · min: 1 · max: 100

Maximum number of messages to return (1–100).

Example: 50
Default: 50

List messages you have sent. › Responses

List of messages that match the criteria

​Message[] · required
​CursorBasedPageMeta · required

Send a message to a user.

POST
https://partner-api.monta.com
/api/v1/messages

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.

Messages do not support the partnerExternalId / partnerCustomPayload custom-data fields (§11) — they are transient delivery records rather than partner-managed entities.

Clients may send an Idempotency-Key header for safe retry semantics; the header is currently accepted and ignored (no enforcement yet).

Required scope: messages:write

Send a message to a user. › Headers

Idempotency-Key
​string

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

Example: 01HX5Z6Q1ABC1234FZ7K9PQRDE

Send a message to a user. › Request Body

A message to send to one of your users.
body
​string · required

The message body. 1–4096 characters.

Example: Your charge at Main Street is complete.
​object · required

Which channels to deliver on. Defaults to in-app inbox only.

userId
​integer · int64

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

Example: 42
subject
​string | null

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

Example: Charge complete
actionUrl
​string | null

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

Example: https://app.monta.com/charges/42

Send a message to a user. › Responses

The message was accepted and is being delivered

A message your operator sent to a user. Note: messages do not support the `partnerExternalId` / `partnerCustomPayload` custom-data fields (§11) — they are transient delivery records, not partner-managed entities.
id
​string · required

Id of the message.

Example: 1024
body
​string · required

The message body.

Example: Your charge at Main Street is complete.
​object · required

The channels the message was sent on.

​object · required

Per-channel delivery status. Populated asynchronously after send, so channels may be absent immediately after sending.

createdAt
​string · date-time · required

When the message was created.

Example: 2026-06-26T13:40:00Z
userId
​integer · int64

Id of the user the message was sent to.

Example: 42
subject
​string | null

Subject / title, if one was set.

Example: Charge complete
actionUrl
​string | null

Deep link carried by the message, if any.

readAt
​string | null · date-time

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

Example: 2026-06-26T13:47:14.123Z

Retrieve a single message you have sent.

GET
https://partner-api.monta.com
/api/v1/messages/{messageId}

Retrieves a message your operator sent, including its per-channel delivery status. Required scope: messages:read

Retrieve a single message you have sent. › path Parameters

messageId
​string · required

Retrieve a single message you have sent. › Responses

The requested message

A message your operator sent to a user. Note: messages do not support the `partnerExternalId` / `partnerCustomPayload` custom-data fields (§11) — they are transient delivery records, not partner-managed entities.
id
​string · required

Id of the message.

Example: 1024
body
​string · required

The message body.

Example: Your charge at Main Street is complete.
​object · required

The channels the message was sent on.

​object · required

Per-channel delivery status. Populated asynchronously after send, so channels may be absent immediately after sending.

createdAt
​string · date-time · required

When the message was created.

Example: 2026-06-26T13:40:00Z
userId
​integer · int64

Id of the user the message was sent to.

Example: 42
subject
​string | null

Subject / title, if one was set.

Example: Charge complete
actionUrl
​string | null

Deep link carried by the message, if any.

readAt
​string | null · date-time

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

Example: 2026-06-26T13:47:14.123Z