Method: carrierremittance.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

Responses to this query may be empty if this method does not return an HTTP 200. They are 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 a HTTP 404 with an empty body.

An example request looks like:


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

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis": "1481900013178"
    },
    "requestId": "statement_detail_request_139932019"
  },
  "eventOffset": 0,
  "nextEventOffset": 4,
  "totalEvents": 15,
  "remittanceStatementSummary": {
    "statementDate": {
      "epochMillis": "1502521200000"
    },
    "billingPeriod": {
      "startDate": {
        "epochMillis": "1502434800000"
      },
      "endDate": {
        "epochMillis": "1502434800000"
      }
    },
    "dateDue": {
      "epochMillis": "1502348400000"
    },
    "totalDueByIntegrator": {
      "amountMicros": "1569000000",
      "currencyCode": "INR"
    }
  },
  "issuerSummaries": [
    {
      "issuerId": {
        "value": "invisiCarrier"
      },
      "totalByIssuer": {
        "amountMicros": "1569000000",
        "currencyCode": "INR"
      },
      "captureSummaries": [
        {
          "revshareCategory": "APP",
          "totalCharges": {
            "amountMicros": "700000000",
            "currencyCode": "INR"
          },
          "totalItemPrice": {
            "amountMicros": "665000000",
            "currencyCode": "INR"
          },
          "totalFees": {
            "amountMicros": "-28000000",
            "currencyCode": "INR"
            },
          "totalDirectTaxes": {
            "amountMicros": "35000000",
            "currencyCode": "INR"
          },
          "totalWithholdingTaxes": {
            "amountMicros": "0",
            "currencyCode": "INR"
          }
        },
        {
          "revshareCategory": "CONTENT",
          "totalCharges": {
            "amountMicros": "800000000",
            "currencyCode": "INR"
          },
          "totalItemPrice": {
            "amountMicros": "760000000",
            "currencyCode": "INR"
          },
          "totalFees": {
            "amountMicros": "-32000000",
            "currencyCode": "INR"
            },
          "totalDirectTaxes": {
              "amountMicros": "40000000",
            "currencyCode": "INR"
          },
          "totalWithholdingTaxes": {
            "amountMicros": "0",
            "currencyCode": "INR"
          }
        },
        {
          "revshareCategory": "SPECIAL_APP",
          "totalCharges": {
            "amountMicros": "500000000",
            "currencyCode": "INR"
          },
          "totalItemPrice": {
            "amountMicros": "475000000",
            "currencyCode": "INR"
          },
          "totalFees": {
            "amountMicros": "-35000000",
            "currencyCode": "INR"
            },
          "totalDirectTaxes": {
              "amountMicros": "25000000",
            "currencyCode": "INR"
          },
          "totalWithholdingTaxes": {
            "amountMicros": "0",
            "currencyCode": "INR"
          }
        }
      ],
      "refundSummaries": [
        {
          "revshareCategory": "APP",
          "totalCharges": {
            "amountMicros": "-200000000",
            "currencyCode": "INR"
          },
          "totalItemPrice": {
            "amountMicros": "-190000000",
            "currencyCode": "INR"
          },
          "totalFees": {
            "amountMicros": "8000000",
            "currencyCode": "INR"
          },
          "totalDirectTaxes": {
            "amountMicros": "-10000000",
            "currencyCode": "INR"
          },
          "totalWithholdingTaxes": {
            "amountMicros": "0",
            "currencyCode": "INR"
          }
        },
        {
          "revshareCategory": "CONTENT",
          "totalCharges": {
            "amountMicros": "-150000000",
            "currencyCode": "INR"
          },
          "totalItemPrice": {
            "amountMicros": "-142500000",
            "currencyCode": "INR"
          },
          "totalFees": {
            "amountMicros": "6000000",
            "currencyCode": "INR"
          },
          "totalDirectTaxes": {
            "amountMicros": "-7500000",
            "currencyCode": "INR"
          },
          "totalWithholdingTaxes": {
            "amountMicros": "0",
            "currencyCode": "INR"
          }
        }
      ]
    }
  ],
  "captureEvents": [
    {
      "eventRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
      "revshareCategory": "APP",
      "eventDetail": {
        "eventCharge": {
          "amountMicros": "700000000",
          "currencyCode": "INR"
        },
        "eventTax": {
          "amountMicros": "35000000",
          "currencyCode": "INR"
        },
        "eventFee": {
          "amountMicros": "-28000000",
          "currencyCode": "INR"
        },
        "presentmentChargeAmount": {
          "amountMicros": "700000000",
          "currencyCode": "INR"
        },
        "nanoExchangeRate": "10000000000000"
      }
    },
    {
      "eventRequestId": "Ggghvh78200PQ3Yrpb",
      "revshareCategory": "CONTENT",
      "eventDetail": {
        "eventCharge": {
          "amountMicros": "800000000",
          "currencyCode": "INR"
        },
        "eventTax": {
          "amountMicros": "40000000",
          "currencyCode": "INR"
        },
        "eventFee": {
          "amountMicros": "-32000000",
          "currencyCode": "INR"
        },
        "presentmentChargeAmount": {
          "amountMicros": "800000000",
          "currencyCode": "INR"
        },
        "nanoExchangeRate": "10000000000000"
      }
    },
    {
      "eventRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
      "revshareCategory": "SPECIAL_APP",
      "eventSummary": {
        "eventCharge": {
          "amountMicros": "500000000",
          "currencyCode": "INR"
        },
        "eventTax": {
          "amountMicros": "25000000",
          "currencyCode": "INR"
        },
        "presentmentChargeAmount": {
          "amountMicros": "500000000",
          "currencyCode": "INR"
        },
        "nanoExchangeRate": "10000000000000"
      }
    }
  ],
  "refundEvents": [
    {
      "eventRequestId": "liUrreQY233839dfFFb24gaQM",
      "revshareCategory": "APP",
      "eventDetail": {
        "eventCharge": {
          "amountMicros": "-200000000",
          "currencyCode": "INR"
        },
        "eventTax": {
          "amountMicros": "-10000000",
          "currencyCode": "INR"
        },
        "eventFee": {
          "amountMicros": "8000000",
          "currencyCode": "INR"
        },
        "presentmentChargeAmount": {
          "amountMicros": "-200000000",
          "currencyCode": "INR"
        },
        "nanoExchangeRate": "10000000000000"
      }
    },
    {
      "eventRequestId": "IIghhhUrreQY233839II9qM==",
      "revshareCategory": "CONTENT",
      "eventDetail": {
        "eventCharge": {
          "amountMicros": "-150000000",
          "currencyCode": "INR"
        },
        "eventTax": {
          "amountMicros": "-7500000",
          "currencyCode": "INR"
        },
        "eventFee": {
          "amountMicros": "6000000",
          "currencyCode": "INR"
        },
        "presentmentChargeAmount": {
          "amountMicros": "-150000000",
          "currencyCode": "INR"
        },
        "nanoExchangeRate": "10000000000000"
      }
    }
  ]
}

