Method: remittanceStatementDetails

傳回匯款單的交易詳細資料資訊。

這是分頁 API。每頁的交易事件數量可使用 numberOfEvents 指定。如未指定,每頁最多會傳回 1000 個事件。對這項 API 的每項要求都會傳回 nextEventOffset,指向對帳單中的下一個交易事件,以及 totalEvents,指定對帳單中的交易總數。如果目前擷取的頁面包含對帳單的最後一筆交易,回應中就不會出現 nextEventOffset。

statementId 值是 remittanceStatementNotificationRequest 中的 requestId

如果端點在處理要求時發生錯誤,這個端點的回應類型會是 ErrorResponse。

如果這個方法未傳回 HTTP 200,這項查詢的回應可能為空白。如果使用清楚的描述ErrorResponse,可能會讓攻擊者瞭解其他整合者的付款整合者帳戶 ID,這時回應主體就會是空白。在這些情況下,如果簽署金鑰不符、找不到付款整合工具 ID 或加密金鑰不明,這個方法會傳回 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

必要項目:這是付款整合商帳戶 ID,可識別與這份對帳單相關的合約限制。

statementId

string

必要項目:對帳單通知的請求 ID。

eventOffset

integer

選用:傳回從這個位移量開始的事件。如果傳回 nextEventOffset,請將這個值設為該值;如果是第一次要求,請保留未指定狀態。如果 eventOffset 為零,系統會從第一個活動開始回傳活動。如果是 2,系統會從第三個活動開始傳回活動。如未指定,系統會假設 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 可自行決定是否加入調整事件,以解決帳單差異問題。舉例來說,如果一組先前的交易費用計算不足,Google 可能會使用調整事件,補足整合商應得的款項。

RemittanceStatementSummary

匯款單的摘要物件。

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)

選填:應付匯款的日期。以 Epoch 時間計算的毫秒為單位。這是日期,因此一律會從帳單時區當天的第一個毫秒開始。

只要 totalDueByIntegrator 大於 0,就會設定這個值。

currencyCode

string

必填:ISO 4217 貨幣代碼 (3 個字母)。

totalDueByIntegrator

string (Int64Value format)

必要項目:這個值是以 currencyCode 幣別表示的微元。這個值一律為正數。

remittanceInstructions

object (RemittanceInstructions)

必要項目:匯款方式詳細資料

BillingPeriod

這份對帳單的帳單週期。

JSON 表示法
{
  "startDate": string,
  "endDate": string
}
欄位
startDate

string (int64 format)

必要:帳單週期的開始日期。以 Epoch 時間計算的毫秒為單位。這是日期,因此一律會從帳單時區當天的第一個毫秒開始。

這是帳單週期當天的第一毫秒,即 00:00:00.000

endDate

string (int64 format)

必要項目:帳單週期的結束日期。以 Epoch 時間計算的毫秒為單位。

這是帳單週期最後一天的最後一毫秒,即 23:59:59.999

RemittanceInstructions

這個結構體會保留有關如何支付這筆匯款通知的資訊。

JSON 表示法
{
  "memoLineId": string
}
欄位
memoLineId

string

必要:必須在匯款單備註欄中填寫的 ID,用於識別匯款。

事件

代表匯款單中單一事件的結構。

JSON 表示法
{
  "eventRequestId": string,
  "paymentIntegratorEventId": string,
  "eventCharge": string,
  "eventFee": string,
  "presentmentChargeAmount": string,
  "presentmentCurrencyCode": string,
  "exchangeRate": string,
  "nanoExchangeRate": string
}
欄位
eventRequestId

string

必要:如果是擷取或退款事件,這會是 Google 隨要求傳送的 requestId。如果是退款、交易退單和取消交易退單事件,這會是付款整合服務在該事件通知中傳送的 requestId。如果是調整項,這會是 Google 指派給調整事件的專屬 ID。

paymentIntegratorEventId

string

必要項目:付款整合服務為這個活動傳回的 ID。如為擷取,這是對 capture 呼叫的回應中的 paymentIntegratorTransactionId;如為退款,這是對 refund 呼叫的回應中的 paymentIntegratorRefundId。

這個欄位的長度不固定,整合商為這個事件提供的任何 ID 都會反映在這裡。如果整合人員未提供相應事件的值,這個欄位會包含與 eventRequestId 欄位相同的值。

如果是退款、退刷和取消交易退單事件,這會是付款整合服務在事件通知中傳送的 requestId。

這個欄位的長度和格式取決於每個 ID 的來源欄位。如要瞭解長度和字元集規定,請參閱各來源欄位的說明文件。請特別注意,這個欄位有時可能包含 Google 產生的 ID,這類 ID 的長度上限可能與整合商產生的 ID 不同。

eventCharge

string (Int64Value format)

必要:以陳述式定義的貨幣代碼。如果這個值為負數,代表金額價值從 Google 轉移至付款整合商。如果為正值,表示付款整合服務供應商應支付給 Google 的款項。

舉例來說,擷取交易一律為正數,退款交易則一律為負數。逆向退款和取消交易退單事件一律為正數。交易退單事件一律為負值。

這個值以微秒為單位。

eventFee

string (Int64Value format)

必要:以陳述式定義的貨幣代碼。如果這個值為負數,代表金額價值從 Google 轉移至付款整合商。如果為正值,表示付款整合服務供應商應支付給 Google 的款項。

舉例來說,如果協議規定 Google 會將 transactionCharge 的 1% 支付給付款整合商,並在交易退款時退回該 1%,則擷取費用會是負值,退款費用則會在退款時變成正值。

這個值以微秒為單位。

presentmentChargeAmount

string (Int64Value format)

選填:外匯交易前,以結算 (即交易) 貨幣計算的交易金額。這個欄位遵循與 eventCharge 欄位相同的符號慣例。

這個值以微秒為單位。

presentmentCurrencyCode

string

選填:以 3 個字母表示的 ISO 4217 貨幣代碼,代表交易貨幣。

exchangeRate
(deprecated)

string (Int64Value format)

已淘汰:將顯示金額換算為結算 (月結單) 金額時所用的匯率。

這個值以微基點為單位 (1 個基點 = 0.0001 = 0.01%)。也就是說,如要取得匯率,請將這個欄位除以 10^10。

nanoExchangeRate

string (Int64Value format)

選填:將結算金額換算為結算 (月結單) 金額時所用的匯率,以奈米基點表示。

這個值是以奈米基點為單位 (1 個基點 = 0.0001 = 0.01%)。也就是說,如要取得匯率,請將這個欄位除以 10^13。

系統會填入這個欄位和 exchangeRate。兩者是等值匯率,但精確度不同。日後版本將移除 exchangeRate,改用 nanoExchangeRate。