Method: remittanceStatementDetails

রেমিটেন্স স্টেটমেন্ট সম্পর্কিত লেনদেনের বিস্তারিত তথ্য ফেরত দেয়।

এটি একটি পেজিনেটেড এপিআই। প্রতি পেজে ট্রানজ্যাকশন ইভেন্টের সংখ্যা numberOfEvents দিয়ে নির্দিষ্ট করা যায়। যদি নির্দিষ্ট না করা হয়, তবে প্রতি পেজে সর্বোচ্চ ১০০০টি ইভেন্ট ফেরত দেওয়া হবে। এই এপিআই-তে করা প্রতিটি অনুরোধ স্টেটমেন্টের পরবর্তী ট্রানজ্যাকশন ইভেন্ট নির্দেশকারী একটি nextEventOffset এবং স্টেটমেন্টের মোট ট্রানজ্যাকশনের সংখ্যা নির্দিষ্টকারী totalEvents ফেরত দেবে। যদি বর্তমানে প্রাপ্ত পেজটিতে স্টেটমেন্টের শেষ ট্রানজ্যাকশনগুলো থাকে, তবে রেসপন্সে nextEventOffset উপস্থিত থাকবে না।

statementId ভ্যালুটি হলো remittanceStatementNotificationRequest থেকে requestId

অনুরোধটি প্রক্রিয়াকরণ করার সময় এন্ডপয়েন্টে কোনো ত্রুটি দেখা দিলে, এই এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়াটি 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

ঐচ্ছিক : প্রতি পৃষ্ঠায় প্রদর্শিত ইভেন্টের সংখ্যা। যদি অনির্দিষ্ট থাকে বা ১০০০-এর বেশি হয়, তবে এর মান ১০০০ হবে।

প্রতিক্রিয়া সংস্থা

রেমিটেন্স স্টেটমেন্ট ডিটেইল মেথডের জন্য রেসপন্স অবজেক্ট।

সফল হলে, প্রতিক্রিয়া অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:

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 )

ঐচ্ছিক : সমন্বয় ইভেন্টের সেট। বিলিংয়ের অসঙ্গতি মেটাতে গুগল তার নিজস্ব বিবেচনার ভিত্তিতে সমন্বয় ইভেন্ট যোগ করতে পারে। উদাহরণস্বরূপ, যদি পূর্ববর্তী কিছু লেনদেনের জন্য ফি কম গণনা করা হয়ে থাকে, তবে ইন্টিগ্রেটরকে সম্পূর্ণ ক্ষতিপূরণ দিতে একটি সমন্বয় ব্যবহার করা যেতে পারে।

রেমিটেন্স স্টেটমেন্ট সামারি

রেমিটেন্স স্টেটমেন্ট সম্পর্কিত সারসংক্ষেপ অবজেক্ট।

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 মান ০-এর বেশি হলেই এটি সেট করা থাকবে।

currencyCode

string

আবশ্যক : আইএসও ৪২১৭ ৩-অক্ষরের মুদ্রা কোড।

totalDueByIntegrator

string ( Int64Value format)

আবশ্যক : এই মানটি currencyCode মুদ্রার মাইক্রোসেকেন্ড এককে হতে হবে। এই মানটি সর্বদা ধনাত্মক।

remittanceInstructions

object ( RemittanceInstructions )

প্রয়োজনীয় : অর্থপ্রদানের পদ্ধতি সম্পর্কে বিস্তারিত তথ্য।

বিলিং সময়কাল

এই বিবরণীর বিলিং সময়কাল।

JSON উপস্থাপনা
{
  "startDate": string,
  "endDate": string
}
ক্ষেত্র
startDate

string ( int64 format)

আবশ্যিক : বিলিং পিরিয়ডের শুরুর তারিখ। এটি ইপক থেকে মিলিসেকেন্ডে প্রকাশ করা হয়। এটি একটি তারিখ (এবং তাই বিলিং টাইমজোনে এটি সর্বদা দিনের প্রথম মিলিসেকেন্ড থেকে শুরু হবে)।

