Skip to content

Default · Beta

Chekin
API integration

Ship Default features without building the integration. Full Chekin API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Chekin

Use Cases

Why integrate with Chekin

Common scenarios for SaaS companies building Chekin integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Chekin

Concrete product features your team can ship faster by leveraging Truto’s Chekin integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Chekin AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Chekin

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Chekin in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Chekin account

Use Truto’s frontend SDK to connect your customer’s Chekin account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Chekin

Truto’s Proxy API is a 1-to-1 mapping of the Chekin API. You call us, we call Chekin, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Chekin’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Chekin on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Chekin

Get Chekin integrated into your app

Our team understands what it takes to make a Chekin integration successful. A short, crisp 30 minute call with folks who understand the problem.