مقدمه

API های وندار بر اساس استاندارد REST ایجاد شده اند.

تمامی پاسخ API های ما بصورت JSON-encoded پاسخ داده خواهند شد.

بوسیله ارسال توکن در هر درخواست، احراز هویت نیز انجام می شود. (ممکن است در برخی از سرویس ها نحوه احراز هویت متفاوت باشد)

محدودیت های درخواست به API

برای متد POST در هر ۳ ثانیه ۳۰ درخواست

و برای باقی متد ها در هر ۳ ثانیه ۱۰۰ درخواست قابل پذیرش است.

توجه داشته باشید که در حال حاضر برخی از مسیرها با base url روبرو تعیین نشده است.

آیا این بخش مفید بود؟بلی خیر
BASE URL

https://api.vandar.io

احراز هویت

برای دریافت توکن و رفرش توکن اولیه مالک یا مدیر کسب و کار می تواند وارد داشبورد وندار شود و کسب و کار خود را انتخاب کند. و از منوی تنظیمات بخش تنظیمات مدیریت حساب، توکن ها را انتخاب کنید. و با زدن دکمه افزودن توکن جدید، و وارد کردن یک نام برای توکن و وارد کردن رمز عبور حساب کاربری خود یک توکن و رفرش توکن در یافت کنید.

از آنجاییکه عمر توکن ها محدود است و مقدار آن در فیلد expires_in (بر مبنای ثانیه) همراه توکن ارسال شده است،‌ باید قبل از منقضی شدن توکن با ارسال رفرش توکن، توکن جدید را دریافت کنید.

پارامترها
refreshtokenrequiredstring

مقداری که از فراخوانی متد قبل دریافت کرده‌اید

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'POST',
  url: '/v3/refreshtoken',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    refreshtoken: '{refreshtoken}'
  })
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "token_type": "Bearer",
  "expires_in": 432000,
  "access_token": "bPJO9cJLGRqClDadEua7ztoCLC5E***********",
  "refresh_token": "def50200c4d2462d2de167da1*******"
}

postman

جهت تست و توسعه سرویس‌ها از کالکشن پستمن وندار استفاده نمایید.

کلیه سرویس‌های وندار در کالکشن ارائه شده موجود می‌باشد، برای تست API ها کافیست نام انگلیسی کسب‌وکار خود را بجای پارامتر business و اکسس توکن دریافتی از وندار را در پارامتر access_token ارسال نمائید.

نام انگلیسی کسب‌وکار در داشبورد وندار، بخش تنظیمات،اطلاعات پایه و در فیلد نام انگلیسی برند موجود می‌باشد.

آیا این بخش مفید بود؟بلی خیر

خطاها

API های وندار از قواعد HTTP response پیروی می‌کند.

بطور کلی در رنج 2xx پاسخ های موفق را دریافت می‌کنید.

رنج 4xx زمانی بوجود می‌آید که اطلاعات اشتباهی از سمت شما به API ها ارسال شده است.

خطاهایی در رنج 5xx نشان دهنده مشکلاتی از سمت API های وندار بوده که می توانید آن را با پشتیبانی مطرح کنید.

آیا این بخش مفید بود؟بلی خیر
HTTP STATUS CODE SUMMARY

200 - OKEverything worked as expected.
400 - Bad RequestThe request was unacceptable, often due to missing a required parameter.
401 - UnauthorizedNo valid API key provided.
402 - Request FailedThe parameters were valid but the request failed.
403 - ForbiddenThe API key doesn't have permissions to perform the request.

درگاه پرداخت IPG

برای فروشگاه‌های اینترنتی که خدمات یا محصولاتی را در وب‌سـایت خود ارائه می‌کنند، از درگاه پرداخت وندار استفاده کنید.

نکته

برای استفاده از درگاه پرداخت لازم است این ابزار را در داشبورد وندار فعال کرده و یک توکن دریافت کنید.

قبل از شروع پیاده سازی بهتر است یک بار فرایند پرداخت را با هم مرور کنیم
  • مرحله اول: ارسال اطلاعات تراکنش و دریافت توکن پرداخت.
  • مرحله دوم: انتقال کاربر به صفحه پرداخت با توکنی که از مرحله اول دریافت کردید.
  • مرحله سوم (اختیاری): قبل از تایید تراکنش اطلاعات تراکنش را دریافت می‌کنید.
  • مرحله چهارم: بعد از فرایند پرداخت کاربر به آدرسی بازگشتی که در مرحله اول ارسال کردید، بر‌میگردد. و شما برای نهایی شدن تراکنش حتما باید متد وریفای تراکنش رو صدا بزنید. و نتیجه نهایی تراکنش را دریافت کنید. پایان تراکنش

