Skip to Content

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/apply

The 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

FieldRequiredNotes
registered_company_nameyesLegal name on the registration certificate
company_hq_locationyesCity / state / country
corporate_registration_urlyesPublic URL to the registration certificate (PDF or image)
company_gstinyesIndia GSTIN; format is not enforced server-side
electricity_bill_urlyesPublic URL to a recent electricity bill (PDF or image)
brand_support_phoneyesE.164 recommended
support_emailyesRFC-shape email
company_addressyesFree-form
company_zipyesFree-form
transaction_typeyesdomestic or international

Section 2 — RCS requirements

FieldRequiredNotes
optin_video_urlyesPublic 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

FieldRequiredNotes
bot_message_typeyesOne of OTP, Transactional, Promotional, MultiUse
bot_nameyes≤ 40 chars
brand_nameyesPublic-facing brand
bot_logo_urlyes224 × 224 JPEG, ≤ 50 KB
short_descriptionyes≤ 100 chars
banner_image_urlyes1440 × 448 JPEG, ≤ 200 KB
primary_phone_numberyesE.164
phone_labelyes≤ 25 chars
brand_websiteyesURL
website_labelyes≤ 25 chars
agent_emailyesURL
email_labelyes≤ 25 chars
terms_urlyesURL
privacy_urlyesURL
languagesyesAt least one supported language (e.g. ["English", "Hindi"])

Section 4 — Brand details

FieldRequiredNotes
brand_details_brand_nameyes
industry_typeyes
contact_first_nameyes
contact_last_nameyes
contact_designationyes
contact_emailyesRFC-shape email
contact_mobileyesE.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

StatusReasonResponse
400Missing / invalid field{ "success": false, "message": "Field \"bot_name\" is required" }
400Length constraint{ "success": false, "message": "short_description must be ≤ 100 characters" }
400Invalid customer_id{ "success": false, "message": "Invalid customer_id" }
401Missing or invalid partner auth{ "success": false, "message": "unauthorized" }
404customer_id doesn’t belong to this partner{ "success": false, "message": "Customer not found under this partner" }
500Database 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.json

Notes

  • 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.