New to RCS on the platform? Start with Introduction to RCS for the high-level overview of agents, channels, and traffic types.
RCS delivery is tied to an agent: your brand’s verified identity with Google and carriers. An agent determines what your users see (name, logo, color) and what traffic types you can send. The Arowana API exposes agent lifecycle endpoints for managing production agents. Device capability is checked automatically at send time — you don’t need a separate endpoint.

Production agents

Creation — two-step process

Google’s agent model separates immutable registration fields (set once at creation) from editable brand profile fields (set any time before submission).
POST /v1/rcs/agents registers the agent with three fields that cannot be changed after this call:
FieldOptions
regionEUROPE (the only region currently supported)
billing_categoryCONVERSATIONAL (session-billed) · NON_CONVERSATIONAL (per-message)
use_caseOTP · TRANSACTIONAL · PROMOTIONAL · MULTI_USE
Use case determines which message types Google permits:
Use caseAllowed message types
OTPMESSAGE only
TRANSACTIONALMESSAGE, CONVERSATION
PROMOTIONALMESSAGE, NEWSLETTER
MULTI_USEMESSAGE, CONVERSATION, NEWSLETTER
We recommend MULTI_USE for most agents — it gives the broadest coverage without needing separate agents per traffic type.billing_category can be changed before launch by contacting support; after launch it is fixed. The use_case cannot be changed after the agent is submitted.
use_case and traffic_type are two different things. use_case is set once at agent creation — it tells Google what categories of messaging this agent will send. traffic_type is set on every individual message send and classifies that specific message for the carrier. They use different enum values:
use_case (agent creation)Permitted traffic_type values on sends
OTPAUTHENTICATION
TRANSACTIONALTRANSACTION, SERVICEREQUEST, ACKNOWLEDGEMENT
PROMOTIONALPROMOTION
MULTI_USEAUTHENTICATION, TRANSACTION, PROMOTION, SERVICEREQUEST, ACKNOWLEDGEMENT
Notice the naming difference: use_case: TRANSACTIONAL maps to traffic_type: TRANSACTION (no -AL suffix). use_case: PROMOTIONAL maps to traffic_type: PROMOTION. Getting this wrong causes message rejection at the carrier level.

Capability checks

The platform checks device RCS capability automatically at send time — you don’t need to call a separate endpoint. If a device is not RCS-capable, the send returns 404 with a clear error. Campaign flows can use this to branch into SMS fallback automatically.

Newsletter enablement

Standard agent approval covers TRANSACTIONAL, OTP, and PROMOTIONAL traffic billed per message. To use the NEWSLETTER message type and MAU subscriber billing, you must set the newsletter flag at agent creation — before you submit for Google / carrier review.
1

Enable newsletter during agent creation

When calling POST /v1/rcs/agents, include "newsletter_enabled": true. This flag is part of the Google submission and tells carriers that this agent will be used for opted-in subscriber messaging.
2

Submit the agent for review

Call POST /v1/rcs/agents/{id}/submit. The newsletter flag is included in the submission alongside the standard agent profile.
3

Ensure subscriber consent is recorded

Before sending a NEWSLETTER message, every target contact must have a { channel_type: "RCS", message_type: "NEWSLETTER" } consent record with status: GRANTED. Sends without valid consent return 422 missing_consent.
newsletter_enabled cannot be added retroactively. If you created and submitted an agent without this flag, you must create a new agent with newsletter enabled and go through the full approval process again.

Test Agent (sandbox)

The Test Agent is a shared, already-approved agent that lets developers send real RCS to one verified phone number without waiting for production approval. It is send-focused and limited to five messages per verified number — ideal for integration testing and stakeholder demos, not brand campaigns. Follow RCS sandbox quickstart for the full registerverifytest/messages flow.
Test sends are restricted to your verified number. The API returns a generic 403 if you target any other phone number — this prevents exposing whether another account’s number is registered.

RCS API reference

Endpoint reference for agents, messaging, and Test Agent routes.

RCS messaging types

Content shapes and billing units.