شروع به کار


baseURL:
https://api.nipoto.com/v1/
                

مسیر پایه برای فراخوانی تمامی مسیرها(اند پوینت) این مستند ، آدرس زیر می باشد.

https://api.nipoto.com/v1/

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

پینگ-پونگ


request:
const res = await axios.get('/v1/ping')
                

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

GET /v1/ping

تعداد درخواست قابل قبول به این اندپوینت برابر است با :

60 req/min


response:

res.data = 'pong'
                

گرفتن kline


request:

const url = '/v1/market/kline'
const res = await axios.get(`${url}?market=BTC_USDT&timeFrame=1h`)
                

در حال حاضر فقط کندل های 1h, 4h, 1d رو برمیگردن. اگر تعداد تعریف نشه یک دونه رکورد برمیگرده که اخرین کندل همون تایم فریمه . در صورتی که تعداد بیشتر از ۱۰۰ تا باشه، ۱۰۰ تا رکورد برمیگرده. تعداد درخواست قابل قبول به این اندپوینت برابر است با :

60 req/min

GET /v1/market/kline



response:

res.data =  [{
 openTimestamp: '2022-10-12T06:17:42.000Z',
 closeTimestamp: '2022-10-12T06:17:43.000Z',
 open: '0.00000000',
 close: '0.00000000',
 low: '0.00000000',
 high: '0.00000000',
 turnoverValue: '0.00000000',
 volumeAmount: '0.00000000',
 tradeCount: 0
}]
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله USDT_IRT اسم مارکت
timeFrame string بله 1h مقادیر مجاز '1h', '4h', '1d' میباشد
limit number خیر 50 مقدار پیش فرضش یکه.

گرفتن اطلاعات مارکت ها


request:
const res = await axios.get('/v1/market/list')
                

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

[[marketName, price, bestBid, bestAsk], …]

تعداد درخواست قابل قبول به این اندپوینت برابر است با :

60 req/min

GET /v1/market/list



response:

res.data = [['BTC/USDT', 12000, 13000, 14000], …]
                

گرفتن اردربوک


request:

const method = 'GET'
const url= '/v1/market/order_book'

const res = await axios({ url, method, params: { market: 'BTC_USDT' } })

                

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

[[[amount, stepPrice], ...], [[amount, stepPrice], …]]

تعداد درخواست قابل قبول به این اندپوینت برابر است با :

60 req/min

GET /v1/market/order_book



response:

res.data = [[[0.01, 1100], …], [[0.02, 1000], …]]

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله USDT_IRT اسم مارکت
side string خیر bid مقادیر قابل قبول: bid, ask, null.در صورتی که ساید تعریف نشده باشه، هر دو ساید برمیگردن.
limit number خیر 5 اگر لیمیت تعریف نشده باشه برای هر ساید ده تا رکورد برمیگرده.
step number خیر -2 اگر step تعریف نشده باشه رکوردها بر اساس کوچکترین استپ برمیگرده.

گرفتن معاملات اخیر مارکت


request:

const method = 'GET'
const url= '/v1/market/recent_trades'

const res = await axios({ url, method, params: { market: 'BTC_USDT' } })

                

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

[[ amount, price, side, createdAt], …]

تعداد درخواست قابل قبول به این اندپوینت برابر است با :

60 req/min

GET /v1/market/recent_trades



response:

res.data = res.data=[[0.02,1000,'ask','2022-11-11T16:45:21.876Z'],[0.04,1001,'bid',   '2022-11-11T16:45:20.876Z']]

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله USDT_IRT اسم مارکت
limit number خیر 5 اگر لیمیت تعریف نشده باشه برای هر ساید ده تا رکورد برمیگرده.

دریافت توکن ها


request:

const url = '/v1/user/login'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: { apiKey, secretKey }
            })
                

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

60 req/min

برای گرفتن accessToken و refreshToken باید به اندپوینت زیر درخواست بفرستین

POST /v1/user/login



response:

res.data = {
      accessToken: 'U2FsdGVkX19evXx2Q3/jbvkz89H***S33y938FtfBU',
      refreshToken: 'U2FsdGVkX19+LC6Hv79iij***zwSGGqIIW2VNe2toY='
    }
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
apiKey string بله f298144015c6008af2c***01ed72bf10146ce02138 apiKey که باید از پنل دریافت کنین
secretKey string بله 652c6c5ed240bc022a7***a965c7d6b1a7a5b3fec1 secretKey که باید از پنل دریافت کنین

