Skip to main content

Check Matching

Mozrest can link POS checks to your reservations — automatically or through the Mozrest check-matching tool — and create walk-in bookings in your RMS for checks that have no reservation.

This capability is optional. The base POS integration (order events + table listing) works without it. To enable check matching, your RMS must expose two additional endpoints:

  1. A reservation listing endpoint so Mozrest can retrieve your bookings for a given date.
  2. A walk-in creation endpoint so Mozrest can create a seated booking in your system when a POS check has no matching reservation.

A third, optional endpoint — reservation status change — lets Mozrest mark a reservation as seated when a check is matched, and as finished once the final check is delivered.

Mozrest connects to these endpoints through a dedicated adapter. If your API already exposes equivalent endpoints with different paths or field names, contact us — we map your existing contract as long as it provides the fields below.


How Check Matching Works​

Automatic matching. When a new check arrives from the POS, Mozrest retrieves your reservations around the check's opening time and scores the candidates on time proximity, party size, and table assignment. When a candidate scores high enough, the check is linked automatically — and, if you expose the status-change endpoint, the reservation is marked as seated.

Manual matching. Checks that cannot be matched automatically appear in the Mozrest check-matching tool, where venue staff see open POS checks next to the day's reservations and can match, unmatch, or rematch them.

Walk-ins. When a check belongs to a guest who never booked, staff create a walk-in from the tool: Mozrest calls your walk-in creation endpoint to create a seated booking in your RMS, then links the check to it.

Spend data. As soon as a check is matched — automatically, manually, or via a walk-in — Mozrest sends it to your webhook endpoint with bookingId set, and keeps it updated until the check is closed or voided.


Reservation Listing Endpoint​

Mozrest calls this endpoint to retrieve your bookings for a given date — it powers both automatic matching and the reservation list shown in the check-matching tool.

  • Method: GET
  • Path: /venue/{venueId}/bookings
  • Authentication: Bearer token

Query parameters​

ParameterTypeDescription
dateFromStringStart date, YYYY-MM-DD
dateToStringEnd date, YYYY-MM-DD (same as dateFrom for a single day)
limitIntegerPage size
offsetIntegerPagination offset

Response​

{
"bookings": [
{
"id": "988771",
"date": "2026-07-03",
"time": "20:30",
"partySize": 4,
"status": "seated",
"tables": ["28c3ce8b-8c10-4a64-8099-f0dffcc549a8"],
"customerId": "55211",
"contact": {
"firstname": "John",
"lastname": "Doe",
"telephone": "34646223399",
"email": "john.doe@mail.com"
}
}
],
"total": 42
}
FieldTypeRequiredDescription
idStringYesYour booking identifier. This is the value Mozrest sends back as bookingId on check webhooks
dateStringYesBooking date, YYYY-MM-DD
timeStringYesBooking time, HH:MM
partySizeIntegerYesNumber of guests
statusStringYesYour reservation status (e.g. confirmed, seated)
tables[]ArrayNoTable IDs assigned to the booking. Must be the same IDs returned by your table listing endpoint — used for matching
customerIdStringNoYour guest/customer identifier
contactObjectNoGuest name, phone, and email — shown to staff in the check-matching tool

Walk-In Creation Endpoint​

Mozrest calls this endpoint when venue staff create a walk-in from the check-matching tool for a check without a reservation.

  • Method: POST
  • Path: /venue/{venueId}/bookings
  • Authentication: Bearer token

Request​

{
"date": "2026-07-03",
"time": "20:45",
"partySize": 2,
"status": "seated",
"walkIn": true
}
FieldTypeDescription
dateStringBooking date, YYYY-MM-DD (taken from the check's opening time)
timeStringBooking time, HH:MM
partySizeIntegerNumber of guests
statusStringAlways seated — the guest is already at the table
walkInBooleanAlways true

Response​

The response must include the identifier of the created booking — Mozrest immediately links the POS check to it.

{
"id": "988772"
}

The endpoint must accept the booking even when it falls outside your normal availability rules — the guest is already seated.


Reservation Status Change Endpoint (Optional)​

When available, Mozrest uses this endpoint to keep your reservation lifecycle in sync with the POS: the reservation is marked as seated when a check is matched, and as finished once the final check is delivered.

  • Method: PATCH
  • Path: /venue/{venueId}/bookings/{bookingId}/status
  • Authentication: Bearer token

Request​

{
"status": "seated"
}
status valueWhen Mozrest sends it
seatedA POS check was matched to the reservation
finishedThe final check for the reservation was closed and delivered