---
title: "Create a new device binding"
method: POST
path: "/v1/mfa/devices"
tags: ["Device binding"]
---

# Create a new device binding

`POST /v1/mfa/devices`

This endpoint initiates the device binding process for registering a device for a customer. <br/>There are two ways to bind a device. The option depends on the vaue in challenge_type. <br/>i. Using SMS OTP. When the request is processed, Solaris sends an SMS OTP to the customer's registered mobile number.  Before you can use this endpoint, your customer must have a verified mobile number. <br/>ii. Using activation code. To use this option, create an activation challenge for the customer and ensure the code in the challenge is delivered to the customer already. <br/>Refer Activation challenges endpoints.

## Request body

- object
  - `person_id` string — ID of the person for whom the device should be registered.
  - `key_type` 'ecdsa-p256' — The type of key pair used for verifying the device and, after registration, for device signing. At this time, only `ecdsa-p256` is supported.
  - `challenge_type` 'sms' | 'activation_code' — (Optional) The type of challenge to use in order to verify the device. Possible values are `sms` (default) and `activation_code`.
  - `key` string — The hex-encoded public key generated by the device to be registered.
  - `key_purpose` 'unrestricted' | 'restricted' — The purpose of the key that will be used to sign for the device. Possible values are `unrestricted` (default) and `restricted`.
  - `name` string — Specify a name for the new device.
  - `sms_challenge` object — (For SMS challenges) Specifies additional info for processing the SMS challenge.
    - `app_signature` 'e2e-e2e-e2e' — The app signature to use with the Google SMS API for automatic SMS processing inside your app.
  - `language` 'de' | 'en' | 'fr' — The language to use in the SMS challenge. Options are: `de`, `en`, `fr`.
  - `device_data` string — Base64 encoded device data as provided by Seon SDK. Details of Seon SDK integration can be found in the [device monitoring guide](https://docs.solarisgroup.com/guides/kyc/device-monitoring/).

## Response `202`

Created

- DeviceCreateResponse
  - `id` string — The ID of the device.
  - `key_id` string — The ID of the default key that was registered for the device.
  - `challenge` SignatureChallenge — Helper sub-schema that contains a common set of fields for various challenge types
    - `id` string — The ID of the challenge.
    - `type` string — The type of the challenge.
    - `created_at` string — The date and time when the challenge was created.
    - `expires_at` string — The date and time when the challenge will expire (i.e., 5 minutes after creation).

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `409` — Conflict
- `500` — Internal server error

---

[API](https://skmtc.net/solarisgroup/apis/device-management.md) · [All operations](https://skmtc.net/solarisgroup/apis/device-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/solarisgroup/device-management/revisions/80dd46738839/schema)
