Submit PNR
Submit the PNR for an offline (request) booking.
What: confirms a request booking (an offer with booking.requestBooking: true — a Kitionz-managed portal) with the PNR you obtained by booking with the supplier on your own account. PENDING_FULFILMENT → CONFIRMED.
When: after /book returned status: PENDING_FULFILMENT and you completed the booking with the supplier — before the booking’s nextAction.deadlineAt: the expiry window after it was made (72 hours by default), or the first flight’s departure if that is earlier. After that time Kitionz may cancel the request at any time, and a PNR sent to a cancelled request is refused with 409 BOOKING_NOT_PENDING.
Note: idempotent — submitting the same PNR again returns the booking; a different PNR on an already-fulfilled booking returns 409 BOOKING_ALREADY_FULFILLED; a booking that is not a request returns 409 BOOKING_NOT_A_REQUEST (its PNR comes from the supplier). Sends the flight_booking.confirmed webhook. In Test, the PNR must be TEST followed by 6 letters or digits, without I, L, O or U (for example TESTA7K2Q9; anything else is 400 TEST_PNR_REQUIRED). To give up on a pending request, call /cancel (it is withdrawn, no supplier call).
Authentication
Your Kitionz API key, sent as Authorization: Bearer keyId:secret. Create a Test key at sandbox.kitionz.com → API keys, a Live key at kitionz.com → API → API keys.
Path parameters
Headers
A new unique value (a UUID) for every write: one booking, one cancel. Save it with your order before you call. Send the SAME value again only when you send the SAME request again after a timeout: you get the first answer back. Reusing it on any other write answers 422 IDEMPOTENCY_KEY_REUSED_WITH_DIFFERENT_PARAMS.
Request
Response
A full persisted booking (passengers, segments, events, amounts, status).