Method: remittanceStatementDetails

تعرض هذه الطريقة تفاصيل حول بيان الحوالة المالية.

هذه واجهة برمجة تطبيقات مقسّمة إلى صفحات. يمكن تحديد عدد أحداث المعاملات لكل صفحة باستخدام numberOfEvents. في حال عدم تحديدها، سيتم عرض 1, 000 حدث كحدّ أقصى في كل صفحة. سيعرض كل طلب يتم إرساله إلى واجهة برمجة التطبيقات هذه 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 صفرًا، سيتم عرض الأحداث بدءًا من الحدث الأول. إذا كانت القيمة 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 لتسوية التناقضات في الفوترة، مثلاً إذا تم احتساب الرسوم بأقل من قيمتها لمجموعة من المعاملات السابقة، يمكن استخدام التسوية لتعويض الجهة المدمجة.

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)

اختياري: تاريخ استحقاق الحوالة المالية. يتم تمثيل ذلك بالملي ثانية منذ بداية حقبة معيّنة. وهو تاريخ (وبالتالي سيبدأ دائمًا في أول جزء من الألف من الثانية في اليوم في المنطقة الزمنية للفوترة).

يتم ضبط هذا الخيار طالما أنّ totalDueByIntegrator أكبر من 0.

currencyCode

string

مطلوبة: رمز العملة المكوَّن من 3 أحرف وفقًا لمعيار ISO 4217.

totalDueByIntegrator

string (Int64Value format)

مطلوبة: هذه القيمة بالوحدات الصغيرة بعملة currencyCode. تكون هذه القيمة موجبة دائمًا.

remittanceInstructions

object (RemittanceInstructions)

مطلوب: تفاصيل حول كيفية تحويل الدفع

BillingPeriod

مدة الفوترة لهذه الكشف.

تمثيل JSON
{
  "startDate": string,
  "endDate": string
}
الحقول
startDate

string (int64 format)

مطلوب: تاريخ البدء لمدة الفوترة. يتم تمثيل ذلك بالملي ثانية منذ بداية حقبة معيّنة. وهو تاريخ (وبالتالي سيبدأ دائمًا في أول جزء من الألف من الثانية في اليوم في المنطقة الزمنية للفوترة).

هذه هي الملّي ثانية الأولى من يوم مدة الفوترة، 00:00:00.000

endDate

string (int64 format)

مطلوب: تاريخ انتهاء مدة الفوترة. يتم تمثيل ذلك بالمللي ثانية منذ بدء حساب الفترة.

هذه هي آخر جزء من الثانية في آخر يوم من مدة الفوترة، أي 23:59:59.999

RemittanceInstructions

بنية تحتوي على معلومات حول كيفية دفع إشعار الحوالة المالية هذا.

تمثيل 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.

هذا الحقل ذو طول متغيّر، لأنّ أيّ معرّف تقدّمه لهذا الحدث سيظهر هنا. إذا لم يقدّم المسؤول عن الدمج قيمة للحدث المعنيّ، سيحتوي هذا الحقل على القيمة نفسها التي يحتوي عليها الحقل eventRequestId.

بالنسبة إلى أحداث ردّ الأموال وعكس ردّ الأموال وإلغاء الدفع وعكس عمليّة ردّ المبلغ، سيكون هذا هو requestId الذي أرسله نظام معالجة الدفع مع إشعار الحدث.

يعتمد طول هذا الحقل وتنسيقه على الحقل المصدر لكل معرّف. راجِع المستندات الخاصة بكل حقل من حقول المصدر للحصول على تفاصيل حول متطلبات الطول ومجموعة الأحرف. على وجه الخصوص، يُرجى العِلم أنّ هذا الحقل يمكن أن يحتوي أحيانًا على معرّفات من إنشاء Google قد تكون لها متطلبات مختلفة عن الحد الأقصى لطول المعرّفات التي ينشئها القائمون على الدمج.

eventCharge

string (Int64Value format)

مطلوب: رمز العملة المحدّد في البيان إذا كانت هذه القيمة سالبة، فهذا يمثّل القيمة النقدية التي تنتقل من Google إلى خدمة تكامل الدفع. إذا كان هذا المبلغ موجبًا، يعني ذلك أنّ شركة تكامل الدفع تدين به إلى Google.

على سبيل المثال، ستكون معاملات التحصيل إيجابية دائمًا، وستكون معاملات ردّ الأموال سلبية دائمًا. ستكون أحداث ردّ الأموال وعكس عمليّة ردّ المبلغ إيجابية دائمًا. ستكون أحداث ردّ المبالغ المدفوعة سلبية دائمًا.

هذه القيمة بوحدة ميكرو.

eventFee

string (Int64Value format)

مطلوب: رمز العملة المحدّد في البيان إذا كانت هذه القيمة سالبة، فهذا يمثّل القيمة النقدية التي تنتقل من Google إلى خدمة تكامل الدفع. إذا كان هذا المبلغ موجبًا، يعني ذلك أنّ شركة تكامل الدفع تدين به إلى Google.

على سبيل المثال، إذا كانت الاتفاقية تنص على أنّ Google ستدفع %1 من transactionCharge إلى خدمة تكامل الدفع، وسيتم عكس هذه النسبة عند ردّ أموال المعاملة، ستكون رسوم التحصيل سالبة، وعند ردّ الأموال ستكون رسوم الردّ موجبة.

هذه القيمة بوحدة ميكرو.

presentmentChargeAmount

string (Int64Value format)

اختياري: مبلغ المعاملة بعملة العرض (المعروفة أيضًا باسم عملة المعاملة) قبل تحويل العملة الأجنبية يتبع هذا الحقل اصطلاح الإشارة نفسه الذي يتبعه الحقل eventCharge.

هذه القيمة بوحدة ميكرو.

presentmentCurrencyCode

string

اختيارية: رمز العملة المكوّن من 3 أحرف بتنسيق ISO 4217 والذي يحدّد عملة العرض (المعاملة).

exchangeRate
(deprecated)

string (Int64Value format)

تم الإيقاف نهائيًا: سعر الصرف المستخدَم في تحويل مبلغ العرض إلى مبلغ التسوية (الفاتورة).

هذه القيمة هي نقطة أساس ميكرو (نقطة أساس واحدة = 0 .0001 = %0 .01). أي للحصول على سعر الصرف، قسِّم هذا الحقل على 10^10.

nanoExchangeRate

string (Int64Value format)

اختياري: سعر الصرف المستخدَم في تحويل مبلغ العرض إلى مبلغ التسوية (الفاتورة)، ويتم التعبير عنه بنقاط أساسية نانو.

تكون هذه القيمة بوحدات نانو (نقطة أساس واحدة = 0 .0001 = %0 .01). أي للحصول على سعر الصرف، قسِّم هذا الحقل على 10^13.

سيتم ملء هذا الحقل وحقل exchangeRate. وهي أسعار صرف متساوية معبَّر عنها بدقة مختلفة. في الإصدارات المستقبلية، ستتم إزالة exchangeRate واستخدام nanoExchangeRate بدلاً منها.