Create an RCS Agent

Registers the sender brand and hands it over for review in one call.

Every brand field is required. There is no draft here: an integration assembles the whole form and sends it once, so a missing field answers 422 naming what is absent, before anything is created. test_devices is the only optional field.

The registration comes back as submitted. Follow it through the rcs.agent.status webhook sent to the agent's webhook_url, or with GET /v1/rcs/agents/{id}.

An app can hold more than one agent, typically one per use_case, and each template belongs to one of them. To change a registration, use PUT; to give up on it, DELETE.

Images are referenced by public URL; we do not accept file uploads here.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Fields of a new registration. All of them are required: a registration is opened complete, and PUT /rcs/agents/{id} replaces it afterwards — see RcsAgentUpdate, where only use_case is optional.

The app is not one of them: the registration is bound to the app your credentials resolve to, taken from the app-id header, exactly as the client is. There is one app per credential pair, so there is nothing to choose — and choosing would let one app register a brand that goes out under another.

Any field outside this list is rejected with 422 rather than ignored — app_id and app_ids included, alongside status, approved and the supplier identifiers, which are ours to set. A silent drop would leave you believing otherwise.

uri | null

Where this registration's review notifications go — the rcs.agent.status event, fired when the brand is picked up for review, approved or rejected.

It is the agent's own address, not the app's. The webhook URL configured for your app carries campaign events: delivery status and reply-button postbacks. A brand review happens before any of that and usually belongs to a different system of yours, so it is declared here and arrives there alone.

Optional. An agent without it is never notified, and nothing falls back to the app's URL. GET /rcs/agents/{id} still answers the state at any time.

string
enum
required

What the brand is for. The carrier homologates the agent against this and suspends whoever leaves it — a verification-code agent sending marketing takes the channel down in days. It also decides which of the supplier's projects the brand is registered in. It does not change after approval: the brand is registered in that project at the supplier, so changing the purpose means registering again.

Allowed:
string
required
length ≤ 100

Name shown on the recipient's device. Up to 100 characters.

string
required
length ≤ 500

Short description shown alongside the name. Up to 500 characters.

string
required
^#[0-9a-fA-F]{6}$

Brand colour in #RRGGBB. Any other format is rejected. It is painted behind white text on the device, so the carrier requires a contrast ratio of at least 4.5:1 against white — a pale colour passes this call and is refused during the review.

uri
required
length ≤ 2048

Public URL of the logo. You host the file; we do not accept uploads on this endpoint. The carrier requires a square image of 224×224 pixels, up to 50 KB, in JPEG or PNG — anything else is refused during the review, not on this call.

uri
required
length ≤ 2048

Public URL of the banner. Same rule as the logo, with the carrier asking for 1440×448 pixels, up to 200 KB.

string
required
length ≤ 255

Person responsible for the registration. Not shown to recipients — we use it to reach you during the review.

string
required
length ≤ 255

E-mail of the person responsible. Not shown to recipients.

string
required
length ≤ 255

Trading name of the company.

uri
required
length ≤ 2048

Corporate website. The carrier checks the brand against it.

string
required
length ≤ 20

Public phone number shown to the recipient.

string
required
length ≤ 255

Public e-mail shown to the recipient.

uri
required
length ≤ 2048

Public website shown to the recipient.

uri
required
length ≤ 2048

Privacy policy URL. Required by the carrier.

uri
required
length ≤ 2048

Terms of use URL. Required by the carrier.

test_devices
array of strings
length ≤ 20

Phone numbers allowed to receive the agent before it is approved, so you can see the brand on a real device. Not required to submit. Up to 20 numbers.

test_devices
Responses

Callback
Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json