Method: settlementNotification

Informs Google that a set of events will be net settled in bulk into a Google bank account.

If the echo is successful, the endpoint will return an HTTP 200 and the response will be of type EchoResponse.

If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type ErrorResponse or contain a generic error (e.g. a message similar to "There was an error. Please try again later.").

The generic error is used in situations where an ErrorResponse with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an ErrorResponse.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1
    },
    "requestId": "statement_detail_request_139932019",
    "requestTimestamp":{
      "epochMillis": "1502551332087"
    },
    "paymentIntegratorAccountId": "InvisiCashUSA_USD"
  },
  "generatedTimestamp": {
    "epochMillis": "1481899949606"
  },
  "settlementPeriod": {
    "start": {
      "epochMillis": "1481892949606"
    },
    "end": {
      "epochMillis": "1481899949606"
    }
  },
  "settlementAmount": {
    "amountMicros": "836000",
    "currencyCode": "USD"
  },
  "settlementId": "STL_423JRE41",
  "notificationOffset": 0,
  "notificationTotal": 2,
  "captureEvents": [
    {
      "captureRequestId": "076c1924-e8b3-4168-b456-363f72f5d7f1",
      "paymentIntegratorCaptureId": "12439VSDERA4",
      "eventCharge": {
        "amountMicros": "2000000",
        "currencyCode": "USD"
      },
      "eventFee": {
        "amountMicros": "-60000",
        "currencyCode": "USD"
      },
      "eventVat": {
        "amountMicros": "-20000",
        "currencyCode": "USD"
      },
      "eventFeeBreakdown": {
        "feeDetails": [
          {
            "unitFee": {
              "amountMicros": "-20000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "scheme": {}
            },
            "feeType": {
              "authorization": {}
            },
            "feeCategory": "IA",
            "feeSubCategory": "ASSESSMENT_FEES",
            "feeDescription": "MC Connectivity Fee"
          },
          {
            "unitFee": {
              "amountMicros": "-20000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "contract": {}
            },
            "feeType": {
              "authorization": {}
            },
            "feeCategory": "PFEE",
            "feeSubCategory": "AUTHORIZATION_FEES",
            "feeDescription": "Online Authorization"
          },
          {
            "unitFee": {
              "amountMicros": "-20000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "interchange": {
                "interchangeCode": "MIS",
                "interchangeQualification": "MasterCard International Standard"
              }
            },
            "feeType": {
              "capture": {}
            },
            "feeCategory": "IA",
            "feeSubCategory": "INTERCHANGE_FEES",
            "feeDescription": "Interchange"
          }
        ]
      }
    },
    {
      "captureRequestId": "5cbbb5d7-523d-443e-86ef-8a480e5547c1",
      "paymentIntegratorCaptureId": "H4ARKL3431",
      "eventCharge": {
        "amountMicros": "2990000",
        "currencyCode": "USD"
      },
      "eventFee": {
        "amountMicros": "-63000",
        "currencyCode": "USD"
      },
      "eventVat": {
        "amountMicros": "-21000",
        "currencyCode": "USD"
      },
      "eventFeeBreakdown": {
        "feeDetails": [
          {
            "unitFee": {
              "amountMicros": "-21000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "contract": {}
            },
            "feeType": {
              "capture": {}
            },
            "feeCategory": "PFEE",
            "feeSubCategory": "DEPOSIT_FEES",
            "feeDescription": "Settled Dep. Fee"
          },
          {
            "unitFee": {
              "amountMicros": "-21000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "interchange": {
                "interchangeCode": "MM1P",
                "interchangeQualification": "MC AVS Card Not Present Fee"
              }
            },
            "feeType": {
              "authorization": {}
            },
            "feeCategory": "IA",
            "feeSubCategory": "INTERCHANGE_FEES",
            "feeDescription": "Interchange"
          },
          {
            "unitFee": {
              "amountMicros": "-21000",
              "currencyCode": "USD"
            },
            "feeAssessmentSource": {
              "interchange": {
                "interchangeCode": "MM1P",
                "interchangeQualification": "MC Reporting&Infrastructure"
              }
            },
            "feeType": {
              "capture": {}
            },
            "feeCategory": "IA",
            "feeSubCategory": "INTERCHANGE_FEES",
            "feeDescription": "Interchange"
          }
        ]
      }
    }
  ],
  "refundEvents": [
    {
      "asynchronousRefundRequestId": "17f76596-2ba5-4acf-806d-d6f72a70c89d",
      "paymentIntegratorRefundId": "4378VS143UH",

      "eventCharge": {
        "amountMicros": "-1990000",
        "currencyCode": "USD"
      },
      "eventFee": {
        "amountMicros": "0",
        "currencyCode": "USD"
      },
      "eventVat": {
        "amountMicros": "0",
        "currencyCode": "USD"
      }
    }

  ],
  "reverseRefundEvents": [],
  "chargebackEvents": [],
  "reverseChargebackEvents": [],
  "aggregateAdjustments": [
    {
      "adjustmentAmount": {
          "amountMicros": "-2000000",
          "currencyCode": "USD"
      },
      "adjustmentType": {
        "chargebackThresholdFine": {}
      }
    }
  ]
}

