RCS

The seven RCS-API offers the possibility to integrate the powerful functions of RCS into your application and thus enable rich, interactive communication with your users. This documentation describes the various endpoints, parameters and functions of the RCS API in detail. Discover the many possibilities RCS offers to enhance messaging, file sharing, location sharing and much more.

To send RCS messages, it is mandatory to register a so-called agent with each network operator to which you want to send RCS messages. The agent is, so to speak, the verified sender of the RCS and is designed in your CI.

  1. 1

    Registering agents

    The registration process can currently only be carried out manually. Submit the form on our RCS product page to get started with RCS. We will then contact you immediately to ask for some data to set up the agent.

  2. 2

    Integrate RCS API

    Once your agent has been set up, you can start implementing the API straight away.

  3. 3

    Test RCS

    Put your integration through its paces. At this stage, you can only use the test numbers stored for the agent.

  4. 4

    Request release

    As soon as you have implemented RCS and tested it sufficiently and successfully, we can apply for approval of the agent with the desired network operators. This process usually takes a few working days and is often associated with queries.

  5. 5

    Send RCS ๐Ÿš€

    You are ready to go and can now send RCS messages!


POST/api/rcs/messages

Send RCS

This endpoint allows you to send RCS messages to users. Before sending an RCS, you should ideally query the capabilities of the phone number to ensure the best possible user experience.

Parameters

  • Name
    to
    Type
    string
    Description

    The recipient number for your RCS message. This can also be a contact name or a group name.

  • Name
    text
    Type
    string
    Description

    Text of the RCS message. To send a simple RCS message (without images, suggested replies, etc.), only enter the plain text of the message here. Otherwise, use an RCS object.

  • Name
    from
    Type
    string
    Optional
    Optional
    Description

    The unique ID of your agent. You can view this in the Settings of your account. If not specified, the first RCS-capable sender will be used.

  • Name
    delay
    Type
    timestamp
    Optional
    Optional
    Description

    Date/time for delayed dispatch. Optionally Unix timestamp or a timestamp in the format yyyy-mm-dd hh:ii.

  • Name
    ttl
    Type
    integer
    Optional
    Optional
    Description

    Specifies the validity period of the RCS in minutes. The default is 2880, i.e. 48 hours.

  • Name
    label
    Type
    string
    Optional
    Optional
    Description

    Optionally set a separate label for each SMS so that you can assign it to your statistics. Max. 100 characters, permitted characters: a-z, A-Z, 0-9, .-_@.

  • Name
    performance_tracking
    Type
    boolean
    Optional
    Optional
    Description

    Activate click and performance tracking for URLs found in the SMS text. This also activates the URL shortener.

  • Name
    foreign_id
    Type
    string
    Optional
    Optional
    Description

    Enter your own ID for this message. You will receive the foreign_id in turn for callbacks for status reports etc. Max. 64 characters, permitted characters: a-z, A-Z, 0-9, .-_@.

  • Name
    fallback
    Type
    enum
    Description

    If it is not possible to send an RCS message because, for example, the recipient's device does not support RCS, the message can be automatically sent through an alternative channel. If no fallback is specified, it is disabled.

    sms - Sends an SMS with the text of the RCS message as content
    webview - Sends an SMS with a link to a web view of the RCS message

POST
/api/rcs/messages
curl -X POST "https://gateway.seven.io/api/rcs/messages" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -d "text=Hello World!" \
  -d "to=49176123456789"
{
"success": "100",
"total_price": null,
"balance": 3218.988,
"debug": "false",
"sms_type": "direct",
"messages": [
    {
      "id": "77233319353",
      "sender": "myfancyagent",
      "recipient": "49176123456789",
      "text": "Hello World!",
      "encoding": "gsm",
      "label": null,
      "parts": 0,
      "udh": null,
      "is_binary": false,
      "price": 0,
      "channel": "RCS",
      "success": true,
      "error": null,
      "error_text": null
    },
    {
      "id": "77233319354",
      // ...
    }
  ]
}

DELETE/api/rcs/messages/:id

Delete RCS

You can revoke an RCS message that has not yet been delivered. This API immediately returns a successful response, regardless of whether the message has been deleted or not. Revocation is only possible if the end device has the REVOCATION capability.

Path parameters

  • Name
    Message ID
    Type
    string
    Description

    The ID of the message to be deleted.

request

DELETE
/api/rcs/messages/123456
curl -X DELETE "https://gateway.seven.io/api/rcs/messages/123456" \
  -H "X-Api-Key: YOUR_API_KEY" 

Response

{
  "success": true
}

POST/api/rcs/events

Events

Send an event to a phone number to provide users with a more authentic conversational experience. After receiving a message, you should send the event READ and then IS_TYPING accordingly within a reasonable time.

Parameter

  • Name
    to
    Type
    string
    Union
    Description

    The phone number to which you want to send the event.

  • Name
    msg_id
    Type
    string
    Union
    Description

    The ID of the received RCS to which you want to send the event. If not specified, the event is automatically sent to the last RCS message received.

  • Name
    event
    Type
    enum
    Description

    The event to be sent. Can have one of the following values:

    Show events

    IS_TYPING - The agent is currently writing
    READ - The message sent by the user has been read

request

POST
/api/rcs/events
curl -X POST "https://gateway.seven.io/api/rcs/events" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -d "to=49176123456789" \
  -d "event=IS_TYPING" \
  -d "from=myfancyagent"

Response

{
  "success": true
}

Last updated: 6 months ago