এটি বিলিং পিরিয়ডের দিনের প্রথম মিলিসেকেন্ড, ০০:০০:০০.০০০

endDate

string ( int64 format)

আবশ্যিক : বিলিং মেয়াদের শেষ তারিখ। এটি ইপক থেকে মিলিসেকেন্ডে প্রকাশ করা হয়।

এটি বিলিং মেয়াদের শেষ দিনের শেষ মিলিসেকেন্ড, ২৩:৫৯:৫৯.৯৯৯

রেমিটেন্স নির্দেশাবলী

এই রেমিটেন্স নোটিফিকেশনটি কীভাবে পরিশোধ করতে হবে, সেই সংক্রান্ত তথ্য ধারণকারী কাঠামো।

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 যা গুগল অনুরোধের সাথে পাঠায়। রিভার্স রিফান্ড, চার্জব্যাক এবং রিভার্স চার্জব্যাক ইভেন্টের জন্য, এটি হবে সেই requestId যা পেমেন্ট ইন্টিগ্রেটর সেই ইভেন্টের নোটিফিকেশনের সাথে পাঠায়। অ্যাডজাস্টমেন্টের জন্য, এটি হবে একটি অনন্য আইডি যা গুগল অ্যাডজাস্টমেন্ট ইভেন্টের জন্য বরাদ্দ করে।

paymentIntegratorEventId

string

আবশ্যক : এই ইভেন্টের জন্য পেমেন্ট ইন্টিগ্রেটর যে আইডিটি ফেরত দিয়েছে, সেটি শনাক্ত করুন। ক্যাপচারের ক্ষেত্রে, এটি হলো capture কলের রেসপন্স থেকে প্রাপ্ত paymentIntegratorTransactionId এবং রিফান্ডের ক্ষেত্রে, এটি হলো refund কলের রেসপন্স থেকে প্রাপ্ত paymentIntegratorRefundId ।

এই ফিল্ডটির দৈর্ঘ্য পরিবর্তনশীল; একজন ইন্টিগ্রেটর হিসেবে আপনি এই ইভেন্টের জন্য যে আইডি সরবরাহ করবেন, তা এখানে প্রতিফলিত হবে। যদি ইন্টিগ্রেটর সংশ্লিষ্ট ইভেন্টের জন্য কোনো মান প্রদান না করেন, তাহলে এই ফিল্ডটিতে eventRequestId ফিল্ডের মানটিই থাকবে।

রিভার্স রিফান্ড, চার্জব্যাক এবং রিভার্স চার্জব্যাক ইভেন্টগুলোর ক্ষেত্রে, এটি হবে সেই requestId যা পেমেন্ট ইন্টিগ্রেটর ইভেন্টের নোটিফিকেশনের সাথে পাঠিয়েছে।

এই ফিল্ডের দৈর্ঘ্য এবং ফরম্যাট প্রতিটি আইডির জন্য উৎস ফিল্ডের উপর নির্ভর করে। দৈর্ঘ্য এবং ক্যারেক্টার সেটের প্রয়োজনীয়তা সম্পর্কে বিস্তারিত জানতে প্রতিটি উৎস ফিল্ডের ডকুমেন্টেশন দেখুন। বিশেষ করে, মনে রাখবেন যে এই ফিল্ডে মাঝে মাঝে গুগল-জেনারেটেড আইডি থাকতে পারে, যেগুলোর সর্বোচ্চ দৈর্ঘ্যের প্রয়োজনীয়তা ইন্টিগ্রেটর-জেনারেটেড আইডির থেকে ভিন্ন হতে পারে।

eventCharge

string ( Int64Value format)

আবশ্যক : স্টেটমেন্ট দ্বারা সংজ্ঞায়িত কারেন্সি কোড। যদি এই মান ঋণাত্মক হয়, তবে এটি গুগল থেকে পেমেন্ট ইন্টিগ্রেটরের কাছে স্থানান্তরিত আর্থিক মূল্যকে বোঝায়। যদি এটি ধনাত্মক হয়, তবে এটি পেমেন্ট ইন্টিগ্রেটরের কাছ থেকে গুগলের প্রাপ্য অর্থ।