این چهار مرحله کلی، مقدمه چند نکته مهم است که توجه شما را به این نکات جلب می‌کنم

همگام‌سازی آدرس درگاه پرداخت و callback_url

در مرحله اول، باید پارامتری به نام callback_url را همراه با درخواست خود ارسال کنید. توجه داشته باشید که از این پس، آدرس callback_url باید حتماً با دامنه‌ای که برای آن ترمینال شاپرکی دریافت کرده‌اید، مطابقت داشته باشد. به عنوان مثال، اگر دامنه ثبت‌شده در شاپرک vandar.io است، آدرس callback_url نیز باید یکی از مشتقات این دامنه باشد، مانند:

https://vandar.io/:path

https://subdomain.vandar.io/:path

همگام‌سازی آدرس درگاه پرداخت و HTTP Referer

یکی دیگر از موارد بسیار مهم زمانی است که کاربر شما به صفحه درگاه پرداخت منتقل می‌شود. در این انتقال، درخواست ریدایرکت به همراه هدر Referer ارسال می‌شود. از این پس، آدرس Referer باید دارای دو ویژگی زیر باشد:

پر بودن: هدر Referer نباید خالی باشد.

مطابقت با دامنه ترمینال شاپرکی: آدرس Referer باید با دامنه‌ای که ترمینال شاپرکی برای آن صادر شده است، همخوانی داشته باشد.

تعداد زیادی از کسب و کارها قبل از تایید یک تراکنش و نهایی کردن اون ممکنه به اطلاعات تراکنش نیاز داشته باشند. به عنوان مثال اگر بخواهید شماره کارت پرداخت کننده را قبل از نهایی کردن تراکنش صحت سنجی کنید مرحله سوم که دریافت اطلاعات شماره کارت است رو فراخوانی می‌کنید و پارامتر "cid" که هش "SHA256" شماره کارت است را با شماره کارتی که پرداخت کننده از قبل نزد شما ثبت کرده است، تطابق می‌دهید. اما اگر به این صحت سنجی نیاز نداشته باشید. فراخوانی این سرویس اختیاری است.

این ورژن آخرین ورژن درگاه پرداخت وندار است. ورژن های قدیمی وندار پابرجا است. اما با توجه به تغییرات انجام شده سرعت انجام تراکنش در این ورژن بالاتر است. و این ورژن قابلیت های درگاه پرداخت دومرحله ای و تک مرحله ای را همزمان داراست. به هیچ عنوان در ورودی و خروجی ها تغییر داده نشده است. پس فقط با تغییر آدرس می‌توانید به ورژن ۳ مهاجرت کنید.

در صورتیکه تمایل به استفاده از قابلیت سوئیچینگ هوشمند درگاه پرداخت دارید این موضوع را به پشتیبانی وندار اطلاع دهید تا برای شما فعال کنند.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST https://ipg.vandar.io/api/v4/send

GET https://ipg.vandar.io/v4/:token

POST https://ipg.vandar.io/api/v4/transaction

POST https://ipg.vandar.io/api/v4/verify

تسویه

با استفاده از سرویس تسویه می‌توانید مبلغ موردنظر از کیف پول کسب و کار خود به مقصد شبای دلخواه (تمامی شباهای سامانه بانکی کشور) واریز نمائید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/settlement/store

GET /v2.1/business/:business/settlement

GET /v2.1/business/:business/settlement/:settlement_id

DELETE /v2.1/business/:business/settlement/:transaction_id

GET /v3/business/:business/settlement/banks

تسویه گروهی

با استفاده از سرویس تسویه گروهی می‌توانید تسویه های خود به صورت دسته ای (گروهی) یکجا ثبت نمائید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST https://batch.vandar.io/api/v2/business/:business/batches-settlement

GET https://batch.vandar.io/api/v2/business/:business/batches

GET https://batch.vandar.io/api/v2/business/:business/batch-settlements/:batch_id

تسویه در نوبت

با استفاده از سرویس تسویه در نوبت می‌توانید هنگامی که کیف پول شما به اندازه کافی موجودی ندارد، تسویه های خود ثبت نمائید و پس از اینکه کیف پول شما افزایش پیدا کرد این تسویه‌ها به بانک ارسال می‌شود.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/settlement/queued

GET /v3/business/:business/settlement/queued

GET /v3/business/:business/settlement/queued/:id

POST /v3/business/:business/settlement/queued/cancel

ابزار واریز بانکی

