Method: remittanceStatementDetails

Возвращает сведения о транзакции о выписке о денежном переводе.

Это API с разбивкой на страницы. Количество событий транзакций на страницу можно указать с помощью numberOfEvents . Если не указано, на странице будет возвращено не более 1000 событий. Каждый запрос к этому API будет возвращать nextEventOffset указывающий на следующее событие транзакции в выражении, а также totalEvents , указывающее общее количество транзакций в выражении. Если текущая полученная страница содержит последние транзакции оператора, nextEventOffset не будет присутствовать в ответе.

Значением statementId является requestId из remittanceStatementNotificationRequest .

Если конечная точка обнаружит ошибку при обработке запроса, ответ от этой конечной точки будет иметь тип ErrorResponse .

Ответы на этот запрос могут быть пустыми, если этот метод не возвращает HTTP 200. Тело ответа пусто в ситуациях, когда ErrorResponse с четким описанием может помочь злоумышленнику понять идентификатор учетной записи платежного интегратора других интеграторов. В этих ситуациях, когда либо ключ подписи не совпадает, либо идентификатор интегратора платежей не найден, либо ключ шифрования неизвестен, этот метод вернет HTTP 404 с пустым телом. Если подпись запроса удалось проверить, в теле ответа будет возвращена дополнительная информация об ошибке.

Пример запроса выглядит так:


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

Пример ответа выглядит так:


{
  "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-запрос

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

Тело запроса

Тело запроса содержит данные со следующей структурой:

Представление JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "statementId": string,
  "eventOffset": integer,
  "numberOfEvents": integer
}
Поля
requestHeader

object ( RequestHeader )

ТРЕБУЕТСЯ : Общий заголовок для всех запросов.

paymentIntegratorAccountId

string

НЕОБХОДИМО : это идентификатор учетной записи платежного интегратора, который идентифицирует договорные ограничения, связанные с этим заявлением.

statementId

string

ТРЕБУЕТСЯ : Идентификатор запроса уведомления о выписке.

eventOffset

integer

ДОПОЛНИТЕЛЬНО : возвращать события, начинающиеся с этого смещения. Это должно быть установлено в nextEventOffset , если оно было возвращено или не указано, если это первый запрос. Если eventOffset равен нулю, события будут возвращены, начиная с первого события. Если это два, события будут возвращены, начиная с третьего события. Если не указано, eventOffset будет считаться равным нулю.

numberOfEvents

integer

НЕОБЯЗАТЕЛЬНО : количество событий для отображения на странице. Если не указано или больше 1000, это будет 1000.

Тело ответа

Объект ответа для метода сведений о выписке о денежном переводе.

В случае успеха тело ответа содержит данные со следующей структурой:

Представление JSON
{
  "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)
    }
  ]
}
Поля
responseHeader

object ( ResponseHeader )

ТРЕБУЕТСЯ : Общий заголовок для всех ответов.

remittanceStatementSummary

object ( RemittanceStatementSummary )

ТРЕБУЕТСЯ : Резюме этой выписки о денежном переводе.

eventOffset

integer

ТРЕБУЕТСЯ : смещение события этого ответа.

nextEventOffset

integer

НЕОБЯЗАТЕЛЬНО : смещение следующего возвращаемого события. Если не указано, больше нет событий для извлечения для этого оператора.

totalEvents

integer

НЕОБХОДИМО : общее количество событий в этом выражении.

totalWithholdingTaxes

string ( Int64Value format)

ТРЕБУЕТСЯ : сумма всех налогов, удержанных для этой выписки.

Это значение в микро .

captureEvents[]

object ( Event )

ТРЕБУЕТСЯ : Набор событий захвата.

refundEvents[]

object ( Event )

ТРЕБУЕТСЯ : Набор событий возврата.

reverseRefundEvents[]

object ( Event )

НЕОБЯЗАТЕЛЬНО : Набор событий обратного возврата.

chargebackEvents[]

object ( Event )

НЕОБЯЗАТЕЛЬНО : набор событий возврата платежа.

reverseChargebackEvents[]

object ( Event )

ДОПОЛНИТЕЛЬНО : Набор событий обратного платежа.

adjustmentEvents[]

object ( Event )

ДОПОЛНИТЕЛЬНО : набор событий настройки. Корректирующие события могут быть добавлены по усмотрению Google для согласования расхождений в счетах, например, если сборы были занижены для набора предыдущих транзакций, корректировка может использоваться для восстановления целостности интегратора.

RemittanceStatementСводка

Сводный объект о выписке о денежном переводе.

Представление JSON
{
  "statementDate": string,
  "billingPeriod": {
    object (BillingPeriod)
  },
  "dateDue": string,
  "currencyCode": string,
  "totalDueByIntegrator": string,
  "remittanceInstructions": {
    object (RemittanceInstructions)
  }
}
Поля
statementDate

string ( int64 format)

ТРЕБУЕТСЯ : Дата (в Америке/Лос-Анджелесе), когда было создано это заявление.

billingPeriod

object ( BillingPeriod )

НЕОБХОДИМО : расчетный период, который охватывает это заявление.

dateDue

string ( int64 format)

НЕОБЯЗАТЕЛЬНО : дата, когда должен быть произведен перевод. Это представлено в миллисекундах от эпохи. Это дата (поэтому она всегда начинается с первой миллисекунды дня в часовом поясе выставления счетов).

Это установлено до тех пор, пока totalDueByIntegrator больше 0.

currencyCode

string

