- [HTTP request](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#body.request_body)
  - [JSON representation](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#body.response_body)
- [RemittanceStatementDetailsResponse](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#RemittanceStatementDetailsResponse)
  - [JSON representation](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#RemittanceStatementDetailsResponse.SCHEMA_REPRESENTATION)
- [Event](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event)
  - [JSON representation](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event.SCHEMA_REPRESENTATION)

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 request to [`remittanceStatementNotification`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/remittanceStatementNotification#google.standardpayments.flows.remittance.v1.PaymentIntegratorRemittanceService.RemittanceStatementNotification)

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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/ErrorResponse).

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",
        "totalPresentmentAmounts": [
          {
            "amountMicros": "1076000000",
            "currencyCode": "INR"
          }
        ],
        "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/gsp/one-time-payment-code-v1/remittanceStatementDetails/https://developers.google.com/pay/one-time-payment-code-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/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/RequestHeader) }, "paymentIntegratorAccountId": string, "statementId": string, "eventOffset": integer, "numberOfEvents": integer } ``` |

| Fields ||
|---|---|
| `requestHeader` | `object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/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. > [!NOTE] > **Note:** If `eventOffset` exceeds the total number of events (i.e. `eventOffset` \>= `totalEvents`) then no events will be returned. <br /> |
| `numberOfEvents` | `integer` **OPTIONAL**: Number of events to show per page. If unspecified or greater than 1000, this will be 1000. |

### 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/one-time-payment-code-v1/guides/connectivity/protocol-standards#http_status_codes).

| Possible response messages ||
|---|---|
| HTTP 200 Status | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#RemittanceStatementDetailsResponse`)`` |
| HTTP 4XX / 5XX Status | `object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/ErrorResponse)` |
| End of mutually exclusive fields. ||

## RemittanceStatementDetailsResponse

Response object for the remittance statement detail method.

| JSON representation |
|---|
| ``` { "responseHeader": { object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/ResponseHeader) }, "remittanceStatementSummary": { object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/remittanceStatementNotification#RemittanceStatementSummary) }, "eventOffset": integer, "nextEventOffset": integer, "totalEvents": integer, "totalWithholdingTaxes": string, "captureEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ], "refundEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ], "reverseRefundEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ], "chargebackEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ], "reverseChargebackEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ], "adjustmentEvents": [ { object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`) } ] } ``` |

| Fields ||
|---|---|
| `responseHeader` | `object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/ResponseHeader)` **REQUIRED**: Common header for all responses. |
| `remittanceStatementSummary` | `object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/remittanceStatementNotification#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 (https://developers.google.com/discovery/v1/type-format format)` **REQUIRED**: The sum of all taxes withheld for this statement. This value is in [micros](https://developers.google.com/pay/one-time-payment-code-v1/reference/glossary#micros "What are micros?"). |
| `captureEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`)`` **REQUIRED**: Set of capture events. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |
| `refundEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`)`` **REQUIRED**: Set of refund events. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |
| `reverseRefundEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`)`` **OPTIONAL**: Set of reverse refund events. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |
| `chargebackEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`)`` **OPTIONAL**: Set of chargeback events. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |
| `reverseChargebackEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#Event`)`` **OPTIONAL**: Set of reverse chargeback events. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |
| `adjustmentEvents[]` | ``object (`https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/remittanceStatementDetails#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. <br /> > [!NOTE] > **Note:** this is a set, it has no defined order. <br /> |

## 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 (https://developers.google.com/discovery/v1/type-format 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](https://developers.google.com/pay/one-time-payment-code-v1/reference/glossary#micros "What are micros?"). |
| `eventFee` | `string (https://developers.google.com/discovery/v1/type-format 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](https://developers.google.com/pay/one-time-payment-code-v1/reference/glossary#micros "What are micros?"). |
| `presentmentChargeAmount` | `string (https://developers.google.com/discovery/v1/type-format 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](https://developers.google.com/pay/one-time-payment-code-v1/reference/glossary#micros "What are micros?"). > [!NOTE] > **Note:** This will be required in version 1.1 <br /> |
| `presentmentCurrencyCode` | `string` **OPTIONAL**: ISO 4217 3-letter currency code denominating the presentment (transaction) currency. > [!NOTE] > **Note:** This will be required in version 1.1 <br /> |
| `exchangeRate (deprecated)` | `string (https://developers.google.com/discovery/v1/type-format format)` > [!WARNING] > This will be removed in future versions in favor of nano_exchange_rate. **DEPRECATED**: 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 (https://developers.google.com/discovery/v1/type-format 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. > [!NOTE] > **Note:** This will be required in version 1.1 <br /> |