ابزار «واریز بانکی» یا به اصطلاح ،cash in یکی از بهترین روش‌های شارژ کیف پول کسب‌وکار ها است. کسب‌ و کارهایی که مبالغ زیادی از حساب آن‌ها برداشته می‌شود، با استفاده از این ویژگی می‌توانند مبلغی را از حساب بانک آینده خود به کیف پول خود در وندار اضافه کرده و پس از آن تعیین کنند که چه مقدار وجه از کیف پول‌شان خارج شود.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v3/business/:business/cash-in/account

POST /v3/business/:business/cash-in/account/deposit

POST /v3/business/:business/cash-in/account/balance

واریز شناسه‌دار

«واریز شناسه‌دار»، سرویس مکمل سایر روش‌های پرداخت است که افراد و سازمان‌ها از آن استفاده می‌کنند. به کمک این سرویس، می‌توانید بدون محدودیت در شبکه بانکی، پرداخت و دریافت وجه داشته باشید. این سرویس به صورت پیشفرض برای همه کسب‌وکارهای فعال، قابل استفاده بوده و برای هر کسب‌وکار یک شناسه یکتا منحصر به فرد تخصیص می‌یابد. با استفاده از «واریز شناسه‌دار» این امکان وجود دارد که با واریز وجه از همه بانک‌هایی که در آن حساب دارید، موجودی «کیف پول وندار» خود را افزایش دهید.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v3/business/:business/cash-in/code

GET /v3/business/:business/cash-in/suspicious-payment

POST /v3/business/:business/cash-in/suspicious-payment/:id

پرداخت خودکار

سرویس پرداخت خودکار یا دایرکت دبیت سرویسی است که یک فرد وجوهی را از حساب بانکی شخص دیگری خارج می کند در واقع شما به بانک اجازه می دهید که مبلغی را مستقیما از حسابتان کسر و در قبال آن خدماتی را به شما ارایه دهد. به طور کلی دایرکت دبیت برداشت مستقیم پول برای انجام معاملات مالی در صورت صدور مجوز توسط پرداخت کننده می باشد. این کار بیشتر زمانی انجام می شود که شما بخواهید اشتراک خود را تمدید کنید.

آیا این بخش مفید بود؟بلی خیر

بانک‌ها

لیست بانک‌های فعال دایرکت‌دبیت برای کسب‌وکار شما از طریق این سرویس قابل دسترس می‌باشد. همچنین امکان مدیریت بانک‌ها در داشبورد وندار، بخش پرداخت خودکار فراهم می‌باشد.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v3/business/:business/subscription/banks/actives

مجوز پرداخت از حساب

جهت دسترسی به حساب در سرویس پرداخت خودکار، نیاز به ایجاد یک مجوز در بانک وجود دارد. بر اساس این مجوز، کسب‌وکار شما اجازه برداشت از حساب کاربر را خواهد داشت.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/subscription/authorization/store

GET https://subscription.vandar.io/authorizations/:token

PATCH /v3/business/:business/subscription/authorization/:authorization_id/verify

GET /v3/business/:business/subscription/authorization/:authorization_id/search

GET /v3/business/:business/subscription/authorization

GET /v3/business/:business/subscription/authorization/:authorization_id/calculation

DELETE /v3/business/:business/subscription/authorization/:authorization_id

پرداخت از حساب

در این سرویس می‌توانید از حساب کاربران خود یکبار یا به صورت دوره‌ای بر اساس مجوزی که از کاربر گرفته‌اید، وجهی را برداشت نمایید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/subscription/withdrawal/store

GET /v3/business/:business/subscription/withdrawal/:withdrawal_id

GET /v3/business/:business/subscription/withdrawal/track-id/:track_id

GET /v3/business/:business/subscription/withdrawal

GET /v3/business/:business/subscription/withdrawal?q=:authorization_id

PUT /v3/business/:business/subscription/withdrawal/:withdrawal_id

بازگشت وجه

جهت بازگشت وجه یک تراکنش موفق پرداخت از حساب، می‌توانید از این سرویس استفاده نمایید.

جهت فعالسازی قابلیت بازگشت‌وجه لطفا با پشتیبانی وندار تماس حاصل نمایید.

لیست بانک‌هایی که از این قابلیت پشتیبانی می‌کنند: بانک ملی، پست‌بانک‌ایران، اقتصادنوین، سامان، سرمایه، سینا، آینده، دی، ایران‌زمین، کشاورزی، فردابانک، مهرایران، پارسیان، تجارت

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/subscription/refunds

GET /v3/business/:business/subscription/refunds/:refund_id

GET /v3/business/:business/subscription/refunds

