---
title: "Confirm a user (signup confirmation or staged email change apply)"
method: POST
path: "/v1/users/{id}/confirm"
tags: ["Users"]
---

# Confirm a user (signup confirmation or staged email change apply)

`POST /v1/users/{id}/confirm`

## Request

- Base URL: `https://identity-api.paymongo.com`
- URL: `https://identity-api.paymongo.com/v1/users/{id}/confirm`
- Auth: none required

Single endpoint for two flows. If the user is unconfirmed, marks them confirmed (signup confirmation). If the user is confirmed and the token's stored email differs, swaps user.email and revokes all sessions (email change apply). Replays of the same token are rejected as already-expired or already-confirmed.

## Path parameters

- `id` string, required

## Request body

- UserConfirmUserRequestEnvelopeDTO
  - `data` object
    - `attributes` UserConfirmUserRequestDTO
      - `token` string, required

## Response `200`

OK

- object: Standard response containing data and its metadata if any
  - `data` object
    - `attributes` UserConfirmUserSuccessAttributesDTO
      - `action` string
      - `confirmed` boolean
      - `email` string
      - `organization_id` string
      - `user_contact_number` string
      - `user_first_name` string
      - `user_last_name` string
    - `id` string
    - `type` string
  - `has_more` boolean

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `410`: Gone
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/paymongo/apis/identity.md) - [All operations](https://skmtc.dev/paymongo/apis/identity/llms.txt) - [OpenAPI document](https://skmtc.dev/paymongo/apis/identity/revisions/cc3056164874?raw)
