Server side
This page guides migration from the make booking request to the confirm offer request on the server side.
When migrating from the Quote & Bind to the Offers API, the server-side flow changes from POST booking to POST confirm offer. The core structure stays familiar — you still pass a quotes array and a policyholder — but the endpoint, path parameters, and several request/response fields are different.
Endpoint
Method
POST
POST
Path
/x/partners/{partner_code}/bookings/{quote_package_id}
/x/partners/{partner_code}/offers/{offer_id}/confirm/
Path parameters
partner_code
partner_id — your unique Partner Code
Same
Resource ID
quote_package_id — from the quote response
offer_id — from the XCE provider_reference field
Request headers
Authentication headers (X-Api-Key, Date, Authorization) remain unchanged. The x-idempotency-key header is also supported by both endpoints — responses are cached for 48 hours and duplicate requests within that window return 409 with the cached result.
Request body
The request body structure is the same: a quotes array and a policyholder object.
quotes array
The quote object structure is the same between both endpoints:
id
string
Required — quote ID (from the offer response)
insured
array
Optional — insured persons
instalment_plan
string
Optional — selected payment plan identifier
first_instalment_paid
boolean
Optional — whether the first instalment has been collected
policyholder object
No breaking changes. The same rules apply to both endpoints.
first_name
Required
Required
last_name
Required
Required
email
Required*
Required*
country
Required
Required
phone
Optional*
Optional*
birth_date
Optional
Optional
region, city, postcode, address1, address2
Optional
Optional
* Either email or phone must be present. phone alone is accepted only when the partner has phone number verification enabled.
Example request
Response
The response shape is largely the same. Key fields for reference:
status
CONFIRMED on success
Same
total_price
Present
Present
total_price_formatted
Present
Present
pds_url
Present
Present
coi
Present
Present
account_url
Present
Present
sign_up_url
Present
Present
fnol_link
Present
Present
Error handling
The key difference in error handling is how booking failures are surfaced.
In Quote & Bind, a booking attempt can return 200 with an errors field on individual quotes in the response — a partial success where some quotes failed but the overall request succeeded. You must inspect each quote's errors field to detect failures.
In Confirm Offer, there is no partial success concept. Any failure is returned as an HTTP error status code, so standard HTTP error handling is sufficient.
Last updated
Was this helpful?