معامله امن «میاندو»

میاندو برای خریدار هویت فروشنده و برای فروشنده، پرداخت مبلغ از سوی خریدار را تضمین می‌کند. خریدار مبلغ معامله را نزد میاندو به امانت می‌گذارد تا پس از ارائه کالا یا خدمت و تایید خریدار، این مبلغ برای فروشنده آزاد شود.

آیا این بخش مفید بود؟بلی خیر

مشتریان

مشتریان در میاندو به اشخاصی اطلاق می‌شود که به عنوان طرفین معامله (خریدار، فروشنده) به خرید و فروش می‌پردازند.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /miando/api/v1/customers

GET /miando/api/v1/customers

GET /miando/api/v1/customers/:id

معاملات

پیش نویسی است که پس از تایید طرفین به یک قرارداد بین فروشنده و خریدار در میاندو ثبت می‌شود.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /miando/api/v1/agreements

POST /miando/api/v1/agreements/:tracking_code

POST /miando/api/v1/agreements/:tracking_code/finalize

POST /miando/api/v1/agreements/:tracking_code/cancel

GET /miando/api/v1/agreements

GET /miando/api/v1/agreements/:tracking_code

تیکت

اگر در روند معامله مشکلی پیش آمد می‌توانید با ثبت تیکت مشکل خود را بیان کنید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /miando/api/v1/tickets

مشتریان

در این بخش سرویس‌های ثبت مشتری، فیلدهای اختصاصی مشتری، مشاهده لیست مشتریان، ویرایش اطلاعات مشتری، حذف مشتری و مشاهده اطلاعات یک مشتری ارائه می‌شوند.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v2/business/:business/customers

POST /v2/business/:business/customers

PUT /v2/business/:business/customers/:customer

DELETE /v2/business/:business/customers/:customer

GET /v2/business/:business/customers/:customer

فیلد اختصاصی

با استفاده از این سرویس می‌توانید فیلدهای اختصاصی برای کسب و کار ثبت نمایید.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v2/business/business/customers/fields

POST /v2/business/:business/customers/fields

PUT /v2/business/:business/customers/fields/:field_id

DELETE /v2/business/:business/customers/fields/:field_id

GET /v2/business/:business/customers/fields/:field_id

کیف پول

در این بخش مدیریت کیف پول مشتریان که شامل واریز، برداشت و مشاهده موجودی کیف پول مشتری می‌باشد، صورت می‌گیرد.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v2/business/:business/customers/:customer/wallet

POST /v2/business/:business/customers/:customer/wallet/deposit

POST /v2/business/:business/customers/:customer/wallet/withdraw

تراکنش‌ها

در این بخش اطلاعات تراکنش‌های مشتریان قابل مشاهده می‌باشد.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v2/business/:business/customers/:customer/transactions

شبا

استفاده از سرویس‌های استعلامی نیازمند فعال‌سازی آن از سمت پشتیبانی است. برای فعال‌سازی این سرویس درخواست خود را از بخش تیکت‌ها ارسال فرمایید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/customers/:customer/ibans

GET /v3/business/:business/customers/:customer/ibans

DELETE /v3/business/:business/customers/:customer/ibans

POST /v3/business/:business/customers/:customer/ibans/:iban/inquiry

POST /v3/business/:business/customers/:customer/ibans/:iban/set-default

کارت

استفاده از سرویس‌های استعلامی نیازمند فعال‌سازی آن از سمت پشتیبانی است. برای فعال‌سازی این سرویس درخواست خود را از بخش تیکت‌ها ارسال فرمایید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/customers/:customer/cards

GET /v3/business/:business/customers/:customer/cards

DELETE /v3/business/:business/customers/:customer/cards/:card

POST /v3/business/:business/customers/:customer/cards/:card/inquiry

POST /v3/business/:business/customers/:customer/cards/:card/set-default

POST /v3/business/:business/customers/:customer/cards/to-iban

احراز هویت

استفاده از سرویس‌های استعلامی نیازمند فعال‌سازی آن از سمت پشتیبانی است. برای فعال‌سازی این سرویس درخواست خود را از بخش تیکت‌ها ارسال فرمایید.

این سرویس جهت احراز هویت طرف‌حساب‌های پذیرندگان وندار ارائه شده است که توسط آن، پذیرندگان می‌توانند اطلاعات هویتی مخاطبان خود را مورد سنجش قرار دهند.

