Apply for RCS
Submit the RCS Business Messaging KYC for a customer you have already created via Create customer. The admin team uses this submission to register a Google RCS sender (agent) for that customer.
POST /api/v1/partner/customers/{customer_id}/rcs/applyThe call is always treated as a submission — the record flips to
pending immediately. Use the panel UI’s PUT …/kyc endpoint with
save_as_draft: true if you need draft saves.
All document fields are URLs. Host the files on your own CDN and pass
public URLs in the body — the API does not accept multipart uploads on
this endpoint (the panel UI uses a separate POST …/kyc/upload helper
for that).
Request body
{
"registered_company_name": "Acme Pvt. Ltd.",
"company_hq_location": "Mumbai, India",
"corporate_registration_url": "https://cdn.acme.com/docs/coi.pdf",
"company_gstin": "27ABCDE1234F1Z5",
"electricity_bill_url": "https://cdn.acme.com/docs/elec-april.pdf",
"brand_support_phone": "+919876543210",
"support_email": "[email protected]",
"company_address": "Floor 5, Some Tower, Andheri East",
"company_zip": "400069",
"transaction_type": "domestic",
"optin_video_url": "https://drive.google.com/file/d/...",
"bot_message_type": "Transactional",
"bot_name": "Acme Helpdesk",
"brand_name": "Acme",
"bot_logo_url": "https://cdn.acme.com/brand/logo-224.jpg",
"short_description": "Order updates, OTPs, and customer support.",
"banner_image_url": "https://cdn.acme.com/brand/banner-1440.jpg",
"primary_phone_number": "+919876543210",
"phone_label": "Support",
"brand_website": "https://acme.com",
"website_label": "Visit our site",
"agent_email": "[email protected]",
"email_label": "Email us",
"terms_url": "https://acme.com/terms",
"privacy_url": "https://acme.com/privacy",
"languages": ["English", "Hindi"],
"brand_details_brand_name": "Acme",
"industry_type": "Retail / E-commerce",
"contact_first_name": "John",
"contact_last_name": "Doe",
"contact_designation": "Marketing Manager",
"contact_email": "[email protected]",
"contact_mobile": "+919876543210"
}Fields
Section 1 — Business overview
| Field | Required | Notes |
|---|---|---|
registered_company_name | yes | Legal name on the registration certificate |
company_hq_location | yes | City / state / country |
corporate_registration_url | yes | Public URL to the registration certificate (PDF or image) |
company_gstin | yes | India GSTIN; format is not enforced server-side |
electricity_bill_url | yes | Public URL to a recent electricity bill (PDF or image) |
brand_support_phone | yes | E.164 recommended |
support_email | yes | RFC-shape email |
company_address | yes | Free-form |
company_zip | yes | Free-form |
transaction_type | yes | domestic or international |
Section 2 — RCS requirements
| Field | Required | Notes |
|---|---|---|
optin_video_url | yes | Public URL (Google Drive, S3, etc.) to a short video that demonstrates how end-users opt in to receive RCS messages from this brand |
Section 3 — Agent creation
| Field | Required | Notes |
|---|---|---|
bot_message_type | yes | One of OTP, Transactional, Promotional, MultiUse |
bot_name | yes | ≤ 40 chars |
brand_name | yes | Public-facing brand |
bot_logo_url | yes | 224 × 224 JPEG, ≤ 50 KB |
short_description | yes | ≤ 100 chars |
banner_image_url | yes | 1440 × 448 JPEG, ≤ 200 KB |
primary_phone_number | yes | E.164 |
phone_label | yes | ≤ 25 chars |
brand_website | yes | URL |
website_label | yes | ≤ 25 chars |
agent_email | yes | URL |
email_label | yes | ≤ 25 chars |
terms_url | yes | URL |
privacy_url | yes | URL |
languages | yes | At least one supported language (e.g. ["English", "Hindi"]) |
Section 4 — Brand details
| Field | Required | Notes |
|---|---|---|
brand_details_brand_name | yes | |
industry_type | yes | |
contact_first_name | yes | |
contact_last_name | yes | |
contact_designation | yes | |
contact_email | yes | RFC-shape email |
contact_mobile | yes | E.164 recommended |
Response — 202
{
"success": true,
"message": "RCS KYC submitted. Admin will review and notify you.",
"customer_id": "8f3b2a1e-49d8-4c2d-9e1a-b7e6d5f8a3c2",
"status": "pending",
"submitted_at": "2026-05-20T10:18:42Z"
}The submission is queued for admin review. Poll Check RCS status (or wait for the admin to email you).
Re-posting after an admin rejection is supported — the new payload
replaces the previous one and flips status back to pending. While the
status is pending or approved, a re-post still overwrites the row
silently, so guard the call in your integration if you don’t want that.
Errors
| Status | Reason | Response |
|---|---|---|
400 | Missing / invalid field | { "success": false, "message": "Field \"bot_name\" is required" } |
400 | Length constraint | { "success": false, "message": "short_description must be ≤ 100 characters" } |
400 | Invalid customer_id | { "success": false, "message": "Invalid customer_id" } |
401 | Missing or invalid partner auth | { "success": false, "message": "unauthorized" } |
404 | customer_id doesn’t belong to this partner | { "success": false, "message": "Customer not found under this partner" } |
500 | Database error | { "success": false, "message": "Failed to submit RCS KYC" } |
cURL
curl -X POST \
https://api.splashifypro.com/api/v1/partner/customers/$CUSTOMER_ID/rcs/apply \
-H "Authorization: Bearer $SPLASHIFY_API_KEY" \
-H "Content-Type: application/json" \
-d @rcs-kyc.jsonNotes
- Authentication — same as the rest of the partner API: send your
partner API key as
Authorization: Bearer <key>. - File hosting — the panel uploads files for you and stores them on Splashify-managed DO Spaces. For this API endpoint you host the files yourself; we only store the URLs. URLs must be publicly fetchable (Google checks them during agent verification).
- Review SLA — typical admin review is 1–2 business days. Approval
triggers a webhook (see Webhooks) and the status
endpoint flips to
approved.