API های وندار بر اساس استاندارد REST ایجاد شده اند.
تمامی پاسخ API های ما بصورت JSON-encoded پاسخ داده خواهند شد.
بوسیله ارسال توکن در هر درخواست، احراز هویت نیز انجام می شود. (ممکن است در برخی از سرویس ها نحوه احراز هویت متفاوت باشد)
API های وندار بر اساس استاندارد REST ایجاد شده اند.
تمامی پاسخ API های ما بصورت JSON-encoded پاسخ داده خواهند شد.
بوسیله ارسال توکن در هر درخواست، احراز هویت نیز انجام می شود. (ممکن است در برخی از سرویس ها نحوه احراز هویت متفاوت باشد)
https://api.vandar.io
برای دریافت توکن و رفرش توکن اولیه مالک یا مدیر کسب و کار می تواند وارد داشبورد وندار شود و کسب و کار خود را انتخاب کند. و از منوی تنظیمات بخش تنظیمات مدیریت حساب، توکن ها را انتخاب کنید. و با زدن دکمه افزودن توکن جدید، و وارد کردن یک نام برای توکن و وارد کردن رمز عبور حساب کاربری خود یک توکن و رفرش توکن در یافت کنید.
از آنجاییکه عمر توکن ها محدود است و مقدار آن در فیلد expires_in (بر مبنای ثانیه) همراه توکن ارسال شده است، باید قبل از منقضی شدن توکن با ارسال رفرش توکن، توکن جدید را دریافت کنید.
مقداری که از فراخوانی متد قبل دریافت کردهاید
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*******"
}
API های وندار از قواعد HTTP response پیروی میکند.
بطور کلی در رنج 2xx
پاسخ های موفق را دریافت میکنید.
رنج 4xx
زمانی بوجود میآید که اطلاعات اشتباهی از سمت شما به API ها ارسال شده است.
خطاهایی در رنج 5xx
نشان دهنده مشکلاتی از سمت API های وندار بوده که می توانید آن را با پشتیبانی مطرح کنید.
200 - OK | Everything worked as expected. |
400 - Bad Request | The request was unacceptable, often due to missing a required parameter. |
401 - Unauthorized | No valid API key provided. |
402 - Request Failed | The parameters were valid but the request failed. |
403 - Forbidden | The API key doesn't have permissions to perform the request. |
برای فروشگاههای اینترنتی که خدمات یا محصولاتی را در وبسـایت خود ارائه میکنند، از درگاه پرداخت وندار استفاده کنید.
POST https://ipg.vandar.io/api/v3/send
GET https://ipg.vandar.io/v3/:token
POST https://ipg.vandar.io/api/v3/transaction
POST https://ipg.vandar.io/api/v3/verify
با استفاده از سرویس تسویه میتوانید مبلغ موردنظر از کیف پول کسب و کار خود به مقصد شبای دلخواه (تمامی شباهای سامانه بانکی کشور) واریز نمائید.
POST /v3/business/:business/settlement/store
GET /v2.1/business/:business/settlement
DELETE /v2.1/business/:business/settlement/:transaction_id
GET /v3/business/:business/settlement/banks
با استفاده از سرویس تسویه گروهی میتوانید تسویه های خود به صورت دسته ای (گروهی) یکجا ثبت نمائید.
POST https://batch.vandar.io/api/v2/business/:business_name/batches-settlement
GET https://batch.vandar.io/api/v2/business/:business_name/batches
GET https://batch.vandar.io/api/v2/business/:business_name/batch-settlements/:batch_id
با استفاده از سرویس تسویه در نوبت میتوانید هنگامی که کیف پول شما به اندازه کافی موجودی ندارد، تسویه های خود ثبت نمائید و پس از اینکه کیف پول شما افزایش پیدا کرد این تسویهها به بانک ارسال میشود.
POST /v3/business/:business_name/settlement/queued
GET /v3/business/:business_name/settlement/queued
GET /v3/business/:business_name/settlement/queued/:settlement_queued_id
POST /v3/business/:business_name/settlement/queued/cancel
ابزار «واریز بانکی» یا به اصطلاح ،cash in یکی از بهترین روشهای شارژ کیف پول کسبوکار ها است. کسب و کارهایی که مبالغ زیادی از حساب آنها برداشته میشود، با استفاده از این ویژگی میتوانند مبلغی را از حساب بانک آینده خود به کیف پول خود در وندار اضافه کرده و پس از آن تعیین کنند که چه مقدار وجه از کیف پولشان خارج شود.
GET /v3/business/:business/cash-in/account
POST /v3/business/:business/cash-in/account/deposit
POST /v3/business/:business/cash-in/account/balance
سرویس پرداخت خودکار یا دایرکت دبیت سرویسی است که یک فرد وجوهی را از حساب بانکی شخص دیگری خارج می کند در واقع شما به بانک اجازه می دهید که مبلغی را مستقیما از حسابتان کسر و در قبال آن خدماتی را به شما ارایه دهد. به طور کلی دایرکت دبیت برداشت مستقیم پول برای انجام معاملات مالی در صورت صدور مجوز توسط پرداخت کننده می باشد. این کار بیشتر زمانی انجام می شود که شما بخواهید اشتراک خود را تمدید کنید.
جهت دسترسی به حساب در سرویس پرداخت خودکار، نیاز به ایجاد یک مجوز در بانک وجود دارد. بر اساس این مجوز، کسبوکار شما اجازه برداشت از حساب کاربر را خواهد داشت.
POST /v3/business/:business/subscription/authorization/store
GET https://subscription.vandar.io/authorizations/:token
PATCH /v3/business/:business/subscription/authorization/:id/verify
GET /v3/business/:business/subscription/authorization
GET /v3/business/:business/subscription/authorization/:id
DELETE /v3/business/:business/subscription/authorization/:id
در این سرویس میتوانید از حساب کاربران خود یکبار یا به صورت دورهای بر اساس مجوزی که از کاربر گرفتهاید، وجهی را برداشت نمایید.
POST /v3/business/:business/subscription/withdrawal/store
GET /v3/business/:business/subscription/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/:id
پیش نویسی است که پس از تایید طرفین به یک قرارداد بین فروشنده و خریدار در میاندو ثبت میشود.
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
در این بخش سرویسهای ثبت مشتری، فیلدهای اختصاصی مشتری، مشاهده لیست مشتریان، ویرایش اطلاعات مشتری، حذف مشتری و مشاهده اطلاعات یک مشتری ارائه میشوند.
GET /v2/business/:business/customers
POST /v2/business/:business/customers
PUT /v2/business/:business/customers/:customer_uuid
DELETE /v2/business/:business/customers/:customer_uuid
GET /v2/business/:business/customers/:customer_uuid
با استفاده از این سرویس میتوانید فیلدهای اختصاصی برای کسب و کار ثبت نمایید.
GET /v2/business/business/customers/fields
POST /v2/business/:business/customers/fields
PUT /v2/business/:business/customers/fields/:fields
DELETE /v2/business/:business/customers/fields/:fields
GET /v2/business/:business/customers/fields/:fields
در این بخش مدیریت کیف پول مشتریان که شامل واریز، برداشت و مشاهده موجودی کیف پول مشتری میباشد، صورت میگیرد.
GET /v2/business/:business/customers/:customer_uuid/wallet
POST /v2/business/:business/customers/:customer_uuid/wallet/deposit
POST /v2/business/:business/customers/:customer_uuid/wallet/withdraw
POST /v3/business/:business/customers/:customer_uuid/ibans
GET /v3/business/:business/customers/:customer_uuid/ibans
DELETE /v3/business/:business/customers/:customer_uuid/ibans
POST /v3/business/:business/customers/:customer_uuid/ibans/:iban/inquiry
POST /v3/business/:business/customers/:customer_uuid/ibans/:iban/set-default
POST /v3/business/:business/customers/:customer_uuid/cards/to-iban
POST /v3/business/:business/customers/:customer_uuid/cards
GET /v3/business/:business/customers/:customer_uuid/cards
DELETE /v3/business/:business/customers/:customer_uuid/cards/:card
POST /v3/business/:business/customers/:customer_uuid/cards/:card/inquiry
POST /v3/business/:business/customers/:customer_uuid/cards/:card/set-default
این سرویس جهت احراز هویت طرفحسابهای پذیرندگان وندار ارائه شده است که توسط آن، پذیرندگان میتوانند اطلاعات هویتی مخاطبان خود را مورد سنجش قرار دهند.
در حال حاضر وب سرویس احراز هویت مخاطبین به دو دسته کلی تقصیم شده است:
برای احراز هویت مخاطبینی که از قبل توسط پذیرنده ثبت نام نشده اند وارد کردن اطلاعات مربوط به هر سرویس الزامی است.
POST /v3/business/:business/customers/:customer_uuid/authentication/kyc
POST /v3/business/:business/customers/authentication/kyc
POST /v3/business/:business/customers/:customer_uuid/authentication/shahkar
POST /v3/business/:business/customers/authentication/shahkar
این سرویس جهت ایجاد شناسه پرداخت و انتصاب آن به طرفحسابهای پذیرندگان وندار ارائه شده است که توسط آن، پذیرندگان میتوانند به ازای هر مشتری یک شناسه پرداخت منحصر به فرد ایجاد کنند.
POST /v3/business/:business/customers/:customer_uuid/cash-in-code
GET /v3/business/:business/customers/:customer_uuid/cash-in-code
استعلام هویت کاربران براساس کدملی و تاریخ تولد انجام می شود.
کدملی
تاریخ تولد که بصورت پشت سرهم باید نوشته شود
var request = require('request')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/national-code',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer token'
},
body: JSON.stringify({
national_code: '0111111111',
birth_date: 13820214
})
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"alive": true,
"birth_date": "1382/02/14",
"nid": "0111111111",
"first_name": "علی",
"last_name": "فراهانی",
"father_name": "محمد",
"gender": "man",
"office_code": 321,
"office_name": "تهران مركزي",
"shenasname_no": 4,
"shenasname_seri": "18ب",
"shenasname_serial": "596807",
"images": [
{
"type": "Card",
"image": "data:image"
},
{
"type": "Cert",
"image": "data:image"
}
]
}
}
استعلام آدرس براساس کدپستی
کدپستی ۱۰ رقمی
var request = require('request')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/postal-code',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer token'
},
body: JSON.stringify({
postal_code: 1894156963
})
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"avenue": "بن بست هجدهم",
"floor_no": "همکف",
"house_no": "12.0",
"location": "تهران",
"location_type": "شهر",
"parish": "شکوفه شمالی ",
"post_code": "1894156963",
"pre_avenue": "خیابان شهید غلامحسین زنهاری",
"side_floor": "",
"state": "تهران",
"town_ship": "تهران",
"village": "",
"zone": "مرکزی",
"building_name": "",
"description": "",
"location_code": "17373"
}
}
استعلام و تطبیق کدملی و شماره شبا بر اساس کدملی، تاریخ تولد و شماره شبا انجام می شود.
در این سرویس انطباق نام مالک شبا با نام مالک کدملی به همراه میزان این انطباق بر حسب درصد انجام میشود.
کدملی
تاریخ تولد
شماره شبا
var request = require('request')
var options = {
method: 'POST',
url: '/v3/business/:business/customers/national-code-iban-inquiry',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer token'
},
body: JSON.stringify({
national_code: '0111111111',
birth_date: 13820214,
iban: 'IR111110000000000011111111'
})
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"percent_compatibility": 4,
"iban": {
"iban": "IR111110000000000011111111",
"account_owners": [
{
"lastName": "رضایی",
"firstName": "علی"
}
]
},
"national-code": {
"alive": true,
"birth_date": "1376/02/01",
"nid": "20797680",
"first_name": "محمد",
"last_name": "اکبری",
"father_name": "رضا",
"gender": null,
"office_code": null,
"office_name": null,
"shenasname_no": null,
"shenasname_seri": null,
"shenasname_serial": null,
"images": null
}
}
}
POST /v3/business/:business/customers/inquiry/kyc/face-recognition-by-image
POST /v3/business/:business/customers/inquiry/kyc/face-recognition-by-video
POST /v3/business/:business/customers/inquiry/kyc/face-match-with-national-card
POST /v3/business/:business/customers/inquiry/kyc/random-gesture
برای احراز هویت با تصویر کارت ملی لازم است تصاویر با حداکثر 12 mb
ارسال شود.
کدملی
تاریخ تولد که بصورت پشت سرهم باید نوشته شود
تصویر کارت ملی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/kyc/face-recognition-by-image',
headers: {
Accept: 'application/json',
Authorization: 'Bearer token'
},
formData: {
national_code: '0023032583',
birth_date: '13770214',
selfie_image: {
value: fs.createReadStream('/selfi.jpg'),
options: {
filename: 'selfi.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"kyc_id": "707e8dc0-0539-49d2-a16e-cd474fd8f038",
"question": "2,3,4",
"first_name": "علی",
"last_name": "فراهانی",
"father_name": "یوسف",
"national_code": "0023032583",
"birth_date": "13770214",
"similarity": 0.7887144088745117,
"verified": true
}
}
برای استفاده از این api نیاز است ابتدا api مربوط به تصویر کارت ملی را صدا زده باشید. دقت شود فرمت فایل باید mp4
باشد و حداکثر اندازه آن 12 mb
شناسه یکتا بدست آمده از api تصویر کارت ملی
فیلم سلفی که در آن باید بوسیله انگشتان دست اعدادی که در api تصویر کارت ملی بدست آمده توسط فرد نشان داده شود.
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/kyc/face-recognition-by-image',
headers: {
Accept: 'application/json',
Authorization: 'Bearer token'
},
formData: {
national_code: '0023032583',
birth_date: '13770214',
selfie_image: {
value: fs.createReadStream('/selfi.jpg'),
options: {
filename: 'selfi.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"kyc_id": "707e8dc0-0539-49d2-a16e-cd474fd8f038",
"question": "2,3,4",
"first_name": "علی",
"last_name": "فراهانی",
"father_name": "یوسف",
"national_code": "0023032583",
"birth_date": "13770214",
"similarity": 0.7887144088745117,
"verified": true
}
}
این api تصویر کارت ملی را با تصویر سلفی مطابقت میدهد توجه داشته باشید حداکثر اندازه فایل ها باید 12 mb
باشد.
تصویر سلفی کاربر
تصویر کارت ملی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/kyc/face-match-with-national-card',
headers: {
Accept: 'application/json',
Authorization: 'Bearer token'
},
formData: {
selfie_image: {
value: fs.createReadStream('/selfi.jpg'),
options: {
filename: 'selfi.jpg',
contentType: null
}
},
national_card_image: {
value: fs.createReadStream('/cad-meli.jpg'),
options: {
filename: 'cad-meli.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"kyc_id": "ad59d5e7-e58a-4b6d-a052-40da178dc5b2",
"question": "2,3,5",
"first_name": "علی",
"last_name": "فراهانی",
"father_name": "یوسف",
"national_code": "0182332382",
"birth_date": "13770418",
"similarity": 0.7887144088745117,
"verified": true
}
}
با هر درخواست به این api می توانید سوالات جدیدی ایجاد کنید.
شناسه یکتا بدست آمده از api تصویر کارت ملی
var request = require('request')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/kyc/random-gesture',
headers: {
Accept: 'application/json',
Authorization: 'Bearer token'
},
formData: {
kyc_id: '13215057-70e8-4569-b7fc-3ca810cc3562'
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"gesture": "2,3,4"
}
}
POST /v3/business/:business/customers/inquiry/kyc/ocr/national-card
POST /v3/business/:business/customers/inquiry/kyc/ocr/credit-card
POST /v3/business/:business/customers/inquiry/kyc/ocr/face-recognition
POST /v3/business/:business/customers/inquiry/kyc/ocr/civil-registration
POST /v3/business/:business/customers/inquiry/kyc/ocr/postal-code
در این api با ارسال تصویر کارت ملی اطلاعات کارت ملی کاربر پاسخ داده می شود. دقت شود تصاویر باید با حداکثر 12 mb
باشد
تصویر کارت ملی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/ocr/national-card',
headers: {
Authorization: 'Bearer token'
},
formData: {
file: {
value: fs.createReadStream('cad-meli.jpg'),
options: {
filename: 'cad-meli.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"national_code": "0282232583",
"birth_date": "1387/12/11",
"expire_date": "1403/12/06",
"first_name": "علی",
"last_name": "فراهانی",
"father_name": "یوسف"
}
}
نمایش اطلاعات بانکی از تصویر کارت بانکی
تصویر کارت بانکی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/ocr/credit-card',
headers: {
Authorization: 'Bearer token'
},
formData: {
file: {
value: fs.createReadStream('credit-card-3.jpg'),
options: {
filename: 'credit-card-3.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"card_number": "6362141129089232"
}
}
این api می تواند چهره کاربر را شناسایی کند و میزان شباهت را در پاسخ نمایش دهد. دقت شود تصاویر با حداکثر سایز 12 mb
ارسال شود.
تصویر سلفی کاربر
تصویر کارت ملی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/ocr/face-recognition',
headers: {
Authorization: 'Bearer token'
},
formData: {
selfie_image: {
value: fs.createReadStream('selfi.jpg'),
options: {
filename: 'selfi.jpg',
contentType: null
}
},
national_card_image: {
value: fs.createReadStream('cad-meli.jpg'),
options: {
filename: 'cad-meli.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
در این api با ارسال تصویر کارت ملی اطلاعات کارت ملی کاربر پاسخ داده می شود. این اطلاعات به همراه تصویر کارت ملی برگردانده می شود. دقت شود تصاویر باید با حداکثر 12 mb
باشد
تصویر کارت ملی
var request = require('request')
var fs = require('fs')
var options = {
method: 'POST',
url: '/v3/business/hosting/customers/inquiry/ocr/civil-registration',
headers: {
Authorization: 'Bearer token'
},
formData: {
national_card: {
value: fs.createReadStream('cad-meli.jpg'),
options: {
filename: 'cad-meli.jpg',
contentType: null
}
}
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
{
"message": "عملیات با موفقیت انجام شد.",
"data": {
"birth_date": 13761118,
"book_no": null,
"book_row": null,
"death_status": 0,
"first_name": "مسعود",
"last_name": "تاجر",
"father_name": "امير",
"gender": 1,
"national_code": 11327680,
"office_code": 318,
"office_name": "تهران مركزي",
"certificate_id": 0,
"certificate_seri": "د15",
"certificate_serial": "512658",
"images": [
{
"type": "Card",
"imahe": "/9j/4AAQSkZJRgABAQECWAJYAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb"
},
{
"type": "Cert",
"image": "/9j/4AAQSkZJRgABAQECWAJYAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb"
}
]
}
}