در حال حاضر وب سرویس احراز هویت مخاطبین به دو دسته کلی تقصیم شده است:

  • مخاطبینی که از قبل توسط پذیرنده ثبت نام شده اند.
  • مخاطبینی که ثبت نام نشده اند.

    برای احراز هویت کاربرانی که از قبل توسط پذیرنده ثبت نام شده اند احتیاجی به وارد کردن اطلاعات مخاطب نیست بلکه اطلاعات مخاطبین واکشی شده و در صورت وجود نقض یا مغایرت وب سرویس پیغام مناسب بر می گرداند.

برای احراز هویت مخاطبینی که از قبل توسط پذیرنده ثبت نام نشده اند وارد کردن اطلاعات مربوط به هر سرویس الزامی است.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/customers/:customer/authentication/kyc

POST /v3/business/:business/customers/authentication/kyc

POST /v3/business/:business/customers/:customer/authentication/shahkar

POST /v3/business/:business/customers/authentication/shahkar

گزارشات

این سرویس جهت گزارش گیری از طرف‌حساب‌های پذیرندگان وندار ارائه شده است که توسط آن، پذیرندگان می‌توانند گزارش های مربوط به مخاطبان خود را مشاهده کنند.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v2/business/:customer/customers/:customer/logs

شناسه واریز

این سرویس جهت ایجاد شناسه واریز و انتصاب آن به طرف‌حساب‌های پذیرندگان وندار ارائه شده است که توسط آن، پذیرندگان می‌توانند به ازای هر مشتری یک شناسه واریز منحصر به فرد ایجاد کنند.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v3/business/:business/customers/:customer/cash-in-code

استعلام ها

سرویس استعلام مشتریان

استفاده از سرویس‌های استعلامی نیازمند فعال‌سازی آن از سمت پشتیبانی است. برای فعال‌سازی این سرویس درخواست خود را از بخش تیکت‌ها ارسال فرمایید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/customers/inquiry/nid

POST /v3/business/:business/customers/inquiry/postal-code

POST /v3/business/:business/customers/national-code-iban-inquiry

POST /v3/business/:business/customers/match-mobile-card

صورت حساب

از وب‌سرویس صورت حساب وندار جهت مشاهده موجودی کیف پول، گزارش تراکنش ها و تسویه‌ انجام شده در وندار مورد استفاده قرار می‌گیرد

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v2/business/:business/balance

GET /v3/business/:business/transaction

کسب و کار

با استفاده از این بخش می‌توانید اطلاعات کسب‌وکار و لیست کاربران کسب‌وکار خود را مشاهده کنید.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v2/business/:business

GET /v2/business/:business/iam

بازگشت وجه

با استفاده از سرویس بازگشت وجه می توانید برای بازگرداندن مبلغ یک تراکنشِ موفقِ درگاه پرداخت، به شماره کارت پرداخت‌کننده استفاده کنید.

شرایط لازم برای بازگشت وجه
  • فعال بودن ابزار بازگشت وجه
  • موفق بودن تراکنش
  • داشتن موجودی کافی در کیف‌ پول
آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v3/business/:business/transaction/:transaction_id/refund

روند

با استفاده از سرویس روند، می‌توانید کارت‌های بانکی با طرح و لوگوی اختصاصی کسب‌وکار خود برای کاربران صادر کنید و تمامی عملیات بانکی مانند انتقال وجه، پایا، ساتنا، دریافت موجودی، پیگیری تراکنش‌ها و مشاهده صورت‌حساب را از طریق API انجام دهید.

آیا این بخش مفید بود؟بلی خیر

تنظیمات کسب و کار

قبل از فراخوانی سرویس‌های روند، لازم است تنظیمات مربوط به کسب‌وکار شما تعریف شود.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v1/business/:business/ravand/set-config

دریافت اطلاعات استاتیک

برای صدور کارت، باید لیستی از اطلاعاتی مانند استان‌ها، شهرها، کد صنف، تحصیلات و مشاغل را دریافت کنید. با ارسال شناسه‌های مربوط به این اطلاعات، می‌توانید جزئیات اطلاعات کاربران خود را به‌روزرسانی کنید.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v1/business/:business/ravand/provinces

GET /v1/business/:business/ravand/cities

GET /v1/business/:business/ravand/guilds

GET /v1/business/:business/ravand/educations

GET /v1/business/:business/ravand/occupations

صدور کارت

برای صدور کارت، این سرویس ها باید فراخوانی شوند: ایجاد کارت، به‌روزرسانی اطلاعات، آپلود مدارک هویتی، دریافت متن ویدیوی احراز هویت، نهایی‌سازی درخواست و پیگیری درخواست. با استفاده از این سرویس‌ها می‌توانید فرآیند صدور کارت را برای کاربران خود به‌طور کامل انجام دهید

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v1/business/:business/ravand/provider/:provider/cardholder

