> For the complete documentation index, see [llms.txt](https://docs.api.intratool.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.api.intratool.de/api-reference/forms/form-message-confirmations.md).

# FormMessageConfirmations

## Introduction

`FormMessageConfirmations` record receipt or approval decisions for submitted [FormMessages](/api-reference/forms/form-messages.md).

The `comment` field uses the shared [Rich Text](/introduction/rich-text.md) HTML format.

## Model Definition

**Alias**

`formMessageConfirmation`

**Capabilities**

* [Translations](/introduction/resource-capabilities/translations.md) - Localizes `comment`; examples use `en-US`.

## Show by Token

Show one `FormMessageConfirmation` by token.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/forms/messages/confirmations/{formMessageConfirmationByToken}`

**Route Parameters**

| Parameter                        | Type     | Description                |
| -------------------------------- | -------- | -------------------------- |
| `formMessageConfirmationByToken` | `string` | Signed confirmation token. |

**Request Keys**

| Key       | Type     | Default    | Description                       |
| --------- | -------- | ---------- | --------------------------------- |
| `selects` | `string` | All fields | Comma-separated fields to return. |

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/forms/messages/confirmations/{confirmationToken}');
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "id": 215,
  "user_id": 7,
  "form_message_id": 140,
  "lang_id": "en-US",
  "referrer": "reviewer@example.com",
  "status": "pending",
  "comment": null,
  "first_visit": "2026-08-06 12:00:00"
}
```

## Update by Token

Update one `FormMessageConfirmation` by token.

**Definition**

<mark style="color:blue;">`PUT`</mark> `/api/forms/messages/confirmations/{formMessageConfirmationByToken}`

**Route Parameters**

| Parameter                        | Type     | Description                |
| -------------------------------- | -------- | -------------------------- |
| `formMessageConfirmationByToken` | `string` | Signed confirmation token. |

**Request Keys**

| Key          | Type               | Default                        | Description                                                   |
| ------------ | ------------------ | ------------------------------ | ------------------------------------------------------------- |
| `lang_id`    | `string`           | Current value                  | Language key. Use `en-US` for this example.                   |
| `status`     | `string`           | Current value                  | Allowed confirmation status for this request.                 |
| `comment`    | `string` \| `null` | `null`                         | Optional confirmation comment.                                |
| `referrer`\* | `string`           | Token recipient when available | Required when the token does not already carry its recipient. |

Keys with `*` are required.

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('PUT', '/api/forms/messages/confirmations/{confirmationToken}', [
    'json' => [
        'lang_id' => 'en-US',
        'status' => 'confirmed',
        'comment' => '<p>Reviewed and approved.</p>',
        'referrer' => 'reviewer@example.com'
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 215,
    "user_id": 7,
    "form_message_id": 140,
    "lang_id": "en-US",
    "referrer": "reviewer@example.com",
    "status": "confirmed",
    "comment": "<p>Reviewed and approved.</p>",
    "first_visit": "2026-08-06 12:00:00"
  }
}
```

## Reset

Reset an existing `FormMessageConfirmation`.

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/forms/messages/confirmations/{formMessageConfirmation}/reset`

**Route Parameters**

| Parameter                 | Type      | Description                 |
| ------------------------- | --------- | --------------------------- |
| `formMessageConfirmation` | `integer` | Confirmation ID to replace. |

**Behavior**

The previous confirmation is deleted, a new token is generated, and the reset notification is distributed.

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/forms/messages/confirmations/215/reset', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 216,
    "user_id": 7,
    "form_message_id": 140,
    "lang_id": "en-US",
    "referrer": "reviewer@example.com",
    "status": "pending",
    "comment": null,
    "first_visit": null
  }
}
```
