---
title: Chekin API Integration on Truto
slug: chekin
category: Default
canonical: "https://truto.one/integrations/detail/chekin/"
---

# Chekin API Integration on Truto



**Category:** Default  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 64 tools for Chekin that AI agents can call directly.

- **chekin_auth_get_token** — Request a Chekin JWT access token by sending an API key. Returns: api_key, token. Token expires after 1 hour. Required: api_key.
- **list_all_chekin_housings** — List chekin housings in your account. Returns housing records including id, name, type, location, registration flags, and identity verification settings.
- **get_single_chekin_housing_by_id** — Get a single chekin housing by id. Returns the housing record including id, name, type, location, registration flags, and identity verification settings. Required: id.
- **create_a_chekin_housing** — Create a new chekin housing. Returns the created housing with id, name, type, location, and registration flags. Required: name. For HOT type, rooms_quantity is mandatory and rooms must be created separately.
- **update_a_chekin_housing_by_id** — Update an existing chekin housing by id. Returns the updated housing record including id, name, type, location, registration flags, and identity verification settings. Required: id.
- **delete_a_chekin_housing_by_id** — Delete a chekin housing by id. Returns an empty 204 response on success. Required: id.
- **chekin_housings_restore** — Restore a deleted Chekin housing. Returns the restored housing object including id, name, origin, type, and is_deactivated. Required: housing_id.
- **list_all_chekin_rooms** — List rooms in Chekin. Returns: id, number, external_id, external_name, housing.
- **get_single_chekin_room_by_id** — Get a single Chekin room by id. Returns: id, number, external_id, external_name, housing. Required: id.
- **create_a_chekin_room** — Create a new Chekin room. Returns: id, number, external_id, external_name, housing. Required: number, housing.
- **chekin_rooms_bulk_create** — Create multiple Chekin rooms in one request. Returns an array of created rooms, each with id, number, external_id, external_name, and housing. Required: number and housing for each room in the array.
- **update_a_chekin_room_by_id** — Update an existing Chekin room by id. Returns: id, number, external_id, external_name, housing. Required: id.
- **delete_a_chekin_room_by_id** — Delete a room from chekin by id. This action permanently removes the room from the inventory. Returns an empty 204 response on success. Required: id.
- **list_all_chekin_police_accounts** — List police accounts in Chekin. Returns: id, type, username, password, certificate_password, establishment_number, username_type, external_id, external_name, police_external_housing_id, external_administration_id, police_extra_data, certificate, payment_method, external_housing_code, renter_code, local_send_time, delay, is_sending_guest_cards_enabled, service_key. Optional filters: number,…
- **get_single_chekin_police_account_by_id** — Get a single Chekin police account by id. Returns: id, type, username, password, certificate_password, establishment_number, username_type, external_id, external_name, police_external_housing_id, external_administration_id, police_extra_data, certificate, payment_method, external_housing_code, renter_code, local_send_time, delay, is_sending_guest_cards_enabled, service_key. Required: id.
- **create_a_chekin_police_account** — Create a new police account in Chekin. Returns the created account including id, type, username, payment_method, and local_send_time. Required: type, username, password.
- **update_a_chekin_police_account_by_id** — Update an existing Chekin police account. Returns the updated account including id, type, username, payment_method, and local_send_time. Required: id.
- **delete_a_chekin_police_account_by_id** — Delete a Chekin police account by id. Returns an empty 204 response on success. Required: id.
- **list_all_chekin_stat_accounts** — List statistical accounts in Chekin. Returns each account's id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode.
- **get_single_chekin_stat_account_by_id** — Get a single Chekin statistical account by id. Returns: id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, send_mode. Required: id.
- **create_a_chekin_stat_account** — Create a new statistical account in Chekin. Returns the created account with id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode. Required: type, username, password.
- **update_a_chekin_stat_account_by_id** — Update an existing Chekin statistical account by id. Returns the updated account with id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode. Required: id.
- **delete_a_chekin_stat_account_by_id** — Delete a Chekin statistical account by id. Returns an empty 204 response on success. Required: id.
- **list_all_chekin_reservations** — List reservations in Chekin, optionally filtered by housing, check-in date, external ID, booking reference, or guest name. Returns: id, housing_id, rooms ids, room_ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source,…
- **get_single_chekin_reservation_by_id** — Get a single Chekin reservation by id. Returns: id, housing_id, rooms ids, room_ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses, links,…
- **create_a_chekin_reservation** — Create a new reservation in Chekin. Returns: id, housing_id, room_ids, rooms ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses, links,…
- **update_a_chekin_reservation_by_id** — Update an existing Chekin reservation by id. Returns: id, housing_id, housing, room_ids, rooms ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses,…
- **delete_a_chekin_reservation_by_id** — Delete a Chekin reservation by id. Returns an empty 204 response on success. Required: id.
- **chekin_reservations_resend_police_check_in** — Force resend the police check-in report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id.
- **chekin_reservations_resend_police_check_out** — Force resend the police check-out report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id. Only needed for police integrations with check-out reports.
- **chekin_reservations_resend_stat_check_in** — Force resend the stat check-in report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id.
- **chekin_reservations_resend_stat_check_out** — Force resend the stat check-out report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id. Only needed for stat integrations with check-out reports.
- **create_a_chekin_reservation_payment** — Create a new payment for a reservation in Chekin. Returns the created payment object including status, type, amount, reservation_id, name, and e-invoicing metadata.
- **list_all_chekin_reservation_payments** — List all payments for a Chekin reservation. Returns: status, type, amount, reservation_id, name, metadata. Required: reservation.
- **delete_a_chekin_reservation_payment_by_id** — Delete a Chekin reservation payment by id. Returns an empty 204 response on success. Required: id.
- **create_a_chekin_einvoicing_supplier** — Create a new e-invoicing supplier in Chekin. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: initial_housing_id, name, vat_number, provider, country, street, building_number, city, postal_code, payment_method, tax_category_key, series, and data.
- **get_single_chekin_einvoicing_supplier_by_id** — Get an e-invoicing supplier in Chekin by id. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: id.
- **update_a_chekin_einvoicing_supplier_by_id** — Update an e-invoicing supplier in Chekin by id. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: id.
- **chekin_guests_get_schema** — Get the dynamic guest schema template from Chekin. Returns the form field definitions (default, iv) that depend on the reservation and nationality. Required: reservation_id.
- **create_a_chekin_guest** — Create a new guest in Chekin. Returns the created guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: name, surname, birth_date, nationality, residence_country, document_type, document_number, document_issue_date, gender, reservation_id.
- **get_single_chekin_guest_by_id** — Retrieve a guest's information from Chekin by id. Returns the full guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: id.
- **update_a_chekin_guest_by_id** — Update an existing guest in Chekin by id. Returns the updated guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: id.
- **delete_a_chekin_guest_by_id** — Delete a guest record from Chekin by id. Returns an empty 204 response on success. Required: id.
- **chekin_guests_pre_create_min** — Pre-create a Chekin guest with minimal fields to prefill the online check-in form. Returns: name, surname, reservation_id. Required: name, surname.
- **chekin_guests_attach_ocr_checks** — Attach ID document OCR scan results to a Chekin guest. Returns the updated guest object including id, name, surname, reservation_id, ocr_passed, and document scan fields. Required: guest_id, reservation_id, ocr_passed, external_documents_front_side_scan, external_documents_front_side_scan_service.
- **create_a_chekin_guest_entry_form** — Generate a guest entry form for a Chekin guest. Returns the guestbook record including id, guest_id, reservation_id, status, and file metadata. Required: guest_id, reservation_id.
- **chekin_guest_entry_forms_get_status** — Check the status of a Chekin guest entry form. Returns the guestbook record including id, status, file_path, and created_at. Required: guest_id, guestbook_id.
- **chekin_guest_entry_forms_download** — Download the generated guest entry form file once its status is READY. Returns the file content (binary). Required: guest_id, guestbook_id.
- **chekin_identity_verification_extract_face_id** — Extract a guest's face from an ID document image in Chekin. Returns: id, picture_field, status, is_face_detected. Required: picture_file.
- **chekin_identity_verification_get_face_id_status** — Check the status of an ID facial-data extraction in Chekin. Returns: id, picture_field, status, is_face_detected. Required: indetification_id.
- **chekin_identity_verification_extract_face_selfie** — Extract a guest's face from a selfie image in Chekin. Returns: id, picture_field, status, is_face_detected. Required: picture_file.
- **chekin_identity_verification_get_face_selfie_status** — Check the status of a selfie facial-data extraction in Chekin. Returns: id, picture_field, status, is_face_detected. Required: person_id.
- **chekin_identity_verification_compare_faces** — Compare ID and selfie facial data in Chekin. Returns: id, identification_picture, person_picture, status, distance, is_match. Required: identification_picture, person_picture.
- **chekin_identity_verification_get_comparison_result** — Get the facial comparison result for a Chekin identity verification. Returns: id, identification_picture, person_picture, status, distance, is_match. Required: compare_id.
- **chekin_ocr_analyze_image** — Submit an identity document image to Chekin's OCR service for MRZ detection and analysis. Returns the OCR request including id, status, mrz_detected, extracted document fields, and validity flags. Required: picture_file.
- **chekin_ocr_get_analysis** — Retrieve the status and extracted MRZ data for an OCR analysis request by data_id. Returns the OCR result including id, status, mrz_detected, extracted traveler fields, and validity flags. Required: data_id.
- **chekin_webhooks_subscribe** — Subscribe to Chekin webhook events in bulk. Returns the created subscriptions with id, event, target, housing_id, and whitelist. Required: events and target.
- **list_all_chekin_webhooks** — List all webhook subscriptions for your Chekin account. Returns each subscription's id, event, target, housing_id, and whitelist.
- **chekin_webhooks_unsubscribe** — Unsubscribe a Chekin webhook by id. Returns an empty 204 response on success. Required: webhook_id.
- **create_a_chekin_reservation_source** — Create a reservation source in Chekin. Returns the created source with id and name. Required: name.
- **list_all_chekin_reservation_sources** — List all reservation sources in Chekin. Returns each source's id and name.
- **delete_a_chekin_reservation_source_by_id** — Delete a reservation source in Chekin by id. Returns an empty 204 response on success. Required: id.
- **list_all_chekin_spain_municipalities** — List Spanish municipalities from Chekin. Returns each municipality's name and official code. Optional: q.
- **list_all_chekin_search_locations** — Search Chekin location codes across countries and administrative divisions. Returns a list of locations, each containing a country object with code, alpha_3, name, and splitted. Hard limit: phone_code and country filters are mutually exclusive.

