---
updatedAt: 2026-09-29T08:28:41.000Z
agentTools:
  projectIndex: https://docs.sumsub.com/llms.txt
---

# Reject applicant

# Overview

Use this method to set an [applicant status](https://docs.sumsub.com/docs/applicant-statuses)  to **Rejected**.

When invoked, the applicant status is updated in the Dashboard to **Rejected**, and the API response reflects the following state changes:

* `reviewStatus: "completed"`
* `reviewResult.reviewRejectType: "FINAL"`
* `reviewResult.reviewAnswer: "RED"`

When you reject an applicant via this API method, the system automatically sets the `EXTERNAL_DECISION_REJECTION` [reject label](https://docs.sumsub.com/sumsub/docs/receive-and-interpret-results-via-api#rejected-labels). You can see this label under the applicant status **Rejected** in the Dashboard or in the API response under `rejectLabels`.

<Callout icon="📘" theme="error">
  ### Warning

  This endpoint can temporarily reject the status change with a `409 Conflict` error, a message asking to retry, and a header indicating the time after which you can retry — for example, `Retry-After: 10` (seconds). This can happen when an applicant is set to `pending` and then almost immediately moved to a final status via the API (for example, `approved` right after `pending`) — the request may arrive while internal processing is still running.

  To handle this:

  - Retry `409` responses instead of treating them as permanent failures. If the response includes a `Retry-After` header, wait for the interval it specifies; otherwise, fall back to a short fixed delay (for example, 10–15 seconds).
  - Avoid calling `approve`/`reject`/`init` immediately after moving an applicant to `pending` — wait for processing to finish, or be ready to retry on conflict.
</Callout>

<Callout icon="🚧" theme="warn">
  ### Attention

  Applicants with `"reviewRejectType": "FINAL"` cannot retry the verification process.
</Callout>

<Callout icon="📘" theme="info">
  ### Notes

  - You can reject applicants via API regardless of their current status.
  - This method rejects an applicant without altering the status of verification steps, documents, images, or other associated data.
  - The `reasons` you send do not create associated rejection labels or buttons. They are used only for logging rejection reasons and are not displayed in the Dashboard or in the JSON response. Check the list of all possible external decision rejection reasons and their associated groups on [this page](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list).
</Callout>

## Required permissions

To use this method:

* Your [app token](https://docs.sumsub.com/sumsub/docs/app-tokens) must have the **View applicant's personal data** [permission](https://docs.sumsub.com/sumsub/docs/user-roles#permissions).
* **Device Intelligence** must be enabled as a feature on your account.

Both conditions are required — missing either one returns a `403 Forbidden`. If **Device Intelligence** is not enabled for your account, contact your CSM or Sumsub support.

# Request example

```curl
curl -X POST \
     'https://api.sumsub.com/resources/applicants/687fb2373fc85ad66b5d0000/-/reject' \
     -H 'content-type: application/json' \
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
          "note": "Example note",
          "tags": [
            "First tag",
            "Second tag"
          ],
          "reasons": {
            "device": [
              "suspiciousDevice"
            ]
          }
        }'
```

# Response explained

If the request is sent and processed successfully, you will receive a JSON response representing the applicant profile with augmented and structured information.

You can see the response structure, possible content with descriptions, and examples of response on the [following page](https://docs.sumsub.com/sumsub/reference/get-applicant-data#response-explained).

If the request fails, you will receive an HTTP response containing an error code and a message explaining the error.<br />For example:

```json
{
  "code": 400,
  "description": "When rejecting an applicant, reasons must be provided with at least one reason",
  "correlationId": "0d3457fdac54803edf23c932ddd561a2"
}
```

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "sumsub-api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.sumsub.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "name": "X-App-Token",
        "in": "header",
        "x-default": ""
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/resources/applicants/{applicantId}/-/reject": {
      "post": {
        "summary": "Reject applicant",
        "description": "",
        "operationId": "reject-applicant",
        "parameters": [
          {
            "name": "applicantId",
            "in": "path",
            "description": "Unique identifier of the applicant in the Sumsub system. <br><br>This identifier is a random combination of 24 digits and lowercase Latin characters. It is automatically generated when the applicant is created on the Sumsub side, and can be found in the [Dashboard](https://cockpit.sumsub.com/checkus/#/applicants/individual?limit=10&page=0). <br><br>If the `applicantId` is unknown to you, use the [Get applicant data (externalUserId)](https://docs.sumsub.com/sumsub/reference/get-applicant-data-via-externaluserid) method to fetch it.",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reasons"
                ],
                "properties": {
                  "note": {
                    "type": "string",
                    "description": "Optional note text providing additional context for the applicant profile. Notes can be added and managed either in the Dashboard or via [dedicated API methods](https://docs.sumsub.com/sumsub/reference/add-applicant-note)."
                  },
                  "tags": {
                    "type": "array",
                    "description": "[Tags](https://docs.sumsub.com/sumsub/reference/add-custom-applicant-tags) that you may want to assign to the applicant profile. Each string represents a standalone tag. <br><br>⚠️ Mind that tag names are case sensitive.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "description": "Contains nested arrays, where each array represents a predefined reason category and includes predefined reason strings.",
                    "properties": {
                      "fraud": {
                        "type": "array",
                        "description": "Covers cases where the applicant intentionally tries to deceive the system or commit identity fraud. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#fraud-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "finance": {
                        "type": "array",
                        "description": "Covers financial risks and payment-related fraud. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#finance-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "regulation": {
                        "type": "array",
                        "description": "Covers legal and compliance-related violations. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#regulation-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "abuse": {
                        "type": "array",
                        "description": "Covers violations of platform rules or misuse of services. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#abuse-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "device": {
                        "type": "array",
                        "description": "Covers risks associated with applicant devices. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#device-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "manual": {
                        "type": "array",
                        "description": "Covers cases where the final decision was made by the risk or compliance team. Refer to the [Reason List](https://docs.sumsub.com/sumsub/reference/external-rejection-reasons-list#manual-group) for available reasons.",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```