PUT /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id

GET /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/video-caption

POST /v1/business/business/ravand/provider/:provider/cardholder/:cardholder_id/upload

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/finalize

GET /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/inquiry

فعالسازی کارت

بعد از دریافت کارت فیزیکی، جهت فعالسازی کارت می توانید از این سرویس ها استفاده کنید.

آیا این بخش مفید بود؟بلی خیر
endpoints

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/token

GET /v1/redirect/:token

عملیات بانکی

بعد از فعالسازی کارت، جهت انجام عملیات بانکی می توانید از این سرویس ها استفاده کنید.

آیا این بخش مفید بود؟بلی خیر
endpoints

GET /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/accounts-info

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/balance

GET /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/bank-statement

GET /v1/business/:business/ravand/reasons

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer/retry-otp

POST /v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer/confirm-otp

دریافت اطلاعات حساب ها

با استفاده از این سرویس می توان اطلاعات حساب کارت متقاضی را به همراه آخرین موجودی بروزرسانی شده دریافت کرد.

پاسخ ها
dataobject

در این کلید پارامتر های مربوط به هر حساب که شامل شماره حساب، شماره کارت، شماره شبا، شناسه متقاضی در بانک، وضعیت کارت و اطلاعات موجودی حساب می باشد برگشت داده می شود.

messagestring

پیغام موفق یا ناموفق بودن درخواست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'GET',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/accounts-info',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  }
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "data": [
    {
      "account_number": "11111",
      "card_number": "11111",
      "iban_number": "IR000000",
      "cardholder_id_in_bank": "1245785",
      "status": "ACTIVE",
      "balance": {
        "current_amount": 1000,
        "available_amount": 1000,
        "freeze_amount": 1000,
        "updated_at": "1403/06/11 15:46:28"
      }
    }
  ],
  "message": "اطلاعات با موفقیت دریافت شد."
}

بروزرسانی موجودی حساب

با استفاده از این سرویس می توان آخرین موجودی حساب را بروزرسانی کرد.

پارامترها
account_numberrequiredstring

شماره حساب متقاضی کارت

پاسخ ها
dataobject

در این کلید پارامتر های مربوط به موجودی حساب برگشت داده می شود که شامل شناسه متقاضی کارت، شماره حساب، موجودی حساب، موجودی قابل برداشت و مبلغ بلوکه شده حساب می باشد.

messagestring

پیعام موفق یا ناموفق بودن درخواست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'POST',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/balance',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account_number: '11111',
  })
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "عملیات با موفقیت انجام شد.",
  "data": {
    "cardholder_id": "ff8e14f9-b9e7-4949-8a63-650964635bd5",
    "account_number": "11111",
    "current_amount": 100000,
    "available_amount": 10000,
    "freeze_amount": 100
  }
}

دریافت صورتحساب

با استفاده از این سرویس می توان صورتحساب هر حساب را دریافت کرد.

پارامترها
account_numberrequiredstring

شماره حساب متقاضی کارت

from_daterequiredstring

تاریخ شروع شمسی با فرمت (Y/m/d)

to_daterequiredstring

تاریخ پایان شمسی با فرمت (Y/m/d)

per_pageoptionalinteger

تعداد رکورد در هر فراخوانی که به صورت پیش فرض 10 و ماکسیمم 50 می باشد

pageoptionalinteger

شماره صفحه که به صورت پیش فرض 1 می باشد

پاسخ ها
dataobject

در این کلید دو پارامتر has_more و transactions برگشت داده می شود:

has_more:

در صورتی که عناصر بیشتری از مجموعه وجود داشته باشد این مقدار برابر با true می باشد. در غیر اینصورت مقدار false برگشت داده می شود.

transactions:

در این کلید لیستی از تراکنش های حساب برگشت داده می شود:

amount: مبلغ تراکنش

balance: مانده پس از تراکنش

type: نوع تراکنش که شامل دو مقدار deposit و withdraw می باشد

bank_tracking_code: کد رهگیری تراکنش در بانک

transaction_at: تاریخ و ساعت تراکنش

description: شرح تراکنش

meta:

در این کلید پارامتر های اضافی برگشتی از بانک برگشت داده می شود:

cheque_number: شماره چک

messagestring

