Zaptickdocs
RCS

rcs.send

Dispatch an RCS message to a single recipient. The response always includes a fallback hint so you can reconcile cost when a device silently falls back to SMS.

#About

The message payload is a typed discriminated union: pass type: "text" for plain text, type: "card" for a rich card, or type: "carousel" for multi-card swipable content.

Workspace configuration errors are surfaced explicitly — e.g. rcs_not_configured if no RCS agent is connected, or rcs_auth_failed if the Jio OAuth handshake fails. The upstream provider response is passed through on error for easy debugging.

#Endpoints

  • POST/v1/rcs/sendSend an RCS message — text, rich card, carousel, or approved template.
  • GET/v1/rcs/capabilityCheck whether a phone number supports RCS. Cached from prior sends; hits the dashboard warming flow when unknown.
POST/v1/rcs/send

Send an RCS message — text, rich card, carousel, or approved template.

SDK
TypeScript
await zaptick.rcs.send({
  phone: '+919876543210',
  message: {
    type: 'card',
    card: {
      title: 'Order shipped',
      description: 'Tap to track',
      mediaUrl: 'https://cdn.acme.com/shipped.jpg',
      suggestions: [
        { action: 'url', text: 'Track', url: 'https://track.acme/AB12' },
        { action: 'reply', text: 'Need help?', postbackData: 'help' },
      ],
    },
  },
});
Request body
JSON
{
  "phone": "+919876543210",
  "message": {
    "type": "card",
    "card": {
      "title": "Order shipped",
      "description": "Tap to track",
      "mediaUrl": "https://cdn.acme.com/shipped.jpg",
      "suggestions": [
        { "action": "url", "text": "Track", "url": "https://track.acme/AB12" },
        { "action": "reply", "text": "Need help?", "postbackData": "help" }
      ]
    }
  }
}
Response
JSON
{
  "success": true,
  "messageId": "8c5b…",
  "providerId": "8c5b…",
  "status": "sent",
  "fallback": null
}
GET/v1/rcs/capability

Check whether a phone number supports RCS. Cached from prior sends; hits the dashboard warming flow when unknown.

SDK
TypeScript
const { rcsCapable } = await zaptick.rcs.checkCapability('+919876543210');
Response
JSON
{
  "success": true,
  "phone": "+919876543210",
  "rcsCapable": true
}