উদাহরণস্বরূপ, ক্যাপচার ট্রানজ্যাকশন সর্বদা পজিটিভ হবে এবং রিফান্ড ট্রানজ্যাকশন সর্বদা নেগেটিভ হবে। রিভার্স রিফান্ড এবং রিভার্স চার্জব্যাক ইভেন্ট সর্বদা পজিটিভ হবে। চার্জব্যাক ইভেন্ট সর্বদা নেগেটিভ হবে।

এই মানটি মাইক্রোসেকেন্ডে রয়েছে।

eventFee

string ( Int64Value format)

আবশ্যক : স্টেটমেন্ট দ্বারা সংজ্ঞায়িত কারেন্সি কোড। যদি এই মান ঋণাত্মক হয়, তবে এটি গুগল থেকে পেমেন্ট ইন্টিগ্রেটরের কাছে স্থানান্তরিত আর্থিক মূল্যকে বোঝায়। যদি এটি ধনাত্মক হয়, তবে এটি পেমেন্ট ইন্টিগ্রেটরের কাছ থেকে গুগলের প্রাপ্য অর্থ।

উদাহরণস্বরূপ, যদি কোনো চুক্তিতে বলা থাকে যে গুগল transactionCharge ১% পেমেন্ট ইন্টিগ্রেটরকে প্রদান করবে এবং সেই লেনদেনটি ফেরত দেওয়ার পর সেই ১% ফেরত দেবে, তাহলে ক্যাপচার ফি ঋণাত্মক হবে এবং ফেরত দেওয়ার পর রিফান্ড ফি ধনাত্মক হবে।

এই মানটি মাইক্রোসেকেন্ডে রয়েছে।

presentmentChargeAmount

string ( Int64Value format)

ঐচ্ছিক : বৈদেশিক মুদ্রা বিনিময়ের পূর্বে উপস্থাপিত (বা লেনদেন) মুদ্রায় লেনদেনের পরিমাণ। এই ফিল্ডটি eventCharge ফিল্ডের মতো একই চিহ্ন রীতি অনুসরণ করে।

এই মানটি মাইক্রোসেকেন্ডে রয়েছে।

presentmentCurrencyCode

string

ঐচ্ছিক : উপস্থাপন (লেনদেন) মুদ্রা নির্দেশকারী ISO 4217 ৩-অক্ষরের মুদ্রা কোড।

exchangeRate
(deprecated)

string ( Int64Value format)

অপ্রচলিত : উপস্থাপিত পরিমাণকে নিষ্পত্তি (ইনভয়েস) পরিমাণে রূপান্তর করতে ব্যবহৃত বিনিময় হার।

এই মানটি মাইক্রো বেসিস পয়েন্টে প্রকাশ করা হয় (১ বেসিস পয়েন্ট = .০০০১ = .০১%)। অর্থাৎ, বিনিময় হার বের করার জন্য এই ক্ষেত্রটিকে ১০^১০ দিয়ে ভাগ করতে হবে।

nanoExchangeRate

string ( Int64Value format)

ঐচ্ছিক : উপস্থাপিত অর্থকে নিষ্পত্তি (ইনভয়েস) অর্থে রূপান্তর করার জন্য ব্যবহৃত বিনিময় হার, যা ন্যানো বেসিস পয়েন্টে প্রকাশ করা হয়।

এই মানটি ন্যানো বেসিস পয়েন্টে প্রকাশ করা হয় (১ বেসিস পয়েন্ট = .০০০১ = .০১%)। অর্থাৎ, বিনিময় হার বের করার জন্য এই ক্ষেত্রটিকে ১০^১৩ দিয়ে ভাগ করতে হবে।

এই ফিল্ড এবং exchangeRate উভয়ই পূরণ করা হবে। এগুলি ভিন্ন নির্ভুলতায় প্রকাশিত সমতুল্য বিনিময় হার। ভবিষ্যতের সংস্করণগুলিতে, exchangeRate সরিয়ে nanoExchangeRate ব্যবহার করা হবে।