> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Worked request and response samples

> Worked samples for the OTP verification flow: send a verifiable code, and check it. Each sample shows the request, the success envelope, and the error envelope to expect.

## Worked request and response samples

Copy a request body as written, substitute your own ids, and compare the response envelope. Errors follow Devotel Orbit's `{ error, meta }` envelope, shown once below under **Error envelope**.

### Send a verification code

<Note>
  `POST /api/v1/verify/send`
</Note>

Pick the channel you deliver the code on, and hold onto the returned `verification_id` for the check call.

**Request**

```json theme={null}
{
  "destination": "+14155552671",
  "channel": "sms",
  "template_id": "tmpl_9e8d7c6b5a4f3021e5d6c7b8"
}
```

<ResponseExample>
  ```json 201 theme={null}
  {
    "data": {
      "verification_id": "ver_3f6a81c2d4e5471a9b0c2d5e",
      "destination": "+14155552671",
      "channel": "sms",
      "expires_at": "2026-08-01T12:10:00.000Z"
    },
    "meta": {
      "request_id": "req_send",
      "timestamp": "2026-08-01T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>

### Check a code

<Note>
  `POST /api/v1/verify/check`
</Note>

Send the `verification_id` from the send call and the code the user typed.

**Request**

```json theme={null}
{
  "verification_id": "ver_3f6a81c2d4e5471a9b0c2d5e",
  "code": "123456"
}
```

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "verification_id": "ver_3f6a81c2d4e5471a9b0c2d5e",
      "status": "verified"
    },
    "meta": {
      "request_id": "req_check",
      "timestamp": "2026-08-01T12:00:30.000Z"
    }
  }
  ```
</ResponseExample>

### Error envelope

An expired or wrong code returns `422` with `VALIDATION_ERROR`; repeated wrong codes are rate-limited.

```json 422 theme={null}
{
  "error": {
    "code": "INVALID_CODE",
    "status": 422,
    "message": "verification code does not match"
  },
  "meta": {
    "request_id": "req_...",
    "timestamp": "2026-08-01T12:00:00.000Z"
  }
}
```
