- HTTP অনুরোধ
- অনুরোধকারী শরীর
- প্রতিক্রিয়া সংস্থা
- রেমিটেন্স স্টেটমেন্ট সামারি
- বিলিং সময়কাল
- রেমিটেন্স নির্দেশাবলী
- অনুষ্ঠান
রেমিটেন্স স্টেটমেন্ট সম্পর্কিত লেনদেনের বিস্তারিত তথ্য ফেরত দেয়।
এটি একটি পেজিনেটেড এপিআই। প্রতি পেজে ট্রানজ্যাকশন ইভেন্টের সংখ্যা numberOfEvents দিয়ে নির্দিষ্ট করা যায়। যদি নির্দিষ্ট না করা হয়, তবে প্রতি পেজে সর্বোচ্চ ১০০০টি ইভেন্ট ফেরত দেওয়া হবে। এই এপিআই-তে করা প্রতিটি অনুরোধ স্টেটমেন্টের পরবর্তী ট্রানজ্যাকশন ইভেন্ট নির্দেশকারী একটি nextEventOffset এবং স্টেটমেন্টের মোট ট্রানজ্যাকশনের সংখ্যা নির্দিষ্টকারী totalEvents ফেরত দেবে। যদি বর্তমানে প্রাপ্ত পেজটিতে স্টেটমেন্টের শেষ ট্রানজ্যাকশনগুলো থাকে, তবে রেসপন্সে nextEventOffset উপস্থিত থাকবে না।
statementId ভ্যালুটি হলো remittanceStatementNotificationRequest থেকে requestId
অনুরোধটি প্রক্রিয়াকরণ করার সময় এন্ডপয়েন্টে কোনো ত্রুটি দেখা দিলে, এই এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়াটি টাইপের হবে।ErrorResponse
এই মেথডটি যদি একটি HTTP 200 রিটার্ন না করে, তাহলে এই কোয়েরির প্রতিক্রিয়া খালি থাকতে পারে। এমন পরিস্থিতিতে রেসপন্স বডি খালি থাকে যেখানে একটি স্পষ্ট বিবরণসহ ব্যবহার করে একজন আক্রমণকারীকে অন্যান্য ইন্টিগ্রেটরদের পেমেন্ট ইন্টিগ্রেটর অ্যাকাউন্ট আইডেন্টিফায়ার বুঝতে সাহায্য করা যেতে পারে। এইসব পরিস্থিতিতে, যেখানে হয় সাইনিং কী মেলে না, পেমেন্ট ইন্টিগ্রেটর আইডেন্টিফায়ার খুঁজে পাওয়া যায়নি, অথবা এনক্রিপশন কী অজানা ছিল, সেখানে এই মেথডটি একটি খালি বডিসহ HTTP 404 রিটার্ন করবে। যদি রিকোয়েস্ট সিগনেচার যাচাই করা যায়, তাহলে ত্রুটি সম্পর্কিত অতিরিক্ত তথ্য রেসপন্স বডিতে রিটার্ন করা হবে।ErrorResponse
একটি নমুনা অনুরোধ দেখতে এইরকম:
{
"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 | আবশ্যক : এটি হলো পেমেন্ট ইন্টিগ্রেটর অ্যাকাউন্ট শনাক্তকারী, যা এই স্টেটমেন্ট সম্পর্কিত চুক্তিগত সীমাবদ্ধতাগুলো চিহ্নিত করে। |
statementId | প্রয়োজনীয় : স্টেটমেন্ট নোটিফিকেশনের রিকোয়েস্ট আইডি। |
eventOffset | ঐচ্ছিক : এই অফসেট থেকে ইভেন্টগুলো ফেরত দিন। যদি কোনো ইভেন্ট ফেরত দেওয়া হয়ে থাকে, তবে এটি |
numberOfEvents | ঐচ্ছিক : প্রতি পৃষ্ঠায় প্রদর্শিত ইভেন্টের সংখ্যা। যদি অনির্দিষ্ট থাকে বা ১০০০-এর বেশি হয়, তবে এর মান ১০০০ হবে। |
প্রতিক্রিয়া সংস্থা
রেমিটেন্স স্টেটমেন্ট ডিটেইল মেথডের জন্য রেসপন্স অবজেক্ট।
সফল হলে, প্রতিক্রিয়া অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:
| JSON উপস্থাপনা |
|---|
{ "responseHeader": { object ( |
| ক্ষেত্র | |
|---|---|
responseHeader | আবশ্যক : সকল প্রতিক্রিয়ার জন্য অভিন্ন হেডার। |
remittanceStatementSummary | আবশ্যক : এই রেমিট্যান্স স্টেটমেন্টের সারসংক্ষেপ। |
eventOffset | প্রয়োজনীয় : এই প্রতিক্রিয়ার ইভেন্ট অফসেট। |
nextEventOffset | ঐচ্ছিক : পরবর্তী যে ইভেন্টটি ফেরত দেওয়া হবে তার অফসেট। এটি নির্দিষ্ট না করা হলে, এই স্টেটমেন্টের জন্য পুনরুদ্ধার করার মতো আর কোনো ইভেন্ট থাকবে না। |
totalEvents | প্রয়োজনীয় : এই বিবৃতিতে থাকা মোট ঘটনার সংখ্যা। |
totalWithholdingTaxes | প্রয়োজনীয় : এই বিবরণীর জন্য কর্তনকৃত সকল করের সমষ্টি। এই মানটি মাইক্রোসেকেন্ডে রয়েছে। |
captureEvents[] | প্রয়োজনীয় : ক্যাপচার ইভেন্টসমূহের সেট। |
refundEvents[] | প্রয়োজনীয় : রিফান্ড ইভেন্টগুলোর সেট। |
reverseRefundEvents[] | ঐচ্ছিক : বিপরীত রিফান্ড ইভেন্টের সেট। |
chargebackEvents[] | ঐচ্ছিক : চার্জব্যাক ঘটনাসমূহের সেট। |
reverseChargebackEvents[] | ঐচ্ছিক : বিপরীত চার্জব্যাক ঘটনাসমূহের সেট। |
adjustmentEvents[] | ঐচ্ছিক : সমন্বয় ইভেন্টের সেট। বিলিংয়ের অসঙ্গতি মেটাতে গুগল তার নিজস্ব বিবেচনার ভিত্তিতে সমন্বয় ইভেন্ট যোগ করতে পারে। উদাহরণস্বরূপ, যদি পূর্ববর্তী কিছু লেনদেনের জন্য ফি কম গণনা করা হয়ে থাকে, তবে ইন্টিগ্রেটরকে সম্পূর্ণ ক্ষতিপূরণ দিতে একটি সমন্বয় ব্যবহার করা যেতে পারে। |
রেমিটেন্স স্টেটমেন্ট সামারি
রেমিটেন্স স্টেটমেন্ট সম্পর্কিত সারসংক্ষেপ অবজেক্ট।
| JSON উপস্থাপনা |
|---|
{ "statementDate": string, "billingPeriod": { object ( |
| ক্ষেত্র | |
|---|---|
statementDate | আবশ্যক : এই বিবৃতিটি তৈরি করার তারিখ (আমেরিকা/লস অ্যাঞ্জেলেস অনুযায়ী)। |
billingPeriod | আবশ্যক : যে বিলিং সময়কালের জন্য এই বিবরণীটি প্রযোজ্য। |
dateDue | ঐচ্ছিক : যে তারিখে অর্থপ্রদান করতে হবে। এটি ইপক থেকে মিলিসেকেন্ডে প্রকাশ করা হয়। এটি একটি তারিখ (এবং তাই বিলিং টাইমজোনে এটি সর্বদা দিনের প্রথম মিলিসেকেন্ড থেকে শুরু হবে)। |
currencyCode | আবশ্যক : আইএসও ৪২১৭ ৩-অক্ষরের মুদ্রা কোড। |
totalDueByIntegrator | আবশ্যক : এই মানটি |
remittanceInstructions | প্রয়োজনীয় : অর্থপ্রদানের পদ্ধতি সম্পর্কে বিস্তারিত তথ্য। |
বিলিং সময়কাল
এই বিবরণীর বিলিং সময়কাল।
| JSON উপস্থাপনা |
|---|
{ "startDate": string, "endDate": string } |
| ক্ষেত্র | |
|---|---|
startDate | আবশ্যিক : বিলিং পিরিয়ডের শুরুর তারিখ। এটি ইপক থেকে মিলিসেকেন্ডে প্রকাশ করা হয়। এটি একটি তারিখ (এবং তাই বিলিং টাইমজোনে এটি সর্বদা দিনের প্রথম মিলিসেকেন্ড থেকে শুরু হবে)। এটি বিলিং পিরিয়ডের দিনের প্রথম মিলিসেকেন্ড, ০০:০০:০০.০০০ |
endDate | আবশ্যিক : বিলিং মেয়াদের শেষ তারিখ। এটি ইপক থেকে মিলিসেকেন্ডে প্রকাশ করা হয়। এটি বিলিং মেয়াদের শেষ দিনের শেষ মিলিসেকেন্ড, ২৩:৫৯:৫৯.৯৯৯ |
রেমিটেন্স নির্দেশাবলী
এই রেমিটেন্স নোটিফিকেশনটি কীভাবে পরিশোধ করতে হবে, সেই সংক্রান্ত তথ্য ধারণকারী কাঠামো।
| JSON উপস্থাপনা |
|---|
{ "memoLineId": string } |
| ক্ষেত্র | |
|---|---|
memoLineId | আবশ্যক : রেমিটেন্স শনাক্তকরণের জন্য পেমেন্টের মেমো লাইনে যে শনাক্তকারীটি অবশ্যই উল্লেখ করতে হবে। |
অনুষ্ঠান
রেমিটেন্স স্টেটমেন্টে অন্তর্ভুক্ত একটি একক ঘটনার প্রতিনিধিত্বকারী কাঠামো।
| JSON উপস্থাপনা |
|---|
{ "eventRequestId": string, "paymentIntegratorEventId": string, "eventCharge": string, "eventFee": string, "presentmentChargeAmount": string, "presentmentCurrencyCode": string, "exchangeRate": string, "nanoExchangeRate": string } |
| ক্ষেত্র | |
|---|---|
eventRequestId | আবশ্যক : ক্যাপচার বা রিফান্ড ইভেন্টের জন্য, এটি হবে সেই |
paymentIntegratorEventId | আবশ্যক : এই ইভেন্টের জন্য পেমেন্ট ইন্টিগ্রেটর যে আইডিটি ফেরত দিয়েছে, সেটি শনাক্ত করুন। ক্যাপচারের ক্ষেত্রে, এটি হলো এই ফিল্ডটির দৈর্ঘ্য পরিবর্তনশীল; একজন ইন্টিগ্রেটর হিসেবে আপনি এই ইভেন্টের জন্য যে আইডি সরবরাহ করবেন, তা এখানে প্রতিফলিত হবে। যদি ইন্টিগ্রেটর সংশ্লিষ্ট ইভেন্টের জন্য কোনো মান প্রদান না করেন, তাহলে এই ফিল্ডটিতে রিভার্স রিফান্ড, চার্জব্যাক এবং রিভার্স চার্জব্যাক ইভেন্টগুলোর ক্ষেত্রে, এটি হবে সেই এই ফিল্ডের দৈর্ঘ্য এবং ফরম্যাট প্রতিটি আইডির জন্য উৎস ফিল্ডের উপর নির্ভর করে। দৈর্ঘ্য এবং ক্যারেক্টার সেটের প্রয়োজনীয়তা সম্পর্কে বিস্তারিত জানতে প্রতিটি উৎস ফিল্ডের ডকুমেন্টেশন দেখুন। বিশেষ করে, মনে রাখবেন যে এই ফিল্ডে মাঝে মাঝে গুগল-জেনারেটেড আইডি থাকতে পারে, যেগুলোর সর্বোচ্চ দৈর্ঘ্যের প্রয়োজনীয়তা ইন্টিগ্রেটর-জেনারেটেড আইডির থেকে ভিন্ন হতে পারে। |
eventCharge | আবশ্যক : স্টেটমেন্ট দ্বারা সংজ্ঞায়িত কারেন্সি কোড। যদি এই মান ঋণাত্মক হয়, তবে এটি গুগল থেকে পেমেন্ট ইন্টিগ্রেটরের কাছে স্থানান্তরিত আর্থিক মূল্যকে বোঝায়। যদি এটি ধনাত্মক হয়, তবে এটি পেমেন্ট ইন্টিগ্রেটরের কাছ থেকে গুগলের প্রাপ্য অর্থ। উদাহরণস্বরূপ, ক্যাপচার ট্রানজ্যাকশন সর্বদা পজিটিভ হবে এবং রিফান্ড ট্রানজ্যাকশন সর্বদা নেগেটিভ হবে। রিভার্স রিফান্ড এবং রিভার্স চার্জব্যাক ইভেন্ট সর্বদা পজিটিভ হবে। চার্জব্যাক ইভেন্ট সর্বদা নেগেটিভ হবে। এই মানটি মাইক্রোসেকেন্ডে রয়েছে। |
eventFee | আবশ্যক : স্টেটমেন্ট দ্বারা সংজ্ঞায়িত কারেন্সি কোড। যদি এই মান ঋণাত্মক হয়, তবে এটি গুগল থেকে পেমেন্ট ইন্টিগ্রেটরের কাছে স্থানান্তরিত আর্থিক মূল্যকে বোঝায়। যদি এটি ধনাত্মক হয়, তবে এটি পেমেন্ট ইন্টিগ্রেটরের কাছ থেকে গুগলের প্রাপ্য অর্থ। উদাহরণস্বরূপ, যদি কোনো চুক্তিতে বলা থাকে যে গুগল এই মানটি মাইক্রোসেকেন্ডে রয়েছে। |
presentmentChargeAmount | ঐচ্ছিক : বৈদেশিক মুদ্রা বিনিময়ের পূর্বে উপস্থাপিত (বা লেনদেন) মুদ্রায় লেনদেনের পরিমাণ। এই ফিল্ডটি এই মানটি মাইক্রোসেকেন্ডে রয়েছে। |
presentmentCurrencyCode | ঐচ্ছিক : উপস্থাপন (লেনদেন) মুদ্রা নির্দেশকারী ISO 4217 ৩-অক্ষরের মুদ্রা কোড। |
exchangeRate | অপ্রচলিত : উপস্থাপিত পরিমাণকে নিষ্পত্তি (ইনভয়েস) পরিমাণে রূপান্তর করতে ব্যবহৃত বিনিময় হার। এই মানটি মাইক্রো বেসিস পয়েন্টে প্রকাশ করা হয় (১ বেসিস পয়েন্ট = .০০০১ = .০১%)। অর্থাৎ, বিনিময় হার বের করার জন্য এই ক্ষেত্রটিকে ১০^১০ দিয়ে ভাগ করতে হবে। |
nanoExchangeRate | ঐচ্ছিক : উপস্থাপিত অর্থকে নিষ্পত্তি (ইনভয়েস) অর্থে রূপান্তর করার জন্য ব্যবহৃত বিনিময় হার, যা ন্যানো বেসিস পয়েন্টে প্রকাশ করা হয়। এই মানটি ন্যানো বেসিস পয়েন্টে প্রকাশ করা হয় (১ বেসিস পয়েন্ট = .০০০১ = .০১%)। অর্থাৎ, বিনিময় হার বের করার জন্য এই ক্ষেত্রটিকে ১০^১৩ দিয়ে ভাগ করতে হবে। এই ফিল্ড এবং exchangeRate উভয়ই পূরণ করা হবে। এগুলি ভিন্ন নির্ভুলতায় প্রকাশিত সমতুল্য বিনিময় হার। ভবিষ্যতের সংস্করণগুলিতে, exchangeRate সরিয়ে nanoExchangeRate ব্যবহার করা হবে। |