---
title: "Send a one-time text"
method: POST
path: "/text/send"
---

# Send a one-time text

`POST /text/send`

Renders an SMS template with the supplied variables and sends it to one phone number. A 200 means the message was accepted and queued, not yet delivered — use the returned `messageId` with the status endpoint. Sandbox API keys are rejected.

## Request body

- object
  - `destination` string, required — US phone number. `3313048434`, `13313048434`, and `+1 (331) 304-8434` are all accepted.
  - `templateId` integer, required — The template to send. Must belong to your organization's account.
  - `variables` object, required — Values substituted into the template's `{placeholder}` tokens. Use `{}` if the template has none. If any placeholder is left unresolved, the request fails with 400 rather than texting a literal `{token}`.
  - `debtorId` string, required — Your reference for this recipient (e.g. your account or reference number). Forwarded as-is; replies and the message record are tracked against it.

## Response `200`

Message accepted and queued.

- object
  - `success` boolean, required
  - `messageId` string, required — Delivery-tracking ID. Use it with the status endpoint.
  - `segments` SegmentResult
    - `encoding` 'GSM-7' | 'UCS-2', required — Encoding the message is sent with. Any non-GSM-7 character (emoji, smart quotes, most CJK) forces the whole message to UCS-2.
    - `characterCount` integer, required — Number of characters in the message.
    - `gsm7Length` integer — Length in GSM-7 units (extended characters such as { } [ ] ~ \ | ^ € cost 2).
    - `segmentCount` integer, required — Number of SMS segments the message will use.
    - `maxCharsPerSegment` integer, required — Max characters per segment for the chosen encoding (160 GSM-7, 70 UCS-2).
    - `messageSizeBits` integer — Total message size in bits.

## Other responses

- `400` — Invalid body: bad phone number, missing or non-integer `templateId`, missing `debtorId`, bad `variables`, or unresolved template placeholders.
- `403` — Texting not enabled for your organization, the template is not in your account, or a sandbox key was used.
- `404` — Template not found.
- `429` — Rate limit exceeded (10 sends/min per organization).
- `500` — Unexpected server error.
- `502` — The SMS service rejected or failed the send.

---

[API](https://skmtc.net/collectwise/apis/collectwise-api.md) · [All operations](https://skmtc.net/collectwise/apis/collectwise-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/collectwise/collectwise-api/versions/a44939a1402b/schema)
