{"info":{"_postman_id":"dec4cadb-bff2-4336-a760-eb25bf4b74cc","name":"myCRMSIM API Documentation","description":"<html><head></head><body><h1 id=\"mycrmsim-api-documentation\"><strong>myCRMSIM API Documentation</strong></h1>\n<p>StartFragmentThe myCRMSIM API enables third-party applications (such as Make.com custom apps) to integrate with the myCRMSIM messaging platform. The API supports OAuth 2.0 authentication, inbound message webhooks, and outbound message dispatch across&nbsp;<strong>SMS, MMS, WhatsApp, iMessage, and RCS</strong>&nbsp;channels.EndFragment  </p>\n<h2 id=\"base-urls\"><strong>Base URLs</strong></h2>\n<ul>\n<li><p><strong>Main API:</strong> <strong><code>https://backend.mysmsgateway.app</code></strong></p>\n</li>\n<li><p><strong>SMS Dispatch:</strong> <strong><code>https://api.mysmsgateway.app</code></strong></p>\n</li>\n</ul>\n<h2 id=\"authentication\"><strong>Authentication</strong></h2>\n<p><strong>The API uses OAuth 2.0 Authorization Code Grant flow. All API endpoints require a Bearer access token in the</strong> <strong><code>Authorization</code></strong> <strong>header.</strong></p>\n<h2 id=\"rate-limits\"><strong>Rate Limits</strong></h2>\n<p><strong>Standard rate limits apply per OAuth client. Contact support for higher limits.</strong></p>\n<h2 id=\"support\"><strong>Support</strong></h2>\n<p><strong>For integration questions or technical issues, contact:</strong> <a href=\"https://mailto:support@mycrmsim.com\"><b>support@mycrmsim.com</b></a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"myCRMSIM API Documentation","slug":"mycrmsim-api-documentation"}],"owner":"50634098","collectionId":"dec4cadb-bff2-4336-a760-eb25bf4b74cc","publishedId":"2sBXwjvZ7m","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-21T15:48:22.000Z"},"item":[{"name":"OAuth - Authorize User","id":"d195fc88-00f8-45c7-8dfa-3874a37dd23f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<h2 id=\"oauth--authorize-user\">OAuth — Authorize User</h2>\n<p>Initiates the OAuth 2.0 authorization flow. This URL should be opened in the user's <strong>browser</strong> (not called from an API client) so they can sign in and grant consent.</p>\n<h3 id=\"flow\">Flow</h3>\n<ol>\n<li><p>Redirect user's browser to this URL with <code>client_id</code>, <code>redirect_uri</code>, <code>response_type=code</code>, and optional <code>state</code>.</p>\n</li>\n<li><p>User signs in to myCRMSIM (if not already signed in).</p>\n</li>\n<li><p>User clicks \"Allow\" on the consent page.</p>\n</li>\n<li><p>myCRMSIM redirects the browser to <code>redirect_uri</code> with <code>?code=AUTH_CODE&amp;state=...</code>.</p>\n</li>\n<li><p>The application then exchanges the code for an access token using the <code>/oauth/token</code> endpoint.</p>\n</li>\n</ol>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>client_id</code></td>\n<td>Yes</td>\n<td>Your OAuth client ID</td>\n</tr>\n<tr>\n<td><code>redirect_uri</code></td>\n<td>Yes</td>\n<td>Must match the registered redirect URI for your client</td>\n</tr>\n<tr>\n<td><code>response_type</code></td>\n<td>Yes</td>\n<td>Must be <code>code</code></td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>Recommended</td>\n<td>Random string for CSRF protection (echoed back in redirect)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"success-response\">Success Response</h3>\n<p>Redirects the browser to: <code>{redirect_uri}?code=AUTHORIZATION_CODE&amp;state=YOUR_STATE</code></p>\n<h3 id=\"error-response\">Error Response</h3>\n<p>Redirects to: <code>{redirect_uri}?error=ERROR_CODE&amp;error_description=...</code></p>\n<h3 id=\"note\">Note</h3>\n<p>This endpoint returns an HTML page for browser users. It cannot be called as a JSON API — it must be opened in a browser to trigger the OAuth consent flow.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"d195fc88-00f8-45c7-8dfa-3874a37dd23f"},{"name":"2. OAuth - Exchange Code for Token","id":"f231d9cb-6535-4327-b502-e22b8c0c668c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"oauth--exchange-code-for-token\">OAuth — Exchange Code for Token</h2>\n<p>Exchanges the authorization code (received via redirect after <code>/oauth/authorize</code>) for an access token + refresh token.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Authorization: Basic</code> — HTTP Basic auth with your OAuth credentials</p>\n</li>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"grant_type\": \"authorization_code\",\n    \"code\": \"AUTH_CODE\",\n    \"redirect_uri\": \"https://www.make.com/oauth/cb/app\"\n}\n\n</code></pre>\n<h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"access_token\": \"eyJhbGciOi...\",\n    \"refresh_token\": \"def502004a8b...\",\n    \"token_type\": \"Bearer\",\n    \"expires_in\": 3600\n}\n\n</code></pre>\n<h3 id=\"error-response\">Error Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"invalid_grant\",\n    \"error_description\": \"The authorization code is invalid or expired.\"\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"f231d9cb-6535-4327-b502-e22b8c0c668c"},{"name":"3. OAuth - Refresh Token","id":"a3e61e1f-73fd-432b-8221-6c88e6973b58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"oauth--refresh-access-token\">OAuth — Refresh Access Token</h2>\n<p>Uses a refresh token to obtain a new access token when the old one expires.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Authorization: Basic</code></p>\n</li>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"grant_type\": \"refresh_token\",\n    \"refresh_token\": \"EXISTING_REFRESH_TOKEN\"\n}\n\n</code></pre>\n<h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"access_token\": \"eyJhbGciOi... (new)\",\n    \"refresh_token\": \"def502004a8b... (may rotate)\",\n    \"token_type\": \"Bearer\",\n    \"expires_in\": 3600\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"a3e61e1f-73fd-432b-8221-6c88e6973b58"},{"name":"4. OAuth - Revoke Token","id":"fb2ee549-f76a-43c5-afb0-8f45c140be71","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"oauth--revoke-token\">OAuth — Revoke Token</h2>\n<p>Invalidates an access token, preventing further use.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Authorization: Bearer ACCESS_TOKEN</code></p>\n</li>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"token\": \"ACCESS_TOKEN_TO_REVOKE\"\n}\n\n</code></pre>\n<h3 id=\"success-response-200\">Success Response (200)</h3>\n<p>Empty response body, HTTP 200 OK.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"fb2ee549-f76a-43c5-afb0-8f45c140be71"},{"name":"Get User Locations","id":"805aeee5-e987-49a2-b3aa-87270a6bfcad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<h2 id=\"get-user-info--locations\">Get User Info &amp; Locations</h2>\n<p>Returns information about the authenticated user and their accessible locations. Used by Make.com to verify the OAuth connection and populate location dropdowns.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><code>Authorization: Bearer ACCESS_TOKEN</code></li>\n</ul>\n<h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"user\": {\n            \"id\": \"user_abc123\",\n            \"email\": \"user@example.com\",\n            \"name\": \"Jane Doe\"\n        }\n    }\n}\n\n</code></pre>\n<p>Note: The same endpoint also returns a list of locations the user has access to, used to populate location selection dropdowns in integrations.</p>\n<h3 id=\"error-response-401\">Error Response (401)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"unauthorized\",\n    \"message\": \"Invalid or expired access token\"\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"805aeee5-e987-49a2-b3aa-87270a6bfcad"},{"name":"Subscribe Webhook","id":"59479a43-37a0-43c3-b906-6fc7e6fa7986","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"subscribe-to-inbound-message-webhook\">Subscribe to Inbound Message Webhook</h2>\n<p>Registers a webhook URL to receive notifications when a new inbound SMS message arrives for the specified location.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Authorization: Bearer ACCESS_TOKEN</code></p>\n</li>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"targetUrl\": \"https://hook.eu1.make.com/your-webhook-url\",\n    \"event\": \"new_message\",\n    \"locationId\": \"loc_abc123\"\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>targetUrl</code></td>\n<td>The webhook URL that will receive POST notifications</td>\n</tr>\n<tr>\n<td><code>event</code></td>\n<td>Event type to subscribe to (currently <code>new_message</code>)</td>\n</tr>\n<tr>\n<td><code>locationId</code></td>\n<td>The location to monitor for inbound messages</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"webhook_id\": \"wh_xyz789\"\n}\n\n</code></pre>\n<p>Store <code>webhook_id</code> — needed to unsubscribe later.</p>\n<h3 id=\"webhook-payload-sent-to-targeturl\">Webhook Payload (sent to targetUrl)</h3>\n<p>When a new inbound SMS arrives, myCRMSIM POSTs this payload to <code>targetUrl</code>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"msg_abc123\",\n    \"phone_number\": \"+923001234567\",\n    \"locationId\": \"loc_abc123\",\n    \"message\": \"Reply message text\",\n    \"created_at\": \"2026-05-21T10:00:00.000Z\"\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"59479a43-37a0-43c3-b906-6fc7e6fa7986"},{"name":"Unsubscribe Webhook","id":"655e3171-60d8-440c-ab74-d72452e23c8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"unsubscribe-webhook\">Unsubscribe Webhook</h2>\n<p>Removes a previously registered webhook subscription, stopping inbound message notifications.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"targetUrl\": \"https://hook.eu1.make.com/your-webhook-url\",\n    \"webhookId\": \"wh_xyz789\",\n    \"locationId\": \"loc_abc123\"\n}\n\n</code></pre>\n<h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"655e3171-60d8-440c-ab74-d72452e23c8b"},{"name":"Send a Message","id":"ddde9795-986f-4dd6-a9c6-38ea34151303","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"description":"<h2 id=\"send-sms--mms\">Send SMS / MMS</h2>\n<p>Sends an outbound SMS or MMS message to a specified phone number. Supports text, images, PDFs, and other attachments.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>POST https://api.mysmsgateway.app/webhook</code><br />This is the generic send endpoint (used by the \"Send a message\" Make module). It defaults to the SMS channel. For channel-specific sending, use the dedicated endpoints below.EndFragment</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Authorization: Bearer ACCESS_TOKEN</code></p>\n</li>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"phone\": \"+923001234567\",\n    \"locationId\": \"loc_abc123\",\n    \"message\": \"Hello from myCRMSIM\",\n    \"attachments\": [\n        \"https://example.com/file.jpg\"\n    ]\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>phone</code></td>\n<td>Yes</td>\n<td>Recipient phone number in E.164 format (e.g., <code>+923001234567</code>)</td>\n</tr>\n<tr>\n<td><code>locationId</code></td>\n<td>Yes</td>\n<td>The location/sender identity to send from</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>Conditional</td>\n<td>Message text. Required unless attachments are provided. Max 1600 chars.</td>\n</tr>\n<tr>\n<td><code>attachments</code></td>\n<td>No</td>\n<td>Array of publicly accessible URLs to media files (images, PDFs, videos)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"success-response-200\">Success Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"msg_xyz789\",\n    \"phone\": \"+923001234567\",\n    \"locationId\": \"loc_abc123\",\n    \"message\": \"Hello from myCRMSIM\",\n    \"status\": \"sent\",\n    \"sent_at\": \"2026-05-21T10:00:00.000Z\"\n}\n\n</code></pre>\n<h3 id=\"error-responses\">Error Responses</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"invalid_phone\",\n    \"message\": \"Phone number must be in E.164 format\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"location_not_found\",\n    \"message\": \"The specified location does not exist or you don't have access to it\"\n}\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"ddde9795-986f-4dd6-a9c6-38ea34151303"},{"name":"Send SMS","id":"a9eeb59c-d0ef-4f51-a2a2-9bfb735826f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{   \"phone\": \"+923001234567\", \r\n   \"locationId\": \"loc_abc123\",  \r\n    \"message\": \"Hello from myCRMSIM via iMessage\",\r\n    \"type\": \"sms\",\r\n     \"attachments\": []\r\n         }","options":{"raw":{"language":"json"}}},"url":"https://api.mysmsgateway.app/sms","description":"<p>StartFragment</p>\n<h2 id=\"send-sms\">Send SMS</h2>\n<p>Sends an outbound SMS text message. Used by the <strong>\"Send an SMS\"</strong> Make module.</p>\n<p><strong>Endpoint:</strong> <code>POST https://api.mysmsgateway.app/sms</code></p>\n<p><strong>Request Headers</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer ACCESS_TOKENContent-Type: application/json\n\n</code></pre><p><strong>Request Body</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"phone\": \"+923001234567\",    \"locationId\": \"loc_abc123\",    \"message\": \"Hello from myCRMSIM\",    \"type\": \"sms\",    \"attachments\": [\"https://example.com/file.jpg\"]}\n\n</code></pre><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>Yes</td>\n<td>Recipient phone number in E.164 format</td>\n</tr>\n<tr>\n<td>locationId</td>\n<td>Yes</td>\n<td>The location/sender identity to send from</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Conditional</td>\n<td>Message text. Required unless attachments are provided. Max 1600 chars.</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Yes</td>\n<td>Channel selector. Must be <code>sms</code> for this endpoint.</td>\n</tr>\n<tr>\n<td>attachments</td>\n<td>No</td>\n<td>Array of publicly accessible media URLs (sent as MMS where supported)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Success Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"success\": true,    \"message\": \"Processed sms message and invoked outside-to-laravel-receive\",    \"outputFields\": {        \"status\": \"sent\",        \"channel\": \"sms\"    }}\n\n</code></pre><p>A <code>200</code> response means the message was accepted and queued for delivery. Delivery status is visible in the myCRMSIM dashboard Message Logs.</p>\n<p>EndFragment</p>\n","urlObject":{"protocol":"https","path":["sms"],"host":["api","mysmsgateway","app"],"query":[],"variable":[]}},"response":[],"_postman_id":"a9eeb59c-d0ef-4f51-a2a2-9bfb735826f2"},{"name":"Send WhatsApp Message","id":"5b5456bf-b15d-4d4a-9f9a-2c431264e1c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{   \"phone\": \"+923001234567\", \r\n   \"locationId\": \"loc_abc123\",  \r\n    \"message\": \"Hello from myCRMSIM via iMessage\",\r\n    \"type\": \"whatsapp\",\r\n     \"attachments\": []\r\n         }","options":{"raw":{"language":"json"}}},"url":"https://api.mysmsgateway.app/whatsapp","description":"<p>StartFragment</p>\n<h2 id=\"send-whatsapp-message\">Send WhatsApp Message</h2>\n<p>Sends an outbound WhatsApp message. Used by the <strong>\"Send a WhatsApp message\"</strong> Make module.</p>\n<p><strong>Endpoint:</strong> <code>POST https://api.mysmsgateway.app/whatsapp</code></p>\n<p>Headers, body, and fields are identical to Send SMS, except <code>type</code> must be <code>whatsapp</code>.</p>\n<p><strong>Request Body</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"phone\": \"+923001234567\",    \"locationId\": \"loc_abc123\",    \"message\": \"Hello from myCRMSIM via WhatsApp\",    \"type\": \"whatsapp\",    \"attachments\": [\"https://example.com/file.jpg\"]}\n\n</code></pre><p><strong>Success Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"success\": true,    \"message\": \"Processed whatsapp message and invoked ghl-to-whatsapp-receive\",    \"outputFields\": {        \"status\": \"sent\",        \"channel\": \"whatsapp\"    }}\n\n</code></pre><p>EndFragment</p>\n","urlObject":{"protocol":"https","path":["whatsapp"],"host":["api","mysmsgateway","app"],"query":[],"variable":[]}},"response":[],"_postman_id":"5b5456bf-b15d-4d4a-9f9a-2c431264e1c9"},{"name":"Send RCS Message","id":"127dc26a-ee7e-4e06-9ebb-88275a0200c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{   \"phone\": \"+923001234567\", \r\n   \"locationId\": \"loc_abc123\",  \r\n    \"message\": \"Hello from myCRMSIM via iMessage\",\r\n    \"type\": \"rcs\",\r\n     \"attachments\": []\r\n         }","options":{"raw":{"language":"json"}}},"url":"https://api.mysmsgateway.app/rcs","description":"<p>StartFragment</p>\n<h2 id=\"send-rcs-message\">Send RCS Message</h2>\n<p>Sends an outbound RCS message. Used by the <strong>\"Send an RCS message\"</strong> Make module.</p>\n<p><strong>Fallback:</strong> If the recipient's device does not support RCS, the message is delivered as SMS automatically by the gateway.</p>\n<p><strong>Endpoint:</strong> <code>POST https://api.mysmsgateway.app/rcs</code></p>\n<p>Headers, body, and fields are identical to Send SMS, except <code>type</code> must be <code>rcs</code>.</p>\n<p><strong>Request Body</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \"phone\": \"+923001234567\",    \"locationId\": \"loc_abc123\",    \"message\": \"Hello from myCRMSIM via RCS\",    \"type\": \"rcs\",    \"attachments\": []}\n\n</code></pre>\n<p><strong>Success Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \"success\": true,    \"message\": \"Processed rcs message and invoked ghl-to-rcs-receive\",    \"outputFields\": {        \"status\": \"sent\",        \"channel\": \"rcs\"    }}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"error\": \"invalid_phone\", \"message\": \"Phone number must be in E.164 format\" }\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"error\": \"unauthorized\", \"message\": \"Invalid or expired access token\"\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["rcs"],"host":["api","mysmsgateway","app"],"query":[],"variable":[]}},"response":[],"_postman_id":"127dc26a-ee7e-4e06-9ebb-88275a0200c7"},{"name":"Send iMessage","id":"c64285a3-872d-4a67-b6c4-6df6bed38513","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{   \"phone\": \"+923001234567\", \r\n   \"locationId\": \"loc_abc123\",  \r\n    \"message\": \"Hello from myCRMSIM via iMessage\",\r\n    \"type\": \"imessage\",\r\n     \"attachments\": []\r\n         }","options":{"raw":{"language":"json"}}},"url":"POST https://api.mysmsgateway.app/imessage","description":"<h2 id=\"send-imessage\">Send iMessage</h2>\n<p>Sends an outbound iMessage. Used by the <strong>\"Send an iMessage\"</strong> Make module.</p>\n<p><strong>Fallback:</strong> If iMessage is unavailable for the recipient, the message is delivered as SMS automatically by the gateway.</p>\n<p><strong>Endpoint:</strong> <code>POST https://api.mysmsgateway.app/imessage</code></p>\n<p>Headers, body, and fields are identical to Send SMS, except <code>type</code> must be <code>imessage</code>.</p>\n<p><strong>Request Body</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \"phone\": \"+923001234567\",    \"locationId\": \"loc_abc123\",    \"message\": \"Hello from myCRMSIM via iMessage\",    \"type\": \"imessage\",    \"attachments\": []}\n\n</code></pre>\n<p><strong>Success Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \"success\": true,    \"message\": \"Processed imessage message and invoked ghl-to-imessage-receive\",    \"outputFields\": {        \"status\": \"sent\",        \"channel\": \"imessage\"    }}\n\n</code></pre>\n","urlObject":{"protocol":"POST https","path":["imessage"],"host":["api","mysmsgateway","app"],"query":[],"variable":[]}},"response":[],"_postman_id":"c64285a3-872d-4a67-b6c4-6df6bed38513"}]}