An example success response looks like:


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis": "1481899950236"
    }
  },
  "result": {
    "accepted": {}
  }
}

HTTP request

POST https://vgw.googleapis.com/gsp/v1/settlementNotification/:PIAID

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "generatedTimestamp": {
    object (Timestamp)
  },
  "settlementPeriod": {
    object (Interval)
  },
  "settlementAmount": {
    object (Amount)
  },
  "settlementId": string,
  "notificationOffset": string,
  "notificationTotal": string,
  "captureEvents": [
    {
      object (CaptureEvent)
    }
  ],
  "refundEvents": [
    {
      object (RefundEvent)
    }
  ],
  "reverseRefundEvents": [
    {
      object (ReverseRefundEvent)
    }
  ],
  "chargebackEvents": [
    {
      object (ChargebackEvent)
    }
  ],
  "reverseChargebackEvents": [
    {
      object (ReverseChargebackEvent)
    }
  ],
  "fundsReservationEvents": [
    {
      object (FundsReservationEvent)
    }
  ],
  "aggregateAdjustments": [
    {
      object (AggregateAdjustment)
    }
  ]
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

generatedTimestamp

object (Timestamp)

REQUIRED: Timestamp of when this report was generated.

settlementPeriod

object (Interval)

REQUIRED: The period this settlement report covers.

settlementAmount

object (Amount)

REQUIRED: This should match the sum of all the eventCharge, eventFee, eventVat and aggregateAdjustment amounts in this SettlementNotificationRequest. If the settlement report is made up of multiple settlement notifications, the total amount settled will be the sum of each of these settlementAmount.

settlementId

string

REQUIRED: This should be a unique ID that identifies the settlement report. All SettlementNotificationRequest for this settlement report should use the same settlementId.

notificationOffset

string (Int64Value format)

REQUIRED: This is the offset of this SettlementNotificationRequest. The first should have a notificationOffset of 0 and the last should have an offset of notificationTotal-1.

notificationTotal

string (Int64Value format)

REQUIRED: The total number of SettlementNotificationRequest in this settlement report.

captureEvents[]

object (CaptureEvent)

REQUIRED: Set of capture events.

refundEvents[]

object (RefundEvent)

REQUIRED: Set of refund events.

reverseRefundEvents[]

object (ReverseRefundEvent)

REQUIRED: Set of reverse refund events.

chargebackEvents[]

object (ChargebackEvent)

REQUIRED: Set of chargeback events.

reverseChargebackEvents[]

object (ReverseChargebackEvent)

REQUIRED: Set of reverse chargeback events.

fundsReservationEvents[]

object (FundsReservationEvent)

REQUIRED: Set of funds reservation events.

aggregateAdjustments[]

object (AggregateAdjustment)

REQUIRED: Adjustments that don't apply to an individual transaction.

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.

Possible response messages
HTTP 200 Status

object (SettlementNotificationResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

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)

REQUIRED: Milliseconds since the Unix epoch

Version

Version object contains the major version of the API. Versions of the same major version are guaranteed to be compatible. 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.

Interval

A length of time with a chronological beginning and end.

JSON representation
{
  "start": {
    object (Timestamp)
  },
  "end": {
    object (Timestamp)
  }
}
Fields
start

object (Timestamp)

REQUIRED: The start of this interval, which is inclusive.

end

object (Timestamp)

REQUIRED: The end of this interval, which is exclusive.

Amount

Associates an amount in micros with a currency code.

JSON representation
{
  "amountMicros": string,
  "currencyCode": string
}
Fields
amountMicros

string (Int64Value format)

REQUIRED: An amount in micros.

currencyCode

string

REQUIRED: ISO 4217 3-letter currency code

CaptureEvent

This represents a payment where a customer is charged. It is associated with a capture, asynchronousCaptureFundsReservation or beginRedirect event.