HTTP request

POST https://billpaynotification.googleapis.com/secure-serving/gsp/v1/carrierremittance/remittanceStatementDetails

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "statementId": string,
  "eventOffset": integer,
  "numberOfEvents": integer
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

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

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

Response object for the remittance statement detail method.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "eventOffset": integer,
  "nextEventOffset": integer,
  "totalEvents": integer,
  "remittanceStatementSummary": {
    object (RemittanceStatementSummary)
  },
  "issuerSummaries": [
    {
      object (IssuerSummary)
    }
  ],
  "captureEvents": [
    {
      object (Event)
    }
  ],
  "refundEvents": [
    {
      object (Event)
    }
  ]
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

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.

remittanceStatementSummary

object (RemittanceStatementSummary)

REQUIRED: Summary of this remittance statement.

issuerSummaries[]

object (IssuerSummary)

REQUIRED: Summaries of the events in this statement, categorized by issuer.

captureEvents[]

object (Event)

REQUIRED: Set of capture events.

refundEvents[]

object (Event)

REQUIRED: Set of refund events.

RemittanceStatementSummary

Summary object about a remittance statement.

JSON representation
{
  "statementDate": {
    object (Timestamp)
  },
  "billingPeriod": {
    object (BillingPeriod)
  },
  "dateDue": {
    object (Timestamp)
  },
  "totalDueByIntegrator": {
    object (Amount)
  }
}
Fields
statementDate

object (Timestamp)

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

billingPeriod

object (BillingPeriod)

REQUIRED: The billing period this statement covers.

dateDue

object (Timestamp)

OPTIONAL: The date that the remittance is due. This is represented as a Timestamp. 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.

totalDueByIntegrator

object (Amount)

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

BillingPeriod

Billing period of this statement.

JSON representation
{
  "startDate": {
    object (Timestamp)
  },
  "endDate": {
    object (Timestamp)
  }
}
Fields
startDate

