# 환불

결제가 취소되면 엑솔라는 취소된 거래 내역을 refund 유형의 웹훅으로 웹훅 URL로 전송합니다.

웹훅 재시도 메커니즘은 환불을 시작한 사람에 따라 달라집니다:
* 환불이 귀하 측에서 요청된 경우 웹훅은 재전송되지 않습니다. 웹훅에 대한 응답 여부와 관계없이 결제 금액은 사용자에게 환불됩니다.
* 제3자(예: 결제 시스템 또는 엑솔라 고객 지원팀)가 환불을 요청했고 웹훅에 대한 응답으로 5xx 상태 코드가 반환된 경우, 웹훅은 점점 
  더 빠른 간격으로 재전송됩니다. 재시도 횟수는 첫 번째 시도 후 48시간 이내에 최대 12회입니다.

환불 절차에 대한 자세한 내용은 지침을 참조하세요.


주의
다음 조건을 모두 충족하는 경우에도 사용자에게 결제가 환불됩니다:환불이 엑솔라 측에서 요청한 경우.웹훅에 대한 응답으로, 4xx 상태 코드가 반환되거나 모든 재시도 후 응답을 받지 않거나 5xx 상태 코드가 반환된 경우.


계정에 웹훅 URL을 저장할 때 웹훅에서 추가 정보를 수신하도록 
설정할 수도 있습니다.


참고
2025년 1월 22일 또는 그 이전에 관리자 페이지에 가입한 경우, 프로젝트의 설정 &gt; 웹훅 &gt; 테스트 &gt; 페이먼트 솔루션 &gt; 고급 설정 섹션에서 토글을 찾을 수 있습니다.




    
        토글
        설명
    


    
        저장된 결제 방식을 사용한 트랜잭션에 대한 정보 표시
        정보는 웹훅의 다음 사용자 정의 매개 변수에서 전달됩니다.saved_payment_method:0 - 저장된 결제 방식이 사용되지 않음1 - 현재 결제를 진행할 때 결제 방식이 저장됨2 - 이전에 저장한 결제 방식이 사용됨payment_type:1 - 일회성 결제2 - 반복 결제
    
    
        환불 사유에 대한 정보를 표시합니다.
        환불 사유에 대한 자세한 정보입니다.
    



환불 코드:


    
    
        코드
        환불 이유
        설명
    
    
    
    
        1
        Cancellation by the user request / the game request
        계정에서 취소가 요청되었습니다.
    
    
        2
        Chargeback
        거래 지불 거절 요청되었습니다.
    
    
        3
        Integration error
        엑솔라와 게임 사이의 연동에 문제가 있을 경우 사용됩니다.권장 사항: 사용자를 차단 목록에 추가하지 마세요.
    
    
        4
        Potential fraud – AFS reject
        엑솔라 부정 결제 방지 시스템에서 부정 결제 가능성을 감지하여 거래가 거부되었습니다.
    
    
        5
        Test payment
        테스트 트랜잭션인 경우 사용되며 이후 취소로 이어집니다.권장 사항: 사용자를 차단 목록에 추가하지 마세요.
    
    
        6
        User invoice expired
        후불 결제 방식에 의해 트랜잭션이 이뤄진 경우 사용됩니다.
    
    
        7
        Fraud notification from PS
        결제 시스템에서 부정 결제 가능성을 감지하여 결제가 거부되었습니다.권장 사항: 사용자를 차단 목록에 추가하세요.
    
    
        8
        Cancellation by the PS request
        결제시스템이 취소를 요청한 경우 사용됩니다.권장사항: 사용자를 차단 목록에 추가하지 마세요.
    
    
        9
        Cancellation by the user request
        사용자의 요청에 의한 환불 사유입니다. 어떤 이유로 사용자가 게임 또는 구매에 만족하지 못한 못하였음을 의미합니다.권장 사항: 사용자를 차단 목록에 추가하지 마세요.
    
    
        10
        Cancellation by the game request
        게임을 통해 취소를 요청한 경우 사용됩니다.권장 사항: 사용자를 차단 목록에 추가하지 마세요.
    
    
        11
        Account holder called to report fraud
        계정 소유자가 해당 거래를 하지 않았다고 진술했습니다.권장 사항: 사용자를 차단 목록에 추가하세요.
    
    
        12
        Potential fraud – friendly fraud
        정당한 카드 소유자가 해당 거래에 이의를 제기했습니다.
    
    
        13
        Duplicate
        동일 인보이스에 대하여 거래 복제.
    
    
        21
        Potential fraud – BIN attack
        하나 이상의 BIN에서 카드가 일괄적으로 도난되었습니다. 짧은 시간에 동일한 BIN 범위를 공유하는 시도가 급증하고 카드 번호가 순차적으로 열거되는 경우가 많다는 것이 주요 지표입니다.
    
    
        22
        Potential fraud – monetization fraud
        도난 카드를 사용하여 재판매 목적으로 거래 가능한 아이템을 구매했습니다.
    
    
        23
        Potential fraud – low-scale card fraud
        하나 이상의 BIN에서 카드가 도난되었습니다. BIN 공격(환불 코드 21)만큼 광범위하거나 조직적이지는 않습니다.
    
    
        24
        Potential fraud – regional price abuse
        지역별 가격 책정 또는 키 재판매 악용입니다. 사용자가 일반적으로 위치나 결제 수단을 허위로 표시하여 지역별 가격을 악용하고, 더 비싼 시장에서 재판매할 목적으로 아이템을 저렴하게 획득했습니다.
    
    
        25
        Potential fraud – partner or PS exploit
        자격 증명 도용 및 계정 탈취입니다. 카드 자체를 직접 악용한 것이 아니라 파트너 측 또는 결제 시스템 측 계정이나 연동을 악용했습니다.
    
    
        26
        Potential fraud – not definable
        부정 결제가 확인되었지만 정확한 공격 유형을 판단할 증거가 충분하지 않습니다.
    
    
        27
        Fraud notification from PS – linked transactions
        해당 거래 자체는 결제 시스템 부정 결제 보고서에 명시되지 않았지만, 공유 카드나 장치 등을 통해 부정 결제 관련 사유로 환불된 거래와 연결되어 있습니다.