JSON representation
{
  "captureRequestId": string,
  "paymentIntegratorCaptureId": string,
  "eventCharge": {
    object (Amount)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  },
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventVat": {
    object (Amount)
  }
}
Fields
captureRequestId

string

REQUIRED: requestId that was sent by Google for the capture event represented by this settlementEvent.

paymentIntegratorCaptureId

string

REQUIRED: An ID that is generated by the payment integrator that can be used to refer to this capture event.

eventCharge

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

eventPresentmentDetails

object (EventPresentmentDetails)

OPTIONAL: If the settlement currency is different than the purchase currency then this field should be used to specify details about the event in the original purchase currency and the conversion to the settlement amount.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventVat

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

This is the value-added-tax (VAT) for the eventFee. This amount is in addition to the fee. e.g. If the eventCharge is $2.00, the eventFee is -$0.20 and the eventVat is -$0.05 the total settlement value for this event would be $1.75.

EventPresentmentDetails

This represents a presentment currency and a conversion rate in case the settlement and the purchase currencies are different.

JSON representation
{
  "presentmentAmount": {
    object (Amount)
  },
  "nanoExchangeRate": string
}
Fields
presentmentAmount

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

The presentment amount of the purchase in the currency that was used for the purchase. This should only be specified if the purchase currency is different than the settlement currency.

nanoExchangeRate

string (Int64Value format)

REQUIRED: The exchange rate used in converting the presentment amount to the settlement (invoice) amount.

This value is in nano basis points (1 basis point = .0001 = .01%). That is, to get the exchange rate, divide this field by 10^13.

Example:

  • $1 USD is €0.85 EUR.
  • USD/EUR exchange rate is: 0.85
  • USD/EUR exchange rate with 0.0001 basis point is: 0.85*10^(4)
  • USD/EUR exchange rate with nano 0.0001 basis point is: 0.85*10^(13)
  • USD/EUR exchange rate with nano 0.0001 basis point is: 8 500 000 000 000

EventFeeBreakdown

This represents a breakdown of the eventFee that can be used for reporting purposes to better understand the fee makeup.

JSON representation
{
  "feeDetails": [
    {
      object (FeeDetail)
    }
  ]
}
Fields
feeDetails[]

object (FeeDetail)

FeeDetail

This represents details of a fee event.

JSON representation
{
  "unitFee": {
    object (Amount)
  },
  "feeAssessmentSource": {
    object (FeeAssessmentSource)
  },
  "feeType": {
    object (FeeType)
  },
  "feeCategory": string,
  "feeSubCategory": string,
  "feeDescription": string
}
Fields
unitFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

The amount of the fee being described. This can be smaller than the minimum billible unit. The sum of all the unitFee should be close to the eventFee but might not be exact due to rounding or small values less than the minimum billible unit. Because of that, this value might not match the exact amount settled for the transaction. The eventFee should be used for the amount settled.

feeAssessmentSource

object (FeeAssessmentSource)

REQUIRED: The source that is assessing the fee.

feeType

object (FeeType)

REQUIRED: This is the type of the fee event. It might match the event type, but it doesn't have to. For example, an authorization fee might be assessed with a captureEvent.

feeCategory

string

REQUIRED: The category of the fee. e.g. Discount, Fee, etc.

feeSubCategory

string

REQUIRED: The category of the fee. e.g. Authorization, assessment, deposit, etc.

feeDescription

string

REQUIRED: A description of the fee. This field is not parsed by the system and is only for human consumption to better understand the fee.

FeeAssessmentSource

The source that assessed the fee.

JSON representation
{

  // Union field fee_assessment_source can be only one of the following:
  "scheme": {
    object (Empty)
  },
  "interchange": {
    object (InterchangeFee)
  },
  "contract": {
    object (Empty)
  }
  // End of list of possible types for union field fee_assessment_source.
}
Fields

Union field fee_assessment_source.

fee_assessment_source can be only one of the following:

scheme

object (Empty)

The fee is assessed by the scheme or network.

interchange

object (InterchangeFee)

The fee is assessed as part of the interchange fee.

contract

object (Empty)

The fee is specified in the contract between Google and the payment integrator.

Empty

This type has no fields.

This object is used for extensibility because booleans and enumerations often need to be extended with extra data. The implementer uses it to determine presence. The enumeration this represents may be extended to contain data in future versions.

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

InterchangeFee

Detailed information about an interchange fee.

JSON representation
{
  "interchangeCode": string,
  "interchangeQualification": string
}
Fields
interchangeCode

