> For the complete documentation index, see [llms.txt](https://resources.atriptech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resources.atriptech.com/api-document/api-reference/post-booking-apis/void.md).

# Void

{% hint style="info" %}
💬 **Need help?** If you're stuck, ask Eva on ATRIP for instant diagnostics.

<a href="https://www.atriptech.com/" class="button primary" data-icon="comments">Ask Eva</a>
{% endhint %}

Use this section for the dedicated void lifecycle.

Start here when you need to:

* check whether an order is still voidable
* submit a void request with the latest `voidOfferId`
* track void processing and outcome

Need the workflow guide first?

Use [Void workflow](/api-document/readme/post-booking-overview/post-booking-operations/void.md).

### FAQ

#### What is the standard Atlas API void flow?

The standard flow is `voidQuotation.do` → `void.do` → `queryVoidOrders.do`.

Request quotation first.

Then submit the void with the latest `voidOfferId`.

After submission, query status until the case is completed or rejected.

#### Will Atlas reject a void request after the deadline?

Yes.

If the returned same-day void deadline has already passed, `void.do` fails in real time.

Typical error message:

* `Void deadline exceeded. This ticket can no longer be voided`

#### Does Atlas support partial-pax void?

No.

Atlas accepts full-order void only.

Do not submit void for only some passengers.

#### Is `voidQuotation.do` still required when the service fee is fixed?

Yes.

Call `voidQuotation.do` before every `void.do` request.

#### When should I use Void instead of Refund?

Use Void when the order is still inside the airline void window.

Use Refund when the void window has passed or the case needs the refund flow.

### What this section covers

* Request void quotations
* Submit void requests
* Query void status and results

### Typical flow

{% stepper %}
{% step %}

### Void Quotation

Check whether the order is voidable.

Read the latest amount, method, and `voidOfferId`.
{% endstep %}

{% step %}

### Submit Void

Submit the void request with the latest quotation result.

Keep the returned `voidCode` for follow-up.
{% endstep %}

{% step %}

### Query Void Status

Track progress until the void is completed, rejected, or otherwise closed.
{% endstep %}
{% endstepper %}

### What should you confirm before void submission?

Confirm:

* the original `orderNo` is correct
* the order is still inside the airline void window
* the returned same-day deadline has not passed yet
* the latest `voidOfferId` is used
* the case should go through Void, not Refund

Void handling is usually stricter than refund handling.

Window expiry can make the order non-voidable even if refund is still possible.

If the deadline already passed, Atlas rejects the void request immediately.

### Key behavior

* Void uses dedicated endpoints
* quotation should run before submission
* `voidOfferId` is used for submission
* `voidCode` is used for status follow-up

### Main APIs

* `voidQuotation.do`
* `void.do`
* `queryVoidOrders.do`

### Request model

Use the dedicated void flow with these inputs:

* `voidQuotation.do`: `orderNo`
* `void.do`: `orderNo` + `voidOfferId`
* `queryVoidOrders.do`: `voidCode`

{% hint style="warning" %}
Void should be handled at order level.

Do not treat Void like a partial refund flow.

Atlas accepts full-order void only.
{% endhint %}

### Endpoint notes

#### `voidQuotation.do`

Use quotation to get the latest void eligibility and amount.

Expect the response to answer:

* whether the order is voidable
* which `voidMethod` applies
* which `voidOfferId` to use next

Important fields to read first:

* `isVoidable`
* `voidOfferId`
* `expectedConfirmationDate`
* `expectedRefundDate`
* `voidWindow.sameDayDeadlineTime`
* `voidWindow.sameDayTimezone`

#### `void.do`

Submit the void with the latest `voidOfferId`.

Keep the returned `voidCode`.

Use that code for all later status follow-up.

Do not skip quotation, even when the service fee is fixed.

If the returned same-day deadline already passed, Atlas rejects the request in real time.

#### `queryVoidOrders.do`

Use query to track the void after submission.

In most cases, Atlas returns within about 5 minutes whether the void request was accepted for processing.

Final completion or rejection can still take longer.

Important fields to read first:

* `voidCode`
* `voidStatus`
* `cancelReason`
* `actualRefundAmount` when available

### Status handling

The main outcome states to watch are:

* processing
* refunded or fulfillment done
* rejected

If the void is rejected, check `cancelReason` first.

If the void window expired, move the case to the refund flow when applicable.

### Integration notes

Use the latest quotation result before submission.

Do not reuse an older `voidOfferId`.

Treat the void window as strict.

If the order is no longer voidable, do not keep retrying the void path.

### Webhook option

Atlas can also send `order.void` to your registered webhook URL.

Use it after `void.do` for near-real-time status updates.

Webhook is the recommended way to follow progress changes after submission.

Read these fields first:

* `data.orderNo`
* `data.voidCode`
* `data.voidStatus`
* `data.message`

No extra webhook registration is required.

Use the same URL registered through `updateWebhookURL.do`.

Use `queryVoidOrders.do` when you need final reconciliation.

Read [Void Notification](/api-document/readme/webhook-overview/void-notification.md).

### Related pages

* [Refunds](/api-document/api-reference/post-booking-apis/refunds.md)
* [Void Notification](/api-document/readme/webhook-overview/void-notification.md)
* [Error Codes](/api-document/troubleshooting-and-support/errors-handing.md)
* [Post-booking APIs](/api-document/api-reference/post-booking-apis.md)

## POST /voidQuotation.do

> Void Quotation

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/voidQuotation.do":{"post":{"summary":"Void Quotation","deprecated":false,"description":"","tags":[],"parameters":[{"name":"Accept","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept-Encoding","in":"header","description":"","required":true,"schema":{"type":"string","default":"gzip"}},{"name":"x-atlas-client-id","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_ID>"}},{"name":"x-atlas-client-secret","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_SECRET>"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"orderNo":{"type":"string","description":"Atlas original order number. You can choose to request either orderNo or both airlinePNR and carrier."}},"required":["orderNo"]}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","description":"Status code\n0 : Success\n801：Order not found for void. Check the original main ticket order number.\n803：Void already submitted for this passenger or segment. Query void status instead.\n805：voidOfferId expired. Call refundQuotation.do again for a fresh ID, then resubmit.\n808：This ticket is non-voidable per airline policy.\n810：Invalid request parameters\n814：Void submission already in progress. Wait before retrying.\n815：Ticket not found. Verify ticket number and order number.\n816：Void already submitted for this order. Query void status instead of resubmitting.\n817：Void already submitted for this order. Query void status instead of resubmitting.\n818：Void already submitted for this order. Query void status instead of resubmitting.\n820：Ticket already used — cannot void a flown segment.\n822：Void deadline exceeded. This ticket can no longer be voided.\n824：Wrong orderNumber: use the main ticket order, not the ancillary order number.\n841：Void not support the payment method. Please contact the airline directly for resolution.\n843：Atlas does not currently support VOID service for the airline or route of this booking."},"msg":{"type":"string","description":"Error message\nThe ‘msg’ element is for description of the results. Please do not use this field to check the success or failure of the request. Only use the ‘status’ code to check the result.","nullable":true},"fastConfirmation":{"type":"integer","enum":[0,1],"description":"Fast confirmation depends on whether the airline supports auto fulfillment.\n0 for False, 1 for True."},"expectedConfirmationDate":{"type":"string","description":"Expected date of getting airline void confirmation. The format is yyyyMMdd."},"expectedRefundDate":{"type":"string","description":"Expected date of getting refund. The format is yyyyMMdd."},"voidOfferId":{"type":"string","description":"Void offer id for this quotation which can be used for the coming Void call."},"voidMethod":{"type":"string","enum":["CashBackToOriginalPayment","Voucher"],"description":"Void method: CashBackToOriginalPayment or Voucher.\nCashBackToOriginalPayment: Refund cash back to the original form of payment.\nVoucher: Refund in the form of a voucher."},"voidTickets":{"type":"array","items":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger who wants to void."},"firstName":{"type":"string","description":"First name of the passenger who wants to void."},"ticketNo":{"type":"string","description":"The PNR received from the airline in the retrieve PNR response."}}},"description":"The void calculation for each of the passengers whose void quote has been requested"},"voidFareAmount":{"type":"object","properties":{"currency":{"type":"string","description":"The refund calculation for flight fare and inflow ancillaries.\n3-letter ISO currency code."},"originalFareAmount":{"type":"number","description":"Original fare of the flight."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount which can be got back for this refund of flight."}},"required":["currency","originalFareAmount","estimatedRefundAmount"],"description":"If voidMethod is CashBackToOriginalPayment, the voidFareAmount field is not null."},"voidPostTicketingServiceAmounts":{"type":"array","items":{"type":"object","properties":{"postTicketingOrderNo":{"type":"string","description":"Unique order number for the post-ticketing service."},"currency":{"type":"string","description":"Currency used for post-ticketing service calculations.\n3-letter ISO currency code."},"originalPostTicketingServiceAmount":{"type":"number","description":"The original amount charged for the post-ticketing service."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount which can be got back for this refund of Ancillaries."}},"required":["postTicketingOrderNo","currency","originalPostTicketingServiceAmount","estimatedRefundAmount"]},"description":"The void calculation for Post-ticketing Servrice, including baggage etc. Each post-ticketing order will be present as an object."},"serviceFee":{"type":"object","properties":{"currency":{"type":"string","description":"Currency used for the service fee.\n3-letter ISO currency code."},"transactionFee":{"type":"integer","description":"Transaction Fee of void."}},"required":["currency","transactionFee"],"description":"Service fee of void."},"voidWindow":{"type":"object","properties":{"supportVoid":{"type":"boolean"},"allowVoid":{"type":"boolean"},"voidTimeAfterIssure":{"type":"string"},"voidTimeBeforeDepature":{"type":"string"},"sameDayDeadlineTime":{"type":"string"},"sameDayTimezone":{"type":"string"}},"required":["supportVoid","allowVoid","voidTimeAfterIssure","voidTimeBeforeDepature","sameDayDeadlineTime","sameDayTimezone"],"description":"Void Window"},"orderNo":{"type":"string","description":"Original order number"},"isVoidable":{"type":"boolean","description":"True : Voidable False: Non-Voidable \ntrue or false"}},"required":["fastConfirmation","expectedConfirmationDate","expectedRefundDate","voidOfferId","voidMethod","isVoidable","voidTickets","voidFareAmount","serviceFee","voidWindow","orderNo","status","msg"]}}},"headers":{}}}}}}}
```

## Make a Void

> Void quotation function should be called in prior of this call

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/void.do":{"post":{"summary":"Make a Void","deprecated":false,"description":"Void quotation function should be called in prior of this call","tags":[],"parameters":[{"name":"Accept","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept-Encoding","in":"header","description":"","required":true,"schema":{"type":"string","default":"gzip"}},{"name":"x-atlas-client-id","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_ID>"}},{"name":"x-atlas-client-secret","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_SECRET>"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"orderNo":{"type":"string","description":"Atlas original order number. You can choose to request either orderNo or both airlinePNR and carrier."},"voidOfferId":{"type":"string","description":"Get this from the void quotation response. "}},"required":["orderNo","voidOfferId"]}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","description":"Status code\n0 : Success,\n801：Order not found for void. Check the original main ticket order number.\n803：Void already submitted for this passenger or segment. Query void status instead.\n805：voidOfferId expired. Call refundQuotation.do again for a fresh ID, then resubmit.\n808：This ticket is non-voidable per airline policy.\n810：Invalid request parameters\n814：Void submission already in progress. Wait before retrying.\n815：Ticket not found. Verify ticket number and order number.\n816：Void already submitted for this order. Query void status instead of resubmitting.\n817：Void already submitted for this order. Query void status instead of resubmitting.\n818：Void already submitted for this order. Query void status instead of resubmitting.\n820：Ticket already used — cannot void a flown segment.\n822：Void deadline exceeded. This ticket can no longer be voided.\n824：Wrong orderNumber: use the main ticket order, not the ancillary order number.\n841：Void not support the payment method. Please contact the airline directly for resolution.\n843：Atlas does not currently support VOID service for the airline or route of this booking."},"msg":{"type":"string","description":"Error message\nThe ‘msg’ element is for description of the results. Please do not use this field to check the success or failure of the request. Only use the ‘status’ code to check the result.","nullable":true},"fastConfirmation":{"type":"integer","description":"Fast confirmation depends on whether the airline supports auto fulfillment.\n0 for False, 1 for True."},"expectedConfirmationDate":{"type":"string","description":"Expected date of getting airline void confirmation. The format is yyyyMMdd."},"expectedRefundDate":{"type":"string","description":"Expected date of getting refund. The format is yyyyMMdd."},"voidOfferId":{"type":"string","description":"Void offer id for this quotation which can be used for the coming void call."},"voidMethod":{"type":"string","description":"Voidmethod: CashBackToOriginalPayment or Voucher.\nCashBackToOriginalPayment: Refund cash back to the original form of payment.\nVoucher: Refund in the form of a voucher."},"voidTickets":{"type":"array","items":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger who wants to void."},"firstName":{"type":"string","description":"First name of the passenger who wants to void."},"ticketNo":{"type":"string","description":"The PNR received from the airline in the retrieve PNR response."}},"required":["lastName","firstName","ticketNo"]},"description":"The void calculation for each of the passengers whose void quote has been requested"},"voidFareAmount":{"type":"object","properties":{"currency":{"type":"string","description":"The void calculation for flight fare and inflow ancillaries.\n3-letter ISO currency code."},"originalFareAmount":{"type":"number","description":"Original fare of the flight."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount which can be got back for this refund of flight."}},"required":["currency","originalFareAmount","estimatedRefundAmount"],"description":"If voidMethod is CashBackToOriginalPayment, the voidFareAmount field is not null."},"voidPostTicketingServiceAmounts":{"type":"array","items":{"type":"object","properties":{"postTicketingOrderNo":{"type":"string","description":"Unique order number for the post-ticketing service."},"currency":{"type":"string","description":"Currency used for post-ticketing service calculations.\n3-letter ISO currency code."},"originalPostTicketingServiceAmount":{"type":"number","description":"The original amount charged for the post-ticketing service."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount which can be got back for this refund of Ancillaries."}},"required":["postTicketingOrderNo","currency","originalPostTicketingServiceAmount","estimatedRefundAmount"]}},"serviceFee":{"type":"object","properties":{"currency":{"type":"string","description":"Currency used for the service fee.\n3-letter ISO currency code."},"transactionFee":{"type":"number","description":"Transaction Fee of void."}},"required":["currency","transactionFee"],"description":"Service fee of void."},"orderNo":{"type":"string","description":"Original order number"},"isVoidable":{"type":"boolean","description":"True : Voidable False: Non-Voidable\ntrue or false"},"voidStatus":{"type":"integer","description":"The present status of the void.\nThe options are:\n0: Atlas Processing\n1: Airline Processing (Submitted to airline by Atlas)\n2: Refunded\n3: Airline Refunding\n4: Rejected\n5: Fullfillment Done\n6: Withdrew\nIf the ticket is paid by deposit: the status can be 0,1,2,3,4\nIf the ticket is paid by VCC pass through: the status can be 0,1,4,5,6\nWithdrew is only in the refund claim"},"voidCode":{"type":"string","description":"Void order number generated for this void request"},"cancelReason":{"type":"string","description":"The reason why the void was cancelled."}},"required":["status","msg","fastConfirmation","expectedConfirmationDate","expectedRefundDate","voidOfferId","voidMethod","voidTickets","voidFareAmount","serviceFee","orderNo","isVoidable","voidStatus","voidCode","cancelReason"]}}},"headers":{}}}}}}}
```

## Query Void Status

> No preceding function needs to be carried out.

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/queryVoidOrders.do":{"post":{"summary":"Query Void Status","deprecated":false,"description":"No preceding function needs to be carried out.","tags":[],"parameters":[{"name":"Accept","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept-Encoding","in":"header","description":"","required":true,"schema":{"type":"string","default":"gzip"}},{"name":"x-atlas-client-id","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_ID>"}},{"name":"x-atlas-client-secret","in":"header","description":"","required":true,"schema":{"type":"string","default":"<YOUR_CLIENT_SECRET>"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{}}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"voidOrders":{"type":"array","items":{"type":"object","properties":{"orderNo":{"type":"string","description":"The original order number"},"voidCode":{"type":"string","description":"The void order number generated for this void request"},"expectedConfirmationDate":{"type":"string","description":"Expected date to receive airline void confirmation. Format: yyyyMMdd."},"expectedRefundDate":{"type":"string","description":"Expected date to receive the refund. Format: yyyyMMdd.","nullable":true},"voidTickets":{"type":"array","items":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger for whom the void is requested"},"firstName":{"type":"string","description":"First name of the passenger for whom the void is requested"},"ticketNo":{"type":"string","description":"The PNR received from the airline retrieve PNR response."}},"required":["lastName","firstName","ticketNo"]},"description":"Void calculation for each passenger requesting a void quotation"},"voidFareAmount":{"type":"object","properties":{"currency":{"type":"string","description":"Currency used for flight fare and onboard ancillary service void calculations.\n3-letter ISO currency code."},"originalFareAmount":{"type":"number","description":"The original fare amount of the flight."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount recoverable from this flight refund."}},"required":["currency","originalFareAmount","estimatedRefundAmount"],"description":"If voidMethod is CashBackToOriginalPayment, the voidFareAmount field is not empty."},"voidPostTicketingServiceAmounts":{"type":"array","items":{"type":"object","properties":{"postTicketingOrderNo":{"type":"string","description":"The unique order number for the post-ticketing service."},"currency":{"type":"string","description":"Currency used for post-ticketing service calculations.\n3-letter ISO currency code."},"originalPostTicketingServiceAmount":{"type":"number","description":"The original charged amount for the post-ticketing service."},"estimatedRefundAmount":{"type":"number","description":"Estimated amount recoverable from this ancillary service refund."}},"required":["postTicketingOrderNo","currency","originalPostTicketingServiceAmount","estimatedRefundAmount"]},"description":"List of void amounts for post-ticketing services"},"serviceFee":{"type":"object","properties":{"currency":{"type":"string","description":"Currency used for the service fee.\n3-letter ISO currency code."},"transactionFee":{"type":"integer","description":"Transaction fee for the void."}},"required":["currency","transactionFee"],"description":"Service fee for the void."},"voidStatus":{"type":"integer","description":"Current status of the void.\nOptions:\n0: Atlas processing\n1: Airline processing (submitted to airline by Atlas)\n2: Refunded\n3: Airline refunding\n4: Rejected\n5: Fulfillment completed\n6: Cancelled\nIf ticket is paid via deposit: status may be 0,1,2,3,4\nIf ticket is paid via VCC direct payment: status may be 0,1,4,5,6\nCancelled status only exists in refund applications"},"cancelReason":{"type":"string","description":"Reason why the void was cancelled."},"voidOfferId":{"type":"string","description":"The void offer ID for this quotation, which can be used for subsequent void calls."},"voidMethod":{"type":"string","description":"Void method: CashBackToOriginalPayment or Voucher","enum":["CashBackToOriginalPayment","Voucher"]}},"required":["orderNo","voidCode","expectedConfirmationDate","voidStatus","voidMethod"]},"description":"List of void orders"},"status":{"type":"integer","description":"API status code.\n0 : Success\n801: No voidable orders found. Please check the original main ticket order number.\n803: Passenger or segment has already submitted a void request. Please check the void status.\n805: voidOfferId has expired. Please call refundQuotation.do again to get a new ID and resubmit.\n808: This ticket cannot be voided according to airline policy.\n810: Invalid request parameters.\n814: Void submission is already in process, please try again later.\n815: Ticket not found. Please verify the ticket number and order number.\n816: This order has already submitted a void request. Please check the void status, do not resubmit.\n817: This order has already submitted a void request. Please check the void status, do not resubmit.\n818: This order has already submitted a void request. Please check the void status, do not resubmit.\n820: Ticket already used - cannot void flown segments.\n822: Void deadline has passed. This ticket can no longer be voided.\n824: Wrong order number: Please use the main ticket order number, not the ancillary service order number.\n841: Void is not supported for this payment method. Please contact the airline directly for processing.\n843: Atlas currently does not support void service for this airline or route."},"msg":{"type":"string","description":"Error message","nullable":true}},"required":["voidOrders","status","msg"],"description":"Void order query response"}}},"headers":{}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://resources.atriptech.com/api-document/api-reference/post-booking-apis/void.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
