> ## Documentation Index
> Fetch the complete documentation index at: https://onextel-09023014.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# RCS Messaging Overview

> Authenticate, create and fetch RCS templates, and send RCS messages through the OneXtel Omni platform.

The RCS API creates and fetches templates, sends messages, and reports what happened to each
one. Everything is a JSON request over HTTPS, authenticated with your OneXtel API key, so it
fits whatever your campaigns are already triggered from.

Start by copying your API key from the portal. The endpoints below are the whole surface:
templates, sends, and the callbacks that carry delivery status back.

## Authentication

Every request is authenticated with your API key passed in the `apikey` request header:

```bash theme={null}
--header 'apikey: YOUR_API_KEY'
```

JSON endpoints also require:

```bash theme={null}
--header 'Content-Type: application/json'
```

## Base URL

```
https://api.onexaura.com
```

## Endpoints

| API | Method | Endpoint |
| - | - | - |
| [Create Template](/api-reference/rcs/templates) | POST | `/rcs/templates` |
| [Fetch Templates](/api-reference/rcs/templates) | POST | `/oapi/templates/fetch` |
| [Send Template Message](/api-reference/rcs/send-template-message) | POST | `/oapi/send_sms` |
| [Send Non-Template Message](/api-reference/rcs/send-messages) | POST | `/oapi/send_sms` |
| [Media Upload](/api-reference/rcs/media) | POST | `/rcs/mediaupload` |
| [Opt-in / Opt-out](/api-reference/rcs/opt-in-opt-out) | GET/POST/DELETE | `/opt/{in,out}/rcs` |
| [Delivery Notification](/api-reference/rcs/callback-delivery-notification) | POST | Your endpoint |

Failures fall into two layers: OneXtel API validation errors are listed under
[Send messages](/api-reference/rcs/send-messages#error-codes), and errors raised downstream by
the recipient's operator are listed under
[RCS operator error codes](/api-reference/rcs/error-codes).

<Note>
  The RCS Send Message API and Fetch Template API share the same endpoints as the other
  OneXtel channels (`/oapi/send_sms`, `/oapi/templates/fetch`). The channel is determined by
  the request body: RCS messages are wrapped in an `rcs` array, and template fetches set
  `"channel": "RCS"`.
</Note>

## Message types

Every RCS message is classified with a `messageType` of `Promotional`, `Transactional`, or
`OTP`.

You can send two kinds of message bodies through the Send Message API:

* **Non-template messages** — free-form content built in the request itself:
  [plain text, rich card standalone, and rich card carousel](/api-reference/rcs/send-messages).
* **Template messages** — pre-approved templates referenced by `templateCode`, optionally
  personalized with `customParams`. See
  [Send template messages](/api-reference/rcs/send-template-message).

## Response format

The Send Message API returns an array with one result object per message:

```json theme={null}
[
  {
    "messageId": "33mXmXf0myfFe7lA1QpPcDJcVaH",
    "code": 200,
    "status": "success"
  }
]
```

<ResponseField name="messageId" type="string">
  Unique identifier for the submitted message. Use it to correlate delivery reports.
</ResponseField>

<ResponseField name="code" type="integer">
  Result code. `200` indicates the message was accepted.
</ResponseField>

<ResponseField name="status" type="string">
  Result status, e.g. `success`.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.