string

REQUIRED: The interchange fee code.

interchangeQualification

string

REQUIRED: The qualification of the interchange fee.

FeeType

The type of fee.

JSON representation
{

  // Union field fee_type can be only one of the following:
  "authorization": {
    object (Empty)
  },
  "capture": {
    object (Empty)
  },
  "refund": {
    object (Empty)
  },
  "chargeback": {
    object (Empty)
  },
  "reverseChargeback": {
    object (Empty)
  },
  "reverseRefund": {
    object (Empty)
  },
  "fxMarkup": {
    object (Empty)
  },
  "authReversal": {
    object (Empty)
  },
  "partialRefund": {
    object (Empty)
  }
  // End of list of possible types for union field fee_type.
}
Fields

Union field fee_type.

fee_type can be only one of the following:

authorization

object (Empty)

The fee is assessed as part of an authorization.

capture

object (Empty)

The fee is assessed as part of a capture.

refund

object (Empty)

The fee is assessed as part of a refund.

chargeback

object (Empty)

The fee is assessed as part of a chargeback.

reverseChargeback

object (Empty)

The fee is assessed as part of a reverse chargeback.

reverseRefund

object (Empty)

The fee is assessed as part of a reverse refund.

fxMarkup

object (Empty)

The fee is assessed as part of an exchange rate markup.

authReversal

object (Empty)

Fee associated with a reversal of an authorization event.

partialRefund

object (Empty)

Fee associated with a partial refund event.

RefundEvent

This represents a refund where money is being returned to a customer. It will be associated with a refund event.

JSON representation
{
  "asynchronousRefundRequestId": string,
  "paymentIntegratorRefundId": string,
  "eventCharge": {
    object (Amount)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  },
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventVat": {
    object (Amount)
  }
}
Fields
asynchronousRefundRequestId

string

REQUIRED: requestId that was sent by Google for the asynchronousRefund request that this settlementEvent pertains to.

paymentIntegratorRefundId

string

REQUIRED: An ID that is generated by the payment integrator that can be used to refer to this refund event.

eventCharge

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

eventPresentmentDetails

object (EventPresentmentDetails)

OPTIONAL: If the settlement currency is different than the purchase currency then this field should be used to specify details about the event in the original purchase currency and the conversion to the settlement amount.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

For example, if an agreement says that Google will pay 1% of the eventCharge to the payment integrator, and will reverse that 1% upon refund of that transaction, then the capture fee will be negative and upon refund the refund fee will be positive.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventVat

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

This is the value-added-tax (VAT) for the eventFee. This amount is in addition to the fee. e.g. If the eventCharge is $2.00, the eventFee is -$0.20 and the eventVat is -$0.05 the total settlement value for this event would be $1.75.

ReverseRefundEvent

This represents a reverse refund. It is associated with a reverseRefundNotification and typically is used when a refund was performed but the issuing bank was unable to return funds to the customer, so they are being returned to Google.

JSON representation
{
  "asynchronousRefundRequestId": string,
  "paymentIntegratorReverseRefundNotificationRequestId": string,
  "eventCharge": {
    object (Amount)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  },
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventVat": {
    object (Amount)
  }
}
Fields
asynchronousRefundRequestId

string

REQUIRED: requestId that was sent by Google for the refund request that this reverseRefundEvent is reversing.

paymentIntegratorReverseRefundNotificationRequestId

string

REQUIRED: This is the requestId generated by the payment integrator in the reversereRefundNotification request.

eventCharge

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

eventPresentmentDetails

object (EventPresentmentDetails)

OPTIONAL: If the settlement currency is different than the purchase currency then this field should be used to specify details about the event in the original purchase currency and the conversion to the settlement amount.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

For example, if an agreement says that Google will pay 1% of the eventCharge to the payment integrator, and will reverse that 1% upon refund of that transaction, then the capture fee will be negative and upon refund the refund fee will be positive.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventVat

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

This is the value-added-tax (VAT) for the eventFee. This amount is in addition to the fee. e.g. If the eventCharge is $2.00, the eventFee is -$0.20 and the eventVat is -$0.05 the total settlement value for this event would be $1.75.

ChargebackEvent

This represents a chargeback. It is associated with a chargebackNotification and is used when a customer disputes a payment made in a capture or asynchronousCaptureFundsReservation. This is used to return funds to the customer.

JSON representation
{
  "captureRequestId": string,
  "paymentIntegratorChargebackNotificationRequestId": string,
  "eventCharge": {
    object (Amount)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  },
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventVat": {
    object (Amount)
  }
}
Fields
captureRequestId

