1. Request Refund
1) Purpose
채널에서 발생한 환불에 대해 AX Cloud 에 요청합니다.
미리 정해진 환불 규정에 따라 요청할 수 있습니다.
2) Detail
채널에서 정해진 환불 규정에 따라 진행된 환불 정보를 포함하여 요청합니다.
고유한 채널 코드와 유효한 API Key를 Request Header에 정해진 형식으로 입력해야만 호출 가능합니다.
3) Status
환불, 취소에서 발생할 수 있는 대부분의 경우의 수를 정의합니다.
다양한 채널에서 발생할 수 있는 상태에 대해 대응이 가능 합니다.
아래 케이스 API 적용은 빠른 시일 내에 구현 예정 입니다.
Status | Description | |
---|---|---|
1 | New | 새로 주문이 생성되었습니다. |
2 | Pending Request | 파트너가 AX 서비스를 통해 주문을 확인하였지만, 아직 주문을 확정하지 않고 대기하였습니다. |
3 | Channel Pending Sync | AX가 채널에 주문을 확인하였지만 주문을 확정하지 않고 대기 요청을 보냈습니다. |
4 | Pending | 채널에 보낸 대기 요청이 적용되었다는 것을 확인했습니다. |
5 | Confirm Request | 파트너가 AX 서비스를 통해 주문을 확정하였습니다. 하지만 아직 채널에 적용하지 않았습니다. (채널은 New) |
6 | Channel Confirm Sync | AX가 채널에 주문을 확정 요청했습니다. |
7 | AX Confirmed | 채널에 주문의 확정이 적용되었으며 그것을 AX에서 확인하였습니다. |
8 | Reject Request | 파트너가 AX 서비스를 통해 주문을 거절했습니다. |
9 | Channel Reject Sync | AX가 거절된 주문을 채널에 반영했습니다. |
10 | AX Rejected | AX가 채널에서 주문이 거절되었다는 것을 최종으로 확인했습니다. |
11 |
|
|
12 |
|
|
13 |
|
|
14 | Traveler Cancel Request Before Confirm | 주문이 확정 되기 전에 여행자가 주문을 취소한 경우입니다. |
15 | Traveler Cancel Partner Confirm | 여행자가 취소한 주문을 파트너가 확인했습니다. |
16 | Channel Cancel Confirm Sync | 취소된 주문을 파트너가 확인했다는 것을 채널에 적용했습니다. |
17 | Traveler Canceled Before Confirm | 취소된 주문을 파트너가 확인했다는 것이 채널에 적용되었다는 것을 확인했습니다. |
18 | Traveler Cancel Request After Confirm | 주문이 확정된 후에 여행자가 주문을 취소한 경우입니다. |
19 | Traveler Canceled After Confirm | 주문이 확정된 후에 취소한 주문을 파트너가 확인했습니다. |
20 | Traveler Cancel Request with Confirm Conflict | 주문을 파트너가 확정 요청을 했지만, 채널에 반영하기 전에 여행자가 취소한 경우입니다. |
21 | Traveler Cancel Request With Long Time Lag | 파트너가 확정 요청한 시각과 여행자가 취소한 시각의 시간차가 긴 경우입니다. |
22 | Traveler Cancel Partner Confirm With Long Time Lag | 파트너가 Long Time Lag에 따라 시간차가 발생한 경우를 확인했습니다. |
23 | Channel Cancel Confirm Sync With Long Time Lag | Long Time Lag의 경우일 때, 채널에 주문이 취소되었다는 것을 적용합니다. |
24 | Traveler Canceled With Long Time Lag | 파트너는 주문을 확정했지만 Long Time Lag로 인해 여행자가 주문을 취소했습니다. |
25 | Traveler Cancel Request With Short Time Lag | 파트너가 확정 요청한 시각과 여행자가 취소한 시각의 시간차가 짧은 경우입니다. |
26 | Traveler Cancel Partner Confirm With Short Time Lag | 파트너가 Short Time Lag에 따라 시간차가 발생한 경우를 확인했습니다. |
27 | Channel Cancel Confirm Sync With Short Time Lag | Short Time Lag의 경우일 때, 채널에 주문이 취소되었다는 것을 적용합니다. |
28 | Traveler Canceled With Short Time Lag | 파트너는 주문을 확정했지만 Short Time Lag 로 인해 여행자가 주문을 취소했습니다. |
29 | Traveler Cancel Request with Reject Conflict | 파트너가 주문을 거절하였는데, 여행자가 주문을 취소한 경우입니다. |
30 | Traveler Cancel Partner Confirm With Reject Conflict | 파트너가 거절한 주문이 취소되었다는 것을 확인했습니다. |
31 | Channel Cancel Confirm Sync | 채널에 거절되었다는 것을 확인했습니다. |
32 | Traveler Canceled with Reject Conflict | 파트너가 거절했지만, 여행자가 주문을 취소해서 취소 처리되었습니다. |
4) Action
Status 변경하는 주체와 Action 에 대해 정의 합니다.
정의된 모든 Status 들의 변경에 대응 합니다.
아래 케이스 API 적용은 빠른 시일 내에 구현 예정 입니다.
Action | Subject | Input | Output | Description | |
---|---|---|---|---|---|
1 | Reject Request | Partner | Pending | Reject Request | 파트너가 주문을 AX 서비스를 통해 거절합니다 |
2 | Reflect Channel Reject | AX | Reject Request | Channel Reject Sync | AX가 거절된 주문을 채널에 적용합니다. |
3 | Reflect AX Reject | AX | Channel Reject Sync | AX Rejected | 채널에 주문이 거절되었다는 것을 AX가 확인합니다. |
4 |
|
| AX Confirmed |
|
|
5 |
|
|
|
|
|
6 |
|
|
|
|
|
7 | Traveler Cancel Before Confirm | Channel |
| Traveler Cancel Request Before Confirm | 주문이 확정되기 전에 여행자가 주문을 취소합니다 |
8 | Partner Cancel Confirm | Partner | Traveler Cancel Request Before Confirm | Channel Cancel Request Confirm needed | 주문이 취소된 것을 파트너가 확인했습니다. |
9 | Reflect Channel Confirm canceled | AX | Channel Cancel Request Confirm needed | Partner Confirm Cancel Request | 취소된 것을 채널에 반영 요청했습니다 |
10 | Reflect Cancel Status on AX | AX | Partner Confirm Cancel Request | Channel Cancel Confirm Sync | 채널에서 반영되었다는 것을 확인했습니다 |
11 | Traveler Cancel After Confirm | Channel | AX Confirmed | Traveler Cancel Request After Confirm | 주문이 확정된 후에 여행자가 취소했습니다. |
12 | Partner Cancel Confirm | Partner | Traveler Cancel Request After Confirm | Traveler Canceled After Confirm | 여행자가 주문을 취소한 것을 파트너가 확인했습니다. |
13 | Traveler Cancel With Confirm Conflict | Channel | Confirm Request | Traveler Cancel Request with Confirm Conflict | 파트너의 확정 요청을 적용하기 전에 여행자가 주문을 취소했습니다. |
14 | Long Time Lag | AX | Traveler Cancel Request with Confirm Conflict | Traveler Cancel Request With Long Time Lag | 확정 발생 시각과 취소 발생 시각 간의 차이가 큽니다. |
15 | Partner Cancel Confirm | Partner | Traveler Cancel Request With Long Time Lag | Traveler Cancel Partner Confirm With Long Time Lag | 파트너가 Long Time Lag상태를 확인했습니다. |
16 | Reflect Channel Confirm canceled | AX | Traveler Cancel Partner Confirm With Long Time Lag | Channel Cancel Confirm Sync With Long Time Lag | 채널에 확정된 주문이 취소된 것을 확인하였습니다. |
17 | Reflect Cancel Status on AX | AX | Channel Cancel Confirm Sync With Long Time Lag | Traveler Canceled With Long Time Lag | 취소가 된 것을 확인하여 AX에 적용합니다. |
18 | Short Time Lag | AX | Traveler Cancel Request with Confirm Conflict | Traveler Cancel Request With Short Time Lag | 확정 발생 시각과 취소 발생 시각 간의 차이가 짧습니다. |
19 | Partner Cancel Confirm | Partner | Traveler Cancel Request With Short Time Lag | Traveler Cancel Partner Confirm With Short Time Lag | 파트너가 Short Time Lag상태를 확인했습니다. |
20 | Reflect Channel Confirm canceled | AX | Traveler Cancel Partner Confirm With Short Time Lag | Channel Cancel Confirm Sync With Short Time Lag | 채널에 주문 취소를 반영했습니다. |
21 | Reflect Cancel Status on AX | AX | Channel Cancel Confirm Sync With Short Time Lag | Traveler Canceled With Short Time Lag | 주문 취소가 채널에 반영되었다는 것을 확인했습니다. |
22 | Traveler Cancel With Reject Request | Channel | Reject Request | Traveler Cancel Request with Reject Conflict | 파트너가 거절 요청한 상품을 채널에 적용하기 전에 여행자가 취소했습니다. |
23 | Partner Cancel Confirm | Partner | Traveler Cancel Request with Reject Conflict | Traveler Cancel Partner Confirm With Reject Conflict | 파트너가 주문 취소된 걸 확인했습니다. |
24 | Reflect Channel Confirm canceled | AX | Traveler Cancel Partner Confirm With Reject Conflict | Channel Cancel Confirm Sync | 주문 취소된걸 확인했다는 것을 채널에 적용합니다. |
25 | Reflect Cancel Status on AX | AX | Channel Cancel Confirm Sync | Traveler Canceled with Reject Conflict | 채널에 적용된 것을 확인했습니다. |
26 | Request Refund to PG from Channel | Channel | Waiting Channel to PG for Refund | PG Requested from Channel for Refund | 채널이 PG사에 환불을 요청합니다. |
27 | PG Start Refund | PG | PG Requested from Channel for Refund | PG Start Refund | PG사에서 요청받은 환불을 시작했습니다. |
28 | PG Complete Refund | PG | PG Start Refund | PG Complete Refund | PG사에서 요청받은 환불을 완료했습니다. |
29 | Apply Refund to Channel from PG | Channel | PG Complete Refund | Channel Refund Complete | 채널이 PG사에 환불이 완료되었다는 것을 확인했습니다. |
2. API Spec
1) Request
Endpoint | https://prod.ax-cloud.com/v1/channel/orders/ticket/{ax_order_code}/tickets/{ticket_code}/refunds |
---|---|
Method | POST |
Description | 채널에서 특정 주문의 환불이 진행된 건에 대해 AX Cloud와 동기화합니다. |
Content-Type | application/json |
Headers > Authorization | Token {api_key} |
Headers > Channel | Code {channel_code} |
2) Body Parameter
Name | Required | Type | Description |
---|---|---|---|
price | O | String |
|
canceled_datetime | O | Datetime |
|
refunded_datetime | O | Datetime |
|
policy | O | Object |
|
3) Response
Name | Type | Description |
---|---|---|
status_code | Integer | 정상 처리 시 200 |
4) Error Spec
3. Request Example
1) CURL
curl -X 'PATCH' \ 'https://prod.ax-cloud.com/v1/channel/orders/ticket/b9872ed4-12c5-4fb5-ae18-4f39b11ee912/tickets/915c1218-f41c-492b-bb0b-96177ff4d2ee/refunds' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ \ "price": "5000", "canceled_datetime": "2021-01-20 21:13:13", "refunded_datetime": "2021-01-20 23:24:29", "policy": {"0%": "Use date 1일 전부터는 환불 불가", "50%": "Use date 3일 전", "100%": “Use date 7일 전"} }'