Method: remittanceStatementDetails

Returns transaction detail information about a remittance statement.

This is a paginated API. The number of transaction events per page can be specified with numberOfEvents. If unspecified, the maximum of 1000 events will be returned per page. Each request to this API will return a nextEventOffset pointing to the next transaction event in the statement, as well as totalEvents specifying the total number of transactions in the statement. If the current retrieved page contains the last transactions of the statement, nextEventOffset will not be present in the response.

The statementId value is the requestId from the remittanceStatementNotificationRequest

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

Responses to this query may be empty if this method does not return an HTTP 200. The response body is empty 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 an HTTP 404 with an empty body. If the request signature could be verified, additional information regarding the error will be returned in the response body.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "statement_detail_request_139932019",
    "requestTimestamp": "1502551332087"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "statementId": "0123434-statement-abc",
  "numberOfEvents": 4
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "eventOffset": 0,
  "nextEventOffset": 4,
  "totalEvents": 15,
  "remittanceStatementSummary": {
    "statementDate": "1502521200000",
    "billingPeriod": {
      "startDate": "1502434800000",
      "endDate": "1502434800000"
    },
    "dateDue": "1502348400000",
    "currencyCode": "INR",
    "totalDueByIntegrator": "1076000000",
    "remittanceInstructions": {
      "memoLineId": "stmt-1AB-pp0-invisi"
    }
  },
  "captureEvents": [
    {
      "eventRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
      "paymentIntegratorEventId": "ioj32SOIjf23oijSDfoij",
      "eventCharge": "700000000",
      "eventFee": "-28000000"
    },
    {
      "eventRequestId": "Ggghvh78200PQ3Yrpb",
      "paymentIntegratorEventId": "iasdf23dSdfijSDfoij",
      "eventCharge": "800000000",
      "eventFee": "-32000000"
    }
  ],
  "refundEvents": [
    {
      "eventRequestId": "liUrreQY233839dfFFb24gaQM",
      "paymentIntegratorEventId": "asd3SDf3f3oijSDfoij",
      "eventCharge": "-200000000",
      "eventFee": "8000000"
    },
    {
      "eventRequestId": "IIghhhUrreQY233839II9qM==",
      "paymentIntegratorEventId": "DFjidoso12FSDFSDE",
      "eventCharge": "-150000000",
      "eventFee": "6000000"
    }
  ]
}

HTTP request

POST https://vgw.googleapis.com/secure-serving/gsp/v1/remittanceStatementDetails/:PIAID

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "statementId": string,
  "eventOffset": integer,
  "numberOfEvents": integer
}
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 statement.

statementId

string

REQUIRED: Request ID of the statement notification.

eventOffset

integer

OPTIONAL: Return events starting at this offset. This should be set to the nextEventOffset if one was returned or left unspecified if this is the first request. If eventOffset is zero, events will be returned starting with the first event. If this is two, events will be returned starting with the third event. If unspecified, eventOffset will be assumed to be zero.

numberOfEvents

integer

OPTIONAL: Number of events to show per page. If unspecified or greater than 1000, this will be 1000.

Response body

Response object for the remittance statement detail method.

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

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "remittanceStatementSummary": {
    object (RemittanceStatementSummary)
  },
  "eventOffset": integer,
  "nextEventOffset": integer,
  "totalEvents": integer,
  "totalWithholdingTaxes": string,
  "captureEvents": [
    {
      object (Event)
    }
  ],
  "refundEvents": [
    {
      object (Event)
    }
  ],
  "reverseRefundEvents": [
    {
      object (Event)
    }
  ],
  "chargebackEvents": [
    {
      object (Event)
    }
  ],
  "reverseChargebackEvents": [
    {
      object (Event)
    }
  ],
  "adjustmentEvents": [
    {
      object (Event)
    }
  ]
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

remittanceStatementSummary

object (RemittanceStatementSummary)

REQUIRED: Summary of this remittance statement.

eventOffset

integer

REQUIRED: The event offset of this response.

nextEventOffset

integer

OPTIONAL: The offset of the next event to return. If unspecified there are no more events to retrieve for this statement.

totalEvents

integer

REQUIRED: Total number of events in this statement.

totalWithholdingTaxes

string (Int64Value format)

REQUIRED: The sum of all taxes withheld for this statement.

This value is in micros.

captureEvents[]

object (Event)

REQUIRED: Set of capture events.

refundEvents[]

object (Event)

REQUIRED: Set of refund events.

reverseRefundEvents[]

object (Event)

OPTIONAL: Set of reverse refund events.

chargebackEvents[]

object (Event)

OPTIONAL: Set of chargeback events.

reverseChargebackEvents[]

object (Event)

OPTIONAL: Set of reverse chargeback events.

adjustmentEvents[]