string

REQUIRED: requestId that was sent by Google for the capture request that this settlementEvent pertains to.

paymentIntegratorChargebackNotificationRequestId

string

REQUIRED: This is the requestId generated by the payment integrator in the chargebackNotification request.

eventCharge

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

eventPresentmentDetails

object (EventPresentmentDetails)

OPTIONAL: If the settlement currency is different than the purchase currency then this field should be used to specify details about the event in the original purchase currency and the conversion to the settlement amount.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

For example, if an agreement says that Google will pay 1% of the eventCharge to the payment integrator, and will reverse that 1% upon refund of that transaction, then the capture fee will be negative and upon refund the refund fee will be positive.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventVat

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

This is the value-added-tax (VAT) for the eventFee. This amount is in addition to the fee. e.g. If the eventCharge is $2.00, the eventFee is -$0.20 and the eventVat is -$0.05 the total settlement value for this event would be $1.75.

ReverseChargebackEvent

This represents a reverse chargeback. It is associated with a reverseChargebackNotification and is used when Google successfully disputes a chargebackNotification. The funds are being returned to Google.

JSON representation
{
  "captureRequestId": string,
  "paymentIntegratorReverseChargebackNotificationRequestId": string,
  "eventCharge": {
    object (Amount)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  },
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventVat": {
    object (Amount)
  }
}
Fields
captureRequestId

string

REQUIRED: requestId that was sent by Google for the capture request that this settlementEvent pertains to.

paymentIntegratorReverseChargebackNotificationRequestId

string

REQUIRED: This is the requestId generated by the payment integrator in the reversereChargebackNotification request.

eventCharge

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

eventPresentmentDetails

object (EventPresentmentDetails)

OPTIONAL: If the settlement currency is different than the purchase currency then this field should be used to specify details about the event in the original purchase currency and the conversion to the settlement amount.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

For example, if an agreement says that Google will pay 1% of the eventCharge to the payment integrator, and will reverse that 1% upon refund of that transaction, then the capture fee will be negative and upon refund the refund fee will be positive.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventVat

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

This is the value-added-tax (VAT) for the eventFee. This amount is in addition to the fee. e.g. If the eventCharge is $2.00, the eventFee is -$0.20 and the eventVat is -$0.05 the total settlement value for this event would be $1.75.

FundsReservationEvent

This represents fees associated with a funds reservation. It is associated with a reserveFunds.

JSON representation
{
  "fundsReservationRequestId": string,
  "eventFee": {
    object (Amount)
  },
  "eventFeeBreakdown": {
    object (EventFeeBreakdown)
  },
  "eventPresentmentDetails": {
    object (EventPresentmentDetails)
  }
}
Fields
fundsReservationRequestId

string

REQUIRED: requestId that was sent by Google for the reserveFunds request that this settlementEvent pertains to.

eventFee

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. If the fee is broken down into several parts, this value is the sum of them and the amount settled. A breakdown of the fee can be specified in the eventFeeBreakdown.

eventFeeBreakdown

object (EventFeeBreakdown)

OPTIONAL: This is a breakdown of the eventFee. It is used for reporting purposes and is not factored into the settlementAmount. It is used to understand what parts of the eventFee are attributable to what sources.

eventPresentmentDetails

object (EventPresentmentDetails)

REQUIRED: Specify details about the funds reservation currency, amount and the conversion rate to the settlement currency.

AggregateAdjustment

This represents settlement of amounts that don't apply to a specific transaction and instead occur in aggregate.

JSON representation
{
  "adjustmentAmount": {
    object (Amount)
  },
  "adjustmentType": {
    object (AdjustmentType)
  }
}
Fields
adjustmentAmount

object (Amount)

REQUIRED: If this amount is negative then it represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

The amount of the adjustment that will be factored into the settlementAmount for this settlementNotificationRequest.

adjustmentType

object (AdjustmentType)

REQUIRED: This provides more information about the adjustment.

AdjustmentType

This provides more information about the adjustment type.

