---
title: "Invite a test device"
method: POST
path: "/v1/agents/{id}/testers"
tags: ["Google & carriers"]
---

# Invite a test device

`POST /v1/agents/{id}/testers`

## Request

- Base URL: `https://api.cadencercs.com`
- URL: `https://api.cadencercs.com/v1/agents/{id}/testers`
- Auth: HTTP bearer

Before carrier launch an agent reaches allowlisted testers only, so every brand needs this to see its own messages. **The device must accept the invitation** before anything can reach it — sends fail silently until they tap accept.

Google's limits are 20/day and 200 lifetime per agent, and the lifetime cap cannot be undone.

## Path parameters

- `id` string, required

## Request body

- object
  - `e164` string: The device number in E.164, e.g. `+12025550123`.
  - `phoneNumber` string: Accepted as an alias for `e164`.

## Response `200`

Invitation sent.

- object
  - `ok` boolean, required
  - `agentId` string
  - `rbmAgentId` string
  - `inviteStatus` string
  - `nextStep` string: The device must accept before this agent can reach it.

## Other responses

- `400`: Not a valid E.164 number.
- `401`: Not signed in, and no account-linked API key was sent.
- `404`: No such agent on this account.
- `409`: This agent doesn't exist at Google yet.
- `422`: Google's RCS platform has no registration it can address for this number: RCS is off on the handset, or its carrier runs RCS on a platform Google's business messaging cannot reach. Nothing is consumed against the invite cap.
- `429`: Google's tester invite limit reached (20/day, 200 lifetime per agent).
- `500`: Unexpected server error. The body is always JSON.
- `502`: Google rejected the request.
- `503`: RBM not configured.

---

[API](https://skmtc.dev/cadencercs/apis/cadence-api.md) · [All operations](https://skmtc.dev/cadencercs/apis/cadence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencercs/apis/cadence-api/revisions/9438443c2081?raw)
