Method: payment-integrator-dispute-api.defendChargeback

This method is called by Google to defend an Inquiry or a Chargeback.

If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type ErrorResponse.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "G1MQ0YERJ0Q7LPM",
    "requestTimestamp": "1481899949606"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "G664529173",
  "defenseMaterialDocument" : {
     "mimeType": "APPLICATION_PDF",
     "payload": "ZGFzZGFkYXNkc2Rhc2Rhc2Rhc2Zhc2Y="
  }
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": "1481899950236"
  },
  "result": "SUCCESS"
}

HTTP request

POST https://www.integratorhost.example.com/v1/payment-integrator-dispute-api/defendChargeback

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "defenseMaterialDocument": {
    object (DefenseMaterialDocument)
  },

  // Union field criteria can be only one of the following:
  "captureRequestId": string,
  "mrnPaymentDetails": {
    object (MrnPaymentDetails)
  }
  // End of list of possible types for union field criteria.
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

paymentIntegratorAccountId

string

REQUIRED: This is the payment integrator account identifier that identifies contractual constraints around this transaction.

defenseMaterialDocument

object (DefenseMaterialDocument)

REQUIRED: Present when the chargeback is defended using a PDF document.

Union field criteria. REQUIRED: Details which identify the transaction and/or dispute. criteria can be only one of the following:
captureRequestId

string

A unique identifier for the payment that is being defended. This is the requestId generated by Google during the captureFundsReservation or capture which this request is associated with.

mrnPaymentDetails

object (MrnPaymentDetails)

Details to lookup payments that originated outside of GSP.

Response body

This method supports multiple return types. For additional information about what 4XX or 5XX HTTP status code to return with an ErrorResponse, consult the ErrorResponse object and HTTP status codes documentation.

If successful, the response body contains data with the following structure:

Possible response messages
HTTP 200 Status

object (DefendChargebackResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

MrnPaymentDetails

Details to lookup payments which originated outside of GSP.

JSON representation
{
  "disputeCaseId": string,
  "merchantReferenceNumber": string,
  "merchantId": string
}
Fields
disputeCaseId

string

REQUIRED: The ID which identifies the dispute being represented.

merchantReferenceNumber

string

REQUIRED: The merchant reference number of the original transaction.

merchantId

string

REQUIRED: The MID for the payment processor that handled the original transaction.

DefenseMaterialDocument

A chargeback defense in the form of a PDF document.

JSON representation
{
  "mimeType": enum (MimeType),
  "payload": string
}
Fields
mimeType

enum (MimeType)

REQUIRED: The MIME type of the document. Only the listed subset of IANA published MIME types are valid.

payload

string

REQUIRED: The raw bytes of the PDF document encoded using base64url.

MimeType

The MIME type of a document.

Enums
MIME_TYPE_UNSPECIFIED DO NOT USE
IMAGE_PNG Equivalent of IANA published MIME type image/png.
IMAGE_JPEG Equivalent of IANA published MIME type image/jpeg.
IMAGE_GIF Equivalent of IANA published MIME type image/gif.
APPLICATION_PDF Equivalent of IANA published MIME type application/pdf.

DefendChargebackResponse

Response object for the payment integrator hosted payment-integrator-dispute-api.defendChargeback method.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (DefendChargebackResultCode)
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

enum (DefendChargebackResultCode)

REQUIRED: Result of this call.

DefendChargebackResultCode

Result codes for the defendChargeback method.

Enums
DEFEND_CHARGEBACK_RESULT_CODE_UNSPECIFIED Do not ever set this default value!
SUCCESS The defense was successfully submitted.
CAPTURE_REQUEST_ID_NOT_FOUND The captureRequestId is not known to the receipient of the request.
INVALID_DOCUMENT_FORMAT The document payload is malformed.
CHARGEBACK_NOT_DEFENDABLE There is no recourse to defend this chargeback.

ErrorResponse

Error Response object for all methods.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "errorResponseCode": enum (ErrorResponseCode),
  "errorDescription": string,
  "paymentIntegratorErrorIdentifier": string
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

errorResponseCode

enum (ErrorResponseCode)

OPTIONAL: A code that captures the type of error that occurred.

errorDescription

string

OPTIONAL: Provide a description of this status for support reps to debug errors. Note that this is never shown to users. It can contain descriptive, non-sensitive text used for debugging. Note that some values for errorResponseCode should be accompanied by additional detail in this field. For example, INVALID_IDENTIFIER should be accompanied by information in this field as to which type of identifier was invalid. Warning: Do not include any tokens in this message unless they are defined as public.

paymentIntegratorErrorIdentifier

string

OPTIONAL: This identifier is specific to the integrator and is generated by the integrator. It is used for debugging purposes only in order to identify this call. This is the identifier that the integrator knows this call by.

ErrorResponseCode

Error Codes

Enums
UNKNOWN_ERROR_RESPONSE_CODE Do not ever set this default value!
INVALID_API_VERSION Used if the request's API version is unsupported. Advised HTTP Code: 400
INVALID_PAYLOAD_SIGNATURE Used if the signature of the payload is to an unknown or inactive key. Advised HTTP Code: 401
INVALID_PAYLOAD_ENCRYPTION Used if the encryption of the payload is to an unknown or inactive key. Advised HTTP Code: 400
REQUEST_TIMESTAMP_OUT_OF_RANGE Used if the requestTimestamp is not ± 60s of now. Advised HTTP Code: 400
INVALID_IDENTIFIER Used if an identifier sent in the request was invalid or unknown. This may include PIAID, captureRequestId, Google Payment Token, etc. The type of the invalid identifier should be specified in the errorDescription. Advised HTTP Code: 404
IDEMPOTENCY_VIOLATION Used if the request violates the idempotency requirements for the request. Advised HTTP Code: 412
INVALID_FIELD_VALUE Used if the request contains a value for a field that isn't in the set of supported values. Advised HTTP Code: 400
MISSING_REQUIRED_FIELD Used if a field that is required is unset in the request. Advised HTTP Code: 400
PRECONDITION_VIOLATION Used if a constraint on the operation is violated (e.g. when a request for a refund amount exceeds the amount remaining on the transaction). Advised HTTP Code: 400
USER_ACTION_IN_PROGRESS Used if the request cannot be processed at this time because it would interrupt an in-process user action which effectively acts as a system lock. This code must not be used to indicate failures due to implementation-specific internal concurrency errors. Advised HTTP Code: 423
INVALID_DECRYPTED_REQUEST Used if the request payload could be decrypted, but the resulting message could not be parsed. Advised HTTP Code: 400
FORBIDDEN Access to the requested resource is foribidden. Advised HTTP Code: 403