Reverse Inquire
POST
/api/v1/generic-api-service/flight/reverse/inquire
The reverse inquire endpoint is used before cancelling a PNR to find out the cancellation penalty and the refundable amount. It does not cancel the PNR — it only returns the penalty and refund breakdown. The returned reverseToken is then used to perform the actual cancellation, and it is valid until expireTime.
- cURL
- Request
- Response
- Request Details
- Response Details
- Errors
curl --location 'https://test-api.etscore.com/api/v1/generic-api-service/flight/reverse/inquire' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"orderId": "49661695",
"pnr": "42ED16"
}'
{
"orderId": "49661695",
"pnr": "42ED16"
}
{
"success": true,
"reverseToken": "00b1804f-0791-4480-9842-758fa48cd119",
"orderId": 49661695,
"pnr": "42ED16",
"orderStatus": "TICKET",
"availableReverseType": "REFUND_PNR",
"passengers": [
0: {
"passengerType": "ADULT",
"passengerGender": "MALE",
"passengerName": "OMER",
"passengerSurname": "ERGAN",
"passengerId": 69369876
}
],
"eticketPenaltyList": [
0: {
"eticketNumber": "2042452443067",
"fare": 98.51,
"tax": {
"VQ": 9.86,
"YR": 0,
"other": 0,
"total": 9.86
},
"penaltyAmount": 108.37
}
],
"totalPenaltyAmount": 68.53,
"totalRefundAmount": 39.85,
"currency": "EUR",
"saleDate": "2026-09-11T10:22:43",
"expireTime": "2026-09-11T11:34:37.052910876"
}
| Name | Type | Required | Description |
|---|---|---|---|
| orderId | string | Yes | The unique order identifier of the booking. |
| pnr | string | Yes | The PNR (booking reference) to inquire the cancellation penalty for. |
| Name | Type | Required | Description |
|---|---|---|---|
| success | boolean | Yes | Indicates whether the inquiry was processed successfully. |
| reverseToken | string | Yes | Token representing this cancellation quote. Use it to perform the actual cancellation before it expires. |
| orderId | int | Yes | The order identifier. |
| pnr | string | Yes | The PNR the quote applies to. |
| orderStatus | string | Yes | Current order status (e.g. TICKET). |
| availableReverseType | string | Yes | The type of reverse operation available (e.g. REFUND_PNR). |
| passengers | object-array | Yes | Passengers included in the cancellation. |
| passengers/passengerType | string | Yes | Passenger type (e.g. ADULT). |
| passengers/passengerGender | string | Yes | Passenger gender (e.g. MALE, FEMALE). |
| passengers/passengerName | string | Yes | Passenger given name. |
| passengers/passengerSurname | string | Yes | Passenger surname. |
| passengers/passengerId | int | Yes | Internal passenger identifier. |
| eticketPenaltyList | object-array | Yes | Per e-ticket penalty breakdown. |
| eticketPenaltyList/eticketNumber | string | Yes | Electronic ticket number the penalty applies to. |
| eticketPenaltyList/fare | decimal | Yes | Base fare of the e-ticket. |
| eticketPenaltyList/tax | object | Yes | Tax breakdown for the e-ticket: VQ, YR, other, total. |
| eticketPenaltyList/penaltyAmount | decimal | Yes | Penalty amount calculated for this e-ticket. |
| totalPenaltyAmount | decimal | Yes | Total cancellation penalty to be charged. |
| totalRefundAmount | decimal | Yes | Total amount to be refunded after the penalty. |
| currency | string | Yes | Currency of the amounts (e.g. EUR). |
| saleDate | string | Yes | Original sale date and time of the ticket. |
| expireTime | string | Yes | Time until which the reverseToken (this quote) is valid. |
Errors specific to Reverse Inquire (8 codes). Common gateway and authentication errors apply to all endpoints and are listed once in the central reference.
🔎
Validation— fix the request and retry
| Group | Code | Message | Description |
|---|---|---|---|
| Validation | 904128 | Inventory validation error. | Returned when the request payload fails schema validation or required fields are missing. Correct the request parameters and send the request again. |
| Validation | 904200 | Flight service validation error: {0} | Returned during flight operations when validation on the remote flight provider side fails. Correct the request parameters and send the request again. |
| Validation | 904207 | The related PNR is in cancelled status. Reverse Inquire operation cannot be performed again. | Returned when attempting a reverse inquiry on a PNR that has already been cancelled. Check reservation status before retrying. |
| Validation | 904227 | Sales channel currency is not defined. Please contact your administrator. | Returned when the sales channel configuration lacks a base currency setting. Contact your administrator to configure channel currency. |
Rate limit— slow down and retry later
| Group | Code | Message | Description |
|---|---|---|---|
| Rate limit | 901010 | You have exceeded the limit of requests sent per unit time. You can send {1} requests in {0} seconds. | Returned when the rate limit configured for your sales channel / IP is exceeded. Slow down your request rate and retry after the specified window. |
System— retry with backoff; contact support if persistent
| Group | Code | Message | Description |
|---|---|---|---|
| System | 904003 | Unexpected error occured. | Returned when an unexpected system error occurs while processing the flight request. Retry after a short wait; if the issue persists, contact Etscore support. |
| System | 904201 | Flight service system error: {0} | Returned when an internal system error occurs within the remote flight provider service. Retry with backoff; contact support if persistent. |
| System | 904229 | Provider currency is missing in the flight response. Please try again or contact support. | Returned when upstream flight provider response lacks the required currency field. Retry or contact support. |
Common errors not shown here. Gateway, authentication and header errors apply to every endpoint. → See the central Error Codes reference.