Method: refund

capture를 통해 시작된 거래의 일부 또는 전체를 환불합니다. 헤더 내에 있는 requestIdpaymentIntegratorAccountId의 조합은 이 트랜잭션을 고유하게 식별하는 멱등성 키입니다.

요청을 처리하는 중에 엔드포인트에서 오류가 발생하면 이 엔드포인트의 응답 본문은 ErrorResponse 유형이어야 합니다.

요청의 예는 다음과 같습니다.


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
  "currencyCode": "INR",
  "refundAmount": "208000000"
}

응답 예시는 다음과 같습니다.


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "SUCCESS",
  "paymentIntegratorRefundId": "cmVmdW5kIGlkZW50aWZpZXINCg"
}

HTTP 요청

POST https://www.integratorhost.example.com/v1/refund

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
필드
requestHeader

object (RequestHeader)

필수: 모든 요청의 공통 헤더입니다.

paymentIntegratorAccountId

string

필수: 이 거래에 대한 계약 제약 조건을 정의하는 결제 통합업체 계정 ID입니다.

captureRequestId

string

필수: 이 거래의 고유 식별자입니다. 이 요청과 연결된 capture 호출 중에 Google에서 생성한 requestId입니다.

currencyCode

string

필수: ISO 4217 3자리 통화 코드

refundAmount

string (Int64Value format)

필수: 환불 금액(통화 단위의 마이크로 단위)입니다.

응답 본문

환불 메서드의 응답 객체입니다.

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

JSON 표현
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
필드
responseHeader

object (ResponseHeader)

필수: 모든 응답의 공통 헤더입니다.

paymentIntegratorRefundId

string

선택사항: 이 식별자는 통합업체 전용이며 통합자가 생성합니다. 통합업체가 이 환불을 알고 있는 식별자입니다.

편의를 위해 이 식별자는 송금 세부정보에 포함됩니다.

result

enum (RefundResultCode)

필수: 환불 결과입니다.

rawResult

object (RawResult)

선택사항: 환불의 원시 결과입니다. Google의 위험 엔진 및 분석에 도움을 주기 위해 사용됩니다. 거부 코드 매핑 시 데이터가 손실될 수 있습니다. 통합업체는 Google에 원시 코드를 제공할 수 있습니다. 예를 들어 신용카드 게이트웨이 (통합 업체)는 이 필드를 사용하여 VISA 네트워크로부터 받은 거부 코드를 정확하게 Google에 알릴 수 있습니다. 이 경우 scope는 'visa'가 되고 rawCode는 VISA 네트워크가 반환한 값이 됩니다.

resultSUCCESS가 아니면 이 값은 필수입니다.

환불 결과 코드

고유한 결과 코드는 환불을 제공합니다.

열거형
UNKNOWN_RESULT 이 기본값을 설정하면 안 됩니다.
SUCCESS 환불 완료
NO_MONEY_LEFT_ON_TRANSACTION v1.환불에 실패했습니다. 거래에 남은 금액이 없습니다. 일반적으로 통합업체와 Google 간의 버그를 나타냅니다. Google은 원래 캡처 금액보다 큰 금액을 환불해 달라고 요청해서는 안 됩니다.
ACCOUNT_CLOSED

통합업체가 보유한 계정이 해지되었습니다.

이 값을 반환하면 Google에서 사용자의 결제 수단이 폐쇄됩니다. 사용자는 연결 흐름을 다시 통해 새 결제 수단을 추가해야 합니다.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

통합업체의 사용자 계정이 해지되었으며 계정 도용이 의심됩니다.

이 값을 반환하면 Google에서 사용자의 결제 수단이 폐쇄됩니다. 사용자는 연결 흐름을 다시 통해 새 결제 수단을 추가해야 합니다.

ACCOUNT_CLOSED_FRAUD

통합업체가 보유한 사용자 계정이 사기로 인해 해지되었습니다.

이 값을 반환하면 Google에서 사용자의 결제 수단이 폐쇄됩니다. 사용자는 연결 흐름을 다시 통해 새 결제 수단을 추가해야 합니다.

ACCOUNT_ON_HOLD 사용자의 계정이 현재 보류 중이며 환불을 수락할 수 없지만 사용자의 계정은 나중에 환불을 수락할 수 있습니다. Google에서 나중에 다시 환불을 요청할 수도 있지만 새로운 requestId을 통한 환불 요청이므로 완료된 것으로 간주됩니다.
REFUND_EXCEEDS_MAXIMUM_BALANCE 현재 사용자의 잔액이 최대 허용 금액을 초과하므로 환불을 처리할 수 없습니다. Google에서 나중에 다시 환불을 요청할 수도 있지만 새로운 requestId을 통한 환불 요청이므로 완료된 것으로 간주됩니다.
REFUND_WINDOW_EXCEEDED 요청이 허용된 환불 기간이 지났기 때문에 환불을 처리할 수 없습니다.