# RCS and SMS Messaging (/docs/guides/messaging)

## Before You Begin [#before-you-begin]

Complete the [quickstart](/docs/quickstart) and confirm which channels are configured for your brand. The examples below use the same brand-scoped API key.

## Choose the Message Content [#choose-the-message-content]

`POST /v1/message` takes `clientRef`, `recipientPhoneNumber`, and `content`. Supply SMS content, RCS content, or both as appropriate for your brand's configuration.

RCS supports text, media content, rich cards, carousels, and suggested actions. Include a useful SMS alternative when you want a message to work for recipients who cannot receive RCS. Final channel selection also depends on brand configuration and recipient capability.

```json
{
  "clientRef": "order-123-ready",
  "recipientPhoneNumber": "15552223333",
  "content": {
    "rcs": {
      "content": {
        "type": "TEXT",
        "content": "Your order is ready to collect."
      }
    },
    "sms": {
      "content": "Your order is ready to collect."
    }
  }
}
```

See [Send a Message](/docs/api/messaging/send-message) for the full content schemas and examples.

## Check Channel Support [#check-channel-support]

```bash
curl --request POST 'https://api.smobi.com/v1/check-channel-support/15552223333' \
  --header "x-api-key: $SMOBI_API_KEY"
```

This check requires an RCS agent configured for your brand. It creates or updates the customer’s capability record and records API usage. The response reports `rcs` and `sms` capability. Capability is not marketing consent; check your own permission to contact the recipient.

## Correlate and Track Messages [#correlate-and-track-messages]

Store `clientRef` and the returned `smobiMessageId`. Handle [status webhooks](/docs/events/status) to track delivery. Keep message acceptance separate from delivery in your application.

`clientRef` is a correlation identifier. It is not documented as an idempotency key and should not be used to deduplicate sends. After an ambiguous timeout, reconcile the outcome before resending.

## Phone Numbers and Media [#phone-numbers-and-media]

Include the country code. Digits-only numbers such as `15552223333` avoid URL encoding ambiguity; E.164 numbers include a leading `+`. URL-encode a leading `+` when placing it in a query or path.

For SMS media, `mediaUrl` supplies the media and `content` is the accompanying text. Use a reachable HTTPS asset URL and test the resulting message on the target channel before a campaign.

## Related Resources [#related-resources]

- [Send a Message](/docs/api/messaging/send-message)
- [Receive Webhooks](/docs/guides/webhooks)
