Hermeseus

Refund a flight ticket

Preview the refund terms for an issued ticket, then run the refund.

Refunding is two steps. First display the refund to see the penalty per ticket. Then execute the refund for the tickets you want back. Both take the booking UniqueId.

Preview a refund

POST/Air/AirRefundDisplay

Access requires the permission air_refund_display

Read the penalty and refundable status for each e-ticket before you commit.

Body parameters

NameTypeRequiredDescription
SessionIdstringYesYour session id.
UniqueIdstringYesThe ticketed booking id.
curl -X POST https://api.hermeseus.com/api/Air/AirRefundDisplay \
  -H "Content-Type: application/json" \
  -d '{
    "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    "UniqueId": "TP-2026-000512"
  }'
const res = await fetch("https://api.hermeseus.com/api/Air/AirRefundDisplay", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    SessionId: "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    UniqueId: "TP-2026-000512"
  })
});

const data = await res.json();
import requests

res = requests.post(
    "https://api.hermeseus.com/api/Air/AirRefundDisplay",
    json={
        "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
        "UniqueId": "TP-2026-000512",
    },
)

data = res.json()

Response

FieldTypeDescription
Successbooleantrue on success.
RefundTypeintegerRefund method code.
EticketNumbersarray of objectOne entry per e-ticket. See below.
Errorobjectnull on success.
EticketNumbers[] object
FieldTypeDescription
ETicketNumberstringThe e-ticket number.
EticketStatusstringCurrent status of the ticket.
IsRefundedbooleanWhether it is already refunded.
PenaltyAmountnumberPenalty deducted from the refund.
IsNonRefundablebooleantrue if the ticket cannot be refunded.
RoutestringRoute of the ticket.
AirlinePnrstringAirline record locator.
{
  "Success": true,
  "RefundType": 1,
  "EticketNumbers": [
    {
      "ETicketNumber": "235-1234567890",
      "EticketStatus": "OPEN",
      "IsRefunded": false,
      "PenaltyAmount": 45.00,
      "IsNonRefundable": false,
      "Route": "IST-DXB",
      "AirlinePnr": "ABC123"
    }
  ],
  "Error": null
}

Run the refund

POST/Air/AirRefund

Access requires the permission air_refund

Execute the refund for the e-tickets you choose. Omit EticketNumbers to refund the whole booking.

Body parameters

NameTypeRequiredDefaultDescription
SessionIdstringYes-Your session id.
UniqueIdstringYes-The ticketed booking id.
RefundTypeintegerNo1Refund method code from the display step.
EticketNumbersarray of stringNo-The e-tickets to refund. Omit for all.
RefundPaymentModeintegerNo-How the refund is paid back.
curl -X POST https://api.hermeseus.com/api/Air/AirRefund \
  -H "Content-Type: application/json" \
  -d '{
    "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    "UniqueId": "TP-2026-000512",
    "RefundType": 1,
    "EticketNumbers": ["235-1234567890"]
  }'
const res = await fetch("https://api.hermeseus.com/api/Air/AirRefund", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    SessionId: "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    UniqueId: "TP-2026-000512",
    RefundType: 1,
    EticketNumbers: ["235-1234567890"]
  })
});

const data = await res.json();
import requests

res = requests.post(
    "https://api.hermeseus.com/api/Air/AirRefund",
    json={
        "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
        "UniqueId": "TP-2026-000512",
        "RefundType": 1,
        "EticketNumbers": ["235-1234567890"],
    },
)

data = res.json()

Response

FieldTypeDescription
Successbooleantrue on success.
RefundEticketNumbersarray of objectThe tickets that were refunded, with their refunded amounts.
Errorobjectnull on success.
{
  "Success": true,
  "RefundEticketNumbers": [
    { "ETicketNumber": "235-1234567890", "RefundAmount": 174.60, "Currency": "USD" }
  ],
  "Error": null
}

Errors

CodeMeaningFix
Err0103003Booking not found.Check the UniqueId.
Err0103010The booking is not refundable.Read the display step for per-ticket refundable status.