---
title: "Confirm or decline a booking request"
method: POST
path: "/api/v1/bookings/{id}/status"
tags: ["bookings"]
---

# Confirm or decline a booking request

`POST /api/v1/bookings/{id}/status`

## Request

- Base URL: `https://app.qrtap.kg`
- URL: `https://app.qrtap.kg/api/v1/bookings/{id}/status`
- Auth: HTTP bearer

Records the owner's decision. QRTap does not notify the guest — the phone number on the request is how the business follows up. `new` is not accepted: a decided request is never reopened through the API. A request from another organization answers 404.

## Path parameters

- `id` string, uuid, required

## Request body

- BookingDecisionRequest
  - `status` 'confirmed' | 'declined', required: The decision. `new` is not accepted — a decided request is never reopened through the API.

## Response `200`

The request in its new state.

- Booking
  - `id` string, uuid, required
  - `service` string, required
  - `preferred_at` string: Free-form desired time as the guest typed it ("завтра после 14:00"). Never parsed by the platform.
  - `guest_name` string, required
  - `guest_phone` string, required: As typed, validated to 9..15 digits.
  - `status` 'new' | 'confirmed' | 'declined', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time

## Other responses

- `400`: `status` missing or not confirmed | declined, or the id is not a UUID (`invalid_id`).
- `401`: Missing, invalid or revoked API key.
- `404`: No such object in your organization.
- `429`: Limit exceeded — the request had no effect. `error` is `rate_limited` with `scope: "minute"` (a burst brake: wait `retry_after` seconds and continue) or `quota_exceeded` with `scope: "day"` (the workspace's daily quota, counted in UTC; it returns at `reset_at`, the next UTC midnight, and only a higher plan raises it before then).

---

[API](https://skmtc.dev/qrtap/apis/qrtap-rest-api.md) · [All operations](https://skmtc.dev/qrtap/apis/qrtap-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qrtap/apis/qrtap-rest-api/revisions/8af17ac525bd?raw)
