Xsolla-logo
  • 문서화
  • 계정 생성

환불Webhook POST

결제가 취소되면 엑솔라는 refund 유형이 포함된 웹훅의 취소된 거래에 대한 세부 정보를 웹훅 URL로 전송합니다. 환불 절차에 대한 자세한 내용은 지침을 참조해 주세요.

5xx 코드가 포함된 응답을 수신하면 엑솔라는 수신자가 수신을 확인할 때까지 시간 간격을 늘려가며 웹훅을 재전송합니다. 최대 재시도 횟수는 12회입니다.

알림

엑솔라가 환불을 시작하고 웹훅에 대해 5xx 코드가 포함된 응답을 수신하더라도 결제 금액은 환불됩니다.

웹훅에서 자세한 정보를 수신하는 권한을 부여할 수 있습니다. 이렇게 하려면 관리자 페이지프로젝트 설정 > 웹훅 > 고급 설정에서 다음 토글을 으로 설정합니다.

토글 설명
저장된 결제 방식을 사용한 거래에 대한 정보 표시

정보는 웹훅의 다음 사용자 정의 매개 변수에서 전달됩니다.

  • saved_payment_method:
    • 0 - 저장된 결제 방식이 사용되지 않음
    • 1 - 현재 결제를 진행할 때 결제 방식이 저장됨
    • 2 - 이전에 저장한 결제 방식이 사용됨
  • payment_type:
    • 1 - 일회성 결제
    • 2 - 반복 결제

환불 코드:

코드 환불 이유 설명
1 사용자 요청/게임 요청에 의한 취소 관리자 페이지에서 취소가 요청된 경우 사용됩니다.
2 Chargeback 거래 지불 거절 요청되었습니다.
3 연동 오류 엑솔라와 게임 사이의 연동에 문제가 있을 경우 사용됩니다.
권장 사항: 사용자를 차단 목록에 추가하지 마세요.
4 Potential fraud 부정 결제가 의심됩니다.
권장사항: 사용자를 차단 목록에 추가하세요.
5 테스트 결제 테스트 트랜잭션인 경우 사용되며 이후 취소로 이어집니다.
권장 사항: 사용자를 차단 목록에 추가하지 마세요.
6 User invoice expired 후불 결제 방식에 의해 트랜잭션이 이뤄진 경우 사용됩니다.
7 PS에서 전송된 사기 알림 결제 시스템에서 결제가 거부되었습니다. PS에서 잠재적 사기를 감지했습니다.
권장 사항: 사용자를 차단 목록에 추가하세요.
8 Cancellation by the PS request 결제시스템이 취소를 요청한 경우 사용됩니다.
권장사항: 사용자를 차단 목록에 추가하지 마세요.
9 사용자 요청에 의한 취소 사용자의 요청에 의한 환불 사유입니다. 어떤 이유로 사용자가 게임 또는 구매에 만족하지 못한 못하였음을 의미합니다.
권장 사항: 사용자를 차단 목록에 추가하지 마세요.
10 게임 요청에 의한 취소 게임을 통해 취소를 요청한 경우 사용됩니다.
권장 사항: 사용자를 차단 목록에 추가하지 마세요.
11 Account holder called to report fraud 계정 소유자가 본인 미사용 결제로 신고한 경우입니다.
12 Friendly fraud 우호적인 부정결제에 대한 메시지를 수신했을 때 사용됩니다.
13 Duplicate 동일 인보이스에 대하여 거래 복제.
Request
Request Body schema: application/json
notification_type
required
string

알림 유형.

required
object

트랜잭션 데이터 관련 값입니다.

agreement
integer

계약 ID입니다.

dry_run
integer

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

external_id
string

트랜잭션 외부 ID 입니다.

id
integer

트랜잭션 ID.

payment_method_order_id
string

결제 시스템의 결제 ID.

required
object

결제 내역 관련 값입니다.

object

직접 원천징수세.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

percent
number <float>

직접 원천징수세율

object

게임유저 결제 데이터 관련 값입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

결제 방식 수수료율입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

결제 방법에서 청구된 금액에 대한 데이터가 포함된 값입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

