RCSv4

Update a draft RCS sender

PATCH/rcs/senders/{channelId}

Change a draft sender's use case or profile fields; fields you leave out keep their values. Set phone, email, or website to null to remove it; one must remain. A submitted sender's name, logo, and banner change through POST /rcs/senders/{channelId}/changes. OAuth apps need numbers:manage.

Path parameters

channelIdRequiredstring

The RCS sender's channel id (ch_...).

Headers

AuthorizationRequiredstring

Your API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.

Bearer

Body parameters

JSON
use_caseoptionalstring

What the sender mostly sends. Carriers review its launch against it.

"TRANSACTIONAL""PROMOTIONAL""OTP""MULTI_USE"
profileoptionalRcsSenderProfile

What people see on the sender in Google Messages. Creating a sender needs every field but the contacts, and at least one of phone, email, and website.

display_nameoptionalstring
descriptionoptionalstring
logo_urloptionalstring

A logo from POST /rcs/assets.

banner_urloptionalstring

A banner from POST /rcs/assets.

brand_coloroptionalstring

Hex color for the sender's buttons and accents.

privacy_policy_urloptionalstring
terms_urloptionalstring
phoneoptionalobject | null
numberRequiredstring

E.164.

labelRequiredstring
emailoptionalobject | null
addressRequiredstring
labelRequiredstring
websiteoptionalobject | null
urlRequiredstring
labelRequiredstring

Returns

dataoptionalRcsSender
channel_idRequiredstring

The sender's rcs_business channel. Send from it, or from its alias.

aliasRequiredstring | null
statusRequiredstring

From verified, the sender reaches its accepted test devices and its channel is active; once live, it reaches anyone whose phone gets RCS. launching and launched are the carriers' review. A rejected or failed sender can't be resubmitted; contact support.

"draft""submitting""submitted""verifying""verified""launching""launched""live""rejected""failed"
use_caseRequiredstring

What the sender mostly sends. Carriers review its launch against it.

"TRANSACTIONAL""PROMOTIONAL""OTP""MULTI_USE"
profileRequiredRcsSenderProfile

What people see on the sender in Google Messages. Creating a sender needs every field but the contacts, and at least one of phone, email, and website.

display_nameoptionalstring
descriptionoptionalstring
logo_urloptionalstring

A logo from POST /rcs/assets.

banner_urloptionalstring

A banner from POST /rcs/assets.

brand_coloroptionalstring

Hex color for the sender's buttons and accents.

privacy_policy_urloptionalstring
terms_urloptionalstring
phoneoptionalobject | null
numberRequiredstring

E.164.

labelRequiredstring
emailoptionalobject | null
addressRequiredstring
labelRequiredstring
websiteoptionalobject | null
urlRequiredstring
labelRequiredstring
launchRequiredRcsLaunchDetails | null

The launch request, once sent.

RcsLaunchDetails
company_overviewRequiredstring

What the business does.

agent_overviewRequiredstring

What the sender is for.

interactionsRequiredstring[]
message_examplesRequiredstring[]

Messages as recipients will see them.

opt_in_methodsRequiredstring[]
call_to_actionRequiredstring

The words people see where they opt in.

call_to_action_urloptionalstring

Required with WEBSITE: where the call to action is.

call_to_action_media_urloptionalstring

Required with WEBSITE or MOBILE_APP: an opt_in_media screenshot from POST /rcs/assets.

double_opt_inRequiredboolean
double_opt_in_messageoptionalstring

Required when double_opt_in is true: the message that asks people to confirm.

opt_in_messageRequiredstring

The first message people get after opting in.

help_responseRequiredstring

The reply to HELP.

opt_out_responseRequiredstring

The reply to STOP.

test_video_urlRequiredstring

A test_video from POST /rcs/assets, showing the sender in use.

test_notesoptionalstring

Anything reviewers need to try the sender.

null
section_statusesRequiredobject | null

Where each part of the review stands: basics (Google's verification), campaign (the carriers' launch review), and testing.

basicsoptionalstring | null
campaignoptionalstring | null
testingoptionalstring | null
test_devicesRequiredRcsTestDevice[]

Array of RcsTestDevice

test_device_idRequiredstring
phone_numberRequiredstring
statusRequiredstring

The invite's state, e.g. pending until the tester accepts it and accepted after. The sender reaches the phone only once it's accepted.

carrier_approvalsRequiredRcsCarrierApproval[]

Array of RcsCarrierApproval

carrierRequiredstring
scopeoptionalstring | null

What the approval covers, as the carrier states it.

statusRequiredstring

The carrier's answer, e.g. pending, approved, or rejected.

submitted_atoptionalstring | null
approved_atoptionalstring | null
rejected_reasonoptionalstring | null
created_atRequiredinteger

Epoch ms.

updated_atRequiredinteger

Epoch ms.

Response codes

200The sender
400`invalid_channel_id` or `invalid_field`.
401Your API key is missing or invalid. Pass it as a bearer token.
404`rcs_sender_not_found`.
409`rcs_sender_state_conflict`: the sender was already submitted.

Sends a live request with your values and shows the real response below. Your key is stored only in this browser.

Request
curl -X PATCH https://api.blooio.com/v4/rcs/senders/ch_a1b2c3d4 \
Body object
Response objectexample
{  "data": {    "channel_id": "ch_a1b2c3d4",    "alias": "string",    "status": "draft",    "use_case": "TRANSACTIONAL",    "profile": {      "display_name": "Jane Doe",      "description": "Example description",      "logo_url": "https://example.com",      "banner_url": "https://example.com",      "brand_color": "#1A73E8",      "privacy_policy_url": "https://example.com",      "terms_url": "https://example.com",      "phone": {        "number": "+15551234567",        "label": "vip"      },      "email": {        "address": "jane@example.com",        "label": "vip"      },      "website": {        "url": "https://example.com",        "label": "vip"      }    },    "launch": {      "company_overview": "string",      "agent_overview": "string",      "interactions": [        "TRANSACTIONAL_UPDATES"      ],      "message_examples": [        "string"      ],      "opt_in_methods": [        "WEBSITE"      ],      "call_to_action": "string",      "call_to_action_url": "https://example.com",      "call_to_action_media_url": "https://example.com",      "double_opt_in": false,      "double_opt_in_message": "string",      "opt_in_message": "string",      "help_response": "string",      "opt_out_response": "string",      "test_video_url": "https://example.com",      "test_notes": "string"    },    "section_statuses": {      "basics": "string",      "campaign": "string",      "testing": "string"    },    "test_devices": [      {        "test_device_id": "obj_a1b2c3d4",        "phone_number": "+15551234567",        "status": "active"      }    ],    "carrier_approvals": [      {        "carrier": "string",        "scope": "string",        "status": "active",        "submitted_at": "2025-01-15T09:30:00Z",        "approved_at": "2025-01-15T09:30:00Z",        "rejected_reason": "string"      }    ],    "deeplink": "https://example.com",    "created_at": 0,    "updated_at": 0  }}