# Cancellation and refund These operations cover the cancellation of air tickets. The following are the 3 cancellation scenarios: - [Canceling voidable tickets](/webhooks/booking-lifecycle/air-booking-lifecycle/cancellation-lifecycle#canceling-voidable-tickets) - [Canceling refundable tickets](/webhooks/booking-lifecycle/air-booking-lifecycle/cancellation-lifecycle#canceling-refundable-tickets) - [Canceling non-refundable tickets](/webhooks/booking-lifecycle/air-booking-lifecycle/cancellation-lifecycle#canceling-non-refundable-tickets) **Webhook used:** [PNR_V3](/openapi/webhookeventapi/webhooks/paths/pnr_v3/post) ## Canceling voidable tickets The event below is triggered when a voidable ticket is canceled by the traveler: | Operation | Event trigger | Context | | --- | --- | --- | | `TICKET_VOIDED` | When a ticket is voided, typically within 24 hours of issuance. | An air ticket is considered voided if it's canceled during the voidable period (usually within 24 hours after ticketing). Unlike refunds, voids typically incur no penalties and the full amount is refunded. **Example:** A traveler realizes they booked the wrong dates 2 hours after ticketing. They cancel the ticket before the void window expires. The full charge is reversed to the payment method used with no penalties applied. | ## Canceling refundable tickets The event below is triggered when a refundable ticket is canceled by the traveler: | Operation | Event trigger | Context | | --- | --- | --- | | `TICKET_REFUNDED` | When a ticket is canceled after the void window has expired but it's still within the refundable time limit. | The refund amount depends on the airline's fare rules. For refundable fares, the full fare is refunded after deducting any cancellation penalty by the airline. The event is triggered when the refund request is submitted to the airline and the ticket status changes to refunded, not when the funds reach the traveler's bank account (which may take 7 to 14 business days). An `INVOICE_GENERATED` event is generated with the refund details. **Example:** A traveler cancels a $850 refundable ticket 3 days after booking. The airline charges a $150 cancellation penalty. The `TICKET_REFUNDED` event is triggered and the net refund is $700. An `INVOICE_GENERATED` event follows with the credit note. | ## Canceling non-refundable tickets The event below is triggered when a non-refundable ticket is canceled by the traveler: | Operation | Event trigger | Context | | --- | --- | --- | | `TICKET_REFUNDED` | When a non-refundable ticket is canceled. | For non-refundable fares the full fare may be forfeited as a penalty. An `INVOICE_GENERATED` event follows with the penalty amount or a cancellation fee containing the entire fare of the booking. **Example:** A traveler cancels a $850 non-refundable ticket. The airline deducts the entire $850 as a cancellation fee. The `TICKET_REFUNDED` event is sent with refund amount of $0 and cancellation fee as $850. An `INVOICE_GENERATED` event follows with the details about the cancellation fee. | ## Cancellation and refund flow diagram ```mermaid flowchart LR subgraph cancellation["Cancellation and refund"] A(["Traveler cancels
after ticketing"]) --> B{"Within void
period?"} B -->|"Yes
(typically within 24hrs)"| C["TICKET_VOIDED
―――――――――――
Ticket voided.
No penalties applied.
Full amount refunded."] B -->|"No"| D{"Fare type?"} D -->|"Refundable"| E["TICKET_REFUNDED
―――――――――――
Fare refunded
after deducting any applicable penalties."] D -->|"Non-refundable"| F["TICKET_REFUNDED
―――――――――――
The total fare is deducted as a penalty.
The refund amount will be 0.
The penalty will contain the entire fare."] E --> G["INVOICE_GENERATED
―――――――――――
Credit note / refund
adjustment invoice."] F --> G end style A fill:#f0f0f0,stroke:#999 style C fill:#F44336,color:#fff style E fill:#F44336,color:#fff style F fill:#F44336,color:#fff style G fill:#FF9800,color:#fff ```