changedOutput schema / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "invalid_request",
- "description": "Input does not match this operation's contract; correct the facts before retrying.",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingUrl": {
- "description": "Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.",
- "format": "uri",
- "type": "string"
- },
- "status": {
- "const": "unavailable",
- "description": "The requested information could not be supplied safely; this is not vehicle-unavailability evidence.",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "retryAfterSeconds": {
- "description": "Wait at least this many seconds, then use the same original submissionId/resumeToken pair for status or unchanged retry.",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "status": {
- "const": "pending",
- "description": "The original offer-intent execution is still pending; no completed offer result is available.",
- "type": "string"
- }
- },
- "required": [
- "status",
- "retryAfterSeconds"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "retryAfterSeconds": {
- "description": "Wait at least this many seconds before retrying the unchanged submissionId/resumeToken and facts.",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "status": {
- "const": "rate_limited",
- "description": "Offer preparation admission was rate-limited; retry only the unchanged explicit offer intent.",
- "type": "string"
- }
- },
- "required": [
- "status",
- "retryAfterSeconds"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "description": "conflict means stored intent/offer facts disagree; ambiguous means execution or bound evidence cannot safely be resolved; not_found denies access to the original submission proof. Inspect status rather than blindly creating another offer.",
- "enum": [
- "conflict",
- "ambiguous",
- "not_found"
- ],
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "booking": {
- "additionalProperties": false,
- "description": "Booking state read from the stored reservation; it may lag provider events.",
- "properties": {
- "recordedStatus": {
- "description": "Stored reservation status string. It is not a new provider confirmation.",
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "recordedStatus"
- ],
- "type": "object"
- },
- "bookingKey": {
- "description": "Internal reservation ID for this selected booking. Returned in the available branch of get_offer_status/prepare_offer or an authorized booking read, not in prepared. It grants no access by itself.",
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "bookingReference": {
- "description": "Stored customer-visible reservation reference, falling back to bookingKey when absent. Customer OAuth accepts it only for its already-selected booking; it is not the supplier offerKey.",
- "minLength": 1,
- "type": "string"
- },
- "customerPortalUrl": {
- "description": "Private customer-login entry for the original submission proof. This available branch also returns this booking's ID/reference; no history or write authority is granted.",
- "format": "uri",
- "type": "string"
- },
- "fulfillment": {
- "additionalProperties": false,
- "description": "Flags derived from stored assignments and status, not live fulfillment confirmation.",
- "properties": {
- "chauffeurAssignmentRecorded": {
- "description": "True when a chauffeur ID is stored on the reservation; it does not confirm dispatch or acceptance.",
- "type": "boolean"
- },
- "completionRecorded": {
- "description": "True only when the stored reservation status is completed; no fresh service-completion check is made.",
- "type": "boolean"
- },
- "vehicleAssignmentRecorded": {
- "description": "True when a vehicle ID is stored on the reservation; it does not confirm availability or execution.",
- "type": "boolean"
- }
- },
- "required": [
- "chauffeurAssignmentRecorded",
- "vehicleAssignmentRecorded",
- "completionRecorded"
- ],
- "type": "object"
- },
- "payment": {
- "additionalProperties": false,
- "description": "Recorded payment state from this booking, without a payment-provider refresh.",
- "properties": {
- "recordedStatus": {
- "description": "Stored reservation payment-status string; no payment or refund is initiated or newly confirmed.",
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "recordedStatus"
- ],
- "type": "object"
- },
- "status": {
- "const": "available",
- "description": "The selected booking was accessible and its stored fields passed validation; no provider refresh occurred.",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingKey",
- "bookingReference",
- "booking",
- "payment",
- "fulfillment",
- "customerPortalUrl"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingUrl": {
- "description": "Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.",
- "format": "uri",
- "type": "string"
- },
- "message": {
- "description": "Customer-language explanation of the required review.",
- "type": "string"
- },
- "review": {
- "additionalProperties": false,
- "description": "Structured reason and safe next step for requirements review.",
- "properties": {
- "availabilityConfirmed": {
- "const": false,
- "description": "This review result does not confirm availability.",
- "type": "boolean"
- },
- "code": {
- "description": "Reason for further requirements, model, address, service-scope, booking-window or route review; not vehicle-unavailability evidence.",
- "enum": [
- "additional_requirements_review",
- "model_guarantee_review",
- "address_review",
- "service_scope_review",
- "booking_window_review",
- "route_review"
- ],
- "type": "string"
- },
- "customerContactRequired": {
- "const": false,
- "description": "No customer contact is required for this price/requirements review.",
- "type": "boolean"
- },
- "nextAction": {
- "const": "review_requirements",
- "description": "Review the stated requirements before proceeding; do not infer acceptance or confirmed availability.",
- "type": "string"
- }
- },
- "required": [
- "code",
- "customerContactRequired",
- "availabilityConfirmed",
- "nextAction"
- ],
- "type": "object"
- },
- "status": {
- "const": "review_required",
- "description": "Offer preparation requires review of the ride facts/requirements; availability is not confirmed.",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingUrl",
- "message",
- "review"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "expired",
- "description": "The existing bound offer has expired; this does not extend or describe the separate resume-proof lifetime.",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingConfirmed": {
- "const": false,
- "description": "Offer preparation does not confirm a booking or charge the customer.",
- "type": "boolean"
- },
- "checkoutUrl": {
- "description": "Private bound offer-review page to review complete terms and explicitly confirm using the existing flow. Treat this offer link as private.",
- "format": "uri",
- "type": "string"
- },
- "customerPortalUrl": {
- "description": "Existing private customer-login entry with the original submissionId/resumeToken in its fragment. Keep it private; current session/proof authority is still required.",
- "format": "uri",
- "type": "string"
- },
- "nextAction": {
- "description": "Guidance to open checkoutUrl, review the bound terms and explicitly confirm; no confirmation occurred in this call.",
- "type": "string"
- },
- "offer": {
- "additionalProperties": false,
- "description": "Existing offer amount, expiry and confirmation/terms requirements.",
- "properties": {
- "completeTermsBound": {
- "const": true,
- "description": "Complete service/legal terms were verified as bound to this offer.",
- "type": "boolean"
- },
- "currency": {
- "const": "EUR",
- "description": "Currency of the bound offer: EUR.",
- "type": "string"
- },
- "customerConfirmationRequired": {
- "const": true,
- "description": "The customer must explicitly review and confirm the offer on its page.",
- "type": "boolean"
- },
- "expiresAt": {
- "description": "Stored offer expiry timestamp from offer_expires_at. Separate from the 24-hour submission resume-proof lifetime; re-review an expired or revised offer.",
- "type": "string"
- },
- "grossTotalCents": {
- "description": "Bound offer gross total in EUR cents, including applicable tax.",
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "currency",
- "grossTotalCents",
- "expiresAt",
- "customerConfirmationRequired",
- "completeTermsBound"
- ],
- "type": "object"
- },
- "status": {
- "const": "prepared",
- "description": "The existing unpaid draft and its bound offer links are ready for customer review; this branch does not return bookingKey/bookingReference.",
- "type": "string"
- },
- "termsUrl": {
- "description": "The same offer page with complete bound service/legal terms.",
- "format": "uri",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingConfirmed",
- "checkoutUrl",
- "termsUrl",
- "offer",
- "nextAction"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "invalid_request",
+ "description": "Input does not match this operation.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingUrl": {
+ "description": "Booking page for this locale.",
+ "format": "uri",
+ "type": "string"
+ },
+ "status": {
+ "const": "unavailable",
+ "description": "This read could not be completed safely.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingUrl": {
+ "description": "Booking page for this locale.",
+ "format": "uri",
+ "type": "string"
+ },
+ "locations": {
+ "description": "Areas this business currently publishes.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "areas": {
+ "description": "Areas that can be quoted.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "Published area id.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Area label for the locale.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "countryCode": {
+ "description": "Country code, when set.",
+ "type": "string"
+ },
+ "key": {
+ "description": "Service-location key.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Location label for the locale.",
+ "type": "string"
+ },
+ "timeZone": {
+ "description": "Time zone of this location.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key",
+ "countryCode",
+ "timeZone",
+ "label",
+ "areas"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "nextAction": {
+ "description": "Use a published area. Do not invent a price.",
+ "type": "string"
+ },
+ "reason": {
+ "const": "outside_service_area",
+ "description": "Price withheld because the request is outside the served area.",
+ "type": "string"
+ },
+ "status": {
+ "const": "outside_service_area",
+ "description": "No price: outside the published areas.",
+ "type": "string"
+ },
+ "timeZone": {
+ "description": "Time zone used for this decision.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "reason",
+ "bookingUrl",
+ "timeZone",
+ "locations",
+ "nextAction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "retryAfterSeconds": {
+ "description": "Seconds to wait, then reuse the same pair.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "status": {
+ "const": "pending",
+ "description": "This offer intent is still pending.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "retryAfterSeconds"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "retryAfterSeconds": {
+ "description": "Seconds to wait before the same retry.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "status": {
+ "const": "rate_limited",
+ "description": "Offer admission is rate-limited.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "retryAfterSeconds"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "description": "conflict, ambiguous, or not_found. Do not create another offer.",
+ "enum": [
+ "conflict",
+ "ambiguous",
+ "not_found"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "booking": {
+ "additionalProperties": false,
+ "description": "Stored booking state.",
+ "properties": {
+ "recordedStatus": {
+ "description": "Stored reservation status.",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "recordedStatus"
+ ],
+ "type": "object"
+ },
+ "bookingKey": {
+ "description": "Stored reservation id. It grants no access alone.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "bookingReference": {
+ "description": "Customer reference, or the reservation id.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "customerPortalUrl": {
+ "description": "Private login for this submission proof.",
+ "format": "uri",
+ "type": "string"
+ },
+ "fulfillment": {
+ "additionalProperties": false,
+ "description": "Stored assignment flags.",
+ "properties": {
+ "chauffeurAssignmentRecorded": {
+ "description": "A driver id is stored.",
+ "type": "boolean"
+ },
+ "completionRecorded": {
+ "description": "Stored status is completed.",
+ "type": "boolean"
+ },
+ "vehicleAssignmentRecorded": {
+ "description": "A vehicle id is stored.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "chauffeurAssignmentRecorded",
+ "vehicleAssignmentRecorded",
+ "completionRecorded"
+ ],
+ "type": "object"
+ },
+ "payment": {
+ "additionalProperties": false,
+ "description": "Stored payment state.",
+ "properties": {
+ "recordedStatus": {
+ "description": "Stored payment status.",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "recordedStatus"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "available",
+ "description": "Stored booking fields passed validation.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingKey",
+ "bookingReference",
+ "booking",
+ "payment",
+ "fulfillment",
+ "customerPortalUrl"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingUrl": {
+ "description": "Booking page for this locale.",
+ "format": "uri",
+ "type": "string"
+ },
+ "message": {
+ "description": "Why review is required.",
+ "type": "string"
+ },
+ "review": {
+ "additionalProperties": false,
+ "description": "Structured review and next step.",
+ "properties": {
+ "availabilityConfirmed": {
+ "const": false,
+ "description": "Availability is not confirmed.",
+ "type": "boolean"
+ },
+ "code": {
+ "description": "Which requirement needs review.",
+ "enum": [
+ "additional_requirements_review",
+ "model_guarantee_review",
+ "address_review",
+ "service_scope_review",
+ "booking_window_review",
+ "route_review"
+ ],
+ "type": "string"
+ },
+ "customerContactRequired": {
+ "const": false,
+ "description": "No contact is required for this review.",
+ "type": "boolean"
+ },
+ "nextAction": {
+ "const": "review_requirements",
+ "description": "Review the requirements before continuing.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "customerContactRequired",
+ "availabilityConfirmed",
+ "nextAction"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "review_required",
+ "description": "Offer preparation needs review.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingUrl",
+ "message",
+ "review"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "expired",
+ "description": "The bound offer has expired.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingConfirmed": {
+ "const": false,
+ "description": "Preparation does not confirm or charge.",
+ "type": "boolean"
+ },
+ "checkoutUrl": {
+ "description": "Private page where the customer confirms.",
+ "format": "uri",
+ "type": "string"
+ },
+ "customerPortalUrl": {
+ "description": "Private customer login for this submission.",
+ "format": "uri",
+ "type": "string"
+ },
+ "nextAction": {
+ "description": "Open the offer page and let the customer confirm.",
+ "type": "string"
+ },
+ "offer": {
+ "additionalProperties": false,
+ "description": "Bound offer amount and expiry.",
+ "properties": {
+ "completeTermsBound": {
+ "const": true,
+ "description": "Complete terms are bound to this offer.",
+ "type": "boolean"
+ },
+ "currency": {
+ "const": "EUR",
+ "description": "Offer currency: EUR.",
+ "type": "string"
+ },
+ "customerConfirmationRequired": {
+ "const": true,
+ "description": "The customer must confirm on the offer page.",
+ "type": "boolean"
+ },
+ "expiresAt": {
+ "description": "When this bound offer expires.",
+ "type": "string"
+ },
+ "grossTotalCents": {
+ "description": "Bound gross total in euro cents.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "currency",
+ "grossTotalCents",
+ "expiresAt",
+ "customerConfirmationRequired",
+ "completeTermsBound"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "prepared",
+ "description": "Unpaid offer links are ready for review.",
+ "type": "string"
+ },
+ "termsUrl": {
+ "description": "Same page, including the bound terms.",
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingConfirmed",
+ "checkoutUrl",
+ "termsUrl",
+ "offer",
+ "nextAction"
+ ],
+ "type": "object"
+ }
+]