object (Timestamp)

REQUIRED: The start date of the billing period. This is represented as a Timestamp. 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

object (Timestamp)

REQUIRED: The end date of the billing period. This is represented as a Timestamp.

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

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

IssuerSummary

JSON representation
{
  "issuerId": {
    object (IssuerId)
  },
  "totalByIssuer": {
    object (Amount)
  },
  "captureSummaries": [
    {
      object (RevshareCategorySummary)
    }
  ],
  "refundSummaries": [
    {
      object (RevshareCategorySummary)
    }
  ]
}
Fields
issuerId

object (IssuerId)

REQUIRED: The issuer this summary applies to.

totalByIssuer

object (Amount)

REQUIRED: The invoiced amount attributed to this issuer in this statement. This value is provided for information only, it should not be remitted separately. Instead the totalDueByIntegrator found in the RemittanceStatementSummary should be remitted.

captureSummaries[]

object (RevshareCategorySummary)

OPTIONAL: Summaries of all capture events that occurred during this statement period, classified by RevshareCategory.

refundSummaries[]

object (RevshareCategorySummary)

OPTIONAL: Summaries of all refund events that occurred during this statement period, classified by RevshareCategory.

IssuerId

A unique identifier for an issuer of user accounts.

JSON representation
{
  "value": string
}
Fields
value

string

REQUIRED: The string value of the identifier.

RevshareCategorySummary

JSON representation
{
  "revshareCategory": enum (RevshareCategory),
  "totalCharges": {
    object (Amount)
  },
  "totalItemPrice": {
    object (Amount)
  },
  "totalFees": {
    object (Amount)
  },
  "totalDirectTaxes": {
    object (Amount)
  },
  "totalWithholdingTaxes": {
    object (Amount)
  }
}
Fields
revshareCategory

enum (RevshareCategory)

REQUIRED: The revshare category applied to all events in this summary.

totalCharges

object (Amount)

REQUIRED: The sum of all event charges for this revshare category.

totalItemPrice

object (Amount)

REQUIRED: The sum of all item prices purchased in this revshare category.

totalFees

object (Amount)

REQUIRED: The sum of all fees for this revshare category.

totalDirectTaxes

object (Amount)

REQUIRED: The sum of all direct taxes, e.g. sales tax, charged for this revshare category.

totalWithholdingTaxes

object (Amount)

REQUIRED: The sum of all taxes withheld for this revshare category.

RevshareCategory

Enums
REVSHARE_CATEGORY_UNSPECIFIED Do not ever set this default value
APP App purchases
APP_SUBSCRIPTION Recurring app purchases
CONTENT Content, e.g. books, movies, and music
SPECIAL_APP App purchases covered by proprietary revshare agreements

Event

Structure representing a single event included in a remittance statement.

JSON representation
{
  "eventRequestId": string,
  "revshareCategory": enum (RevshareCategory),

  // Union field event_info can be only one of the following:
  "eventDetail": {
    object (EventDetail)
  },
  "eventSummary": {
    object (EventSummary)
  }
  // End of list of possible types for union field event_info.
}
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.

revshareCategory

enum (RevshareCategory)

REQUIRED: The revshare category applied to this Event.

Union field event_info. Summary or detailed information about this Event. event_info can be only one of the following:
eventDetail

object (EventDetail)

Detailed information about this event, including fees

eventSummary

object (EventSummary)

Information about this event, excluding fees

EventDetail

JSON representation
{
  "eventCharge": {
    object (Amount)
  },
  "eventTax": {
    object (Amount)
  },
  "eventFee": {
    object (Amount)
  },
  "presentmentChargeAmount": {
    object (Amount)
  },
  "nanoExchangeRate": string
}
Fields
eventCharge

object (Amount)

REQUIRED: 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.

eventTax

object (Amount)

REQUIRED: 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.

This value is the tax applied directly to this event, e.g. sales tax.

eventFee

object (Amount)

REQUIRED: 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 transaction_charge 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.

presentmentChargeAmount

object (Amount)

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

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.

EventSummary

JSON representation
{
  "eventCharge": {
    object (Amount)
  },
  "eventTax": {
    object (Amount)
  },
  "presentmentChargeAmount": {
    object (Amount)
  },
  "nanoExchangeRate": string
}
Fields
eventCharge

object (Amount)

REQUIRED: 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.

eventTax

object (Amount)

REQUIRED: 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.

This value is the tax applied directly to this event, e.g. sales tax.

presentmentChargeAmount

object (Amount)

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

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.