## How it works

1. **Link your customer's Chekin account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Chekin.** The Proxy API is a 1-to-1 mapping of the Chekin API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate guest compliance for property management systems** — PMS and channel manager platforms can push reservations and property data into Chekin automatically, so their hosts get legal police and statistical reporting without leaving the PMS. This removes manual data entry and eliminates the risk of missed 24-hour reporting deadlines.
- **Gate smart lock access behind verified identity** — Smart lock and access control platforms can subscribe to Chekin webhooks and only release digital keys after a guest passes ID verification and signs the rental agreement. This protects hosts from liability and enforces compliance before physical entry.
- **Embed biometric ID verification in a white-labeled guest app** — Hotel groups and guest experience apps can call Chekin's OCR and face comparison endpoints directly from their own branded mobile app. Guests never leave the SaaS product, but the platform still handles passport parsing, liveness checks, and police reporting under the hood.
- **Sync tourist taxes and payments into reservation folios** — Finance and booking platforms can create reservation payments and e-invoicing suppliers in Chekin to automatically generate compliant tax invoices for local tourist levies. This closes the loop between guest check-in data and the operator's accounting stack.
- **Provision new hospitality customers in minutes** — SaaS platforms onboarding new property managers can programmatically create housings, bulk-create rooms, and register police and stat accounts in Chekin. What used to be a multi-day setup call becomes a self-serve flow inside the SaaS product.

