{"openapi":"3.1.0","info":{"title":"Parkoni Channel API","version":"1.0.0","description":"For sales channels that sell an operator’s inventory. Bookings are idempotent on your reference; events arrive as signed webhooks. Errors answer `{ error: { code, message } }` with the codes listed per response."},"servers":[{"url":"/api/channel/v1"}],"paths":{"/products":{"get":{"summary":"Products of linked, approved operators with the rate card valid today","responses":{"200":{"description":"Products","content":{"application/json":{"schema":{"type":"object","required":["products"],"properties":{"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string"},"operatorId":{"type":"string"},"facility":{"type":"object"},"name":{"type":"object"},"category":{"type":"string"},"confirmationMode":{"enum":["INSTANT","REQUEST"]},"rateCard":{"oneOf":[{"$ref":"#/components/schemas/RateCardV1"},{"type":"null"}]}}}}}}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/quotes":{"post":{"summary":"Availability and price; a sold-out answer is authoritative","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["productId","arrivalAt","pickupAt"],"properties":{"productId":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time"},"pickupAt":{"type":"string","format":"date-time"},"vehicleType":{"enum":["CAR","VAN","MOTORCYCLE","CAMPER"],"description":"Optional: the vehicle to be booked. A car park may charge a flat surcharge for vehicle types it counts as oversize (price line kind VEHICLE_SURCHARGE); a booking carries it for its vehicle.type, so quote with the same type."}}}}}},"responses":{"200":{"description":"Quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteV1"}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"product_not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"422":{"description":"no_rate, invalid_range, rate_plan_not_valid, stay_too_short, stay_too_long, lead_time, beyond_horizon (arrival more than 365 days ahead)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/bookings":{"get":{"summary":"Bookings of this channel changed since","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date-time"},"description":"Changes after this instant (ISO 8601 with offset); use `next` of the previous answer. Missing means the last 7 days; an unparsable value answers 400 invalid_since."}],"responses":{"200":{"description":"Bookings","content":{"application/json":{"schema":{"type":"object","required":["bookings","next"],"properties":{"bookings":{"type":"array","items":{"$ref":"#/components/schemas/BookingExchangeV1"}},"next":{"type":["string","null"],"format":"date-time","description":"Pass as `since` for the next page; null when nothing changed"}}}}}},"400":{"description":"invalid_request, invalid_json, invalid_since","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}},"post":{"summary":"Create a booking; idempotent on externalRef","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerBookingRequestV1"}}}},"responses":{"200":{"description":"The same request again: the existing booking for this externalRef","content":{"application/json":{"schema":{"type":"object","required":["duplicate","booking"],"properties":{"duplicate":{"const":true},"booking":{"$ref":"#/components/schemas/BookingExchangeV1"}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","required":["duplicate","booking"],"properties":{"duplicate":{"const":false},"booking":{"$ref":"#/components/schemas/BookingExchangeV1"}}}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel, operator_not_linked, sandbox_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"product_not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"409":{"description":"declined_no_capacity, declined_arrival_blocked, price_changed (expectedTotalGrossMinor differs from the current total), idempotency_mismatch (externalRef used with a different request), request_in_progress","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"422":{"description":"no_rate, invalid_range, rate_plan_not_valid, stay_too_short, stay_too_long, lead_time, beyond_horizon (arrival more than 365 days ahead), vehicle_not_accepted, payment_mode_not_offered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"503":{"description":"checkout_paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/bookings/{reference}":{"get":{"summary":"One booking with its stay report","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Booking","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingExchangeV1"}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"booking_not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/bookings/{reference}/cancel":{"post":{"summary":"Cancel; the fee follows the policy snapshot","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cancelled booking","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingExchangeV1"}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"booking_not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"409":{"description":"not_cancellable, cancel_after_arrival (after the booked arrival the no-show rules apply)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/deliveries":{"get":{"summary":"Your webhook delivery log (last 100)","responses":{"200":{"description":"Deliveries","content":{"application/json":{"schema":{"type":"object","required":["deliveries"],"properties":{"deliveries":{"type":"array","items":{"type":"object","required":["id","eventType","outboxId","url","status","attempts","createdAt"],"properties":{"id":{"type":"string"},"eventType":{"type":"string"},"outboxId":{"type":"string"},"url":{"type":"string"},"status":{"enum":["PENDING","DELIVERED","FAILED","DEAD"]},"attempts":{"type":"integer"},"lastStatusCode":{"type":["integer","null"]},"lastError":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"deliveredAt":{"type":["string","null"],"format":"date-time"}}}}}}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}},"/deliveries/{id}/redeliver":{"post":{"summary":"Send a failed or dead-lettered delivery again (needs a writing scope)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","required":["ok"],"properties":{"ok":{"const":true}}}}}},"400":{"description":"invalid_request, invalid_json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"401":{"description":"unauthorized: missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"403":{"description":"missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"404":{"description":"delivery_not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"409":{"description":"not_redeliverable: delivered, still pending or being sent, or its event is past the 30-day retention","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"429":{"description":"rate_limited (header Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}},"500":{"description":"internal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorV1"}}}}}}}},"webhooks":{"booking.held.v1":{"post":{"summary":"booking.held.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.held.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.held.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.pending_payment.v1":{"post":{"summary":"booking.pending_payment.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.pending_payment.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.pending_payment.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.confirmed.v1":{"post":{"summary":"booking.confirmed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.confirmed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.confirmed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"pickupAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"totalGrossMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.awaiting_operator.v1":{"post":{"summary":"booking.awaiting_operator.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.awaiting_operator.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.awaiting_operator.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.declined.v1":{"post":{"summary":"booking.declined.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.declined.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.declined.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.failed.v1":{"post":{"summary":"booking.failed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.failed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.failed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.expired.v1":{"post":{"summary":"booking.expired.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.expired.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.expired.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.amended.v1":{"post":{"summary":"booking.amended.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.amended.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.amended.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.cancelled_by_customer.v1":{"post":{"summary":"booking.cancelled_by_customer.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.cancelled_by_customer.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.cancelled_by_customer.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.cancelled_by_operator.v1":{"post":{"summary":"booking.cancelled_by_operator.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.cancelled_by_operator.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.cancelled_by_operator.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.no_show.v1":{"post":{"summary":"booking.no_show.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.no_show.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.no_show.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.completed.v1":{"post":{"summary":"booking.completed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.completed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.completed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.refund_requested.v1":{"post":{"summary":"booking.refund_requested.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.refund_requested.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.refund_requested.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.refunded.v1":{"post":{"summary":"booking.refunded.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.refunded.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.refunded.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.payment_recorded.v1":{"post":{"summary":"booking.payment_recorded.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.payment_recorded.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.payment_recorded.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"provider":{"type":"string"},"amountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"registerDate":{"type":"string"}},"required":["operatorId","provider","amountMinor"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.open_amount_changed.v1":{"post":{"summary":"booking.open_amount_changed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.open_amount_changed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.open_amount_changed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"openMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId","openMinor","creditMinor"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.message_sent.v1":{"post":{"summary":"booking.message_sent.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.message_sent.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.message_sent.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"booking.correction.v1":{"post":{"summary":"booking.correction.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"booking.correction.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"booking.correction.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"request.accepted.v1":{"post":{"summary":"request.accepted.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"request.accepted.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"request.accepted.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"request.declined.v1":{"post":{"summary":"request.declined.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"request.declined.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"request.declined.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.checked_in.v1":{"post":{"summary":"stay.checked_in.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.checked_in.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.checked_in.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"actualArrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"earlyMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lateMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"manual":{"default":false,"type":"boolean"},"bay":{"type":"string"}},"required":["operatorId","actualArrivalAt","manual"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.early_arrival_recorded.v1":{"post":{"summary":"stay.early_arrival_recorded.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.early_arrival_recorded.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.early_arrival_recorded.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"minutesEarly":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overPhysical":{"default":false,"type":"boolean"}},"required":["operatorId","minutesEarly","overPhysical"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.bay_assigned.v1":{"post":{"summary":"stay.bay_assigned.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.bay_assigned.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.bay_assigned.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.transfer_assigned.v1":{"post":{"summary":"stay.transfer_assigned.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.transfer_assigned.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.transfer_assigned.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.run_departed.v1":{"post":{"summary":"stay.run_departed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.run_departed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.run_departed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.run_completed.v1":{"post":{"summary":"stay.run_completed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.run_completed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.run_completed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.picked_up.v1":{"post":{"summary":"stay.picked_up.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.picked_up.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.picked_up.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.departed.v1":{"post":{"summary":"stay.departed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.departed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.departed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.returned.v1":{"post":{"summary":"stay.returned.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.returned.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.returned.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.checked_out.v1":{"post":{"summary":"stay.checked_out.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.checked_out.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.checked_out.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"actualHandOverAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"early":{"default":false,"type":"boolean"},"overstayMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overstayAmountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimated":{"default":false,"type":"boolean"}},"required":["operatorId","actualHandOverAt","early","estimated"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.overstay_charged.v1":{"post":{"summary":"stay.overstay_charged.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.overstay_charged.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.overstay_charged.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"amountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startedDays":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId","amountMinor","startedDays"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.yard_extra_added.v1":{"post":{"summary":"stay.yard_extra_added.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.yard_extra_added.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.yard_extra_added.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"extraId":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId","extraId","quantity","amountMinor"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.waived.v1":{"post":{"summary":"stay.waived.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.waived.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.waived.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"amountMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId","amountMinor"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.note_added.v1":{"post":{"summary":"stay.note_added.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.note_added.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.note_added.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.condition_report_added.v1":{"post":{"summary":"stay.condition_report_added.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.condition_report_added.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.condition_report_added.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"phase":{"type":"string","enum":["ARRIVAL","RETURN"]},"photos":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"sha256":{"type":"string"}},"required":["label","sha256"],"additionalProperties":false}},"signature":{"type":"string","enum":["SIGNED","REFUSED","NOT_PRESENT"]}},"required":["operatorId","phase","photos"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.no_show.v1":{"post":{"summary":"stay.no_show.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.no_show.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.no_show.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.no_show_reverted.v1":{"post":{"summary":"stay.no_show_reverted.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.no_show_reverted.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.no_show_reverted.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.pickup_time_changed.v1":{"post":{"summary":"stay.pickup_time_changed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.pickup_time_changed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.pickup_time_changed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["operatorId","from","to"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.plate_corrected.v1":{"post":{"summary":"stay.plate_corrected.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.plate_corrected.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.plate_corrected.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.voided.v1":{"post":{"summary":"stay.voided.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.voided.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.voided.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"stay.correction.v1":{"post":{"summary":"stay.correction.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"stay.correction.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"stay.correction.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"capacity.changed.v1":{"post":{"summary":"capacity.changed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"capacity.changed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"capacity.changed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"poolId":{"type":"string"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["operatorId","poolId","from","to"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"block.set.v1":{"post":{"summary":"block.set.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"block.set.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"block.set.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"blockId":{"type":"string"},"kind":{"type":"string","enum":["ARRIVAL_BLOCK","BAY_BLOCK"]},"poolId":{"type":"string"},"productId":{"type":"string"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["operatorId","blockId","kind","from","to"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"block.lifted.v1":{"post":{"summary":"block.lifted.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"block.lifted.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"block.lifted.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"blockId":{"type":"string"},"kind":{"type":"string","enum":["ARRIVAL_BLOCK","BAY_BLOCK"]},"poolId":{"type":"string"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["operatorId","blockId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"rates.changed.v1":{"post":{"summary":"rates.changed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"rates.changed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"rates.changed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"productId":{"type":"string"},"ratePlanVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"validFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"effective":{"type":"boolean"}},"required":["operatorId","productId","ratePlanVersion"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"facility.lifecycle_changed.v1":{"post":{"summary":"facility.lifecycle_changed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"facility.lifecycle_changed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"facility.lifecycle_changed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"},"bookable":{"type":"boolean"},"status":{"type":"string","enum":["DRAFT","PENDING_APPROVAL","LIVE","PAUSED"]}},"required":["operatorId","bookable","status"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"flight.updated.v1":{"post":{"summary":"flight.updated.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"flight.updated.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"flight.updated.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"flight.landed.v1":{"post":{"summary":"flight.landed.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"flight.landed.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"flight.landed.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"flight.cancelled.v1":{"post":{"summary":"flight.cancelled.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"flight.cancelled.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"flight.cancelled.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}},"flight.mismatch.v1":{"post":{"summary":"flight.mismatch.v1","parameters":[{"name":"X-Parkoni-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"},{"name":"X-Parkoni-Event","in":"header","required":true,"schema":{"const":"flight.mismatch.v1"}},{"name":"X-Parkoni-Delivery","in":"header","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","sequence","type","createdAt","operatorId","data"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer","description":"Increases with every event; order the events of one booking by it"},"type":{"const":"flight.mismatch.v1"},"createdAt":{"type":"string","format":"date-time"},"operatorId":{"type":"string"},"data":{"type":"object","properties":{"bookingReference":{"type":"string"},"operatorId":{"type":"string"},"facilityId":{"type":"string"},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"externalRef":{"type":"string"}},"required":["operatorId"],"additionalProperties":{}}}}}}},"responses":{"2XX":{"description":"Received; anything else is retried with backoff for 24 hours"}}}}},"security":[{"apiKey":[]}],"components":{"schemas":{"PriceLineV1":{"type":"object","properties":{"kind":{"type":"string"},"label":{"type":"object","properties":{"de":{"type":"string"},"en":{"type":"string"},"it":{"type":"string"},"es":{"type":"string"},"fr":{"type":"string"},"pl":{"type":"string"},"nl":{"type":"string"},"pt":{"type":"string"},"ro":{"type":"string"},"hu":{"type":"string"},"sv":{"type":"string"},"cs":{"type":"string"},"sl":{"type":"string"},"sk":{"type":"string"},"lt":{"type":"string"},"el":{"type":"string"},"da":{"type":"string"},"hr":{"type":"string"},"fi":{"type":"string"}},"required":["de"],"additionalProperties":false,"description":"The text per language: always de, and every other platform language it has"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"netMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"},"vatBps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"grossMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"}},"required":["kind","label","quantity","netMinor","vatBps","grossMinor"],"additionalProperties":false},"StayReportV1":{"type":"object","properties":{"reference":{"type":"string"},"state":{"type":"string","enum":["EXPECTED","ON_SITE","AWAY","RETURNED","CLOSED","NO_SHOW","VOID"]},"actualArrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"actualHandOverAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"earlyMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overstayMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"openMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"},"conditionReports":{"type":"array","items":{"type":"object","properties":{"phase":{"type":"string","enum":["ARRIVAL","RETURN"]},"photoCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["phase","photoCount"],"additionalProperties":false}}},"required":["reference","state","openMinor","conditionReports"],"additionalProperties":false},"BookingExchangeV1":{"type":"object","properties":{"reference":{"type":"string"},"externalRef":{"type":"string"},"status":{"type":"string","enum":["CONFIRMED","AWAITING_OPERATOR","CANCELLED","NO_SHOW","ARRIVED","COMPLETED"]},"channel":{"type":"string","enum":["MARKETPLACE","DIRECT","STAFF","EXTERNAL"]},"facilityId":{"type":"string"},"productId":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"landingAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"pickupAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"flights":{"type":"object","properties":{"outbound":{"type":"string"},"return":{"type":"string"}},"additionalProperties":false},"traveller":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"phone":{"type":"string","pattern":"^\\+?[0-9 ()/.-]{6,30}$"},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"language":{"type":"string","enum":["de","en","it","es","fr","pl","nl","pt","ro","hu","sv","cs","sl","sk","lt","el","da","hr","fi"]},"smsConsent":{"type":"boolean"}},"required":["name","language","smsConsent"],"additionalProperties":false},"vehicle":{"type":"object","properties":{"plate":{"type":"string","minLength":2,"maxLength":16},"type":{"type":"string","enum":["CAR","VAN","MOTORCYCLE","CAMPER"]},"makeModel":{"type":"string"}},"required":["plate","type"],"additionalProperties":false},"partySize":{"type":"integer","minimum":1,"maximum":9007199254740991},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["extraId","quantity"],"additionalProperties":false}},"price":{"type":"object","properties":{"currency":{"type":"string","enum":["EUR","CZK","DKK","HUF","PLN","RON","SEK","GBP","NOK","CHF"]},"lines":{"type":"array","items":{"$ref":"#/components/schemas/PriceLineV1"}},"totalGrossMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"}},"required":["currency","lines","totalGrossMinor"],"additionalProperties":false},"payment":{"type":"object","properties":{"mode":{"type":"string","enum":["ONLINE","PAY_ON_SITE","EXTERNAL_PREPAID"]},"state":{"type":"string","enum":["PAID","OPEN","FAILED","NOT_DUE"]},"openMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"}},"required":["mode","state","openMinor"],"additionalProperties":false},"policy":{"type":"object","properties":{"tiers":{"type":"array","items":{"type":"object","properties":{"hoursBeforeArrival":{"type":"number"},"refundBps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["hoursBeforeArrival","refundBps"],"additionalProperties":false}},"noShowRefundBps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tiers","noShowRefundBps"],"additionalProperties":false},"notes":{"type":"string"},"stay":{"anyOf":[{"$ref":"#/components/schemas/StayReportV1"},{"type":"null"}],"description":"The stay report once the booking has a stay, else null."}},"required":["reference","status","channel","facilityId","productId","arrivalAt","pickupAt","traveller","vehicle","partySize","extras","price","payment","policy","stay"],"additionalProperties":false,"description":"What a management system or channel needs about one booking [TR 8]."},"AvailabilityV1":{"type":"object","properties":{"productId":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"pickupAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"freeUnits":{"type":"integer","minimum":0,"maximum":9007199254740991},"arrivalBlocked":{"type":"boolean"}},"required":["productId","arrivalAt","pickupAt","freeUnits","arrivalBlocked"],"additionalProperties":false,"description":"A sold-out answer is authoritative."},"QuoteV1":{"type":"object","properties":{"productId":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"pickupAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"freeUnits":{"type":"integer","minimum":0,"maximum":9007199254740991},"arrivalBlocked":{"type":"boolean"},"price":{"type":"object","properties":{"currency":{"type":"string","enum":["EUR","CZK","DKK","HUF","PLN","RON","SEK","GBP","NOK","CHF"]},"totalGrossMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"},"lines":{"type":"array","items":{"$ref":"#/components/schemas/PriceLineV1"}}},"required":["currency","totalGrossMinor","lines"],"additionalProperties":false}},"required":["productId","arrivalAt","pickupAt","freeUnits","arrivalBlocked","price"],"additionalProperties":false,"description":"Availability and price in one answer; a sold-out answer is authoritative."},"RateCardV1":{"type":"object","properties":{"productId":{"type":"string"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string","enum":["EUR","CZK","DKK","HUF","PLN","RON","SEK","GBP","NOK","CHF"]},"vatBps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"countingRule":{"type":"string","enum":["CALENDAR_DAYS","BLOCKS_24H"]},"durationTable":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"}},"extraDayMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"},"channelAdjustmentBps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["productId","version","currency","vatBps","countingRule","durationTable","extraDayMinor"],"additionalProperties":false},"PartnerBookingRequestV1":{"type":"object","properties":{"externalRef":{"type":"string","minLength":1,"maxLength":100},"productId":{"type":"string"},"arrivalAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"landingAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"pickupAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"traveller":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"phone":{"type":"string","pattern":"^\\+?[0-9 ()/.-]{6,30}$"},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"language":{"type":"string","enum":["de","en","it","es","fr","pl","nl","pt","ro","hu","sv","cs","sl","sk","lt","el","da","hr","fi"]},"smsConsent":{"type":"boolean"}},"required":["name","language","smsConsent"],"additionalProperties":false},"vehicle":{"type":"object","properties":{"plate":{"type":"string","minLength":2,"maxLength":16},"type":{"type":"string","enum":["CAR","VAN","MOTORCYCLE","CAMPER"]},"makeModel":{"type":"string"}},"required":["plate","type"],"additionalProperties":false},"partySize":{"type":"integer","minimum":1,"maximum":9007199254740991},"flights":{"description":"Flight numbers; a return flight is watched and moves the pickup when it is late.","type":"object","properties":{"outbound":{"type":"string","pattern":"^[A-Z0-9]{2,3} ?[0-9]{1,4}[A-Z]?$"},"return":{"type":"string","pattern":"^[A-Z0-9]{2,3} ?[0-9]{1,4}[A-Z]?$"}},"additionalProperties":false},"payment":{"type":"object","properties":{"mode":{"type":"string","enum":["EXTERNAL_PREPAID","PAY_ON_SITE"]},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Minor units of the currency (cents, öre, groszy)"},"currency":{"description":"The currency of amountMinor. Every product sells in its operator currency (the quote says which); a booking whose payment names another currency is refused with currency_mismatch.","type":"string","enum":["EUR","CZK","DKK","HUF","PLN","RON","SEK","GBP","NOK","CHF"]}},"required":["mode"],"additionalProperties":false},"expectedTotalGrossMinor":{"description":"The total the traveller was shown (totalGrossMinor of your quote). When the price changed since, the booking is refused with 409 price_changed and the current total, so you can show it again.","type":"integer","minimum":0,"maximum":9007199254740991},"termsVersion":{"description":"The version of the Parkoni terms the traveller confirmed in your flow (for example 2026-11). Recorded with the booking; without it the booking records the version in force.","type":"string","pattern":"^[0-9A-Za-z._-]{1,32}$"}},"required":["externalRef","productId","arrivalAt","traveller","vehicle","partySize","payment"],"additionalProperties":false},"ApiErrorV1":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable code, listed per response"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false,"description":"Every error answer."}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Prefixed, hashed-at-rest key"}}},"x-webhooks-signature":"X-Parkoni-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\">; replay window 300 seconds"}