Skip to content
Last updated

Transfer Overview

The Transfer API allows agencies to search, book, pay for, and manage private transfer services (airport pickups, point-to-point rides) through the same Yolcu360 Agency API used for car rentals. Authentication, error format, and conventions are shared with the rest of the API.

Integration Flow

A complete transfer booking consists of the following steps:

  1. Search — Send pickup/dropoff coordinates, time, and passenger count to get available vehicles with pricing.
  2. Offer Detail (optional) — Retrieve a single offer again by searchId and code.
  3. Create Order — Submit passengers and billing to create a reservation in pendingPayment status.
  4. Pay — Pay the exact paymentRequirement returned at creation with your credit limit.
  5. Track — The payment response already returns the order as reserved with its vendorReservationId; retrieve the order detail to re-check the order before pickup.
  6. Cancel (when needed) — Check eligibility and refund amount first, then cancel.

Yes

POST /transfer/search

Select offer

POST /transfer/orders

POST /transfer/orders/orderId/pay

reserved

GET /transfer/orders/orderId

Cancel needed?

POST cancel_eligibility

POST cancel

Yes

POST /transfer/search

Select offer

POST /transfer/orders

POST /transfer/orders/orderId/pay

reserved

GET /transfer/orders/orderId

Cancel needed?

POST cancel_eligibility

POST cancel

See the dedicated pages for each step:

Identifiers

IdentifierExampleDescription
orderIdYLPB_0503The transfer order identifier, returned at order creation. Use it in every transfer endpoint.
vendorReservationId227699The supplier's booking reference, assigned when the reservation completes. Use it when matching the booking with the supplier or driver.

vendorReservationId is absent while the order is in pendingPayment status; it appears in the payment response and the order detail after a successful payment and reservation and stays on the order afterwards, including after cancellation.

Order Lifecycle

StatusDescription
pendingPaymentThe order is created but not paid yet. It expires automatically if no payment arrives.
reservedPayment completed and the transfer is confirmed with the supplier.
canceledThe order was canceled by the agency or the supplier.
expiredThe order was not paid in time and expired automatically.
failedThe reservation could not be completed (for example the supplier rejected it after payment).

Expiration Windows

  • Search offers are valid for roughly 30 minutes. Creating an order from an expired offer returns error 8003; run a new search in that case.
  • Unpaid orders (pendingPayment) expire roughly one hour after creation and move to expired status.

Key Recommendations

Take pickup and dropoff coordinates from the Locations endpoints (place search + place detail) instead of your own geocoding. Transfer suppliers map coordinates onto their own service regions; raw coordinates that fall slightly outside a supplier's region are silently dropped from the results, so the same search can return fewer or zero vehicles. Coordinates coming from /locations points of interest (airports, hotels, districts) match the supplier regions reliably.

Pass flightNumber (and returnFlightNumber for round trips) when creating the order. Suppliers use it to track the actual arrival time and adjust the pickup when a flight is delayed. Without it, the driver waits at the scheduled time only.

Confirm the final status via order detail

The payment response is the order read back after the charge, so it already reports the real reservation outcome. A reservation can also drop after being confirmed (for example a supplier-side cancellation), so re-checking the order status before the pickup time is recommended.

Forward the end user's IP address

Integrated agency systems must forward the end user's IP address via the X-Forwarded-For header on order and payment requests. This information is required for audit and security purposes.

Amounts

All monetary amounts in transfer responses are expressed in minor units (kuruş for TRY): {"amount": 145200, "currency": "TRY"} means 1,452.00 TRY.