ТРЕБУЕТСЯ : трехбуквенный код валюты по ISO 4217.

totalDueByIntegrator

string ( Int64Value format)

ТРЕБУЕТСЯ : Это значение в микро в валюте currencyCode . Это значение всегда положительно.

remittanceInstructions

object ( RemittanceInstructions )

ТРЕБУЕТСЯ : Подробная информация о том, как перевести платеж

Расчетный период

Расчетный период данной выписки.

Представление JSON
{
  "startDate": string,
  "endDate": string
}
Поля
startDate

string ( int64 format)

ТРЕБУЕТСЯ : дата начала расчетного периода. Это представлено в миллисекундах от эпохи. Это дата (поэтому она всегда начинается с первой миллисекунды дня в часовом поясе выставления счетов).

Это первая миллисекунда дня расчетного периода, 00:00:00.000

endDate

string ( int64 format)

ТРЕБУЕТСЯ : Дата окончания расчетного периода. Это представлено в миллисекундах от эпохи.

Это последняя миллисекунда последнего дня расчетного периода, 23:59:59,999.

Денежные переводыИнструкции

Структура, содержащая информацию о том, как оплатить это уведомление о денежном переводе.

Представление JSON
{
  "memoLineId": string
}
Поля
memoLineId

string

ТРЕБУЕТСЯ : Идентификатор, который обязательно должен быть указан в строке служебной записки для платежа для идентификации денежного перевода.

Событие

Структура, представляющая отдельное событие, включенное в отчет о денежном переводе.

Представление JSON
{
  "eventRequestId": string,
  "paymentIntegratorEventId": string,
  "eventCharge": string,
  "eventFee": string,
  "presentmentChargeAmount": string,
  "presentmentCurrencyCode": string,
  "exchangeRate": string,
  "nanoExchangeRate": string
}
Поля
eventRequestId

string

НЕОБХОДИМО . Для событий захвата или возврата средств это будет requestId , который Google отправляет вместе с запросом. Для событий обратного возврата, возвратного платежа и обратного платежа это будет requestId , который интегратор платежей отправляет с уведомлением об этом событии. Для корректировок это будет уникальный идентификатор, присвоенный Google событию корректировки.

paymentIntegratorEventId

string

НЕОБХОДИМО : идентификатор платежного интегратора, возвращенный для этого события. Для захвата это paymentIntegratorTransactionId из ответа на capture захвата, для возврата — это paymentIntegratorRefundId из ответа на вызов refund .

Это поле имеет переменную длину, так как интегратор, любой ID, который вы укажете для этого события, будет отражен здесь. Если интегратор не предоставил значение для соответствующего события, это поле будет содержать то же значение, что и поле eventRequestId .

Для событий обратного возврата, возвратного платежа и обратного платежа это будет requestId , отправленный интегратором платежей с уведомлением о событии.

Длина и формат этого поля зависят от исходного поля для каждого идентификатора. Подробную информацию о требованиях к длине и набору символов см. в документации по каждому исходному полю. В частности, обратите внимание, что иногда это поле может содержать идентификаторы, сгенерированные Google, требования к максимальной длине которых могут отличаться от требований к идентификаторам, созданным интегратором.

eventCharge

string ( Int64Value format)

ТРЕБУЕТСЯ : В коде валюты, определенном оператором. Если это значение отрицательное, то оно представляет собой денежную стоимость, перемещаемую от Google к платежному интегратору. Если это положительно, это деньги от платежного интегратора из-за Google.

Например, транзакции захвата всегда будут положительными, а транзакции возврата всегда будут отрицательными. События обратного возврата и обратного платежа всегда будут положительными. События возвратного платежа всегда будут отрицательными.

Это значение в микро .

eventFee

string ( Int64Value format)

ТРЕБУЕТСЯ : В коде валюты, определенном оператором. Если это значение отрицательное, то оно представляет собой денежную стоимость, перемещаемую от Google к платежному интегратору. Если это положительно, это деньги от платежного интегратора из-за Google.

Например, если в соглашении указано, что Google заплатит интегратору платежей 1% от transactionCharge и отменит этот 1% при возмещении этой транзакции, то комиссия за захват будет отрицательной, а при возврате — положительной.

Это значение в микро .

presentmentChargeAmount

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : сумма транзакции в валюте представления (или транзакции) до обмена иностранной валюты. Это поле следует тому же соглашению о знаках, что и поле eventCharge .

Это значение в микро .

presentmentCurrencyCode

string

ДОПОЛНИТЕЛЬНО : 3-буквенный код валюты ISO 4217, обозначающий валюту представления (транзакции).

exchangeRate

string ( Int64Value format)

ДОПОЛНИТЕЛЬНО : Обменный курс, используемый при преобразовании суммы представления в сумму расчета (счета).

Это значение указано в микробазисных пунктах (1 базисный пункт = 0,0001 = 0,01%). То есть, чтобы получить курс обмена, разделите это поле на 10^10.

nanoExchangeRate

string ( Int64Value format)

ДОПОЛНИТЕЛЬНО : Обменный курс, используемый для преобразования суммы предъявления в сумму расчета (счета), выраженный в нанобазисных пунктах.

Это значение выражено в нанобазисных пунктах (1 базисный пункт = 0,0001 = 0,01%). То есть, чтобы получить курс обмена, разделите это поле на 10^13.

И это поле, и exchangeRate будут заполнены. Это эквивалентные обменные курсы, выраженные с разной точностью. В будущих версиях exchangeRate будет удален в пользу nanoExchangeRate.