object (Event)

OPTIONAL: Set of adjustment events. Adjustment events may be added at Google's discretion to reconcile billing discrepancies, for example if fees were undercomputed for a set of prior transactions, an adjustment may be used to make the integrator whole.

RemittanceStatementSummary

Summary object about a remittance statement.

JSON representation
{
  "statementDate": string,
  "billingPeriod": {
    object (BillingPeriod)
  },
  "dateDue": string,
  "currencyCode": string,
  "totalDueByIntegrator": string,
  "remittanceInstructions": {
    object (RemittanceInstructions)
  }
}
Fields
statementDate

string (int64 format)

REQUIRED: Date (in America/Los Angeles) that this statement was created.

billingPeriod

object (BillingPeriod)

REQUIRED: The billing period this statement covers.

dateDue

string (int64 format)

OPTIONAL: The date that the remittance is due. This is represented as milliseconds from epoch. It is a date (and therefore will always start at the first millisecond of the day in the billing timezone).

This is set as long as the totalDueByIntegrator is greater than 0.

currencyCode

string

REQUIRED: ISO 4217 3-letter currency code.

totalDueByIntegrator

string (Int64Value format)

REQUIRED: This value is in micros in the currency of currencyCode. This value is always positive.

remittanceInstructions

object (RemittanceInstructions)

REQUIRED: Details on how to remit payment

BillingPeriod

Billing period of this statement.

JSON representation
{
  "startDate": string,
  "endDate": string
}
Fields
startDate

string (int64 format)

REQUIRED: The start date of the billing period. This is represented as milliseconds from epoch. It is a date (and therefore will always start at the first millisecond of the day in the billing timezone).

This is the first millisecond of the day of the billing period, 00:00:00.000

endDate

string (int64 format)

REQUIRED: The end date of the billing period. This is represented as milliseconds from epoch.

This is the last millisecond of the last day of the billing period, 23:59:59.999

RemittanceInstructions

Structure holding information about how to pay this remittance notification.

JSON representation
{
  "memoLineId": string
}
Fields
memoLineId

string

REQUIRED: Identifier that is mandatory to be put on the memo line for the payment for remittance identification.

Event

Structure representing a single event included in a remittance statement.

JSON representation
{
  "eventRequestId": string,
  "paymentIntegratorEventId": string,
  "eventCharge": string,
  "eventFee": string,
  "presentmentChargeAmount": string,
  "presentmentCurrencyCode": string,
  "exchangeRate": string,
  "nanoExchangeRate": string
}
Fields
eventRequestId

string

REQUIRED: For capture or refund events, this will be the requestId that Google sends with the request. For reverse refund, chargeback and reverse chargeback events, this will be the requestId that the Payment Integrator sends with the notification of that event. For adjustments, this will be a unique ID assigned by Google to the adjustment event.

paymentIntegratorEventId

string

REQUIRED: ID the payment integrator returned for this event. For a capture this is the paymentIntegratorTransactionId from the response to a capture call, for a refund this is the paymentIntegratorRefundId from the response to a refund call.

This field is of variable length, as an integrator whatever ID you supply for this event will be reflected here. If a value was not provided by the integrator for the corresponding event, this field will contain the same value as the eventRequestId field.

For reverse refund, chargeback and reverse chargeback events this will be the requestId that the Payment Integrator sent with the notification of the event.

The length and format of this field depends on the source field for each ID. Refer to the documentation for each of the source fields for details about length and character set requirements. In particular, note that this field can sometimes contain Google-generated IDs which may have different max length requirements than integrator-generated IDs.

eventCharge

string (Int64Value format)

REQUIRED: In currency code defined by the statement. If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

For example, capture transactions will always be positive, and refund transactions will always be negative. Reverse refund and reverse chargeback events will always be positive. Chargeback events will always be negative.

This value is in micros.

eventFee

string (Int64Value format)

REQUIRED: In currency code defined by the statement. If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.

For example, if an agreement says that Google will pay 1% of the transactionCharge 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.

This value is in micros.

presentmentChargeAmount

string (Int64Value format)

OPTIONAL: Transaction amount in the presentment (aka transaction) currency prior to foreign exchange. This field follows the same sign convention as the eventCharge field.

This value is in micros.

presentmentCurrencyCode

string

OPTIONAL: ISO 4217 3-letter currency code denominating the presentment (transaction) currency.

exchangeRate

string (Int64Value format)

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

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

nanoExchangeRate

string (Int64Value format)

OPTIONAL: The exchange rate used in converting the presentment amount to the settlement (invoice) amount, expressed in nano basis points.

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.

Both this field and exchangeRate will be populated. They are equivalent exchange rates expressed with different precision. In future versions, exchangeRate will be removed in favor of nanoExchangeRate.