پیعام موفق یا ناموفق بودن درخواست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'GET',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/bank-statement',
  qs: {
    account_number: "11111",
    from_date: "1403/01/01",
    to_date: "1403/01/02",
    per_page: 10,
    page: 1,
  },
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  }
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "اطلاعات با موفقیت دریافت شد.",
  "data": {
    "has_more": false,
    "transactions": [
      {
        "amount": 100000,
        "balance": 1000000,
        "type": "withdraw",
        "bank_tracking_code": "123000456",
        "transaction_at": "1403/01/01 12:48:00",
        "description": "انتقال داخلی(API)-تست",
        "meta": {
          "cheque_number": ""
        }
      },
      {
        "amount": 200000,
        "balance": 2100000,
        "type": "deposit",
        "bank_tracking_code": "789000111",
        "transaction_at": "1403/01/01 13:46:00",
        "description": "دریافت داخلی(API)-تست",
        "meta": {
          "cheque_number": ""
        }
      },
      {
        "amount": 300000,
        "balance": 3100000,
        "type": "deposit",
        "bank_tracking_code": "222000111",
        "transaction_at": "1403/01/01 14:26:00",
        "description": "انتقال از طريق اينترنت بانک بانک آينده از کارت 11111 ش م 2222 ش پ 3333",
        "meta": {
          "cheque_number": ""
        }
      }
    ]
  }
}

دریافت کد بابت

با استفاده از این سرویس می توان کد های بابت را دریافت نمود که در api های انتقال وجه پایا، ساتنا و آنی کاربرد دارد.

پاسخ ها
dataobject

لیستی از آبجکت ها که شامل شناسه و عنوان می باشد.

messagestring

پیغام موفق یا ناموفق بودن درخواست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'GET',
  url: '/v1/business/:business/ravand/reasons',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  }
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "اطلاعات با موفقیت دریافت شد.",
  "data": [
    {
      "id": 1,
      "title": "پرداخت قرض و تادیه دیون (قرض‌الحسنه،بدهی)"
    },
    {
      "id": 2,
      "title": "واریز حقوق"
    },
    {
      "id": 3,
      "title": "امور بیمه خدمات"
    }
  ]
}

انتقال وجه

با استفاده از این سرویس می توان عملیات انتقال وجه از حساب خود به دیگری را انجام داد.

پارامترها
account_numberrequiredstring

شماره حساب مبدا دارنده کارت

track_idrequiredstring

کد پیگیری که از جنس uuid و یونیک می باشد

amountrequiredinteger

فیلد مبلغ که بر اساس نوع انتقال وجه دارای محدودیت های زیر می باشد:

انتقال وجه داخلی (internal): حداقل 10,000 ریال و حداکثر 100,000,000,000 ریال

انتقال وجه پایا (paya): حداقل 10,000 ریال و حداکثر 1,000,000,000 ریال

انتقال وجه ساتنا (satna): حداقل 500,000,000 ریال و حداکثر 100,000,000,000 ریال

انتقال وجه آنی (pol): حداقل 10,000 ریال و حداکثر 100,000,000 ریال

مقدار این فیلد باید با توجه به محدودیت هر حساب مبدا ارسال شود. در صورت ارسال مبلغ بیشتر از حد مجاز حساب، خطای account_limited برگشت داده می شود

destination_ibanrequiredstring

شماره شبا مقصد

typerequiredstring
reason_idrequired_ifinteger

کد بابت که از api کد های بابت می توان دریافت نمود و فقط برای انتقال وجه پایا، ساتنا و آنی اجباری می باشد

payment_numberoptionalstring

شناسه پرداخت که اختیاری بوده و باید بین 1 تا 30 کاراکتر عددی باشد

descriptionoptionalstring

توضیحات که اختیاری بوده و حداکثر تا 255 کاراکتر می باشد

پاسخ ها
dataobject

در این کلید پارامتر های کد پیگیری و وضعیت انتقال برگشت داده می شود.

transfer_statusstring
messagestring

پیعام موفق یا ناموفق بودن درخواست.

نکته

در صورت موفقیت آمیز بودن درخواست یک پیامک که شامل رمز یکبار مصرف می باشد به صاحب حساب مبدا ارسال می شود و باید در api تایید تراکنش رمز را ارسال کرده تا تراکنش انجام شود.

نکته

تراکنش ساتنا روزهای شنبه تا چهارشنبه، ساعت 8 تا 14. روز پنجشنبه ساعت 8 تا 12:30 انجام می شود و پس از آن و در روزهای تعطیل مجاز نیست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'POST',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account_number: '11111',
    track_id: "18b139ec-c9df-442a-ac4d-a0c7ac3632ed",
    amount: 100000,
    destination_iban: "IR000000",
    type: "internal",
    reason_id: 1,
    payment_number: "123",
    description: "test"
  })
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "عملیات با موفقیت انجام شد.",
  "data": {
    "track_id": "18b139ec-c9df-442a-ac4d-a0c7ac3632ed",
    "transfer_status": "PENDING_OTP"
  }
}
{
  "message": "محدودیت حساب",
  "data": {
    "track_id": "7d2ff139-a467-4a74-9c92-663332fdaa0b",
    "transfer_status": "FAILED"
  },
  "code": "account_limited",
  "errors": []
}

