---
title: "Add phone for MFA setup"
method: POST
path: "/v3/mfa/setup"
tags: ["mfa"]
---

# Add phone for MFA setup

`POST /v3/mfa/setup`

Add a valid phone number for setting up MFA in the current organization.

In the response, a `setupId` is generated and a six-digit `token` is sent to the phone number. After you add a phone number (with `POST /v3/mfa/setup`), complete the MFA setup by validating the entered phone number (with `POST /v3/mfa/validate`). At this point, the phone number is registered for the MFA sign in operation.

There are two stages in the BILL MFA process.
1. **MFA setup**: Add a valid phone number for setting up MFA in the organization (with `POST /v3/mfa/setup`), and then complete the setup by validating the entered phone number (with `POST /v3/mfa/validate`). At this point, the phone number is registered for the MFA sign in operation.
2. **MFA sign in**: Generate an MFA challenge (with `POST /v3/mfa/challenge`), and then complete MFA sign in by validating the MFA challenge (with `POST /v3/mfa/challenge/validate`). At this point, your API session is MFA trusted.

**Note**: In the production environment, BILL requires an MFA-trusted API session for a set of API operations.
* Enable vendor `autoPay`
* Enable recurring bill `autoPayment`
* Create a payment or bulk payment
* Create a bank account in a BILL organization
* Reset MFA (Complete MFA setup and MFA sign-in again)

## Headers

- `sessionId` string, nullable — API session ID generated with `/v3/login`
- `devKey` string, nullable — Developer key generated with your BILL developer account

## Request body

- MfaSetupRequestDto — Add phone for MFA setup
  - `phone` string, required — Phone number for MFA setup. The validation `token` is sent to this number.
  - `type` 'VOICE' | 'TEXT', required — Phone type for MFA setup. * `TEXT`: You receive the validation `token` as an SMS test message. * `VOICE`: You receive the validation `token` by an automated phone call
  - `primary` boolean — Set as `true` to mark the phone number as the primary mobile device. The default value is `true`.

## Response `200`

Add phone for MFA setup response

- MfaSetupResponseDto — MFA Setup response.
  - `setupId` string, required — MFA setup ID. This value is required for completing your MFA setup validation with `POST /v3/mfa/setup/validate`.

## Other responses

- `4XX` — List of errors.
- `5XX` — List of errors.

---

[API](https://skmtc.net/bill/apis/bill-v3-api.md) · [All operations](https://skmtc.net/bill/apis/bill-v3-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bill/bill-v3-api/revisions/0483350c434e/schema)
