- [HTTP request](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#body.request_body)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#body.response_body)
- [PaymentLookupCriteria](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentLookupCriteria)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentLookupCriteria.SCHEMA_REPRESENTATION)
- [ArnCriteria](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#ArnCriteria)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#ArnCriteria.SCHEMA_REPRESENTATION)
- [GoogleTransactionReferenceNumberCriteria](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#GoogleTransactionReferenceNumberCriteria)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#GoogleTransactionReferenceNumberCriteria.SCHEMA_REPRESENTATION)
- [RequestOriginator](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestOriginator)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestOriginator.SCHEMA_REPRESENTATION)
- [Amount](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount.SCHEMA_REPRESENTATION)
- [FraudClassification](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudClassification)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudClassification.SCHEMA_REPRESENTATION)
- [Fraudulent](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Fraudulent)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Fraudulent.SCHEMA_REPRESENTATION)
- [FraudType](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudType)
- [NotFraudulent](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotFraudulent)
- [PaymentDisputeReasonCode](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentDisputeReasonCode)
- [RawResult](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RawResult)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RawResult.SCHEMA_REPRESENTATION)
- [RefundIssuer](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RefundIssuer)
- [RequestProactiveRefundResponse](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestProactiveRefundResponse)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestProactiveRefundResponse.SCHEMA_REPRESENTATION)
- [Result](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Result)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Result.SCHEMA_REPRESENTATION)
- [NotRefunded](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotRefunded)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotRefunded.SCHEMA_REPRESENTATION)
- [DecisionReason](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#DecisionReason)
- [Refunded](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Refunded)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Refunded.SCHEMA_REPRESENTATION)
- [AcquirerShouldRefund](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#AcquirerShouldRefund)
  - [JSON representation](https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#AcquirerShouldRefund.SCHEMA_REPRESENTATION)

Request that a transaction (possibly) be proactively refunded because a chargeback dispute is about to be filed against it.

### HTTP request

`POST https://vgw.googleapis.com/gsp/chargeback-alert-v1/requestProactiveRefund/https://developers.google.com/pay/chargeback-alert-v1/reference/glossary#payment_integrator_account_id`

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requestHeader": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/RequestHeader`) }, "paymentIntegratorAccountId": string, "paymentLookupCriteria": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentLookupCriteria`) }, "requestOriginator": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestOriginator`) }, "amount": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`) }, "fraudClassification": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudClassification`) }, "reasonCode": enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentDisputeReasonCode`), "rawResult": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RawResult`) }, "refundIssuer": enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RefundIssuer`) } ``` |

| Fields ||
|---|---|
| `requestHeader` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/RequestHeader`)`` **REQUIRED**: Common header for all requests. |
| `paymentIntegratorAccountId` | `string` **REQUIRED**: The payment integrator account identifier that identifies the caller and associated contractual constraints for this interaction. |
| `paymentLookupCriteria` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentLookupCriteria`)`` **REQUIRED**: Criteria indicating the payment that is to be looked up for this inquiry. |
| `requestOriginator` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestOriginator`)`` **REQUIRED**: Information about the organization or organizational sub-group that originated this request. |
| `amount` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`)`` **REQUIRED**: The requested refund amount. |
| `fraudClassification` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudClassification`)`` **REQUIRED**: Whether the vendor considers the original transaction to be fraudulent. |
| `reasonCode` | ``enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#PaymentDisputeReasonCode`)`` **REQUIRED**: The reason for the chargeback alert. |
| `rawResult` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RawResult`)`` **OPTIONAL** : Raw result of this chargeback alert. Used to help inform Google's risk engine and analytics. In chargeback 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 chargeback 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 (example: "10.4"). |
| `refundIssuer` | ``enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RefundIssuer`)`` **REQUIRED**: Which party is responsible for issuing a refund. |

### 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](https://developers.google.com/pay/chargeback-alert-v1/guides/connectivity/protocol-standards#http_status_codes).