تایید تراکنش

با استفاده از این سرویس می توان عملیات انتقال وجه را تایید نمود.

پارامترها
account_numberrequiredstring

شماره حساب مبدا دارنده کارت

track_idrequiredstring

کد پیگیری که در ای پی ای transfer برگشت داده می شود

otprequiredstring

رمز یکبار مصرف که توسط پیامک به صاحب حساب مبدا ارسال می شود

پاسخ ها
dataobject

در این کلید پارامتر های کد پیگیری، وضعیت انتقال، شماره مرجع تراکنش در بانک و زمان انتقال وجه برگشت داده می شود.

transfer_statusstring
messagestring

پیعام موفق یا ناموفق بودن درخواست.

نکته

در صورت عدم ارسال رمز یکبار مصرف یا منقضی شدن آن می توان از ای پی ای retry-otp استفاده نمود.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'POST',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer/confirm-otp',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account_number: '11111',
    track_id: "18b139ec-c9df-442a-ac4d-a0c7ac3632ed",
    otp: "1111"
  })
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "عملیات با موفقیت انجام شد.",
  "data": {
    "track_id": "9aabdc8e-8ba5-4716-9918-8868ea326efd",
    "transfer_status": "SUCCEED",
    "reference_id": "12345",
    "transfer_at": "1403/05/30 15:48:00"
  }
}
{
  "message": "تراکنش انتقال وجه یافت نشد",
  "data": [],
  "code": "transfer_not_found",
  "errors": []
}
{
  "message": "تراکنش انتقال وجه منقضی شده است",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "FAILED"
  },
  "code": "transfer_expired",
  "errors": []
}
{
  "message": "تراکنش انتقال وجه در وضعیت نهایی قرار دارد",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "FAILED"
  },
  "code": "transfer_finalize_error",
  "errors": []
}
{
  "message": "رمز یکبار مصرف اشتباه می باشد",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "PENDING_OTP"
  },
  "code": "otp_wrong",
  "errors": []
}
{
  "message": "رمز یکبار مصرف منقضی شده است",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "PENDING_OTP"
  },
  "code": "otp_expired",
  "errors": []
}
{
  "message": "موجودی کافی نمی باشد",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "FAILED"
  },
  "code": "insufficient_balance",
  "errors": []
}

ارسال مجدد رمز یکبار مصرف

با استفاده از این سرویس می توان رمز یکبار مصرف را مجدد ارسال نمود.

پارامترها
account_numberrequiredstring

شماره حساب مبدا دارنده کارت

track_idrequiredstring

کد پیگیری که در ای پی ای transfer برگشت داده می شود

پاسخ ها
dataobject

در این کلید پارامتر های کد پیگیری و وضعیت انتقال برگشت داده می شود.

transfer_statusstring
messagestring

پیعام موفق یا ناموفق بودن درخواست.

آیا این بخش مفید بود؟بلی خیر

var request = require('request')
var options = {
  method: 'POST',
  url: '/v1/business/:business/ravand/provider/:provider/cardholder/:cardholder_id/transfer/retry-otp',
  headers: {
    Accept: 'application/json',
    Authorization: 'Bearer token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account_number: '11111',
    track_id: "18b139ec-c9df-442a-ac4d-a0c7ac3632ed"
  })
}
request(options, function (error, response) {
  if (error) throw new Error(error)
  console.log(response.body)
})

{
  "message": "عملیات با موفقیت انجام شد.",
  "data": {
    "track_id": "9aabdc8e-8ba5-4716-9918-8868ea326efd",
    "transfer_status": "SUCCEED"
  }
}
{
  "message": "تراکنش انتقال وجه یافت نشد",
  "data": [],
  "code": "transfer_not_found",
  "errors": []
}
{
  "message": "تراکنش انتقال وجه منقضی شده است",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "FAILED"
  },
  "code": "transfer_expired",
  "errors": []
}
{
  "message": "تراکنش انتقال وجه در وضعیت نهایی قرار دارد",
  "data": {
    "track_id": "e37048b8-e358-44bc-b20a-132c184b4856",
    "transfer_status": "FAILED"
  },
  "code": "transfer_finalize_error",
  "errors": []
}