06 Confirm quote

View as Markdown
Turns a quote into a confirmed booking. This is the step that commits the sale. No request body. On success the booking moves from `quote` to `booking`, `billing.status` becomes `3` (invoiced), and a confirmation email goes to the booker. Where the booking carries tax, a numbered VAT invoice is issued at this moment. This is the only endpoint that confirms. The `confirm` flag on **03 Create quote** does not do it. ### Requirements All of these must hold: - status is `quote`, not already `booking` and not `cancelled` - `expires_on` is in the future; reprice with **05 Reprice quote** if not - `grand_total` is at least 1 - your company is set up for invoice terms ### Responses | Status | `error_code` | When | | --- | --- | --- | | `200` | — | Confirmed. `message` is `Booking has been confirmed!` | | `409` | `booking_already_confirmed` | Already a `booking`. Read it back rather than confirming again. | | `409` | `quote_expired` | Reprice with **05 Reprice quote**, then confirm. | | `409` | `booking_cancelled` | Cancelled. Terminal, do not retry. | | `409` | `payment_incomplete` | A card payment has not settled. Retry later. | | `409` | `booking_not_confirmable` | Some other state blocks it. Read the booking to see why. | | `422` | `booking_total_too_low` | No chargeable total. Check a service is attached and priced. | | `403` | `invoice_terms_required` | Your company is not on invoice terms. Contact GAC customer service. | | `404` | `booking_not_found` | Unknown id, or a booking that is not yours. | | `500` | `server_error` | Our fault. | Note that `data` here is **not** the booking. It is a small acknowledgement: ```json { "success": true, "message": "Booking is Confirmed." } ``` Fetch the booking with **09 Get booking by ID** if you need the confirmed record back. Confirming is not reversible through this API. **07 Cancel booking** will cancel a confirmed booking, but nothing is refunded and no invoice is voided.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Response

OK
messagestring
statusinteger
responseTimestring
tracelist of any
dataobject

Errors

409
Conflict Error