---
title: Terms and Conditions stage
description: This stage evaluates a boolean accepted (true or false).
component: pingidm
version: 7.5
page_id: pingidm:self-service-reference:stages/stage-terms-conditions
canonical_url: https://docs.pingidentity.com/pingidm/7.5/self-service-reference/stages/stage-terms-conditions.html
keywords: ["JSON", "Configuration", "Authentication", "Self-Service", "User Self-Service", "Terms &amp; Conditions"]
---

# Terms and Conditions stage

This stage evaluates a boolean `accepted` (`true` or `false`).

* Example configuration

  This stage is configured in a `selfservice.terms.json` file in the project `conf` directory and includes the following parameters:

  ```json
  {
      "versions" : [
          {
              "version" : "1",
              "termsTranslations" : {
                  "en" : "Sample terms and conditions"
              },
              "createDate" : "2018-04-10T09:52:25.478Z"
          }
      ],
      "uiConfig" : {
          "displayName" : "We have updated our terms",
          "purpose" : "To proceed, accept these terms",
          "buttonText" : "Accept"
      },
      "active" : "1"
  }
  ```

  The stage can stand on its own (as it does in the default registration configuration) or be called from the [Conditional User Stage](../appendix-stages.html#stage-conditional-user) with a configuration similar to the following:

  ```json
  {
      "name" : "conditionaluser",
      "identityServiceUrl" : "managed/user",
      "condition" : {
          "type" : "terms"
      },
      "evaluateConditionOnField" : "user",
      "onConditionTrue" : {
          "name" : "termsAndConditions"
      }
  },
  ```

* Dependencies

  Configured as part of the [Conditional User Stage](stage-conditional-user.html). *Must* have the [Patch object stage](stage-patch-object.html) somewhere downstream. This stage can occur anywhere in a process.

* Requirements

  Requires Terms and Conditions to be accepted before continuing to the next stage:

  * If `accept` is absent, the stage returns the requirements again.

  * If `accept` is present but `false`, the stage generates an exception. It is up to the client to handle that exception.

  * If `accept` is `true`, this stage puts all the outputs into `state` and advances to the next stage.

* Outputs

  `TERMS_ACCEPTED`, `TERMS_DATE`, and `TERMS_VERSION`
