> 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-wen-dang/api-can-kao/yu-ding-hou-api/tui-kuan.md).

# 退款

{% hint style="info" %}
遇到 API 接入问题时，可登录 [Eva](https://www.atriptech.com/) 寻求帮助。
{% endhint %}

## Refund Quotation

> \*\*Dependency\*\*\
> No preceding function needs to be carried out.\
> \
> \> ### Introduction\
> \> The Refund section includes a series of steps required for refunds, including requesting a refund quote, submitting the refund, and returning the refund status and results. This service supports the submission of requests for cancellation that require Atlas to process or for refunds that need to be executed by Atlas. It also allows a variety of cancellation and refund types, including voluntary, involuntary and void, etc.\
> \> ### Features\
> \>   - Refund reason: Voluntary, Involuntary, Void\
> \>   - Service Level:\
> \>      \&#9702; Our refund quotations fall into three scenarios:\
> \>        a. We can obtain an accurate quotation from the airline and will quote it directly to you;\
> \>        b. We cannot obtain an accurate quotation through the airline. You can still submit the refund request, then we will process the refund, but the refund amount will be based on the actual amount refunded by the airline;\
> \>        c. Unrefundable\
> \>      \&#9702; Our refund service includes the below steps,\
> \>        a. Atlas submits the refund request to the airline: We provide a service time guarantee;\
> \>        b. Airline processes the refund request and responds with the result, and airline executes the refund. The duration for 2 steps depends on the airline's processing speed, and we will provide an estimated reference time based on our experience in handling such cases.\
> \> \
> \> Please note the below while initiating a refund transaction.\
> \>   1. \*\*Refund of either inbound or outbound sector\*\*: The full ticket needs to be refunded. Only outbound OR inbound sector cannot be refunded. Please contact the airline for the same.\
> \>   2. \*\*Refund for a partially used itinerary\*\*: Partially used itinerary cannot be refunded. Please contact the airline for the same.\
> \>   3. \*\*Refund for a specific passenger\*\*: We support the refund of a specific passenger in an itinerary. For example, if there are 3 passengers and only one of them is to be refunded, please send us your refund request.\
> \>   4. Apart from voluntary, involuntary and void, we currently do not support other types of refunds, such as medical or death refunds. Please contact customer service for manual assistance.\
> \>   5. The customer is responsible to check whether the traveler has already made ancillary purchase in the transaction.\
> \>   6. No email notifications will be sent for refunds rejected by Atlas.\
> \
> \*\*Endpoint:\*\*\
> <https://sandbox.atriptech.com/refundQuotation.do>

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/refundQuotation.do":{"post":{"summary":"Refund Quotation","deprecated":false,"description":"**Dependency**\nNo preceding function needs to be carried out.\n\n> ### Introduction\n> The Refund section includes a series of steps required for refunds, including requesting a refund quote, submitting the refund, and returning the refund status and results. This service supports the submission of requests for cancellation that require Atlas to process or for refunds that need to be executed by Atlas. It also allows a variety of cancellation and refund types, including voluntary, involuntary and void, etc.\n> ### Features\n>   - Refund reason: Voluntary, Involuntary, Void\n>   - Service Level:\n>      &#9702; Our refund quotations fall into three scenarios:\n>        a. We can obtain an accurate quotation from the airline and will quote it directly to you;\n>        b. We cannot obtain an accurate quotation through the airline. You can still submit the refund request, then we will process the refund, but the refund amount will be based on the actual amount refunded by the airline;\n>        c. Unrefundable\n>      &#9702; Our refund service includes the below steps,\n>        a. Atlas submits the refund request to the airline: We provide a service time guarantee;\n>        b. Airline processes the refund request and responds with the result, and airline executes the refund. The duration for 2 steps depends on the airline's processing speed, and we will provide an estimated reference time based on our experience in handling such cases.\n> \n> Please note the below while initiating a refund transaction.\n>   1. **Refund of either inbound or outbound sector**: The full ticket needs to be refunded. Only outbound OR inbound sector cannot be refunded. Please contact the airline for the same.\n>   2. **Refund for a partially used itinerary**: Partially used itinerary cannot be refunded. Please contact the airline for the same.\n>   3. **Refund for a specific passenger**: We support the refund of a specific passenger in an itinerary. For example, if there are 3 passengers and only one of them is to be refunded, please send us your refund request.\n>   4. Apart from voluntary, involuntary and void, we currently do not support other types of refunds, such as medical or death refunds. Please contact customer service for manual assistance.\n>   5. The customer is responsible to check whether the traveler has already made ancillary purchase in the transaction.\n>   6. No email notifications will be sent for refunds rejected by Atlas.\n\n**Endpoint:**\nhttps://sandbox.atriptech.com/refundQuotation.do","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. If you use `orderNo`, the `airlinePNR` and `carrier` fields may be null.","nullable":true},"airlinePNR":{"type":"string","description":"The record locator of the airline. You can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"carrier":{"type":"string","description":"2 character IATA airline code. you can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"refundRequestList":{"type":"array","items":{"$ref":"#/components/schemas/RefundPaxSegments"}}},"required":["orderNo","airlinePNR","carrier","refundRequestList"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","description":"Status code. \n0 : Success\n801：Order not found for refund. Check the original main ticket order number.\n802：Child cannot travel alone on this booking. Contact airline directly for resolution.\n803：Refund already submitted for this passenger or segment. Query refund status instead.\n804：All segments of the same PNR must be submitted together. Include all segments and retry.\n8041：Segment not found in this order. Verify segment details match the original booking.\n805：refundOfferId expired. Call refundOffer.do again for a fresh ID, then resubmit.\n806：Please submit Self Refund instead.\n807：Passenger not found in this order. Verify passenger details match the original booking.\n808：This ticket is non-refundable per airline policy.\n809：Order not yet ticketed. Wait until orderQuery.do returns order_status=2 before refunding.\n810：Invalid request parameters\n811：Incomplete itinerary: all legs/segments required. Resubmit with full round-trip or connection.\n812：Refund passenger details are inconsistent with the original booking\n813：Illegal refund offer state\n814：Refund submission already in progress. Wait before retrying.\n815：Ticket not found. Verify ticket number and order number.\n816：Refund already submitted for this order. Query refund status instead of resubmitting.\n817：Refund already submitted for this order. Query refund status instead of resubmitting.\n818：Refund already submitted for this order. Query refund status instead of resubmitting.\n819：Refund claim not supported for this payment method. Use an alternative refund method.\n820：Ticket already used — cannot refund a flown segment.\n821：Refund deadline exceeded. This ticket is no longer eligible for refund.\n822：Refund deadline exceeded. This ticket can no longer be refunded.\n823：Refund must apply to all passengers — partial refund not allowed. Include all pax and retry.\n824：Wrong orderNumber: use the main ticket order, not the ancillary order number.\n825：For voluntary refunds after departure, submit a refund booking through the Flight Deck.\n826：Unable to confirm airline tax refund status. Refund request cannot be processed.\n840：Client cancellation criteria not met. Check account cancellation policy.\n841：Refund not support the payment method. Please contact the airline directly for resolution.\n842：Atlas does not currently support REFUND service for the airline or route of this booking.\n843：Atlas does not currently support refund service for the airline or route of this booking.","enum":[0,2]},"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.","enum":[0,1]},"expectedConfirmationDate":{"type":"string","description":"Expected date of getting airline refund confirmation. The format is `yyyyMMdd`."},"expectedRefundDate":{"type":"string","description":"Expected date of getting refund. The format is `yyyyMMdd`."},"refundQuoteType":{"type":"string","description":"Type of refund quote:\n- AccurateQuote：quotation based on the calculated amount.\n- CannotQuote: quotation is unknown and will be according to the airline's rates","enum":["AccurateQuote","CannotQuote"]},"refundOfferId":{"type":"string","description":"Refund offer id for this quotation which can be used for the coming refund call."},"refundMethod":{"type":"string","description":"Refund method: CashBackToOriginalPayment or Voucher.\n- CashBackToOriginalPayment: Refund cash back to the original form of payment.\n- Voucher: Refund in the form of a voucher.","enum":["CashBackToOriginalPayment","Voucher"]},"refundTickets":{"type":"array","items":{"$ref":"#/components/schemas/RefundTicket"},"description":"The refund calculation for each of the passengers whose refund quote has been requested"},"refundFareAmount":{"$ref":"#/components/schemas/RefundFareAmount","description":"If `refundMethod` is CashBackToOriginalPayment, the `refundFareAmount` field is not null and the `refundVouchers` is null.","nullable":true},"refundPostTicketingServiceAmounts":{"$ref":"#/components/schemas/RefundPostTicketingServiceAmount","description":"The refund calculation for Post-ticketing Servrice, including baggage etc. Each post-ticketing order will be present as an object.","nullable":true},"refundVouchers":{"type":"array","items":{"$ref":"#/components/schemas/RefundVoucher"},"description":"If `refundMethod` is Voucher, the `refundVouchers` is not null.","nullable":true},"serviceFee":{"description":"Service fee of refund.","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 refund."}},"required":["currency","transactionFee"]},"refundRules":{"type":"array","items":{"$ref":"#/components/schemas/RefundRule"},"description":"The refund rules for the fare whose refund quote has been requested."},"orderNo":{"type":"string","description":"Original order number"},"isRefundable":{"type":"boolean","description":"True : Refundable False: Non-Refundable\ntrue or false"}},"required":["status","fastConfirmation","expectedConfirmationDate","expectedRefundDate","refundQuoteType","refundOfferId","refundMethod","refundTickets","serviceFee","orderNo","isRefundable"]}}},"headers":{}}}}}},"components":{"schemas":{"RefundPaxSegments":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger requesting a refund."},"firstName":{"type":"string","description":"First name of the passenger requesting a refund."},"segments":{"type":"array","items":{"$ref":"#/components/schemas/RefundSegment"}},"refundReason":{"type":"string","description":"Code representing the reason for the refund request.\n- 0: Involuntary\n- 1: Voluntary\n- 4: Void","enum":["0","1","4"]}},"required":["lastName","firstName","segments","refundReason"]},"RefundSegment":{"type":"object","properties":{"depDate":{"type":"string","description":"Departure date of the segment which the passenger wants to refund. the format is `yyyyMMdd`.","format":"date"},"flightNo":{"type":"string","description":"Flight number of the segment which the passenger wants to refund."},"depAirport":{"type":"string","description":"3-letter IATA code of the departure airport."},"arrAirport":{"type":"string","description":"3-letter IATA code of the arrival airport."}},"required":["depDate","flightNo","depAirport","arrAirport"]},"RefundTicket":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger who wants to refund."},"firstName":{"type":"string","description":"First name of the passenger who wants to refund."},"ticketNo":{"type":"string","description":"The PNR received from the airline in the retrieve PNR response."}},"required":["lastName","firstName","ticketNo"]},"RefundFareAmount":{"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."},"displayOriginalFareAmount":{"type":"number","description":"Original Fare Amount in display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"EstimatedRefundAmount in display currency.","nullable":true}},"required":["currency","originalFareAmount","estimatedRefundAmount"]},"RefundPostTicketingServiceAmount":{"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."},"displayPostTicketingServiceAmount":{"type":"number","description":"The original post-ticketing service amount in the display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"The estimated refund amount displayed in the display currency.","nullable":true}},"required":["currency","originalPostTicketingServiceAmount","estimatedRefundAmount","postTicketingOrderNo"],"description":"The refund calculation for Post-ticketing Servrice, including baggage"},"RefundVoucher":{"type":"object","properties":{"voucherId":{"type":"string","description":"A unique identifier of Atlas used to distinguish different vouchers.","nullable":true},"voucherCode":{"type":"string","description":"The voucherCode airline returned.","nullable":true},"eligiblePassengers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The eligible passenger’s name.","nullable":true}}},"description":"The passenger information eligible to use this voucher."},"airline":{"type":"string","description":"The airline from which the voucher originates.","nullable":true},"estimatedRefundAmount":{"type":"number","description":"The amount value of the voucher."},"currency":{"type":"string","description":"The currency type of the voucher."},"voucherStartDate":{"type":"string","description":"The date on which the voucher can begin to be used. Defaults to the date when the refund status is set to \"Refunded\". The format is `yyyyMMdd`.","nullable":true},"voucherEndDate":{"type":"string","description":"The expiry date of the voucher. The format is `yyyyMMdd`.","nullable":true},"travelStartDate":{"type":"string","description":"The actual travel start date. The format is `yyyyMMdd`.","nullable":true},"travelEndDate":{"type":"string","description":"The actual travel end date. The format is `yyyyMMdd`.","nullable":true},"note":{"type":"string","description":"A brief description or usage rule explanation for the voucher.","nullable":true}},"required":["estimatedRefundAmount","currency"],"description":"Information about the voucher refund."},"RefundRule":{"type":"object","properties":{"airline":{"type":"string","description":"Airline code for which the refund rule applies.\n 2-letter IATA airline code."},"ruleType":{"type":"string","description":"Rule type.\n0: Involuntary Refund\n1: Voluntary Refund \n2: Tax Refund\n3: Special Refund\n4: Void Refund","enum":["0","1","2","3","4"]},"passengerType":{"type":"string","description":"Passenger type for which the refund rule applies.\nCan be ADT (Adult), CHD (Child), INF (Infant).","enum":["ADT","CHD","INF"]},"penaltyAmount":{"type":"string","description":"The penalty amount charged for the refund.\nMonetary value with currency code."},"penaltyPercent":{"type":"number","description":"The percentage of the fare charged as penalty."},"penaltyPercentBase":{"type":"string","description":"The calculation on which the penalty percentage is based.\nCan be fare, fare+tax.","enum":["fare","fare+tax"]},"airlineFee":{"type":"string","description":"Additional airline fee for processing the refund.\n Monetary value with currency code."},"taxRefundable":{"type":"boolean","description":"Indicates whether the tax is refundable is available.\ntrue or false"},"fareRefundable":{"type":"boolean","description":"Indicates whether the ticket is refundable.\ntrue or false."},"refundableAncillaries":{"type":"array","items":{"type":"string","description":"Refundable ancillary service\nThe options are:\nStandardCheckInBaggage\nCabinBaggage\nCabinBaggageUnderSeat\nCabinBaggageOverheadLocker","enum":["StandardCheckInBaggage","CabinBaggage","CabinBaggageUnderSeat","CabinBaggageOverheadLocker"]},"description":"List of refundable ancillary services, if any."},"startMinute":{"type":"integer","description":"Starting time of rule application. \nPositive numbers represent XXX minutes before departure.\nNegative numbers represent XXX minutes after departure."},"endMinute":{"type":"integer","description":"Ending time of rule application. \nPositive numbers represent XXX minutes before departure. \nNegative numbers represent XXX minutes after departure."},"refundMethod":{"type":"string","description":"Refund method:\nCashBackToOriginalPayment or Voucher.\n- CashBackToOriginalPayment: Refund cash back to the original form of payment\n- Voucher: Refund in the form of a voucher","enum":["CashBackToOriginalPayment","Voucher"]}},"required":["airline","ruleType"]}}}}
```

## Make a Refund

> \*\*Dependency\*\*\
> Refund quotation function should be called in prior of this call\
> \
> \*\*Endpoint:\*\*\
> <https://sandbox.atriptech.com/refund.do>

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/refund.do":{"post":{"summary":"Make a Refund","deprecated":false,"description":"**Dependency**\nRefund quotation function should be called in prior of this call\n\n**Endpoint:**\nhttps://sandbox.atriptech.com/refund.do","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. If you use `orderNo`, the `airlinePNR` and `carrier` fields may be null.","nullable":true},"airlinePNR":{"type":"string","description":"The record locator of the airline. You can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"carrier":{"type":"string","description":"2 character IATA airline code. you can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"displayCurrency":{"type":"string","description":"The alternative currency in which the fare and taxes amount needs to be displayed. The 3-letter currency code should be entered.","nullable":true},"refundOfferId":{"type":"string","description":"Get this from the refund quotation response. You can request with refundOfferId or refundRequestList. If you use `refundRequestList`, the field `refundOfferId` is null.","nullable":true},"refundRequestList":{"type":"array","items":{"$ref":"#/components/schemas/RefundPaxSegments"},"description":"You can request with refundOfferId or refundRequestList. If you use `refundOfferId`, the field `refundRequestList` is null.","nullable":true}},"required":["orderNo","airlinePNR","carrier","refundOfferId"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRefundApplyResponse"}}},"headers":{}}}}}},"components":{"schemas":{"RefundPaxSegments":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger requesting a refund."},"firstName":{"type":"string","description":"First name of the passenger requesting a refund."},"segments":{"type":"array","items":{"$ref":"#/components/schemas/RefundSegment"}},"refundReason":{"type":"string","description":"Code representing the reason for the refund request.\n- 0: Involuntary\n- 1: Voluntary\n- 4: Void","enum":["0","1","4"]}},"required":["lastName","firstName","segments","refundReason"]},"RefundSegment":{"type":"object","properties":{"depDate":{"type":"string","description":"Departure date of the segment which the passenger wants to refund. the format is `yyyyMMdd`.","format":"date"},"flightNo":{"type":"string","description":"Flight number of the segment which the passenger wants to refund."},"depAirport":{"type":"string","description":"3-letter IATA code of the departure airport."},"arrAirport":{"type":"string","description":"3-letter IATA code of the arrival airport."}},"required":["depDate","flightNo","depAirport","arrAirport"]},"ApiRefundApplyResponse":{"type":"object","properties":{"status":{"type":"integer","description":"Status code. \n0 : Success\n801：Order not found for refund. Check the original main ticket order number.\n802：Child cannot travel alone on this booking. Contact airline directly for resolution.\n803：Refund already submitted for this passenger or segment. Query refund status instead.\n804：All segments of the same PNR must be submitted together. Include all segments and retry.\n8041：Segment not found in this order. Verify segment details match the original booking.\n805：refundOfferId expired. Call refundOffer.do again for a fresh ID, then resubmit.\n806：Please submit Self Refund instead.\n807：Passenger not found in this order. Verify passenger details match the original booking.\n808：This ticket is non-refundable per airline policy.\n809：Order not yet ticketed. Wait until orderQuery.do returns order_status=2 before refunding.\n810：Invalid request parameters\n811：Incomplete itinerary: all legs/segments required. Resubmit with full round-trip or connection.\n812：Refund passenger details are inconsistent with the original booking\n813：Illegal refund offer state\n814：Refund submission already in progress. Wait before retrying.\n815：Ticket not found. Verify ticket number and order number.\n816：Refund already submitted for this order. Query refund status instead of resubmitting.\n817：Refund already submitted for this order. Query refund status instead of resubmitting.\n818：Refund already submitted for this order. Query refund status instead of resubmitting.\n819：Refund claim not supported for this payment method. Use an alternative refund method.\n820：Ticket already used — cannot refund a flown segment.\n821：Refund deadline exceeded. This ticket is no longer eligible for refund.\n822：Refund deadline exceeded. This ticket can no longer be refunded.\n823：Refund must apply to all passengers — partial refund not allowed. Include all pax and retry.\n824：Wrong orderNumber: use the main ticket order, not the ancillary order number.\n825：For voluntary refunds after departure, submit a refund booking through the Flight Deck.\n826：Unable to confirm airline tax refund status. Refund request cannot be processed.\n840：Client cancellation criteria not met. Check account cancellation policy.\n841：Refund not support the payment method. Please contact the airline directly for resolution.\n842：Atlas does not currently support REFUND service for the airline or route of this booking.\n843：Atlas does not currently support refund service for the airline or route of this booking.","enum":[0,2]},"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},"displayCurrency":{"type":"string","description":"The alternative currency in which the fare and taxes amount needs to be displayed. The 3-letter currency code should be entered.","nullable":true},"fastConfirmation":{"type":"integer","description":"Fast confirmation depends on whether the airline supports auto fulfillment.\n0 for False, 1 for True.","enum":[0,1]},"expectedConfirmationDate":{"type":"string","description":"Expected date of getting airline refund confirmation. The format is `yyyyMMdd`."},"expectedRefundDate":{"type":"string","description":"Expected date of getting refund. The format is `yyyyMMdd`."},"refundQuoteType":{"type":"string","description":"Type of refund quote:\n- AccurateQuote：quotation based on the calculated amount.\n- CannotQuote: quotation is unknown and will be according to the airline's rates","enum":["AccurateQuote","CannotQuote"]},"refundOfferId":{"type":"string","description":"Refund offer id for this quotation which can be used for the coming refund call."},"refundMethod":{"type":"string","description":"Refund method: CashBackToOriginalPayment or Voucher.\n- CashBackToOriginalPayment: Refund cash back to the original form of payment.\n- Voucher: Refund in the form of a voucher.","enum":["CashBackToOriginalPayment","Voucher"]},"refundTickets":{"type":"array","items":{"$ref":"#/components/schemas/RefundTicket"},"description":"The refund calculation for each of the passengers whose refund quote has been requested"},"refundFareAmount":{"$ref":"#/components/schemas/RefundFareAmount","description":"If `refundMethod` is CashBackToOriginalPayment, the `refundFareAmount` field is not null and the `refundVouchers` is null.","nullable":true},"refundPostTicketingServiceAmounts":{"$ref":"#/components/schemas/RefundPostTicketingServiceAmount","description":"The refund calculation for Post-ticketing Servrice, including baggage etc. Each post-ticketing order will be present as an object.","nullable":true},"refundVouchers":{"type":"array","items":{"$ref":"#/components/schemas/RefundVoucher"},"description":"If `refundMethod` is Voucher, the `refundVouchers` is not null.","nullable":true},"serviceFee":{"$ref":"#/components/schemas/ServiceFee1","description":"Service fee of refund."},"refundRules":{"type":"array","items":{"$ref":"#/components/schemas/RefundRule"},"description":"The refund rules for the fare whose refund quote has been requested."},"orderNo":{"type":"string","description":"Original order number"},"isRefundable":{"type":"boolean","description":"True : Refundable False: Non-Refundable\ntrue or false"},"refundStatus":{"type":"integer","description":"The present status of the refund.\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"},"refundCode":{"type":"string","description":"Refund order number generated for this refund request"},"cancelReason":{"type":"string","description":"The reason why the refund was cancelled.\nThe refund reasons are:\nDoes not match airline policy\nThere is no schedule change from the airline side. Please refer the ticket Fare Rules available in ATRIP flight deck for cancellation charges.\nVoluntary Cancellation - Non-Refundable\nAs per airline policy, only voucher refund is available for the ticket\nRefund request cancelled by the user\nTravel has been completed by the passenger\nRefund not yet received from the airline. Please try again later.","nullable":true},"refundReason":{"type":"string","description":"Refund reason\n0: Involuntary\n1: Voluntary\n4: Void","enum":["0","1","4"],"nullable":true}},"required":["refundStatus","refundCode","status","fastConfirmation","expectedConfirmationDate","expectedRefundDate","refundQuoteType","refundOfferId","refundMethod","refundTickets","serviceFee","orderNo","isRefundable"]},"RefundTicket":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger who wants to refund."},"firstName":{"type":"string","description":"First name of the passenger who wants to refund."},"ticketNo":{"type":"string","description":"The PNR received from the airline in the retrieve PNR response."}},"required":["lastName","firstName","ticketNo"]},"RefundFareAmount":{"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."},"displayOriginalFareAmount":{"type":"number","description":"Original Fare Amount in display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"EstimatedRefundAmount in display currency.","nullable":true}},"required":["currency","originalFareAmount","estimatedRefundAmount"]},"RefundPostTicketingServiceAmount":{"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."},"displayPostTicketingServiceAmount":{"type":"number","description":"The original post-ticketing service amount in the display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"The estimated refund amount displayed in the display currency.","nullable":true}},"required":["currency","originalPostTicketingServiceAmount","estimatedRefundAmount","postTicketingOrderNo"],"description":"The refund calculation for Post-ticketing Servrice, including baggage"},"RefundVoucher":{"type":"object","properties":{"voucherId":{"type":"string","description":"A unique identifier of Atlas used to distinguish different vouchers.","nullable":true},"voucherCode":{"type":"string","description":"The voucherCode airline returned.","nullable":true},"eligiblePassengers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The eligible passenger’s name.","nullable":true}}},"description":"The passenger information eligible to use this voucher."},"airline":{"type":"string","description":"The airline from which the voucher originates.","nullable":true},"estimatedRefundAmount":{"type":"number","description":"The amount value of the voucher."},"currency":{"type":"string","description":"The currency type of the voucher."},"voucherStartDate":{"type":"string","description":"The date on which the voucher can begin to be used. Defaults to the date when the refund status is set to \"Refunded\". The format is `yyyyMMdd`.","nullable":true},"voucherEndDate":{"type":"string","description":"The expiry date of the voucher. The format is `yyyyMMdd`.","nullable":true},"travelStartDate":{"type":"string","description":"The actual travel start date. The format is `yyyyMMdd`.","nullable":true},"travelEndDate":{"type":"string","description":"The actual travel end date. The format is `yyyyMMdd`.","nullable":true},"note":{"type":"string","description":"A brief description or usage rule explanation for the voucher.","nullable":true}},"required":["estimatedRefundAmount","currency"],"description":"Information about the voucher refund."},"ServiceFee1":{"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 refund."},"displayTransactionFee":{"type":"number","description":"TransactionFee in display currency.","nullable":true}},"required":["currency","transactionFee"],"description":"Service fee of refund."},"RefundRule":{"type":"object","properties":{"airline":{"type":"string","description":"Airline code for which the refund rule applies.\n 2-letter IATA airline code."},"ruleType":{"type":"string","description":"Rule type.\n0: Involuntary Refund\n1: Voluntary Refund \n2: Tax Refund\n3: Special Refund\n4: Void Refund","enum":["0","1","2","3","4"]},"passengerType":{"type":"string","description":"Passenger type for which the refund rule applies.\nCan be ADT (Adult), CHD (Child), INF (Infant).","enum":["ADT","CHD","INF"]},"penaltyAmount":{"type":"string","description":"The penalty amount charged for the refund.\nMonetary value with currency code."},"penaltyPercent":{"type":"number","description":"The percentage of the fare charged as penalty."},"penaltyPercentBase":{"type":"string","description":"The calculation on which the penalty percentage is based.\nCan be fare, fare+tax.","enum":["fare","fare+tax"]},"airlineFee":{"type":"string","description":"Additional airline fee for processing the refund.\n Monetary value with currency code."},"taxRefundable":{"type":"boolean","description":"Indicates whether the tax is refundable is available.\ntrue or false"},"fareRefundable":{"type":"boolean","description":"Indicates whether the ticket is refundable.\ntrue or false."},"refundableAncillaries":{"type":"array","items":{"type":"string","description":"Refundable ancillary service\nThe options are:\nStandardCheckInBaggage\nCabinBaggage\nCabinBaggageUnderSeat\nCabinBaggageOverheadLocker","enum":["StandardCheckInBaggage","CabinBaggage","CabinBaggageUnderSeat","CabinBaggageOverheadLocker"]},"description":"List of refundable ancillary services, if any."},"startMinute":{"type":"integer","description":"Starting time of rule application. \nPositive numbers represent XXX minutes before departure.\nNegative numbers represent XXX minutes after departure."},"endMinute":{"type":"integer","description":"Ending time of rule application. \nPositive numbers represent XXX minutes before departure. \nNegative numbers represent XXX minutes after departure."},"refundMethod":{"type":"string","description":"Refund method:\nCashBackToOriginalPayment or Voucher.\n- CashBackToOriginalPayment: Refund cash back to the original form of payment\n- Voucher: Refund in the form of a voucher","enum":["CashBackToOriginalPayment","Voucher"]}},"required":["airline","ruleType"]}}}}
```

## Query Refund Status

> \*\*Dependency\*\*\
> No preceding function needs to be carried out.\
> \
> \*\*Endpoint:\*\*\
> <https://sandbox.atriptech.com/queryRefundOrders.do>

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/queryRefundOrders.do":{"post":{"summary":"Query Refund Status","deprecated":false,"description":"**Dependency**\nNo preceding function needs to be carried out.\n\n**Endpoint:**\nhttps://sandbox.atriptech.com/queryRefundOrders.do","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":{"refundCode":{"type":"string","description":"The code of the refund transaction received in the refund.do response."},"orderNo":{"type":"string","description":"Atlas original order number. You can choose to request either orderNo or both airlinePNR and carrier. If you use `orderNo`, the `airlinePNR` and `carrier` fields may be null.","nullable":true},"airlinePNR":{"type":"string","description":"The record locator of the airline. You can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"carrier":{"type":"string","description":"2 character IATA airline code. you can choose to request either orderNo or both airlinePNR and carrier. If you use `airlinePNR` and `carrier`, the `orderNo`  field may be null.","nullable":true},"displayCurrency":{"type":"string","description":"The alternative currency in which the fare and taxes amount needs to be displayed. The 3-letter currency code should be entered.","nullable":true}},"required":["orderNo","refundCode","airlinePNR","carrier"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"refundOrders":{"type":"array","items":{"$ref":"#/components/schemas/RefundOrder"}},"status":{"type":"integer","description":"Status code. \n0 : Success\n801：Order not found for refund. Check the original main ticket order number.\n802：Child cannot travel alone on this booking. Contact airline directly for resolution.\n803：Refund already submitted for this passenger or segment. Query refund status instead.\n804：All segments of the same PNR must be submitted together. Include all segments and retry.\n8041：Segment not found in this order. Verify segment details match the original booking.\n805：refundOfferId expired. Call refundOffer.do again for a fresh ID, then resubmit.\n806：Please submit Self Refund instead.\n807：Passenger not found in this order. Verify passenger details match the original booking.\n808：This ticket is non-refundable per airline policy.\n809：Order not yet ticketed. Wait until orderQuery.do returns order_status=2 before refunding.\n810：Invalid request parameters\n811：Incomplete itinerary: all legs/segments required. Resubmit with full round-trip or connection.\n812：Refund passenger details are inconsistent with the original booking\n813：Illegal refund offer state\n814：Refund submission already in progress. Wait before retrying.\n815：Ticket not found. Verify ticket number and order number.\n816：Refund already submitted for this order. Query refund status instead of resubmitting.\n817：Refund already submitted for this order. Query refund status instead of resubmitting.\n818：Refund already submitted for this order. Query refund status instead of resubmitting.\n819：Refund claim not supported for this payment method. Use an alternative refund method.\n820：Ticket already used — cannot refund a flown segment.\n821：Refund deadline exceeded. This ticket is no longer eligible for refund.\n822：Refund deadline exceeded. This ticket can no longer be refunded.\n823：Refund must apply to all passengers — partial refund not allowed. Include all pax and retry.\n824：Wrong orderNumber: use the main ticket order, not the ancillary order number.\n825：For voluntary refunds after departure, submit a refund booking through the Flight Deck.\n826：Unable to confirm airline tax refund status. Refund request cannot be processed.\n840：Client cancellation criteria not met. Check account cancellation policy.\n841：Refund not support the payment method. Please contact the airline directly for resolution.\n842：Atlas does not currently support REFUND service for the airline or route of this booking.\n843：Atlas does not currently support refund service for the airline or route of this booking."},"msg":{"type":"string","description":"Error message","nullable":true}},"required":["refundOrders","status"]}}},"headers":{}}}}}},"components":{"schemas":{"RefundOrder":{"type":"object","properties":{"orderNo":{"type":"string","description":"Original order number"},"refundCode":{"type":"string","description":"Refund order number generated for this refund request"},"displayCurrency":{"type":"string","description":"The alternative currency in which the fare and taxes amount needs to be displayed. The 3-letter currency code should be entered.","nullable":true},"expectedConfirmationDate":{"type":"string","description":"Expected date of getting airline refund confirmation. The format is `yyyyMMdd`."},"expectedRefundDate":{"type":"string","description":"Expected date of getting refund. The format is `yyyyMMdd`."},"refundQuoteType":{"type":"string","description":"Type of refund quote:\nAccurateQuote：quotation based on the calculated amount.\nCannotQuote: quotation is unknown and will be according to the airline's rates","enum":["AccurateQuote","CannotQuote"]},"refundTickets":{"type":"array","items":{"$ref":"#/components/schemas/RefundTicket"},"description":"The refund calculation for each of the passengers whose refund quote has been requested"},"refundFareAmount":{"$ref":"#/components/schemas/RefundFareAmount","nullable":true,"description":"If `refundMethod` is CashBackToOriginalPayment, the `refundFareAmount` field is not null."},"refundPostTicketingServiceAmounts":{"type":"array","items":{"$ref":"#/components/schemas/RefundPostTicketingServiceAmount"},"description":"The refund calculation for Post-ticketing Servrice, including baggage etc. Each post-ticketing order will be present as an object.","nullable":true},"refundVouchers":{"type":"array","items":{"$ref":"#/components/schemas/RefundVoucher"},"description":"If `refundMethod` is Voucher,  the `refundVouchers` field is not null.","nullable":true},"serviceFee":{"$ref":"#/components/schemas/ServiceFee1","description":"Service fee of refund."},"refundRules":{"type":"array","items":{"$ref":"#/components/schemas/RefundRule"},"description":"The refund rules for the fare whose refund quote has been requested."},"refundStatus":{"type":"integer","description":"The present status of the refund.\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","enum":[0,1,2,3,4,5,6]},"cancelReason":{"type":"string","description":"The reason why the refund was cancelled.\nThe refund reasons are:\nDoes not match airline policy.\nThere is no schedule change from the airline side. \\nPlease refer the ticket Fare Rules available in ATRIP flight deck for cancellation charges.\nVoluntary Cancellation - Non-Refundable\nAs per airline policy, only voucher refund is available for the ticket\nRefund request cancelled by the user\nTravel has been completed by the passenger.\nRefund not yet received from the airline. Please try again later.\nThe order is paid by your VCC. please refund by yourself\nIt's issued via your B2B account, please refund by yourself\nRefund is availalbe through airline's B2C website. Please refund by yourself.\nThe refund claim voucher is invalid.\nDuplicate Refund Record\nNeed to provide more materials that meet airline requirements\nActual refund amount less than service fee. Will reject it.","nullable":true},"refundOfferId":{"type":"string","description":"Refund offer id for this quotation which can be used for the coming refund call."},"refundMethod":{"type":"string","description":"Refund method: CashBackToOriginalPayment or Voucher"}},"required":["orderNo","refundCode","expectedConfirmationDate","expectedRefundDate","refundQuoteType","refundTickets","serviceFee","refundRules","refundStatus","refundOfferId","refundMethod"]},"RefundTicket":{"type":"object","properties":{"lastName":{"type":"string","description":"Last name of the passenger who wants to refund."},"firstName":{"type":"string","description":"First name of the passenger who wants to refund."},"ticketNo":{"type":"string","description":"The PNR received from the airline in the retrieve PNR response."}},"required":["lastName","firstName","ticketNo"]},"RefundFareAmount":{"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."},"displayOriginalFareAmount":{"type":"number","description":"Original Fare Amount in display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"EstimatedRefundAmount in display currency.","nullable":true}},"required":["currency","originalFareAmount","estimatedRefundAmount"]},"RefundPostTicketingServiceAmount":{"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."},"displayPostTicketingServiceAmount":{"type":"number","description":"The original post-ticketing service amount in the display currency.","nullable":true},"displayEstimatedRefundAmount":{"type":"number","description":"The estimated refund amount displayed in the display currency.","nullable":true}},"required":["currency","originalPostTicketingServiceAmount","estimatedRefundAmount","postTicketingOrderNo"],"description":"The refund calculation for Post-ticketing Servrice, including baggage"},"RefundVoucher":{"type":"object","properties":{"voucherId":{"type":"string","description":"A unique identifier of Atlas used to distinguish different vouchers.","nullable":true},"voucherCode":{"type":"string","description":"The voucherCode airline returned.","nullable":true},"eligiblePassengers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The eligible passenger’s name.","nullable":true}}},"description":"The passenger information eligible to use this voucher."},"airline":{"type":"string","description":"The airline from which the voucher originates.","nullable":true},"estimatedRefundAmount":{"type":"number","description":"The amount value of the voucher."},"currency":{"type":"string","description":"The currency type of the voucher."},"voucherStartDate":{"type":"string","description":"The date on which the voucher can begin to be used. Defaults to the date when the refund status is set to \"Refunded\". The format is `yyyyMMdd`.","nullable":true},"voucherEndDate":{"type":"string","description":"The expiry date of the voucher. The format is `yyyyMMdd`.","nullable":true},"travelStartDate":{"type":"string","description":"The actual travel start date. The format is `yyyyMMdd`.","nullable":true},"travelEndDate":{"type":"string","description":"The actual travel end date. The format is `yyyyMMdd`.","nullable":true},"note":{"type":"string","description":"A brief description or usage rule explanation for the voucher.","nullable":true}},"required":["estimatedRefundAmount","currency"],"description":"Information about the voucher refund."},"ServiceFee1":{"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 refund."},"displayTransactionFee":{"type":"number","description":"TransactionFee in display currency.","nullable":true}},"required":["currency","transactionFee"],"description":"Service fee of refund."},"RefundRule":{"type":"object","properties":{"airline":{"type":"string","description":"Airline code for which the refund rule applies.\n 2-letter IATA airline code."},"ruleType":{"type":"string","description":"Rule type.\n0: Involuntary Refund\n1: Voluntary Refund \n2: Tax Refund\n3: Special Refund\n4: Void Refund","enum":["0","1","2","3","4"]},"passengerType":{"type":"string","description":"Passenger type for which the refund rule applies.\nCan be ADT (Adult), CHD (Child), INF (Infant).","enum":["ADT","CHD","INF"]},"penaltyAmount":{"type":"string","description":"The penalty amount charged for the refund.\nMonetary value with currency code."},"penaltyPercent":{"type":"number","description":"The percentage of the fare charged as penalty."},"penaltyPercentBase":{"type":"string","description":"The calculation on which the penalty percentage is based.\nCan be fare, fare+tax.","enum":["fare","fare+tax"]},"airlineFee":{"type":"string","description":"Additional airline fee for processing the refund.\n Monetary value with currency code."},"taxRefundable":{"type":"boolean","description":"Indicates whether the tax is refundable is available.\ntrue or false"},"fareRefundable":{"type":"boolean","description":"Indicates whether the ticket is refundable.\ntrue or false."},"refundableAncillaries":{"type":"array","items":{"type":"string","description":"Refundable ancillary service\nThe options are:\nStandardCheckInBaggage\nCabinBaggage\nCabinBaggageUnderSeat\nCabinBaggageOverheadLocker","enum":["StandardCheckInBaggage","CabinBaggage","CabinBaggageUnderSeat","CabinBaggageOverheadLocker"]},"description":"List of refundable ancillary services, if any."},"startMinute":{"type":"integer","description":"Starting time of rule application. \nPositive numbers represent XXX minutes before departure.\nNegative numbers represent XXX minutes after departure."},"endMinute":{"type":"integer","description":"Ending time of rule application. \nPositive numbers represent XXX minutes before departure. \nNegative numbers represent XXX minutes after departure."},"refundMethod":{"type":"string","description":"Refund method:\nCashBackToOriginalPayment or Voucher.\n- CashBackToOriginalPayment: Refund cash back to the original form of payment\n- Voucher: Refund in the form of a voucher","enum":["CashBackToOriginalPayment","Voucher"]}},"required":["airline","ruleType"]}}}}
```


---

# 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-wen-dang/api-can-kao/yu-ding-hou-api/tui-kuan.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.
