> For the complete documentation index, see [llms.txt](https://chekin.gitbook.io/chekin-public-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chekin.gitbook.io/chekin-public-api/api-reference/documents/guest-entry-forms.md).

# Guest Entry forms

Steps to create the entry from for each guest:

### Generate the guest entry form

<mark style="color:green;">`POST`</mark> `/guests/:guest_id/guestbooks`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `JWT <token>`      |

**Body**

| Name             | Type | Description    |
| ---------------- | ---- | -------------- |
| `reservation_id` | uuid | Reservation ID |

**Example**

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

```json
curl --location 'https://api-ng.chekintest.xyz/public/api/v1/guests/:guest_id/guestbooks' \
--header 'Authorization: JWT {{TOKEN}}' \
--header 'Content-Type: application/json' \
--data '{
	"reservation_id": "{{RESERVATION_ID}}" 
}'
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "id": "DOC_ID",
    "user_id": "USER_ID",
    "housing_id": null,
    "reservation_id": "RESERVATION_ID",
    "service_provider_name": null,
    "guest_id": "GUEST_ID",
    "date_from": null,
    "date_to": null,
    "status": "NEW",
    "status_details": null,
    "start_number": 1,
    "end_number": null,
    "email": null,
    "file_path": null,
    "file_name": null,
    "s3_file_path": null,
    "created_at": "2026-03-18T16:15:23.907709",
    "updated_at": "2026-03-18T16:15:23.907715",
    "deleted_at": null
}
```

{% endtab %}
{% endtabs %}

### Check guest entry form status

Use the DOC\_ID in path returned in previous request response

<mark style="color:green;">`GET`</mark> `/guests/:guest_id/guestbooks/:doc_id`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `JWT <token>`      |

**Example**

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

```json
curl --location 'https://api-ng.chekintest.xyz/public/api/v1/guests/:guest_id/guestbooks/:doc_id' \
--header 'Authorization: JWT {{TOKEN}}' \
--header 'Content-Type: application/json' \
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "id": "DOC_ID",
    "user_id": "USER_ID",
    "housing_id": null,
    "reservation_id": "RESERVATION_ID",
    "service_provider_name": null,
    "guest_id": "GUEST_ID",
    "date_from": null,
    "date_to": null,
    "status": "READY",
    "status_details": null,
    "start_number": 1,
    "end_number": null,
    "email": null,
    "file_path": null,
    "file_name": null,
    "s3_file_path": null,
    "created_at": "2026-03-18T16:15:23.907709",
    "updated_at": "2026-03-18T16:15:23.907715",
    "deleted_at": null
}
```

{% endtab %}
{% endtabs %}

### Download guest entry form

As soon as the status is `READY` you can download the entry form:

<mark style="color:green;">`GET`</mark> `/guests/:guest_id/guestbooks/:doc_id/file`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `JWT <token>`      |

**Example**

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

```json
curl --location 'https://api-ng.chekintest.xyz/public/api/v1/guests/:guest_id/guestbooks/:doc_id/file' \
--header 'Authorization: JWT {{TOKEN}}' \
--header 'Content-Type: application/json' \
```

{% endtab %}
{% endtabs %}