지급 내역 관련 값입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

payout_currency_rate
string

결제 통화를 지급 통화로 환전할 때의 환율입니다.

object

본국 송금 비용에 대한 데이터가 있는 오브젝트. 타사가 엑솔라에 부과.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

판매세(대상; 미국과 캐나다만).

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

percent
number <float>

판매세율.

object

VAT 세율입니다(유럽연합만 해당).

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

percent
number <float>

부가가치세율.

object

엑솔라 잔액에서 청구된 금액에 대한 데이터가 포함된 값입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

엑솔라 수수료 요율입니다.

amount
number <float>

총계.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

custom_parameters
object

사용자 정의 매개 변수입니다.

object

구매 데이터 관련 값입니다.

required
object

구매 총 가격 데이터와 관련된 값입니다.

amount
number <float>

총 구매 금액입니다.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

결제 파라미터 데이터와 관련된 값입니다.

amount
number <float>

구매 금액입니다.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

object

정기결제 세부 정보(오브젝트).

amount
number <float>

구매 금액입니다.

currency
string

통화. ISO 4217에 따른 3자리 통화 코드입니다.

date_create
string

정기결제 생성 날짜입니다. ISO 8601에 따른 날짜 및 시간입니다.

plan_id
string

요금제 ID(API를 통해 생성된 경우, 외부 ID).

subscription_id
integer

엑솔라 시스템 내의 정기결제 ID입니다.

tags
Array of strings

플랜 태그.

object

환불 세부 정보(오브젝트).

author
string

환불 시작자. 필드 값이 다음 표에 따라 전달됩니다.

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

코드 ID.

reason
string

환불 이유입니다.

object

사용자 정의 프로젝트 설정(개체)입니다.

merchant_id
integer

판매자 ID입니다.

project_id
integer

프로젝트 ID. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

object

사용자 세부 사항(개체)입니다.

id
required
string

사용자 ID.

country
string

사용자의 국가. ISO 3166-1 alpha-2 standard에 따른 2자로 된 국가 코드를 사용합니다.

email
string

사용자 이메일.

ip
string

유저 IP 주소입니다.

name
string

사용자 이름.

phone
string

유저 전화 번호입니다(국제 형식).

zip
string

우편번호.

Responses
204

성공적인 처리 표시를 반환합니다.

400

제공된 정보에 오류가 있는 경우 반환합니다(예: 필수 매개변수 누락, 인증 실패 등).

500

서버에 일시적인 오류가 있음을 표시하려면 돌아가세요.

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-d '{
        "notification_type": "refund",
        "settings": {
          "project_id": 18404,
          "merchant_id": 2340
        },
        "purchase": {
            "subscription": {
                "plan_id": "b5dac9c8",
                "subscription_id": "10",
                "date_create": "2014-09-22T19:25:25+04:00",
                "currency": "USD",
                "amount": 9.99
            },
            "checkout": {
                "currency": "USD",
                "amount": 50
            },
            "total":{
                "currency": "USD",
                "amount": 200
            }
        },
        "user": {
            "ip": "127.0.0.1",
            "phone": "18777976552",
            "email": "email@example.com",
            "id": "1234567",
            "name": "John Smith",
            "country": "US"
        },
        "transaction": {
            "id": 1,
            "external_id": 1,
            "dry_run": 1,
            "agreement": 1
        },
        "refund_details": {
            "code": 4,
            "reason": "Potential fraud"
        },
        "payment_details": {
            "sales_tax": {
                "currency": "USD",
                "amount": 0
            },
            "direct_wht": {
                "currency": "USD",
                "amount": 0.70
            },
            "xsolla_fee": {
                "currency": "USD",
                "amount": "10"
            },
            "payout": {
                "currency": "USD",
                "amount": "200"
            },
            "payment_method_fee": {
                "currency": "USD",
                "amount": "20"
            },
            "payment": {
                "currency": "USD",
                "amount": "230"
            },
            "repatriation_commission": {
                "currency": "USD",
                "amount": 10
            }
        }
    }
}'
Response samples
application/json
{
  • "error": {
    }
}