RCS Brand Verification KYC Walkthrough
RCS runs two parallel identity flows, and picking the wrong one costs days of carrier-review time:- Org-level review — one approval per workspace that gates live traffic in general. The organization KYC guide covers it and says nothing RCS-specific.
- Brand-level KYC — the documents and identity fields carriers review when they verify an RCS agent. This lives on the RCS verification submit call, not in the org form.
rcs_brand_verification compliance profile instead of attaching files to a single submission.
1. Where RCS brand KYC hooks in
The RCS brand endpoints (/api/v1/rcs/brands, /api/v1/rcs/bots) capture the identity carriers review — name, website, industry, a contact person, the postal address, and an optional tax ID and legal entity name. A create that passes validation stores the brand; a POST /api/v1/rcs/bots/:id/verify submission is where KYC documents attach.
The separation matters for sequencing: the brand record carries the fields (who you are), and the verification submission carries the proof (documents backing those fields). A brand missing its contact or address block blocks verification with a 409 before any document is even read, so complete the brand fields first — the RCS onboarding guide walks that ordering.
Carriers do not all ask for the same proof. India (Reliance Jio, BSNL, Vodafone Idea) and Brazil (Claro, Vivo, Tim) demand KYC verification at brand registration, while a US-only or EU-only brand may need nothing beyond the field block. Fill in tax_id and legal_entity_name when you have them even though the API marks them optional — the carriers that ask reject thin brand forms.
2. Check what a country asks for before you submit
Do not guess the document set. Two read surfaces tell you what a destination expects:- Regulatory preview —
GET /api/v1/numbers/regulatory-preview?country=BR&phone_number_type=localsurfaces the document categories and structured fields a country requires, before you commit. The document roles it returns (id_proof,address_proof,business_doc, …) are the same roles KYC documents satisfy; see the regulatory preview reference for the field list and the role-to-upload-type mapping. - Country rules —
GET /api/v1/compliance/country-rules?channel=rcslists per-country sender rules, registration levels, and content restrictions for the RCS channel specifically. Aregistration: requiredrow means the market gates sends on an approved filing; read the country requirements page for how to interpret each field.
3. Attach KYC documents to the verification submission
Verification expects files, so the request ismultipart/form-data against POST /api/v1/rcs/bots/:id/verify:
kycdocs[] files (business registration, proof of address), up to 10 screenImages[] conversation screenshots, 5MB per file. The document_type text parts label each KYC file — send one entry per file, in the same order — because carriers reject unlabeled documents with a 400 document_type is required error. The optional JSON data field overrides values otherwise filled from the linked brand.
Poll GET /api/v1/rcs/bots/:id/quality until verification_status reaches verified; launch requests before that return 409 INVALID_LAUNCH_STATE.
4. Choose the reusable profile route when you file more than once
One-off uploads on the verify call work when you register a single brand to a single carrier set. The moment you back several RCS agents (or expect renewals), move the same proof into a compliance profile withuse_case: rcs_brand_verification — a structured identity bundle (cprof_…) that carriers review once and every covered sender reuses:
use_case value — rcs_brand_verification among them — plus upload limits, roles, and renewal semantics. Documents expire: many regulators treat identity or address proof older than 3–12 months as stale, and a lapsed document stops counting toward a country’s requirements, so plan renewals from the profile where the same role gets a fresh upload before it lapses. rcs_brand_verification profiles are country-agnostic at the schema level (the field block makes countries optional for RCS), but name the countries your brand registers to anyway: the carrier-specific regimes (India, Brazil) are exactly the ones that read the country field.
A profile moves draft → pending_review → approved, and only an approved profile satisfies a country’s checks. Approval is granted by the carrier or regulator, not by the platform; the platform stores, carries, and reports — supplying truthful documents stays with you. See the split recorded on the KYC documents page.
5. Cycle back to the compliance references
Keep these two pages open beside this guide:- KYC Documents & the Compliance-Profile Lifecycle — the document library, roles, expiry, and the full
use_caseset thatrcs_brand_verificationbelongs to. - Country Compliance Requirements — per-country and per-channel sender rules, including the RCS (
rcs_agent) sender-type row and theregistrationlevels that decide how early you must file.