JSON representation
{

  // Union field adjustment_type can be only one of the following:
  "aggregatedAuthorizationFees": {
    object (AggregatedFees)
  },
  "aggregatedChargebackFees": {
    object (AggregatedFees)
  },
  "aggregatedIntegrityFees": {
    object (AggregatedFees)
  },
  "aggregatedAuthorizationFeesVariance": {
    object (AggregatedFees)
  },
  "aggregatedChargebackFeesVariance": {
    object (AggregatedFees)
  },
  "aggregatedIntegrityFeesVariance": {
    object (AggregatedFees)
  },
  "chargebackThresholdFine": {
    object (Empty)
  },
  "miscellaneousAdjustment": {
    object (MiscellaneousAdjustment)
  },
  "eventFeesRounding": {
    object (Empty)
  },
  "aggregatedSchemeFees": {
    object (Empty)
  },
  "aggregatedGoodsServicesFees": {
    object (Empty)
  },
  "aggregatedSchemeFeesVariance": {
    object (Empty)
  }
  // End of list of possible types for union field adjustment_type.
}
Fields

Union field adjustment_type.

adjustment_type can be only one of the following:

aggregatedAuthorizationFees

object (AggregatedFees)

Credit card authorization fees aggregated over a period of time. This should only be used if those fees aren't provided at the transaction level via the eventFee field.

aggregatedChargebackFees

object (AggregatedFees)

Chargeback fees aggregated over a period of time. This should only be used if those fees can't be provided at the transaction level via the eventFee field.

aggregatedIntegrityFees

object (AggregatedFees)

Aggregated integrity fees over a period of time. Integrity fees are imposed by a card network for transactions that were not 3DS-authenticated. This should only be used if those fees aren't provided at the transaction level via the eventFee field.

aggregatedAuthorizationFeesVariance

object (AggregatedFees)

Aggregate change in authorization fees due to updated rates or some other factor that was unknown when the authorization fees were originally set in the eventFee field with the transactions.

aggregatedChargebackFeesVariance

object (AggregatedFees)

Aggregate change in chargeback fees due to updated rates or some other factor that was unknown when the chargeback fees were originally set in the eventFee field with the transactions.

aggregatedIntegrityFeesVariance

object (AggregatedFees)

Aggregate change in integrity fees due to updated rates or some other factor that was unknown when the integrity fees were originally set in the eventFee field with the transactions.

chargebackThresholdFine

object (Empty)

Card networks (eg VISA, MC) have Dispute Monitoring Programs. A fine can be imposed by a card network for breaking a certain chargeback threshold in terms of a number of chargebacks per a period of time.

miscellaneousAdjustment

object (MiscellaneousAdjustment)

Miscellaneous type is used only when other types are not suitable. It is recommended to use miscellaneous type only occasionally and only in exceptional situations. Google will monitor for usage of this AdjustmentType and consider it a bug if a payment integrator uses this option systematically. If the existing adjustment types are not suitable, Google is willing to discuss adding a more targeted type.

eventFeesRounding

object (Empty)

Used to account for adjustment in the rounding of event fees. If the event fees do not sum to a round number of billable units, then this value should be used to account for the rounding to billable units. It can be represented as sub-billable units. e.g. if the event fees sum to $10.053 USD and $10.06 would be the settlement amount than this can capture the missing $0.007 USD so it is accounted for. This amount can be larger than a single billable unit if the rounding is occurring in multiple places.

aggregatedSchemeFees

object (Empty)

Aggregate fees charged by the networks.

aggregatedGoodsServicesFees

object (Empty)

Aggregate Goods and Service Tax.

aggregatedSchemeFeesVariance

object (Empty)

Aggregate fees variance charged by the networks due to updated rates or some other factor that was unknown when the scheme fees were originally set in the 'eventFee' field with the transactions.

AggregatedFees

This represents an aggregated transaction-level fees.

JSON representation
{
  "numberOfEvents": string
}
Fields
numberOfEvents

string (Int64Value format)

Number of events (eg payments) that fees are aggregated across.

MiscellaneousAdjustment

This represents an unforeseen adjustment type that a payment integrator submits only in an exceptional circumstances.

JSON representation
{
  "adjustmentDescription": string
}
Fields
adjustmentDescription

string

REQUIRED: Adjustment description should clearly explain a nature and exceptional circumstances of the adjustment.

SettlementNotificationResponse

Response object for the settlementNotification method.

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

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

object (Result)

REQUIRED: Contains the result of the request.

ResponseHeader

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

JSON representation
{
  "responseTimestamp": {
    object (Timestamp)
  }
}
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.

Result

Details corresponding to the result.

JSON representation
{

  // Union field result can be only one of the following:
  "accepted": {
    object (Empty)
  }
  // End of list of possible types for union field result.
}
Fields

Union field result.

result can be only one of the following:

accepted

object (Empty)

The settlementNotification was valid and is now being processed by Google.