---
title: "Create an Activation challenge"
method: POST
path: "/v1/mfa/challenges/activation"
tags: ["Activation challenges"]
---

# Create an Activation challenge

`POST /v1/mfa/challenges/activation`

Generate a new activation code that can be delivered to endcustomer by the partner.

## Query parameters

- `invalidate_existing_code` boolean

## Request body

- object
  - `person_id` string — ID of the person for whom the Activation challenge should be created.
  - `origin` 'MOBILE_APP' | 'WEB' | 'WEBUI' — A string to distinguish the origin of the request. The request can originate from MOBILE_APP or WEB or WEBUI and the values can be set as accordingly. It can be used to filter the list of codes while using the index endpoint.
  - `purpose` 'DEVICE_BINDING' — Purpose of the activation code to be created. The generated activation code can be used only for the desired purpose. More purposes may be supported in future.
  - `delivery_method` 'SNAILMAIL' — Method of delivering activation code to the endcustomer. SNAILMAIL is the only supported delivery_method as of now. More delivery_methods may be supported in the future.
  - `invalidate_existing_code` boolean — When invalidate_existing_code=true, automatically invalidate existing code and return new code. Return 409 Conflict status, if an activation code for the given person already exists except when invalidate_existing_code=true

## Response `201`

Created

- ActivationChallenge — Activation challenge
  - `id` string — The ID of the challenge.
  - `person_id` string — The ID of the person for whom the activation code is created
  - `code` string — activation code
  - `created_at` string — The date and time when the code was created.
  - `expires_at` string — The date and time when the code will expire.
  - `origin` string — Origin of the request. Origin specifed while creating a new activation code is returned here. "SOLARISBANK" is a reserved origin value which will be used by Solaris SE for internally generated requests.
  - `purpose` string — Purpose of the activation_code. The generated activation_code can be used only for the desired purpose. Currently the only supported purpose is DEVICE_BINDING. More purposes may be supported in future.
  - `delivery_method` string — Partner's method of delivering activation code to the endcustomer.
  - `usage_count` integer — The number of times the activation code has been used.
  - `max_usage_count` integer — The maximum number of times the activation code can be used.

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `409` — Conflict
- `429` — Activation Challenge rate limit exceeded for the person
- `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)
