---
title: "Connect a User via SMS"
method: POST
path: "/v1/users/connect/sms"
tags: ["Connect"]
---

# Connect a User via SMS

`POST /v1/users/connect/sms`

Connect a User using SMS verification. The connection will complete once the user has been verified using the sms verify endpoint.

## Request body

- ConnectSmsRequest
  - `phoneNumber` string, required — The phone number in E.164 format.
  - `dateOfBirth` string, required — The date of birth. Formatted as YYYY-MM-DD.
  - `userId` string, required — An existing userId to connect with. One of extUserId or userId is required.
  - `extUserId` string, required — A unique external ID for the user. One of extUserId or userId is required.
  - `audit` AuditRequest
    - `consentTimestamp` string — When the user consented to the End User Agreement. Must be a UTC RFC 3339 datetime within the last 24 hours.
    - `tosVersion` 'v1.0' | 'v1.1' — Version of the Spinwheel End User Agreement agreed to by the user. Supported versions: v1.0, v1.1.
    - `tosLanguage` 'en' — Language in which the Spinwheel End User Agreement was presented. Currently only "en" is supported.
    - `consentType` 'WRITTEN' | 'VERBAL' — How consent was obtained. WRITTEN: written or electronic consent. VERBAL: verbal consent during a recorded interaction.

## Response `201`

Success

- ConnectSmsResponse
  - `status` ResponseStatus, required
    - `code` number
    - `desc` string
    - `messages` Message[]
      - `desc` string, required
      - `type` 'ERROR' | 'WARN' | 'INFO'
  - `data` ConnectSmsResponseData, required
    - `userId` string, required — Id of the user
    - `extUserId` string, required — A client id registered with Spinwheel on creation
    - `connectionId` string, required — Id of the connection
    - `connectionStatus` 'IN_PROGRESS' | 'SUCCESS' | 'FAILED', required — connectionStatus
    - `sms` ConnectSmsDetails, required
      - `codeExpiresAt` number, required — The time the code expires at
      - `codeTimeoutSeconds` number, required — The length of time, in seconds, until the code expires

## Other responses

- `400` — Bad Request
- `429` — Too Many Requests

---

[API](https://skmtc.dev/spinwheel/apis/discover.md) · [All operations](https://skmtc.dev/spinwheel/apis/discover/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/spinwheel/discover/revisions/55b90a2e1dd4/schema)