دریافت accessToken


request:

const url = '/v1/user/accessToken'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: { refreshToken }
            })
                

برای دسترسی به روت های پرایوت به accessToken احتیاج دارین.
مدت زمان اعتبار accessToken بیست و چهار ساعته و باید با استفاده از refreshToken اون رو به روزرسانی کنین. اما اگه توکن اصلیتون منقضی شه accessToken تون هم از کار میفته. تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

برای گرفتن accessToken باید به اندپوینتی زیر درخواست بفرستین

POST /v1/user/accessToken



response:

res.data = {
    accessToken: 'U2FsdGVkX1+fPZ***qY151OFOIMVkHXDOsub7X'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
refreshToken string بله U2FsdGVkX19evXx2Q3jbvkz89H***S33y938FtfBU رفرش توکن که از روت getTokens گرفتین

دریافت موجودی حساب


request:

const url = '/v1/accounting/balance'
const method = 'GET'

const res = await axios({
                url,
                method,
                params: { currency: 'USDT' },
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

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

60 req/min

GET /v1/accounting/balance



response:

res.data = {
      USDT: {
        active: 1000,
        inuse: 0,
        pending: 0
      }
    }
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
currency string خیر IRT اسم ارز

تولید آدرس رمزارز


request:

const url = '/v1/accounting/wallet'
const method = 'POST'

const res = await axios({
              url,
              method,
              data: { currency: 'BTC', network: 'Bitcoin', paymentID: '1' },
              headers: { authorization: `Bearer ${accessToken}` }
            })
                

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

60 req/min

POST /v1/accounting/wallet



response:

res.data = {
   address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
   currency: 'BTC',
   network: 'Bitcoin',
   p2address: null,
   paymentID: '1',
   walletID: '691c9b83-f8f4-44c3-851d-1db50dafc68e'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
currency string بله َUSDT اسم ارز
network string بله TRC20 اسم شبکه
paymentID string بله 20220509001 یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این کیف پول اختصاص بدین.

دریافت اطلاعات کیف پول


request:

const url = '/v1/accounting/wallet/:id'
const method = 'GET'

const res = await axios({
              url: url.replace(':id', '691c9b83-f8f4-44c3-851d-1db50dafc68e'),
              method,
              headers: { authorization: `Bearer ${accessToken}` }
            })
                

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

60 req/min

GET /v1/accounting/wallet/:id



response:

res.data = {
   address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
   network: 'Bitcoin',
   origin: 'nipoto-api',
   p2address: null,
   type: 'bech32',
   id: '691c9b83-f8f4-44c3-851d-1db50dafc68e',
   createdAt: '2022-09-16T10:51:12.290Z'
}
                

دریافت لیست کیف پول ها


request:

const url = '/v1/accounting/wallet'
const method = 'GET'

const res = await axios({
              url,
              method,
              headers: { authorization: `Bearer ${accessToken}` }
            })
                

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

60 req/min

GET /v1/accounting/wallet



response:
res.data = [{
   address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
   network: 'Bitcoin',
   origin: 'nipoto-api',
   p2address: null,
   type: 'bech32',
   id: '691c9b83-f8f4-44c3-851d-1db50dafc68e',
   createdAt: '2022-09-16T10:51:12.290Z'
},{
   address: 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz',
   network: 'XRP',
   origin: 'nipoto',
   p2address: 125451185,
   type: null,
   id: 'bd3dff0c-c331-4ca0-89ee-9162e4a36827',
   createdAt: '2022-09-14T09:22:18.450Z'
}]
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
network string خیر TRC20 اسم شبکه
origin string خیر nipoto مسیر ایجاد. مقادیر مجاز برابر است با: nipoto, nipoto-api
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.

اطلاع رسانی واریز جدید


request:
const url = 'https://yourwebsite.com/callback/newdeposit.php'
const method = 'POST'
data: { depositID }


                

هر واریز جدیدی که به کیف پول های شما در نیپوتو انجام میشه ما یک ریکوئست POST به مسیری که در هنگام ایجاد توکن تعریف می کنید می زنیم و پارامتر depositID رو که نوعش uuid هست رو واستون POST می کنیم. سپس شما جهت دریافت اطلاعات واریزی به مسیر «گرفتن اطلاعات واریز» Get بزنید.:

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

POST https://yourwebsite.com/callback/newdeposit.php





                

گرفتن اطلاعات واریز


request:
const url = '/v1/accounting/deposit/:id'
const method = 'GET'

   const res = await axios({
        url: url.replace(':id', '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'),
        method,
        headers: { authorization: `Bearer ${accessToken}` }
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/accounting/deposit/:id



response:

res.data = {
      amount: 1000,
      createdAt: '2022-10-09T06:17:42.000Z',
      currency: 'USDT',
      fee: 1,
      hash: '52b19cf51b831adc39ae95ab****a3bb8b6d0583f4ef5fa316fae4921517e79d6a74',
      humanID: '123456789',
      id,
      instrument: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
      network: 'TRC20',
      origin: 'nipoto',
      status: 'done',
      transactionID: '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'
    }

                

گرفتن اطلاعات تمام واریزی ها


request:
const url = '/v1/accounting/deposit'
const method = 'GET'

   const res = await axios({
        url: url.replace(':id', '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'),
        method,
        headers: { authorization: `Bearer ${accessToken}` }
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/accounting/deposit



response:

res.data = {
      amount: 1000,
      createdAt: '2022-10-09T06:17:42.000Z',
      currency: 'USDT',
      fee: 1,
      hash: '52b19cf51b831adc39ae95ab****a3bb8b6d0583f4ef5fa316fae4921517e79d6a74',
      humanID: '123456789',
      id,
      instrument: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
      network: 'TRC20',
      origin: 'nipoto',
      status: 'done',
      transactionID: '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'
    }
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
network string خیر TRC20 اسم شبکه
currency string خیر USDT اسم ارز
wallet string خیر TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w آدرس مبدا
status string خیر done وضعیت دپوزیت. مقادیر مجاز برابر است با: processing و done
origin string خیر nipoto مسیر واریز. مقادیر مجاز برابر است با: nipoto و nipoto-api
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.

دریافت کارمزد برداشت


request:

const url = '/v1/accounting/withdraw/fee'
const method = 'GET'

const res = await axios({
                url,
                method,
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

GET /v1/accounting/withdraw/fee



response:

res.data =  {
  ADA: [
    { fee: 0, min: 0, network: 'Cardano' },
    { fee: 0, min: 0, network: 'BEP20' }
  ],
  BNB: [
    { fee: 0, min: 0, network: 'BEP2' },
    { fee: 0, min: 0, network: 'BEP20' }
  ],
  BTC: [
    { fee: 0, min: 0, network: 'Bitcoin_Bulk' },
    { fee: 0, min: 0, network: 'Bitcoin' },
    { fee: 0, min: 0, network: 'BEP20' }
  ],... }
                

درخواست برداشت رمزارز


request:

const url = '/v1/accounting/withdraw/crypto'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: {
                        address: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
                        currency: 'USDT',
                        network: 'TRC20',
                        amount: 300,
                        paymentID: '1',
                        description: 'توضیحات'
                },
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

در برداشت رمزارز نکته ای ک باید در نظر داشته باشین اینه که اگه "برداشت دو مرحله‌ای" رو موقع جنریت توکن علامت زده باشین یک لینک به ایمیل شما فرستاده میشه که باید روی لینک کلیک کنین و برداشت رو تایید کنین. در این حالت وضعیتی که برمیگرده pendingه. این لینک فقط به مدت ۳۰ دقیقه معتبره. پس از گذشت ۳۰ دقیقه در صورت تایید نشدن لینک، برداشت کنسل میشه.
در صورتی که تیک برداشت دومرحله ای رو نزدین وضعیتی که برمیگرده auditing ه و تنها ۹۰ ثانیه فرصت دارین تا برداشت رو کنسل کنین. بعد از اون برداشت فرستاده میشه.
کارمزد از مقداری که میخواهید برداشت کنید کسر میشود و در نهایت amount - fee به کیف پول شما واریز میشود.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

برای درخواست برداشت رمزارز باید به اندپوینت زیر درخواست بزنین.

POST /v1/accounting/withdraw/crypto



response:

res.data = {
      address: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
      amount: 300,
      currency: 'USDT',
      description: 'توضیحات',
      fee: 1,
      network: 'TRC20',
      paymentID: '1',
      status: 'auditing',
      tags: [],
      withdrawID: '789bb874-8af0-4bf3-ab05-11366ea3fd30'
    }
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
amount number بله 300 مقدار برداشت(کارمزد برداشت از این مقدار کسر میشه)
currency string بله USDT اسم ارز
network string بله TRC20 اسم شبکه
address string بله TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w آدرس مقصد
p2address string خیر 267129692 memo(BEP2) یا tag(Ripple)
paymentID string خیر 20221009001 یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این برداشت اختصاص بدین.
tags array خیر ['تست'] اگر میخواین راحت تر برداشت هاتون رو دسته بندی کنین
description string خیر درخواست برداشت به آقای x فاکتور شماره y توضیحاتی که میخواین راجع به این برداشت بنویسین.

درخواست برداشت تومان


request:

const url = '/v1/accounting/withdraw/irt'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: {
                        address: '5022291061292486',
                        amount: 300,
                        paymentID: '1',
                        description: 'توضیحات'
                },
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

بردای برداشت تومان شماره شبا و شماره کارتی که میفرستین حتما باید از قبل توی پنل ثبت شده باشه و به نام صاحب اکانت باشه.
نکته ای ک باید در نظر داشته باشین اینه که اگه "برداشت دو مرحله‌ای" رو موقع جنریت توکن علامت زده باشین یک لینک به ایمیل شما فرستاده میشه که باید روی لینک کلیک کنین و برداشت رو تایید کنین. در این حالت وضعیتی که برمیگرده pendingه. این لینک فقط به مدت ۳۰ دقیقه معتبره. پس از گذشت ۳۰ دقیقه در صورت تایید نشدن لینک، برداشت کنسل میشه.
در صورتی که تیک برداشت دومرحله ای رو نزدین وضعیتی که برمیگرده auditing ه و تنها ۹۰ ثانیه فرصت دارین تا برداشت رو کنسل کنین. بعد از اون برداشت فرستاده میشه.
کارمزد از مقداری که میخواهید برداشت کنید کسر میشود و در نهایت amount - fee به حساب شما واریز میشود.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

برای درخواست برداشت تومان باید به اندپوینت زیر درخواست بزنین.

POST /v1/accounting/withdraw/irt



response:

res.data = {
    address: '5022291061292486',
    amount: 100000,
    currency: 'IRT',
    description: 'توضیحات',
    fee: 5000,
    network: 'bankCard',
    paymentID: '1',
    status: 'auditing',
    tags: [],
    withdrawID:  '789bb874-8af0-4bf3-ab05-11366ea3fd30'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
amount number بله 1000000 مقدار برداشت(کارمزد برداشت از این مقدار کسر میشه)
address string بله 1234567812345678 آدرس مقصد
p2address string خیر 267129692 memo(BEP2) یا tag(Ripple)
paymentID string خیر 20221009001 یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این برداشت اختصاص بدین.
tags array خیر ['تست'] اگر میخواین راحت تر برداشت هاتون رو دسته بندی کنین
description string خیر درخواست برداشت به آقای x فاکتور شماره y توضیحاتی که میخواین راجع به این برداشت بنویسین.

لفو برداشت


request:

const url = '/v1/accounting/withdraw/:id'
const method = 'DELETE'

const res = await axios({
                url: url.replace(':id', '789bb874-8af0-4bf3-ab05-11366ea3fd30')
                method,
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

id که فرستاده میشه همون withdrawID هست که موقع گرفتن لیست برداشت ها یا موقع فرستادن یک درخواست برداشت به سمت شما برمیگرده.
پس از آنکه وضعیت برداشت به حسابرسی(auditing) تغییر کرد، تنها ۳۰ ثانیه فرصت دارید تا برداشت را کنسل کنید.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

DELETE /v1/accounting/withdraw/:id



response:

res.data = {
  status: 'canceled',
  withdrawID:  '789bb874-8af0-4bf3-ab05-11366ea3fd30'
}

                

لفو برداشت با paymentID


request:

const url = '/v1/accounting/withdraw'
const method = 'DELETE'

const res = await axios({
                url,
                method,
                params: { paymentID: '1' },
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

پس از آنکه وضعیت برداشت به حسابرسی(auditing) تغییر کرد، تنها ۳۰ ثانیه فرصت دارید تا برداشت را کنسل کنید.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

DELETE /v1/accounting/withdraw



response:

res.data = {
  status: 'canceled',
  paymentID: '1'
}

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
paymentID string بله 20221009001 PaymentID برداشتی که میخواین کنسل کنین.

دریافت لیست برداشت ها


request:

const url = '/v1/accounting/withdraw'
const method = 'GET'

const res = await axios({
                url,
                method,
                params: {
                  currency: 'USDT',
                },
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

برای گرفتن لیست برداشت ها (یا گرفتن یک برداشت با استفاده از paymentID ) میتونین از اندپوینت زیر استفاده کنین. در صورتی که هیچ پارامتری ارسال نشه ۲۰ تا برداشت اخیر کاربر بدون توجه به ارز و شبکه برمیگرده. اگر paymentID رو بفرستین سایر پارامترهای ارسالی نادیده گرفته میشن
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/accounting/withdraw



response:

res.data = [{
    origin: 'nipoto',
    tags: ['mainAccount'],
    description: null,
    id: '789bb874-8af0-4bf3-ab05-11366ea3fd30',
    amount: 500,
    currency: 'USDT',
    address: 'address',
    network: 'TRC20',
    fee: 1,
    p2address: null,
    humanID: '1',
    createdAt: '2022-10-09T06:17:42.000Z',
    status: 'pending',
    hash: null
  },…]
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
paymentID string خیر 20221009001 paymentID برداشتی که میخواین اطلاعاتش رو بگیرین.
currency string خیر USDT اسم ارز
network string خیر TRC20 اسم شبکه
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
status string خیر وضعیت برداشت. مقادیر قابل قبول عبارتند از pending, canceled,auditing,processing,done,rejected,expired auditing
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.

گرفتن یک برداشت با استفاده از withdrawID


request:

const url = '/v1/accounting/withdraw/:id'
const method = 'GET'

const res = await axios({
                url: url.replace(':id', '789bb874-8af0-4bf3-ab05-11366ea3fd30')
                method,
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

id که فرستاده میشه همون withdrawID هست که موقع گرفتن لیست برداشت ها یا موقع فرستادن یک درخواست برداشت به سمت شما برمیگرده.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/accounting/withdraw/:id



response:

res.data =  {
    origin: 'nipoto',
    tags: ['mainAccount'],
    description: null,
    id: '789bb874-8af0-4bf3-ab05-11366ea3fd30',
    amount: 500,
    currency: 'USDT',
    address: 'address',
    network: 'TRC20',
    fee: 1,
    p2address: null,
    humanID: '1',
    createdAt: '022-10-09T06:17:42.000Z',
    status: 'auditing',
    hash: null
  }
                

اد سفارش لیمیت


request:

const url = '/v1/market/order/limit'
const method = 'POST'

const res = await axios({
               url,
                method,
                data: { market: 'BTC_USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1' }
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

POST /v1/market/order/limit


response:

res.data= {
  amount: 0.01,
  market: 'BTC/USDT',
  orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
  paymentID: '1',
  price: 1000,
  side: 'bid',
  type: 'limit'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT اسم مارکتی که میخواین توش سفارش ثبت کنین
side string بله bid مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین
amount number بله 0.001 بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین
price number بله 19000 قیمتی که میخواین در اون ارزتون رو بفروشین/بخرین
paymentID string بله 1401_04_001 یک آی دی که میخواین به این خرید/فروش اختصاص بدین.

اد سفارش مارکت


request:

const url = '/v1/market/order/market'
const method = 'POST'

const res = await axios({
               url,
                method,
                data: { market: 'BTC_USDT', side: 'bid', amount: 0.01, paymentID: '1' }
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

POST /v1/market/order/market


response:

res.data= {
  amount: 0.01,
  market: 'BTC/USDT',
  orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
  paymentID: '1',
  side: 'bid',
  type: 'market'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT اسم مارکتی که میخواین توش سفارش ثبت کنین
side string بله bid مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین
amount number بله 0.001 بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین
paymentID string بله 1401_04_001 یک آی دی که میخواین به این خرید/فروش اختصاص بدین.

اد سفارش oco


request:

const url = '/v1/market/order/oco'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: { market: 'BTC/USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1', limit: 1000, stop: 1001 }
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

POST /v1/market/order/oco


response:

res.data= {
  amount: 0.01,
  market: 'BTC/USDT',
  orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
  paymentID: '1',
  price: 1000,
  stop: 1001,
  limit: 1000
  side: 'bid',
  type: 'oco'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT اسم مارکتی که میخواین توش سفارش ثبت کنین
side string بله bid مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین
amount number بله 0.001 بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین
price number بله ???? ???
stop number بله ???? ???
limit number بله ???? ???
paymentID string بله 1401_04_001 یک آی دی که میخواین به این خرید/فروش اختصاص بدین.

اد سفارش استاپ-لیمیت


request:

const url = '/v1/market/order/stopLimit'
const method = 'POST'

const res = await axios({
                url,
                method,
                data: { market: 'BTC/USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1', limit: 1000, stop: 1001 }
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

برای ثبت کردن سفارش استاپ-لیمیت باید از اندپوینت زیر استفاده کنین.

POST /v1/market/order/stopLimit


response:

res.data= {
  amount: 0.01,
  market: 'BTC/USDT',
  orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
  paymentID: '1',
  stop: 1001,
  limit: 1000
  side: 'bid',
  type: 'oco'
}
                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT اسم مارکتی که میخواین توش سفارش ثبتکنین
side string بله bid مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین
amount number بله 0.001 بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین
stop number بله ???? ???
limit number بله ???? ???
paymentID string بله 1401_04_001 یک آی دی که میخواین به این خرید/فروش اختصاص بدین.

کنسل کردن سفارش


request:

const url = '/v1/market/order/:id'
const method = 'DELETE'

const res = await axios({
                url: url.replace(':id', '289bb874-8af0-4bf3-ab05-11366ea3fd30')
                method,
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

id که فرستاده میشه همون orderID هست که موقع گرفتن لیست سفارشات یا موقع ثبت سفارش به سمت شما برمیگرده.
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

DELETE /v1/market/order/:id



response:

res.data = {
    type: 'limit',
    remainingAmount: 0.004,
    market: 'BTC/USDT',
    orderID: id,
    price: 1000,
    side: 'bid'
}

                

کنسل کردن سفارشها


request:

const url = '/v1/market/order'
const method = 'DELETE'

const res = await axios({
                urlو
                method,
                headers: {  authorization: `Bearer ${accessToken}` }
            })
                

در صورتی که paymentID فرستاده شود فقط سفارش مربوطه کنسل خواهد شد(که در این صورت پاسخ بازگشتی مشابه با «کنسل کردن سفارش» میباشد) در غیر این صورت تمام سفارشهای فعال کاربر کنسل میشوند
تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

DELETE /v1/market/order



response:

res.data = {
    code: 'SUCCESS',
    message: 'all openOrders are canceled'
}

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
paymentID string بله 20221009001 PaymentID برداشتی که میخواین کنسل کنین.

گرفتن سفارشات فعال


request:
const url = '/v1/market/order/open'
const method = 'GET'

      const res = await axios({
        url: `${url}?market=BTC_USDT`,
        method
        headers: { authorization: `Bearer ${accessToken}` },
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/market/order/open



response:

res.data = [
    {
        id: 'e959f995-8986-4cb2-8731-e6145c74047c',
        type: 'stop-limit',
        side: 'bid',
        status: 'pending',
        humanID: '210234297718',
        isTriggered: true,
        remainingAmount: 0.01,
        amount: 0.01,
        price: 0,
        stop: 1000,
        limit: 1001,
        createdAt: '2022-10-23T08:16:49.431Z',
        origin: 'nipoto',
        market: 'BTC/USDT'
    },...
]

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT نام بازار
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
type string خیر limit مقادیر مجاز برابر است با 'limit', 'market', 'oco', 'stop-limit'
side string خیر bid مقادیر مجاز برابر است با bid و ask
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین.

گرفتن تاریخچه سفارشات


request:
const url = '/v1/market/order'
const method = 'GET'

      const res = await axios({
        url,
        method,
        params: { market: 'BTC/USDT' },
        headers: { authorization: `Bearer ${accessToken}` }
})
                

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

60 req/min

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

GET /v1/market/order



response:

res.data = [{
        id: 'e959f995-8986-4cb2-8731-e6145c74047c',
        market: 'BTC/USDT',
        type: 'limit',
        side: 'bid',
        amount: 0.01,
        average: 999,
        price: 999,
        stop: 0,
        limit: 0,
        humanID: '210230633784',
        origin: 'nipoto',
        executedAmount: 0.009,
        executedTotal: 8.991,
        status: 'partiallyCanceled'
      },
      {
        amount: 0.01,
        average: 1000,
        executedAmount: 0.01,
        executedTotal: 10,
        humanID: '210230633784',
        id: 'e959f995-8986-4cb2-8731-e6145c74047d',
        limit: 0,
        market: 'BTC/USDT',
        origin: 'nipoto-api',
        price: 1000,
        side: 'bid',
        status: 'done',
        stop: 0,
        type: 'limit'
      }
]

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string بله BTC_USDT نام بازار
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
type string خیر limit مقادیر مجاز برابر است با 'limit', 'market', 'oco', 'stop-limit'
side string خیر bid مقادیر مجاز برابر است با bid و ask
status string خیر canceled مقادیر مجاز برابر است با canceled, done و partiallyCanceled
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین.
paymentID string خیر 20221205001 paymentID مربوط به اون سفارش

گرفتن اطلاعات یک سفارش


request:
const url = '/v1/market/order/:id'
const method = 'GET'

   const res = await axios({
        url: url.replace(':id', '9e0eb6c4-cf78-499a-90f2-9caac4e81c67'),
        method,
        headers: { authorization: `Bearer ${accessToken}` }
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/market/order/:id



response:

res.data = {
        id: '9e0eb6c4-cf78-499a-90f2-9caac4e81c67',
        market: 'BTC/USDT',
        type: 'limit',
        side: 'bid',
        amount: 0.01,
        average: 999,
        price: 999,
        stop: 0,
        limit: 0,
        humanID: '210230633784',
        origin: 'nipoto',
        executedAmount: 0.009,
        executedTotal: 8.991,
        status: 'partiallyCanceled'
      }

                

گرفتن معاملات یک سفارش


request:
const url = '/v1/market/order/:id/trades'
const method = 'GET'

   const res = await axios({
        url: url.replace(':id', '9e0eb6c4-cf78-499a-90f2-9caac4e81c67'),
        method,
        headers: { authorization: `Bearer ${accessToken}` }
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/market/order/:id/trades



response:

res.data = [
        {
          side: 'bid',
          taker: 'maker',
          humanID: '123456',
          amount: 0.009,
          price: 999,
          fee: 0.008991,
          createdAt: '2022-10-23T08:09:20.161Z',
          market: 'BTC/USDT'
        },
        {
          side: 'bid',
          taker: 'taker',
          amount: 0.009,
          price: 999,
          fee: 0.000009,
          humanID: '123457',
          createdAt: '2022-10-23T08:09:20.161Z',
          market: 'BTC/USDT'
        }
]

                

گرفتن لیست معاملات


request:
const url = '/v1/market/trade'
const method = 'GET'

   const res = await axios({
        url: `${url}?market=BTC_USDT`,
        method,
        headers: { authorization: `Bearer ${accessToken}` }
})
                

تعداد درخواست قابل قبول به این روت برابر است با :

60 req/min

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

GET /v1/market/trade



response:

res.data = [
        {
          side: 'bid',
          taker: 'maker',
          humanID: '123456',
          amount: 0.009,
          price: 999,
          fee: 0.008991,
          createdAt: '2022-10-23T08:09:20.161Z',
          market: 'BTC/USDT'
        },
        {
          side: 'bid',
          taker: 'taker',
          amount: 0.009,
          price: 999,
          fee: 0.000009,
          humanID: '123457',
          createdAt: '2022-10-23T08:09:20.161Z',
          market: 'BTC/USDT'
        }
]

                

پارامترهای ورودی

پارامتر نوع الزامی نمونه توضیحات
market string خیر BTC_USDT نام بازار
pageNumber number خیر 5 برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است
pageCount number خیر 50 تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست.
side string خیر bid مقادیر مجاز برابر است با bid و ask
taker boolean خیر true taker!
startDate date خیر 2022-10-11T06:17:42.000Z اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین.
endDate date خیر 2022-10-12T06:17:42.000Z اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین.