Method: getDisputeInquiryReport

결제의 잠재적 분쟁에 관해 고객과의 고객 지원 대화를 진행하는 데 도움이 되는 정보가 포함된 보고서를 받습니다.

이 메서드가 HTTP 200을 반환하지 않는 경우 이 쿼리에 대한 응답이 비어 있을 수 있습니다.

요청을 처리하는 동안 엔드포인트에서 오류가 발생하면 이 엔드포인트의 응답은 ErrorResponse 유형입니다.

이 메서드가 HTTP 200을 반환하지 않는 경우 이 쿼리에 대한 응답이 비어 있을 수 있습니다. 명확한 설명이 있는 ErrorResponse를 사용하여 공격자가 다른 통합업체의 결제 통합업체 계정 식별자를 파악할 수 있는 상황에서는 응답 본문이 비어 있습니다. 서명 키가 일치하지 않거나 결제 통합업체 식별자를 찾을 수 없거나 암호화 키를 알 수 없는 경우 이 메서드는 빈 본문과 함께 HTTP 404를 반환합니다. 요청 서명을 확인할 수 있는 경우 오류에 관한 추가 정보가 응답 본문에 반환됩니다.

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 3
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": {
      "epochMillis": "1519996751331"
    },
    "paymentIntegratorAccountId": "InvisiCashUSA_USD"
  },
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis": "1519996752221"
    }
  },
  "result": {
    "success": {
      "googleClaimId": "138431383281",
      "report": {
        "customerAccount": {
          "customerEmail": "example@gmail.com",
          "customerName" : "Example Customer"
        },
        "order": {
          "timestamp": {
            "epochMillis": "1517992525972"
          },
          "orderId": "SOP.8976-1234-1234-123456..99",
          "subTotalAmount": {
            "amountMicros": "206990000",
            "currencyCode": "USD"
          },
          "totalAmount": {
            "amountMicros": "212990000",
            "currencyCode": "USD"
          },
          "shippingAddress": {
            "addressLine": ["123 Main St"],
            "localityName": "Springfield",
            "administrativeAreaName": "CO",
            "postalCodeNumber": "80309",
            "countryCode": "US"
          },
          "taxes": [
            {
              "description": "Colorado Sales Tax",
              "amount": {
                "amountMicros": "6000000",
                "currencyCode": "USD"
              }
            }
          ],
          "items": [
            {
              "description": "Super cool gizmo",
              "merchant": "HTC",
              "googleProductName": "Google Store",
              "quantity": "2",
              "totalPrice": {
                "amountMicros": "198000000",
                "currencyCode": "USD"
              }
            },
            {
              "description": "Gizmo charger",
              "merchant": "HTC",
              "googleProductName": "Google Store",
              "quantity": "1",
              "totalPrice": {
                "amountMicros": "8990000",
                "currencyCode": "USD"
              }
            }
          ]
        },
        "payment": {
          "billingAddress" : {
            "addressLine": ["123 Main St"],
            "localityName": "Springfield",
            "administrativeAreaName": "CO",
            "postalCodeNumber": "80309",
            "countryCode": "US"
          },
          "amount": {
            "amountMicros": "100000000",
            "currencyCode": "USD"
          },
          "refunds": [
            {
              "amount": {
                "amountMicros": "9250000",
                "currencyCode": "USD"
              },
              "initiatedTimestamp": {
                "epochMillis": "1518811245384"
              }
            }
          ],
          "cardDetails": {
            "authResult": "APPROVED"
          }
        }
      }
    }
  }
}

HTTP 요청

POST https://vgw.googleapis.com/secure-serving/gsp/v3/getDisputeInquiryReport/:PIAID

요청 본문

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

JSON 표현
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
입력란
requestHeader

object (RequestHeader)

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

paymentLookupCriteria

object (PaymentLookupCriteria)

필수: 이 문의에서 조회되어야 하는 결제를 나타내는 기준입니다.

existingGoogleClaimId

string

선택사항: 이전 getDisputeInquiryReport 호출에서 반환한 Google에서 생성한 문자열로, 이 고객의 이의 제기 신청을 고유하게 식별합니다.

소유권 주장 ID가 없으면 새 소유권 주장 ID가 생성됩니다. 동일한 고객 이의 제기가 이어지는 경우 호출자는 이전 getDisputeInquiryReport 호출에서 반환된 googleClaimId를 제공할 수 있습니다.

여기에 입력되거나 생성된 소유권 주장 ID는 응답의 googleClaimId 필드에 반환됩니다.

이전 getDisputeInquiryReport 호출에서 반환되지 않은 googleClaimId를 제공하는 것은 유효하지 않습니다. 이 경우 HTTP 400 잘못된 요청이 반환됩니다.

requestOriginator

object (RequestOriginator)

필수: 이 요청을 보낸 조직 또는 조직의 하위 그룹에 대한 정보입니다.

응답 본문

이 메서드는 여러 반환 유형을 지원합니다. ErrorResponse와 함께 반환되는 4XX 또는 5XX HTTP 상태 코드에 관한 자세한 내용은 ErrorResponse 객체 및 HTTP 상태 코드 문서를 참조하세요.

이 메서드는 여러 반환 유형을 지원합니다. ErrorResponse와 함께 반환되는 4XX 또는 5XX HTTP 상태 코드에 관한 자세한 내용은 ErrorResponse 객체 및 HTTP 상태 코드 문서를 참조하세요.

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

가능한 응답 메시지
HTTP 200 상태

object (GetDisputeInquiryReportResponse)

HTTP 4XX / 5XX 상태

object (ErrorResponse)

RequestHeader

서버로 전송되는 모든 요청에 정의된 헤더 객체입니다.

JSON 표현
{
  "requestId": string,
  "requestTimestamp": {
    object (Timestamp)
  },
  "protocolVersion": {
    object (Version)
  },
  "paymentIntegratorAccountId": string
}
입력란
requestId

string

필수: 이 요청의 고유 식별자입니다.

이 문자열은 최대 길이가 100자(영문 기준)이며 'a~z', 'A~Z', '0~9', ':', '-', '_' 문자만 포함합니다.

requestTimestamp

object (Timestamp)

필수: 이 요청의 타임스탬프입니다. 수신자는 이 타임스탬프가 '현재'의 ±60초인지 확인하고, 그렇지 않은 경우 요청을 거부해야 합니다. 이 요청 타임스탬프는 재시도 시 멱등성이 없습니다.

protocolVersion

object (Version)

필수: 이 요청의 버전입니다.

paymentIntegratorAccountId

string

필수: 계약 제약 조건이 있는 고유 계정을 식별합니다.

타임스탬프

Unix 에포크 이후 ISO 타임라인의 특정 지점을 밀리초 단위로 나타내는 타임스탬프 객체입니다.

JSON 표현
{
  "epochMillis": string
}
입력란
epochMillis

string (Int64Value format)

필수: Unix epoch를 기준으로 하는 밀리초

버전

버전 객체에는 API의 주 버전이 포함됩니다. 동일한 메이저 버전의 버전은 호환성이 보장됩니다. 통합자는 동일한 주 버전에 대한 모든 요청을 지원해야 합니다.

JSON 표현
{
  "major": integer
}
입력란
major

integer

필수: 메이저 버전입니다. 버전이 다르면 호환성 요청이 표시되어도 호환성이 보장되지 않습니다.

PaymentLookupCriteria

결제를 고유하게 조회할 수 있는 기준의 컨테이너입니다. 하나의 구성원 필드만 채워야 합니다.

JSON 표현
{

  // Union field criteria can be only one of the following:
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  },
  "captureRequestCriteria": {
    object (CaptureRequestCriteria)
  }
  // End of list of possible types for union field criteria.
}
입력란

통합 필드 criteria.

criteria는 다음 중 하나여야 합니다.

arnCriteria

object (ArnCriteria)

선택사항: ARN (Acquirer Reference Number)을 기준으로 조회합니다.

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

선택사항: Google 거래 참조 번호를 기준으로 조회합니다.

captureRequestCriteria

object (CaptureRequestCriteria)

선택사항: 원래 캡처 요청을 기반으로 조회합니다.

ArnCriteria

ARN (Acquirer Reference Number)을 기반으로 한 결제 조회 기준입니다.

JSON 표현
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
입력란
acquirerReferenceNumber

string

필수: 결제를 고유하게 식별하는 획득자 참조 번호 (ARN)입니다. 23자리 숫자여야 합니다.

authorizationCode

string

필수: 거래의 승인 코드입니다.

GoogleTransactionReferenceNumberCriteria

Google에서 생성한 거래 참조 번호를 토대로 한 결제 조회 기준

JSON 표현
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
입력란
googleTransactionReferenceNumber

string

필수: 결제를 고유하게 식별하는 Google 생성 거래 참조 번호입니다.

authorizationCode

string

필수: 거래의 승인 코드입니다.

CaptureRequestCriteria

원래 캡처 요청을 기반으로 한 결제 조회 기준

JSON 표현
{
  "captureRequestId": string
}
입력란
captureRequestId

string

필수: 이 거래의 고유 식별자입니다. 조회 중인 capture 호출 중에 Google에서 생성한 requestId입니다.

RequestOriginator

이 요청이 발생한 조직 또는 조직 하위 그룹(선택사항)에 대한 정보입니다. 이를 통해 Google은 문제나 악용을 식별하고 paymentIntegratorAccountId보다 더 세분화된 수준에서 제어 기능을 구현할 수 있습니다. 이는 호출이 여러 외부 클라이언트의 요청을 가져오는 중개 서비스 제공업체인 경우 특히 유용합니다.

JSON 표현
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
입력란
organizationId

string

필수: 이 요청이 시작된 회사, 조직 또는 조직 그룹의 식별자입니다. paymentIntegratorAccountId 내에서 고유해야 합니다.

organizationDescription

string

필수: 조직과 관련하여 Google 직원과 통합업체 간의 커뮤니케이션을 용이하게 하는 데 사용할 수 있는, 사람이 읽을 수 있는 조직 이름 또는 설명입니다.

agentId

string

선택사항: 이 요청이 발생한 organizationId에 의해 식별된 조직의 특정 에이전트 (직원)의 고유 식별자입니다. organizationId 내에서 고유해야 합니다.

GetDisputeInquiryReportResponse

getDisputeInquiryReport 메서드의 응답 페이로드입니다.

JSON 표현
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": {
    object (GetDisputeInquiryReportResult)
  }
}
입력란
responseHeader

object (ResponseHeader)

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

result

object (GetDisputeInquiryReportResult)

필수: 이 호출의 결과입니다.

ResponseHeader

서버에서 전송된 모든 응답에 정의된 헤더 객체입니다.

JSON 표현
{
  "responseTimestamp": {
    object (Timestamp)
  }
}
입력란
responseTimestamp

object (Timestamp)

필수: 이 응답의 타임스탬프입니다. 수신자는 이 타임스탬프가 '지금'의 ±60초인지 확인하고, 그렇지 않은 경우 응답을 거부해야 합니다.

GetDisputeInquiryReportResult

JSON 표현
{

  // Union field result can be only one of the following:
  "success": {
    object (SuccessDetails)
  },
  "paymentNotFound": {
    object (Empty)
  },
  "paymentTooOld": {
    object (Empty)
  },
  "orderCannotBeReturned": {
    object (Empty)
  },
  "noAdditionalDetails": {
    object (Empty)
  }
  // End of list of possible types for union field result.
}
입력란

통합 필드 result.

result는 다음 중 하나여야 합니다.

success

object (SuccessDetails)

결제 내역이 확인되어 보고서가 제공됩니다.

paymentNotFound

object (Empty)

요청하신 결제 금액을 찾을 수 없습니다.

paymentTooOld

object (Empty)

요청한 결제가 확인되었지만 결제 기간이 지났기 때문에 보고서가 제공되지 않았습니다.

orderCannotBeReturned

object (Empty)

요청된 결제가 존재하지만 반품할 수 없는 주문에 포함되어 있습니다. 소유자의 요청으로 주문이 삭제된 경우가 사유에 포함됩니다.

noAdditionalDetails

object (Empty)

요청한 결제가 확인되었으나 보고서가 제공되지 않습니다.

SuccessDetails

JSON 표현
{
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
입력란
googleClaimId

string

필수: 이 고객 이의 제기를 고유하게 식별하는 Google 생성 문자열입니다.

요청에 existingGoogleClaimId가 채워져 있으면 동일한 값이 됩니다. 그렇지 않으면 새로 생성되는 값입니다. 동일한 고객 이의 제기의 일부인 경우 향후 getDisputeInquiryReport 요청에 이 값이 제공될 수 있습니다.

report

object (PurchaseReport)

필수: 요청에 명시된 결제의 이의 제기와 관련된 세부정보입니다.

PurchaseReport

요청된 결제와 관련된 구매 관련 세부정보가 포함된 보고서

JSON 표현
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
입력란
customerAccount

object (CustomerAccount)

필수: 고객 및 고객 계정에 관한 정보입니다.

order

object (Order)

선택사항: 결제가 이루어진 주문에 관한 정보입니다. 일부 구매 보고서에서는 제공되지 않습니다.

payment

object (Payment)

필수: 결제 관련 정보입니다. 참고: 하나의 주문에 여러 번 결제할 수 있지만 여기에는 원래 요청에서 확인된 결제에 대한 정보만 포함됩니다.

CustomerAccount

고객의 계정에 관한 정보입니다.

JSON 표현
{
  "customerEmail": string,
  "customerName": string
}
입력란
customerEmail

string

선택사항: 고객의 Google 계정과 연결된 이메일 주소입니다.

customerName

string

필수: 고객의 이름입니다.

주문

주문에 관한 정보입니다.

JSON 표현
{
  "timestamp": {
    object (Timestamp)
  },
  "orderId": string,
  "subTotalAmount": {
    object (Amount)
  },
  "totalAmount": {
    object (Amount)
  },
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
입력란
timestamp

object (Timestamp)

필수: 주문 시점의 타임스탬프입니다.

orderId

string

필수: 이 주문을 고유하게 식별하는 문자열입니다.

subTotalAmount

object (Amount)

필수: 세전 주문 총액입니다.

totalAmount

object (Amount)

REQUIRED: 세금을 포함한 이 주문의 총 금액입니다.

shippingAddress

object (Address)

OPTIONAL: 이 주문에 포함된 실제 상품의 배송지 주소입니다.

items[]

object (Item)

필수: 이 주문에 포함된 상품의 목록입니다.

taxes[]

object (Tax)

필수: 이 주문에 포함된 세금 목록입니다. 이 목록은 비어 있을 수 있습니다.

금액

마이크로 단위의 금액을 통화 코드와 연결합니다.

JSON 표현
{
  "amountMicros": string,
  "currencyCode": string
}
입력란
amountMicros

string (Int64Value format)

필수: 마이크로 단위의 금액입니다.

currencyCode

string

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

주소

실제 주소에 관한 정보를 보유하는 집입니다.

JSON 표현
{
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
입력란
addressLine[]

string

선택사항: 구조화되지 않은 주소 텍스트를 포함합니다.

localityName

string

선택사항: 모호한 용어이지만 일반적으로 주소의 시/군/구 부분을 나타냅니다. 지역이 잘 정의되지 않거나 이 구조에 잘 맞지 않는 지역 (예: 일본 및 중국)에서는 localityName을 비워두고 addressLine을 사용합니다.

예: 미국 도시, IT 코뮌, 영국 우체국

administrativeAreaName

string

선택사항: 이 국가의 최상위 행정 구역 단위입니다. 예: 미국 주, IT 지역, 중국 주, 일본 현

postalCodeNumber

string

선택사항: 이름에도 불구하고 postalCodeNumber 값은 대개 영숫자입니다. 예: '94043', 'SW1W', 'SW1W 9TQ'.

countryCode

string

선택사항: 고객의 주소 국가 코드입니다. ISO-3166-1 Alpha-2여야 합니다.

항목

주문에 포함된 상품에 관한 정보입니다.

JSON 표현
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": {
    object (Amount)
  },
  "googleProductName": string
}
입력란
description

string

필수: 구매한 상품에 대한 설명입니다.

merchant

string

필수: 상품의 판매자, 아티스트 또는 제조업체입니다.

quantity

string (Int64Value format)

선택사항: 이 상품의 주문 수량입니다.

정수 수량이 제품에 적용되지 않는 경우 이 필드는 생략됩니다 (예: 측정되는 제품은 소수 수량일 수 있음).

totalPrice

object (Amount)

필수: 이 상품의 총 가격입니다.

googleProductName

string

필수: 상품에 대한 Google 제품 서비스의 이름입니다.

세금

이 주문에 적용되는 세금에 대한 정보입니다.

JSON 표현
{
  "description": string,
  "amount": {
    object (Amount)
  }
}
입력란
description

string

필수: 세금에 대한 설명입니다.

amount

object (Amount)

필수: 세금의 액수입니다.

지급

결제 관련 정보입니다.

JSON 표현
{
  "billingAddress": {
    object (Address)
  },
  "amount": {
    object (Amount)
  },
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
입력란
billingAddress

object (Address)

필수: 이 결제에 대한 청구서 수신 주소입니다.

amount

object (Amount)

필수: 결제 금액입니다.

refunds[]

object (Refund)

필수: 이 결제에 대한 환불 목록입니다. 이 목록은 비어 있을 수 있습니다.

통합 필드 fopDetails.

fopDetails는 다음 중 하나여야 합니다.

cardDetails

object (PaymentCardDetails)

선택사항: 신용카드 및 체크카드 결제 수단과 관련된 결제 세부정보입니다.

환불

결제로 인한 환불에 관한 정보입니다.

JSON 표현
{
  "amount": {
    object (Amount)
  },
  "initiatedTimestamp": {
    object (Timestamp)
  }
}
입력란
amount

object (Amount)

필수: 환불 금액입니다.

initiatedTimestamp

object (Timestamp)

필수: 환불이 시작된 시점의 타임스탬프입니다.

PaymentCardDetails

신용카드 및 체크카드와 관련된 결제 세부정보

JSON 표현
{
  "authResult": enum (AuthResult)
}
입력란
authResult

enum (AuthResult)

필수: 결제 인증의 결과입니다.

AuthResult

결제 인증 결과

열거형
UNKNOWN_RESULT 이 기본값은 설정해서는 안 됩니다.
APPROVED 인증이 승인되었습니다.
DENIED 인증이 거부되었습니다.
NOT_ATTEMPTED 인증을 시도하지 않았습니다.

비어 있음

이 유형에는 필드가 없습니다.

불리언 및 열거형을 추가 데이터로 확장해야 하는 경우가 많으므로 이 객체는 확장성을 위해 사용됩니다. 구현자는 이를 사용하여 존재를 확인합니다. 이 열거형은 향후 버전에서 데이터를 포함하도록 확장될 수 있습니다.

Empty의 JSON 표현은 빈 JSON 객체 {}입니다.

ErrorResponse

모든 메서드의 오류 응답 객체입니다.

JSON 표현
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "errorDescription": string,
  "paymentIntegratorErrorIdentifier": string,
  "errorResponseResult": {
    object (ErrorResponseResult)
  }
}
입력란
responseHeader

object (ResponseHeader)

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

errorDescription

string

선택사항: 오류를 디버그할 수 있도록 지원 담당자가 이 상태에 관한 설명을 제공합니다. 사용자에게는 표시되지 않습니다. 디버깅에 사용되는 설명적이고 민감하지 않은 텍스트를 포함할 수 있습니다. errorResponseCode의 일부 값에는 이 필드에 추가 세부정보가 포함되어야 합니다. 경고: 공개로 정의되지 않은 한 이 메시지에 토큰을 포함하지 마세요.

paymentIntegratorErrorIdentifier

string

선택사항: 이 식별자는 통합업체에 따라 다르며 통합업체에 의해 생성됩니다. 이 호출을 식별하기 위한 목적으로만 디버깅 목적으로만 사용됩니다. 이는 통합업체가 이 호출에 사용하는 식별자입니다.

errorResponseResult

object (ErrorResponseResult)

선택사항: 발생한 오류 유형을 캡처하는 코드입니다.

ErrorResponseResult

오류 코드

JSON 표현
{

  // Union field result can be only one of the following:
  "invalidApiVersion": {
    object (InvalidApiVersion)
  },
  "invalidPayloadSignature": {
    object (InvalidPayloadSignature)
  },
  "invalidPayloadEncryption": {
    object (InvalidPayloadEncryption)
  },
  "requestTimestampOutOfRange": {
    object (RequestTimestampOutOfRange)
  },
  "invalidIdentifier": {
    object (InvalidIdentifier)
  },
  "idempotencyViolation": {
    object (IdempotencyViolation)
  },
  "invalidFieldValue": {
    object (InvalidFieldValue)
  },
  "missingRequiredField": {
    object (MissingRequiredField)
  },
  "preconditionViolation": {
    object (PreconditionViolation)
  },
  "userActionInProgress": {
    object (UserActionInProgress)
  },
  "invalidDecryptedRequest": {
    object (InvalidDecryptedRequest)
  },
  "forbidden": {
    object (Forbidden)
  }
  // End of list of possible types for union field result.
}
입력란

통합 필드 result.

result는 다음 중 하나여야 합니다.

invalidApiVersion

object (InvalidApiVersion)

요청의 API 버전이 지원되지 않는 경우 사용됩니다. 권장 HTTP 코드: 400

invalidPayloadSignature

object (InvalidPayloadSignature)

페이로드의 서명이 알 수 없거나 비활성 키인 경우 사용됩니다. 권장 HTTP 코드: 401

invalidPayloadEncryption

object (InvalidPayloadEncryption)

페이로드 암호화가 알 수 없거나 비활성 키인 경우 사용됩니다. 권장 HTTP 코드: 400

requestTimestampOutOfRange

object (RequestTimestampOutOfRange)

requestTimestamp가 현재 ± 60초가 아닌 경우 사용됩니다. 권장 HTTP 코드: 400

invalidIdentifier

object (InvalidIdentifier)

요청에 전송된 식별자가 잘못되었거나 알 수 없는 경우에 사용됩니다. 여기에는 PIAID, captureRequestId, Google Payment Token 등이 포함될 수 있습니다. 권장 HTTP 코드: 404

idempotencyViolation

object (IdempotencyViolation)

요청이 요청의 멱등성 요구사항을 위반하는 경우 사용됩니다. 권장 HTTP 코드: 412

invalidFieldValue

object (InvalidFieldValue)

지원되는 값 집합에 없는 필드 값이 요청에 포함된 경우 사용됩니다. 권장 HTTP 코드: 400

missingRequiredField

object (MissingRequiredField)

요청에서 필수 필드가 설정되지 않은 경우 사용됩니다. 권장 HTTP 코드: 400

preconditionViolation

object (PreconditionViolation)

작업의 제약조건을 위반하는 경우 (예: 환불 금액 요청이 거래의 남은 금액을 초과하는 경우) 사용됩니다. 권장 HTTP 코드: 400

userActionInProgress

object (UserActionInProgress)

현재 요청을 처리할 수 없는 경우 사용됩니다. 이는 사실상 시스템 잠금 역할을 하는 진행 중인 사용자 작업을 방해하기 때문입니다. 이 코드는 구현별 내부 동시 실행 오류로 인한 실패를 나타내는 데 사용하면 안 됩니다. 권장 HTTP 코드: 423

invalidDecryptedRequest

object (InvalidDecryptedRequest)

요청 페이로드를 복호화할 수 있지만 결과 메시지를 파싱할 수 없는 경우에 사용됩니다. 권장 HTTP 코드: 400

forbidden

object (Forbidden)

요청된 리소스에 대한 액세스가 금지되어 있습니다. 권장 HTTP 코드: 403

InvalidApiVersion

JSON 표현
{
  "requestVersion": {
    object (Version)
  },
  "expectedVersion": {
    object (Version)
  }
}
입력란
requestVersion

object (Version)

필수: 요청에 지정된 잘못된 버전입니다.

expectedVersion

object (Version)

필수: 예상 버전입니다.

InvalidPayloadSignature

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

InvalidPayloadEncryption

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

RequestTimestampOutOfRange

JSON 표현
{
  "requestTimestamp": {
    object (Timestamp)
  },
  "serverTimestampAtReceipt": {
    object (Timestamp)
  }
}
입력란
requestTimestamp

object (Timestamp)

필수: 요청에 제공된 타임스탬프

serverTimestampAtReceipt

object (Timestamp)

필수: 수신 시점의 서버 시간으로, 비교에 사용됩니다.

InvalidIdentifier

JSON 표현
{
  "invalidIdentifierType": string
}
입력란
invalidIdentifierType

string

필수: 잘못된 식별자 유형입니다(예: PIAID, captureRequestId 등).

IdempotencyViolation

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

InvalidFieldValue

JSON 표현
{
  "invalidFieldName": string
}
입력란
invalidFieldName

string

필수: 잘못된 것으로 확인된 필드의 이름입니다.

MissingRequiredField

JSON 표현
{
  "missingFieldNames": [
    string
  ]
}
입력란
missingFieldNames[]

string

필수: 누락된 필드의 이름입니다.

PreconditionViolation

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

UserActionInProgress

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

InvalidDecryptedRequest

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.

금지

이 유형에는 필드가 없습니다.

이 메시지는 현재 의도적으로 비어 있습니다. 향후 새 필드를 추가할 수 있습니다.