Reservation Create
POST
/api/v1/generic-api-service/flight/reservation/create
The reservation create endpoint creates a flight reservation for the selected offer(s). It uses the searchId together with the chosen flight/cabin/brand identifiers, passenger details, contact and receipt information, and payment details to generate a booking, and returns the order and issued e-ticket(s). It supports both one-way and round-trip.
- cURL
- Request
- Response
- Request Details
- Response Details
curl --location 'https://test-api.etscore.com/api/v1/generic-api-service/flight/reservation/create' \
--header 'Accept-Language: en-US' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"searchId": "5029md2matl3schcom2vbsvk4g7j4vc6",
"clientRef": "EtscoreFlight212",
"checkout": "2026-08-17",
"offers": {
"departure": {
"flightId": "pz-f3b3640e-6059-4267-bc81-114de4aa238c",
"offerId": "XBAG-a86713d6a71445a285ca7267732f1608",
"departureBrandKey": "XBAG"
},
"return": {
"flightId": "pz-f51fb2fb-bb16-40c1-8286-7aeddff29f08",
"offerId": "XBAG-d990183ea2b1476a9c1122bbdcf70189",
"returnBrandKey": "XBAG"
}
},
"contactInfo": {
"email": "[email protected]",
"mobilePhoneNumber": "905000000000"
},
"passengers": [
{
"paxType": "ADULT",
"male": true,
"name": "OMER",
"surname": "ERGAN",
"birthDate": "1990-02-09",
"passportCountry": "TR",
"nationalityIdNo": "<national-id>",
"notTCCitizen": false
}
],
"paymentInfo": {
"paymentType": "Debit",
"totalAmount": "116.50",
"currency": "EUR"
}
}'
{
"searchId": "5029md2matl3schcom2vbsvk4g7j4vc6",
"clientRef": "EtscoreFlight212",
"checkout": "2026-08-17",
"offers": {
"departure": {
"flightId": "pz-f3b3640e-6059-4267-bc81-114de4aa238c",
"offerId": "XBAG-a86713d6a71445a285ca7267732f1608",
"departureBrandKey": "XBAG"
},
"return": {
"flightId": "pz-f51fb2fb-bb16-40c1-8286-7aeddff29f08",
"offerId": "XBAG-d990183ea2b1476a9c1122bbdcf70189",
"returnBrandKey": "XBAG"
}
},
"passengers": [
0: {
"paxType": "ADULT",
"male": true,
"name": "OMER",
"surname": "ERGAN",
"birthDate": "1990-02-09",
"passportCountry": "TR",
"nationalityIdNo": "<national-id>",
"notTCCitizen": false
}
],
"receiptInfos": {
"receiptName": "ETSTUR",
"notTCCitizen": false,
"name": "OMER",
"surname": "ERGAN",
"email": "[email protected]",
"taxNumber": "<tax-number>",
"nationalID": "<national-id>",
"taxOffice": "Büyük Mükellefler V.D.",
"isCompany": false,
"address1": "Merdivenköy Mh. Nur Sk. No:1/8 C Blok Kadıköy / İSTANBUL",
"address2": "Merdivenköy Mh. Nur Sk. No:1/8 C Blok Kadıköy / İSTANBUL",
"zipCode": "34000",
"city": "İstanbul",
"country": "TURKEY",
"companyName": "ETSTUR",
"notTCCompany": false,
"needReceiptFlag": false,
"electronicReceipt": true,
"privateCompany": false,
"receiptId": 0
},
"paymentInfo": {
"paymentType": "Debit",
"totalAmount": "116.50",
"currency": "EUR"
}
}
{
"success": true,
"orderStatus": "TICKET",
"orderId": 49661695,
"clientRef": "EtscoreFlight212",
"etickets": [
0: {
"pnr": "42ED16",
"airlineCode": "VF",
"eticketNo": "2042452443067",
"status": "TICKETED"
}
]
}
| Name | Type | Required | Description |
|---|---|---|---|
| searchId | string | Yes | The search.id returned by the Flight Search service. |
| clientRef | string | No | Your own reference for the booking (client-side identifier). |
| checkout | string | No | Checkout/booking date in yyyy-MM-dd format. |
| offers | object | Yes | The selected offer(s) grouped by leg: departure (outbound) and, for round-trip, return. |
| offers/departure | object | Yes | Selected outbound leg offer. |
| offers/departure/flightId | string | Yes | Selected outbound flight identifier (flights/id from search). |
| offers/departure/offerId | string | Yes | Selected outbound offer/cabin price identifier (offers/id). |
| offers/departure/departureBrandKey | string | Yes | Selected outbound fare brand code (e.g. XBAG). |
| offers/return | object | No | Selected return leg offer. Provide for round-trip bookings. |
| offers/return/flightId | string | No | Selected return flight identifier. Provide for round-trip bookings. |
| offers/return/offerId | string | No | Selected return offer/cabin price identifier. |
| offers/return/returnBrandKey | string | No | Selected return fare brand code. |
| contactInfo | object | Yes | Contact details for the booking. |
| contactInfo/email | string | Yes | Contact email address. |
| contactInfo/mobilePhoneNumber | string | Yes | Contact mobile phone number (including country code). |
| passengers | object-array | Yes | List of passengers. |
| passengers/paxType | string | Yes | Passenger type (e.g. ADULT, CHILD, INFANT). |
| passengers/male | boolean | Yes | Passenger gender: true for male, false for female. |
| passengers/name | string | Yes | Passenger given name. |
| passengers/surname | string | Yes | Passenger surname. |
| passengers/birthDate | string | No | Date of birth in yyyy-MM-dd. Required when the offer's restrictions demand it. |
| passengers/passportCountry | string | No | ISO country code of the passport (e.g. TR). |
| passengers/nationalityIdNo | string | No | National identity number of the passenger (required for domestic TR flights). |
| passengers/notTCCitizen | boolean | No | true if the passenger is not a Turkish citizen. |
| receiptInfos | object | No | Invoice/receipt (billing) information. |
| receiptInfos/receiptName | string | No | Name shown on the receipt. |
| receiptInfos/name | string | No | Receipt owner's given name. |
| receiptInfos/surname | string | No | Receipt owner's surname. |
| receiptInfos/email | string | No | Receipt email address. |
| receiptInfos/taxNumber | string | No | Tax number (for companies). |
| receiptInfos/nationalID | string | No | National identity number (for individuals). |
| receiptInfos/taxOffice | string | No | Tax office name. |
| receiptInfos/isCompany | boolean | No | Whether the receipt is issued to a company. |
| receiptInfos/address1 | string | No | Billing address line 1. |
| receiptInfos/address2 | string | No | Billing address line 2. |
| receiptInfos/zipCode | string | No | Postal / ZIP code. |
| receiptInfos/city | string | No | Billing city. |
| receiptInfos/country | string | No | Billing country. |
| receiptInfos/companyName | string | No | Company name (when isCompany is true). |
| receiptInfos/notTCCitizen | boolean | No | true if the receipt owner is not a Turkish citizen. |
| receiptInfos/notTCCompany | boolean | No | true if the company is not Turkey-based. |
| receiptInfos/needReceiptFlag | boolean | No | Whether a receipt is requested. |
| receiptInfos/electronicReceipt | boolean | No | Whether the receipt is electronic. |
| receiptInfos/privateCompany | boolean | No | Whether the company is a private company. |
| receiptInfos/receiptId | int | No | Identifier of an existing saved receipt (0 for a new one). |
| paymentInfo | object | Yes | Payment details for the reservation. |
| paymentInfo/paymentType | string | Yes | Payment method (e.g. Debit). |
| paymentInfo/totalAmount | string | Yes | Total amount to be charged. |
| paymentInfo/currency | string | Yes | Currency of the payment (e.g. EUR). |
| Name | Type | Required | Description |
|---|---|---|---|
| success | boolean | Yes | Indicates whether the reservation was created successfully. |
| orderStatus | string | Yes | Status of the order (e.g. TICKET when tickets are issued). |
| orderId | int | Yes | Unique order identifier generated for the reservation. |
| clientRef | string | No | The client reference sent in the request, echoed back. |
| etickets | object-array | Yes | List of issued e-tickets. |
| etickets/pnr | string | Yes | Passenger Name Record (booking reference). |
| etickets/airlineCode | string | Yes | Airline code the ticket was issued on (e.g. VF). |
| etickets/eticketNo | string | Yes | Electronic ticket number. |
| etickets/status | string | Yes | Ticket status (e.g. TICKETED). |