## What you can build

- **Two-way property and room sync** — Mirror your users' property hierarchy into Chekin by listing, creating, and updating housings and rooms — including bulk room creation for large portfolios.
- **Automatic reservation push with dynamic check-in links** — Create Chekin reservations the moment a booking lands in your platform and pull back the guest entry form so you can inject it into your own pre-arrival emails or SMS.
- **Event-driven compliance workflows via webhooks** — Subscribe to Chekin webhooks to trigger downstream actions like releasing smart lock codes, sending welcome messages, or updating booking statuses when a guest is verified or a police report is filed.
- **Headless ID verification and OCR** — Send passport and ID images directly to Chekin's OCR endpoints and run face-to-selfie comparisons inside your own app, keeping guests fully within your branded experience.
- **Force-resend police and statistical reports** — Give your users a one-click way to re-trigger police check-in, police check-out, stat check-in, and stat check-out submissions when reservation details change after the fact.
- **Localized guest data collection forms** — Fetch Chekin's guest schema dynamically so your check-in UI shows exactly the right fields for each guest's nationality and destination country, without hardcoding country-specific logic.

## FAQs

### How does authentication work with Chekin through Truto?

Chekin uses a token-based auth flow handled by the auth token endpoint. Truto manages token acquisition, storage, and refresh for each of your end users, so your app only sees a single connection identifier per customer.

