Submit transfer request (pending operator confirmation)
create_transfer_requestUse this only after the customer has chosen a route, time and vehicle and has given their name, email and phone, and explicitly asked to send the request. Submits a transfer REQUEST that is stored as pending and reviewed by the operator, who confirms the ride and final price by email/WhatsApp. This does NOT confirm a booking, assign a driver or take payment — never tell the customer the ride is confirmed. Writes data: do not call it to explore prices (use get_price_quote) and do not retry on success. Pass idempotencyKey to make retries safe: the same key for the same customer returns the original reference (duplicate=true) and never creates a second request; to change details, cancel and submit a new request with a new key. Without a key, repeating identical details also returns the original request. At most 5 requests per phone number per day. Capacity is checked: parties larger than the vehicle are rejected with a suggested vehicle.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pets | No | Pets travelling (the operator confirms whether they can be carried) | |
| notes | No | Extra instructions for the operator (hotel address, special needs) | |
| luggage | No | Large suitcases | |
| language | No | Customer language code, e.g. en, ru, de, tr | |
| childSeats | No | Child seats required | |
| passengers | Yes | Total passengers including children | |
| scheduledAt | Yes | ISO 8601 date-time of pickup in Antalya local time, e.g. 2026-11-20T10:00:00+03:00. If no timezone is given, Antalya time (UTC+3) is assumed. For arrivals use flight landing time plus ~30 minutes. | |
| vehicleType | Yes | Vehicle class; must fit passengers, luggage and child seats | |
| customerName | Yes | Full name of the lead passenger | |
| flightNumber | No | Flight number without spaces, e.g. TK2548 | |
| customerEmail | Yes | Where the reference and confirmation are sent | |
| customerPhone | Yes | International format with country code, e.g. +905551234567 | |
| pickupAddress | Yes | Pickup place, e.g. "Antalya Airport (AYT) Terminal 2" | |
| dropoffAddress | Yes | Drop-off place or hotel name with its area | |
| idempotencyKey | No | Optional. A unique value (e.g. a UUID) you generate once per customer request and reuse on every retry. A retry with the same key and same customer email/phone returns the original reference with duplicate=true and creates nothing, even if other fields changed. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | New requests are pending. With duplicate=true this is the original request's current status. Only operatorConfirmed=true means the ride is confirmed. | |
| message | Yes | ||
| duplicate | No | true: no new request was created; the original is returned | |
| reference | No | Booking reference for get_request_status | |
| priceStatus | No | ||
| estimatedPrice | No | ||
| operatorConfirmed | Yes | false: this is a request, not a confirmed ride |