Endpoint: POST refund
Version: 1.0

## Request fields (application/json):

  - `custom_parameters` (object)
    사용자 정의 매개 변수.

  - `notification_type` (string, required)
    알림 유형.

  - `payment_details` (object, required)
    결제 내역 관련 값.

  - `payment_details.country_wht` (object)
    국경 간 거래로 인해 특정 국가에 적용되는 원천징수 비용에 대한 데이터가 포함된 개체입니다.

  - `payment_details.country_wht.amount` (number)
    금액.

  - `payment_details.country_wht.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.country_wht.percent` (number)
    원천징수 비용 비율의 백분율.

  - `payment_details.direct_wht` (object)
    직접 원천징수세.

  - `payment_details.direct_wht.amount` (number)
    금액.

  - `payment_details.direct_wht.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.direct_wht.percent` (number)
    직접 원천징수세율.

  - `payment_details.payment` (object)
    게임유저 결제 데이터 관련 값.

  - `payment_details.payment.amount` (number)
    금액.

  - `payment_details.payment.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.payment_method_fee` (object)
    결제 방식 수수료율.

  - `payment_details.payment_method_fee.amount` (number)
    금액.

  - `payment_details.payment_method_fee.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.payment_method_sum` (object)
    결제 방법에서 청구된 금액에 대한 데이터가 포함된 값.

  - `payment_details.payment_method_sum.amount` (number)
    금액.

  - `payment_details.payment_method_sum.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.payout` (object)
    지급 내역 관련 값.

  - `payment_details.payout.amount` (number)
    금액.

  - `payment_details.payout.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.payout_currency_rate` (string)
    결제 통화를 지급 통화로 환전할 때의 환율.

  - `payment_details.repatriation_commission` (object)
    본국 송금 비용에 대한 데이터가 있는 오브젝트. 타사가 엑솔라에 부과.

  - `payment_details.repatriation_commission.amount` (number)
    금액.

  - `payment_details.repatriation_commission.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.sales_tax` (object)
    판매세(미국과 캐나다만 해당).

  - `payment_details.sales_tax.amount` (number)
    금액.

  - `payment_details.sales_tax.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.sales_tax.percent` (number)
    판매세율.

  - `payment_details.user_acquisition_fee` (object)
    제휴 네트워크 및 인플루언서를 통한 구매에 대해 공제된 사용자 확보 수수료의 총액(대상)입니다.

  - `payment_details.user_acquisition_fee.amount` (number)
    금액.

  - `payment_details.user_acquisition_fee.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.user_acquisition_fee.percent` (number)
    사용자 확보 수수료율(%).

  - `payment_details.vat` (object)
    VAT 세율(유럽연합만 해당).

  - `payment_details.vat.amount` (number)
    금액.

  - `payment_details.vat.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.vat.percent` (number)
    부가가치세율.

  - `payment_details.xsolla_balance_sum` (object)
    엑솔라 잔액에서 청구된 금액에 대한 데이터가 포함된 값.

  - `payment_details.xsolla_balance_sum.amount` (number)
    금액.

  - `payment_details.xsolla_balance_sum.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `payment_details.xsolla_fee` (object)
    엑솔라 수수료 요율.

  - `payment_details.xsolla_fee.amount` (number)
    금액.

  - `payment_details.xsolla_fee.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `purchase` (object)
    구매 데이터 관련 값.

  - `purchase.checkout` (object)
    체크아웃 내역 관련 값.

  - `purchase.checkout.amount` (number)
    구매 금액.

  - `purchase.checkout.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `purchase.subscription` (object)
    정기결제 내역 관련 값.

  - `purchase.subscription.amount` (number)
    구매 금액입니다.

  - `purchase.subscription.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `purchase.subscription.date_create` (string)
    정기결제 생성 날짜입니다. [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 날짜 및 시간입니다.

  - `purchase.subscription.plan_id` (string)
    요금제 ID(API를 통해 생성된 경우, 외부 ID).

  - `purchase.subscription.subscription_id` (integer)
    엑솔라 시스템 내의 정기결제 ID입니다.

  - `purchase.subscription.tags` (array)
    플랜 태그.

  - `purchase.total` (object, required)
    구매 총 가격 데이터 관련 값.

  - `purchase.total.amount` (number)
    총 구매 금액.

  - `purchase.total.currency` (string)
    통화. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 통화 코드입니다.

  - `refund_details` (object)
    환불 세부 정보(오브젝트).

  - `refund_details.author` (string)
    환불 시작자. 필드 값이 다음 표에 따라 전달됩니다.


    
    
        환불 시작자
        필드 값
    
    
    
    
        게임(API를 통해).
        API
    
    
        계정 사용자(자동 환불).
        사용자 이메일
    
    
        계정 사용자(엑솔라 고객 지원에서 도움 제공).
        support@xsolla.com
    
    
        엑솔라(엑솔라 고객 지원의 도움을 받아).
        support@xsolla.com

  - `refund_details.code` (integer)
    코드 ID.

  - `refund_details.reason` (string)
    환불 이유입니다.

  - `settings` (object)
    사용자 정의 프로젝트 설정 관련 값.

  - `settings.merchant_id` (integer)
    판매자 ID입니다.

  - `settings.project_id` (integer)
    프로젝트 ID입니다. 이 매개 변수는 [계정](/ko/webhooks/overview/#business-accounts)의 프로젝트 이름 옆에서 확인할 수 있습니다.

  - `transaction` (object, required)
    트랜잭션 데이터 관련 값.

  - `transaction.agreement` (integer)
    계약 ID.

  - `transaction.dry_run` (integer)
    테스트 트랜잭션. 테스트 트랜잭션의 경우 매개 변수는 1개 값을 갖습니다. 또는, 트랜잭션이 실제로 이루어지는 경우 매개 변수가 전송되지 않습니다.

  - `transaction.external_id` (string)
    트랜잭션 외부 ID 입니다.

  - `transaction.id` (integer)
    트랜잭션 ID.

  - `transaction.payment_method_order_id` (string)
    결제 시스템의 결제 ID.

  - `user` (object)
    사용자 세부 사항 관련 값.

  - `user.country` (string)
    사용자의 국가. [ISO 3166-1 alpha-2 standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자로 된 국가 코드를 사용합니다.

  - `user.email` (string)
    사용자 이메일.

  - `user.id` (string, required)
    사용자 ID.

  - `user.ip` (string)
    유저 IP 주소입니다.

  - `user.name` (string)
    사용자 이름.

  - `user.phone` (string)
    유저 전화 번호입니다(국제 형식).

  - `user.zip` (string)
    우편번호.

## Response 400 fields (application/json):

  - `error` (object)

  - `error.code` (string)

  - `error.message` (string)


## Response 204 fields

## Response 500 fields