### Can we run biometric identity verification without redirecting the guest to Chekin's hosted flow?

Yes. You can call the OCR image analysis and identity verification endpoints (face ID extraction, selfie extraction, and face comparison) directly, then poll their status endpoints to get results inside your own app.

### How do we know when a guest has completed check-in or when a police report is filed?

Use the Chekin webhook subscription endpoint to register a listener. Truto normalizes webhook delivery so you receive events like verification and reporting outcomes without managing Chekin's raw callback infrastructure.

### Does Chekin support bulk operations for onboarding large portfolios?

Rooms support a dedicated bulk create endpoint, which is useful when provisioning a new property manager with dozens or hundreds of units. Housings, reservations, and guests are created individually via their standard create endpoints.

### How do we handle country-specific guest data requirements?

Chekin exposes a guest schema endpoint that returns the exact fields required for a given reservation context. You can render your check-in UI dynamically from this schema instead of maintaining per-country form logic.

### Can we re-trigger compliance reports if a booking changes after check-in?

Yes. Chekin exposes dedicated actions to resend police check-in, police check-out, stat check-in, and stat check-out reports on a reservation, which is critical for handling late edits, cancellations, or guest changes.

## Related reading

- [Connect Chekin to Claude: Manage reservations and verify identities](https://truto.one/blog/connect-chekin-to-claude-manage-reservations-and-verify-identities/) — Learn how to connect Chekin to Claude using Truto's managed MCP server. Automate identity verification, property management, and police reporting workflows.
- [Connect Chekin to ChatGPT: Manage housings, rooms and police reports](https://truto.one/blog/connect-chekin-to-chatgpt-manage-housings-rooms-and-police-reports/) — Learn how to connect ChatGPT to Chekin using a managed MCP server. Automate guest registration, OCR analysis, and police reports without custom integration code.
- [Connect Chekin to AI Agents: Automate OCR and guest entry forms](https://truto.one/blog/connect-chekin-to-ai-agents-automate-ocr-and-guest-entry-forms/) — Learn how to connect Chekin to AI agents using Truto's /tools endpoint. Automate OCR, dynamic guest entry schemas, and police compliance workflows.
