v1
latestOpenAPI 3.0.12026-07-243686491.1 MBMessages
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
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
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"
}