| Possible response messages ||
|---|---|
| HTTP 200 Status | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#RequestProactiveRefundResponse`)`` |
| HTTP 4XX / 5XX Status | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/ErrorResponse`)`` |
| End of mutually exclusive fields. ||

## PaymentLookupCriteria

Container for criteria that can uniquely lookup a payment. One (and only one) member field must be populated.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "arnCriteria": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#ArnCriteria`) }, "googleTransactionReferenceNumberCriteria": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#GoogleTransactionReferenceNumberCriteria`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| **REQUIRED**: The criteria for finding the payments. Exactly one member must be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `arnCriteria` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#ArnCriteria`)`` Lookup based on Acquirer Reference Number (ARN). |
| `googleTransactionReferenceNumberCriteria` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#GoogleTransactionReferenceNumberCriteria`)`` Lookup based on the Google Transaction Reference Number. |
| End of mutually exclusive fields. ||

## ArnCriteria

Payment lookup criteria based on Acquirer Reference Number (ARN).

| JSON representation |
|---|
| ``` { "acquirerReferenceNumber": string, "authorizationCode": string } ``` |

| Fields ||
|---|---|
| `acquirerReferenceNumber` | `string` **REQUIRED**: The Acquirer Reference Number (ARN) that uniquely identifies the payment. Must be 23-24 digits long. |
| `authorizationCode` | `string` **REQUIRED**: The Authorization Code for the transaction. |

## GoogleTransactionReferenceNumberCriteria

Payment lookup criteria based on the Google-generated Transaction Reference Number.

| JSON representation |
|---|
| ``` { "googleTransactionReferenceNumber": string, "authorizationCode": string } ``` |

| Fields ||
|---|---|
| `googleTransactionReferenceNumber` | `string` **REQUIRED**: The Google-generated Transaction Reference Number that uniquely identifies the payment. |
| `authorizationCode` | `string` **REQUIRED**: The Authorization Code for the transaction. |

## RequestOriginator

Information about the organization or organizational sub-group, and optionally the employee, from which this request originated. This allows Google to identify issues or abuse and implement controls at a finer-grained level than the `paymentIntegratorAccountId`. It is especially valuable when the caller is an intermediary service provider that sources requests from multiple external clients.

| JSON representation |
|---|
| ``` { "organizationId": string, "organizationDescription": string } ``` |

| Fields ||
|---|---|
| `organizationId` | `string` **REQUIRED** : An identifier of the company, organization, or organizational group from which this request originated. Must be unique within this `paymentIntegratorAccountId`. |
| `organizationDescription` | `string` **REQUIRED**: A human-readable name or description of the organization that can be used to ease communication between employees of Google and the integrator regarding that organization. |

## Amount

Associates an amount in micros with a currency code.

| JSON representation |
|---|
| ``` { "amountMicros": string, "currencyCode": string } ``` |

| Fields ||
|---|---|
| `amountMicros` | `string (https://developers.google.com/discovery/v1/type-format format)` **REQUIRED** : An amount in [micros](https://developers.google.com/pay/chargeback-alert-v1/reference/glossary#micros "What are micros?"). |
| `currencyCode` | `string` **REQUIRED**: ISO 4217 3-letter currency code |

## FraudClassification

Container for whether or not the vendor considers the original transaction fraudulent. One (and only one) member field must be present.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "fraudulent": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Fraudulent`) }, "notFraudulent": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotFraudulent`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| **REQUIRED**: Exactly one of these fields must be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `fraudulent` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Fraudulent`)`` The original transaction was fraudulent. |
| `notFraudulent` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotFraudulent`)`` The original transaction was not fraudulent. |
| End of mutually exclusive fields. ||

## Fraudulent

Details for a transaction that was fraudulent.

| JSON representation |
|---|
| ``` { "fraudType": enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudType`) } ``` |

| Fields ||
|---|---|
| `fraudType` | ``enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#FraudType`)`` **REQUIRED**: The type of Fraud. |

## FraudType

The type of fraud that may have occurred.

| 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. |
| `SCAM` | The cardholder was manipulated by a fraudster to provide payment in good-faith, to an account the cardholder believes belongs to a legitimate payee. |
| `MERCHANT_FRAUD` | The cardholder was deliberately misled by the merchant. |

## NotFraudulent

This type has no fields.
Details for a transaction that was not fraudulent.

## PaymentDisputeReasonCode

Reason code for disputed transaction.

