---
title: "Start PIN reset (send 2FA code)"
method: POST
path: "/auth/me/pin/reset/start"
tags: ["auth"]
---

# Start PIN reset (send 2FA code)

`POST /auth/me/pin/reset/start`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/auth/me/pin/reset/start`
- Auth: API key in header `Authorization`

Sends a one-time code to the caller's verified contact: `channel` "email" or "sms", or omit to auto-pick (email preferred). 412 `no_verified_contact` when nothing verified is on file; 400 `channel_unavailable` when the requested channel has no verified destination. Tenant admins resetting someone ELSE's PIN use DELETE /accounts/{id}/pin instead — no code involved.

## Request body

- InternalDeliveryHttpHandlerPinResetStartRequest
  - `channel` 'email' | 'sms'

## Response `200`

OK

- InternalDeliveryHttpHandlerPinResetStartResponse
  - `data` InternalDeliveryHttpHandlerPinResetStartData
    - `channel` string
    - `destination` string
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `412`: Precondition Failed

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
