---
title: "Cancel invite for one signer"
url: "https://docs.signnow.com/docs/doc-group-freeform-invite/operations/post-v2-document-groups-document_group_id-free-form-invites-dg_freeform_invite_id-users-user_id-cancel"
type: "endpoint"
section: "doc-group-freeform-invite"
slug: "doc-group-freeform-invite/operations/post-v2-document-groups-document_group_id-free-form-invites-dg_freeform_invite_id-users-user_id-cancel"
method: "POST"
path: "/v2/document-groups/{document_group_id}/free-form-invites/{dg_freeform_invite_id}/users/{user_id}/cancel"
operation_id: "post-v2-document-groups-document_group_id-free-form-invites-dg_freeform_invite_id-users-user_id-cancel"
authorization: "bearer"
---

# Cancel invite for one signer

`POST /v2/document-groups/{document_group_id}/free-form-invites/{dg_freeform_invite_id}/users/{user_id}/cancel`

Cancel the document group FreeForm invite for a specific signer with a specified cancellation reason.

## Authorization

bearer

## Path Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `document_group_id` | string | Yes | ID of the document group |
| `dg_freeform_invite_id` | string | Yes | ID of the document group FreeForm invite. |
| `user_id` | string | Yes | ID of the signer. |

## Request Body

**Schema**

```json
{
  "type": "object",
  "required": [
    "client_timestamp"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "maxLength": 1000,
      "description": "Cancellation reason."
    },
    "client_timestamp": {
      "type": "integer",
      "description": "UNIX timestamp."
    }
  },
  "x-examples": {
    "Example 1": {
      "reason": "cancel reason",
      "client_timestamp": 1530017036
    }
  }
}
```

**Example** (`Example 1`)

```json
{
  "reason": "cancel reason",
  "client_timestamp": 1530017036
}
```

## Responses

### 204

Success, no content

### 400

* User has signed documents in this group
* Field `reason` should be of type string
* Field `reason` must not be empty string
* Field `reason` should not exceed 1000 characters
* Invalid characters provided for `reason`
* Field `client_timestamp` should not be null
* Field `client_timestamp` should be of type int
* The `client_timestamp` limits exceeded

**Example** (`Field `reason` exceeds 1000 characters`)

```json
{
  "errors": [
    {
      "code": 19057003,
      "message": "Field `reason` should not exceed 1000 characters."
    }
  ]
}
```

**Example** (`The `client_timestamp` limits exceeded`)

```json
{
  "errors": [
    {
      "code": 19057007,
      "message": "The `client_timestamp` should be between 0 and 4294967295."
    }
  ]
}
```

**Example** (`Field `reason` must not be empty string`)

```json
{
  "errors": [
    {
      "code": 19057002,
      "message": "Field `reason` must not be empty string."
    }
  ]
}
```

**Example** (`Field `reason` should be of type string`)

```json
{
  "errors": [
    {
      "code": 19057001,
      "message": "Field `reason` should be of type string."
    }
  ]
}
```

**Example** (`User has signed documents in this group`)

```json
{
  "errors": [
    {
      "code": 19056001,
      "message": "The user has signed documents in this document group."
    }
  ]
}
```

**Example** (`Invalid characters provided for `reason``)

```json
{
  "errors": [
    {
      "code": 19057004,
      "message": "Invalid characters provided for `reason`."
    }
  ]
}
```

**Example** (`Field `client_timestamp` should not be null`)

```json
{
  "errors": [
    {
      "code": 19057005,
      "message": "Field `client_timestamp` should not be null."
    }
  ]
}
```

**Example** (`Field `client_timestamp` should be of type int`)

```json
{
  "errors": [
    {
      "code": 19057006,
      "message": "Field `client_timestamp` should be of type int."
    }
  ]
}
```

### 403

* User is not doc group owner
* User is not verified
* User is not signer

**Example** (`User is not signer`)

```json
{
  "errors": [
    {
      "code": 19001052,
      "message": "User {signer_id} has no invites in this document group."
    }
  ]
}
```

**Example** (`User is not verified`)

```json
{
  "errors": [
    {
      "code": 19001049,
      "message": "User is not verified."
    }
  ]
}
```

**Example** (`User is not doc group owner`)

```json
{
  "errors": [
    {
      "code": 19001010,
      "message": "Current user is not document group owner."
    }
  ]
}
```

### 404

FreeForm invite does not belong to doc group

**Example** (`FreeForm invite does not belong to doc group`)

```json
{
  "errors": [
    {
      "code": 19001051,
      "message": "Document group {document_group_id} not found."
    }
  ]
}
```

## Code Examples

> Replace `$SIGNNOW_ACCESS_TOKEN` and any `{placeholder}` values before running.

### cURL

```bash
curl -X POST \
  "https://api.signnow.com/v2/document-groups/{document_group_id}/free-form-invites/{dg_freeform_invite_id}/users/{user_id}/cancel" \
  -H "Authorization: Bearer $SIGNNOW_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reason": "cancel reason", "client_timestamp": 1530017036}'
```

---
*Full reference: https://docs.signnow.com/docs/doc-group-freeform-invite/operations/post-v2-document-groups-document_group_id-free-form-invites-dg_freeform_invite_id-users-user_id-cancel*