| Enums ||
|---|---|
| `UNKNOWN_REASON` | Do not ever set this default value! |
| `FRAUD` | Fraudulent transaction. |
| `FAMILIAR_FRAUD` | Fraudulent transaction made by a family member, friend, or member of the household. |
| `SUSPICIOUS` | Suspicious transaction. |
| `CHARGE_NOT_RECOGNIZED` | The user does not recognize the charge on their bill. |
| `CREDIT_NOT_PROCESSED` | The user was told they would get a refund but they never got it. |
| `DUPLICATE_PAYMENT` | The user was charged twice for the same purchase. |
| `SUBSCRIPTION_CANCELED` | The user canceled a subscription but was still charged. |
| `INPUT_ERROR` | User input error. |
| `INSUFFICIENT_FUNDS` | User didn't have sufficient funds. |
| `NOT_DELIVERED` | Item was never delivered. |
| `DEFECTIVE_OR_NOT_AS_DESCRIBED` | Merchandise was defective or not as described. |
| `INCORRECT_MERCHANDISE` | The user received the wrong merchandise. |
| `UNWANTED_MERCHANDISE` | The user was charged for and received merchandise they did not order. |
| `TRANSACTION_AMOUNT_DIFFER` | The amount that was charged to the user was not the amount they expected. |
| `PAID_BY_OTHER_MEANS` | The user was charged for a transaction that they had already paid for by some other means, such as a different instrument. |
| `LATE_PRESENTMENT` | The transaction was not submitted in time for processing. |

## 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. |

## RefundIssuer

Which party is responsible for issuing a refund.

| Enums ||
|---|---|
| `UNKNOWN_TYPE` | Do not ever set this default value! |
| `MERCHANT` | The Merchant (Google) is responsible for issuing the refund. |
| `ACQUIRER` | The Acquirer is responsible for initiating the refund. |

## RequestProactiveRefundResponse

Response payload for the `requestProactiveRefund` method.

| JSON representation |
|---|
| ``` { "responseHeader": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/ResponseHeader`) }, "result": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Result`) } } ``` |

| Fields ||
|---|---|
| `responseHeader` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/ResponseHeader`)`` **REQUIRED**: Common header for all responses. |
| `result` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Result`)`` **REQUIRED**: The result of the proactive refund request. |

## Result

A container for the response details. Exactly one member field must be populated.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "notRefunded": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotRefunded`) }, "refunded": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Refunded`) }, "acquirerShouldRefund": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#AcquirerShouldRefund`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| **REQUIRED**: The type of result. Exactly one of the values must be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `notRefunded` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#NotRefunded`)`` The transaction was not and should not be refunded. |
| `refunded` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Refunded`)`` Google refunded the transaction. |
| `acquirerShouldRefund` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#AcquirerShouldRefund`)`` The acquirer should refund the transaction. |
| End of mutually exclusive fields. ||

## NotRefunded

Details of why the transaction was not refunded.

| JSON representation |
|---|
| ``` { "decisionReason": enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#DecisionReason`) } ``` |

| Fields ||
|---|---|
| `decisionReason` | ``enum (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#DecisionReason`)`` **REQUIRED**: The reason why the transaction was not and should not be refunded. |

## DecisionReason

The reason for the decision not to refund the transaction.

| Enums ||
|---|---|
| `UNKNOWN_REASON` | Do not ever set this default value! |
| `PREVIOUSLY_REFUNDED` | The transaction was previously refunded. |
| `PREVIOUSLY_CHARGED_BACK` | The transaction was previously charged back. |
| `REQUEST_EXCEEDS_TRANSACTION_AMOUNT` | The requested refund amount exceeds the original transaction amount by more than the allowed amount. |
| `OTHER` | Some other reason not covered by the other values. |

## Refunded

Google refunded the transaction.

| JSON representation |
|---|
| ``` { "amount": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`) } } ``` |

| Fields ||
|---|---|
| `amount` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`)`` **REQUIRED**: The amount refunded. This may differ from the requested amount if, for example, the amount requested exceeded that of the original transaction. |

## AcquirerShouldRefund

The acquirer should refund the transaction.

| JSON representation |
|---|
| ``` { "amount": { object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`) } } ``` |

| Fields ||
|---|---|
| `amount` | ``object (`https://developers.google.com/pay/chargeback-alert-v1/google-chargeback-alert-api/requestProactiveRefund#Amount`)`` **REQUIRED**: The amount that should refunded. This may differ from the requested amount if, for example, the amount requested exceeded that of the original transaction. |