Method: fraudNotification

Notifies Google of a fraud dispute initiated by a customer.

It is recommended that Google is notified of all potential fraud that has occurred.

Fraud can occur without a chargeback and a chargeback can occur without fraud. The information provided to this method does not initiate any money movement. It is used only to update Google's internal risk engine to reduce overall fraud. Google does not respond to this request with any information about the transaction.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1
    },
    "requestId": "f3b6cffe-6fa0-4c33-84b5-7ff8d1ac9ecc",
    "requestTimestamp": {
      "epochMillis": "1483532962000"
    },
    "paymentIntegratorAccountId": "SpeedyPaymentsIndia_INR"
  },
  "captureRequestId": "G112YZH4XPDV88J",
  "fraudType": "FRAUDULENT_USE",
  "rawResult": {
    "scope": "VISA",
    "rawCode": "06"
  }
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis": "1483532962349"
    },
    "requestId": "f3b6cffe-6fa0-4c33-84b5-7ff8d1ac9ecc"
  },
  "result": {
    "success": {}
  }
}

HTTP request

POST https://billpaynotification.googleapis.com/secure-serving/gsp/google-fraud-api/v1/fraudNotification

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "captureRequestId": string,
  "fraudType": enum (FraudType),
  "rawResult": {
    object (RawResult)
  }
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

captureRequestId

string

REQUIRED: A unique identifier for the capture the potential fraud is associated with. This is the requestId generated by Google during the captureFundsReservation or capture for the original request.

fraudType

enum (FraudType)

REQUIRED: This is the type of fraud that may have occurred.

rawResult

object (RawResult)

REQUIRED: Raw result of the fraud notification from the issuer. Used to help inform Google's risk engine and analytics. In fraud code–mapping situations, data is sometimes lost. The integrator can choose to give Google a raw code. For example, a credit card gateway (the integrator) may use this field to communicate to Google the exact fraud code that was received from the VISA network. In that case, the scope would be "visa" and the rawCode would be whatever the VISA network returned.

Response body

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

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

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

object (FraudNotificationResult)

REQUIRED: Result of this call.

RequestHeader

Header object that is defined on all requests sent to the server.

JSON representation
{
  "requestId": string,
  "requestTimestamp": {
    object (Timestamp)
  },
  "protocolVersion": {
    object (Version)
  },
  "paymentIntegratorAccountId": string
}
Fields
requestId

string

REQUIRED: Unique identifier of this request.

This is a string that has a max length of 100 characters, and contains only the characters "a-z", "A-Z", "0-9", ":", "-", and "_".

requestTimestamp

object (Timestamp)

REQUIRED: Timestamp of this request. The receiver must verify that this timestamp is ± 60s of 'now', and reject the request if it is not. This request timestamp is not idempotent upon retries.

protocolVersion

object (Version)

REQUIRED: The version of this request.

paymentIntegratorAccountId

string

REQUIRED: Identifies a unique account with contractual constraints.

Timestamp

A timestamp object representing a point on the ISO timeline in milliseconds since the Unix epoch.

JSON representation
{
  "epochMillis": string
}
Fields
epochMillis

string (Int64Value format)

Milliseconds since the Unix epoch

Version

Version object which is a structured form of the classic a.b.c version structure. Major versions of the same number are guaranteed to be compatible. Note that minor and revisions can change frequently and without notice. The integrator must support all requests for the same major version.

JSON representation
{
  "major": integer
}
Fields
major

integer

REQUIRED: Major version. This is marked for compatibility requests with different versions are not guaranteed to be compatible.

FraudType

Fraud type for the FraudNotificationRequest method.

Enums
UNKNOWN_TYPE Do not ever set this default value!
FRAUDULENT_USE Use was not authorized.
COUNTERFEIT Account owner did not knowingly participate in a transaction.
LOST The instrument was reported as lost by the account holder at the time of the transaction.
STOLEN The instrument was reported as comprimised by the account holder at the time of the transaction.
ACCOUNT_TAKEOVER The transaction was not authorized by the account holder.
FRAUDULENT_APPLICATION The user did not apply for this account or provided false details.
CARD_NOT_RECEIVED A card was reported as not received by the cardholder at the time of the transaction.
OTHER Unrecognized or unmapped type.

RawResult

Raw result object.

JSON representation
{
  "scope": string,
  "rawCode": string
}
Fields
scope

string

OPTIONAL: Scope of the rawCode, can be empty.

rawCode

string

REQUIRED: Raw code from the integrator or subsystems within it.

ResponseHeader

Header object that is defined on all responses sent from the server.

JSON representation
{
  "responseTimestamp": {
    object (Timestamp)
  },
  "requestId": string
}
Fields
responseTimestamp

object (Timestamp)

REQUIRED: Timestamp of this response. The receiver must verify that this timestamp is ± 60s of 'now', and reject the response if it is not.

requestId

string

REQUIRED: The requestId of the request that this response is a reply to. Receiver must verify this matches the requestId they sent, and reject the response message if it doesn't match.

FraudNotificationResult

Result codes for the fraudNotification method.

JSON representation
{
  "success": {
    object (Empty)
  }
}
Fields
success

object (Empty)

Fraud notification was successfully processed.

Empty

A generic empty message that can be re-used to require information that is not always available to be explicitly empty or included. Empty messages will also be used in places where the (moneta.presence) of the message is indicative of some behavior or data, but there is no additional data inside the message yet. Typically this is done to avoid using booleans fields since booleans are not extensible.

e.x. oneof important_information { option (moneta.oneof_presence) = REQUIRED; Empty information_not_available = 2; ImportantInformationDetails important_information_details = 3; }

The JSON representation for Empty is empty JSON object {}.