Send Direct Text Messages

Plain text messages sent without a media object. The text field carries the message body. All 11 scenarios from the Postman collection are documented below.

Folder: Send Direct text message

POST https://apis.rmlconnect.net/wba/v1/messages

Without TTL

Basic text message. No TTL specified — platform applies default delivery window.

POST https://apis.rmlconnect.net/wba/v1/messages

Sends a plain text message with an extra reference field and no TTL.

{
  "phone": "{phone}",
  "type": "send-direct",
  "extra": "samasd3",
  "text": "Hello from test"
}
📘

Info

Expected HTTP response: 201 or 202.

With a valid TTL

Text message with a valid TTL value (121 seconds). Message will be discarded if undelivered after 121 seconds.

POST https://apis.rmlconnect.net/wba/v1/messages

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "Your OTP is 987654",
  "ttl_seconds": 121
}

With TTL of 0

Tests rejection of TTL value 0. The API should return a validation error as 0 is below the minimum valid TTL of 30 seconds.

POST https://apis.rmlconnect.net/wba/v1/messages

Negative test — expected to fail validation.

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "Your OTP is 987654",
  "ttl_seconds": 0
}
📘

Note

Expected: 400 Bad Request. TTL of 0 is below the allowed minimum of 30 seconds.

At max TTL boundary

Boundary test at the maximum allowed TTL value of 43200 seconds (12 hours). Should be accepted.

POST https://apis.rmlconnect.net/wba/v1/messages

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "Test max TTL",
  "ttl_seconds": 43200
}
📘

Info

Expected: 201 or 202. 43200 is the maximum valid TTL.

At min TTL boundary

Boundary test at the minimum allowed TTL value of 30 seconds. Should be accepted.

POST https://apis.rmlconnect.net/wba/v1/messages

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "Test min TTL",
  "ttl_seconds": 30
}
📘

Info

Expected: 201 or 202. 30 is the minimum valid TTL.

With a too-large TTL

Negative test with TTL exceeding maximum (43201 > 43200). Should be rejected.

POST https://apis.rmlconnect.net/wba/v1/messages

Negative test — expected to fail validation.

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "TTL too large",
  "ttl_seconds": 43201
}
📘

Note

Expected: 400 Bad Request. TTL of 43201 exceeds the allowed maximum of 43200.

With a too-small TTL

Negative test with TTL below minimum (29 < 30). Should be rejected.

POST https://apis.rmlconnect.net/wba/v1/messages

Negative test — expected to fail validation.

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "TTL too small",
  "ttl_seconds": 29
}
📘

Note

Expected: 400 Bad Request. TTL of 29 is below the allowed minimum of 30.

Body over 1024 characters

Negative test verifying that the API rejects text payloads longer than 1024 characters.

POST https://apis.rmlconnect.net/wba/v1/messages

Negative test — text field contains >1024 characters.

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "This sample text is created to meet a specific character requirement while maintaining readability and clarity. It can be used for testing input limits, validating form constraints, or ensuring that systems properly handle larger text content without errors or truncation. [...text continues beyond 1024 characters...]"
}
📘

Note

Expected: 400 Bad Request. text field must not exceed 1024 characters.

Body exactly 1024 characters

Boundary test confirming that a text payload of exactly 1024 characters is accepted.

POST https://apis.rmlconnect.net/wba/v1/messages

Positive boundary test — text field contains exactly 1024 characters.

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "This text is carefully written to meet an exact character requirement while still being meaningful and readable. [...exactly 1024 characters total...]"
}
📘

Info

Expected: 201 or 202. Exactly 1024 characters is within the allowed limit.

With an unsupported language

Tests behaviour when the text field contains non-Latin script (Japanese). Certain CJK characters may not render on all WhatsApp client versions.

POST https://apis.rmlconnect.net/wba/v1/messages

{
  "phone": "{phone}",
  "type": "send-direct",
  "text": "\u3054\u6ce8\u6587\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f"
}
📘

Note

Behaviour may vary by client. Verify rendering on target WhatsApp versions before production use.

Missing phone number

Negative test — the phone field is absent from the request body. Should return a validation error.

POST https://apis.rmlconnect.net/wba/v1/messages

Negative test — expected to fail validation.

{
  "type": "send-direct",
  "text": "No phone number"
}
📘

Note

Expected: 400 Bad Request. phone is a required field.



Did this page help you?