این پروژه یک پروکسی API برای سرویسهای فینوتک است که امکان استفاده راحتتر از API های فینوتک را فراهم میکند.
GET /cards/:cardپارامترها:
card: شماره کارت 16 رقمیtrackId(اختیاری): کد پیگیری (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /cards/6037991123456789?trackId=card-info-123پاسخ موفق:
{
"result": {
"destCard": "6037991123456789",
"name": "نام دارنده کارت",
"bankName": "نام بانک",
"result": "SUCCESS",
"description": "توضیحات",
"doTime": "2024-03-14T10:30:00"
},
"status": "DONE",
"trackId": "card-info-123"
}GET /cards/:card/ibanپارامترها:
card: شماره کارت 16 رقمیtrackId(اختیاری): کد پیگیری (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /cards/6037991123456789/iban?trackId=card-to-iban-123پاسخ موفق:
{
"result": {
"IBAN": "IR123456789123456789123456",
"bankName": "نام بانک",
"deposit": "1234567890",
"card": "6037991123456789",
"depositStatus": "02",
"depositOwners": "نام صاحب حساب"
},
"status": "DONE",
"trackId": "card-to-iban-123"
}GET /kyc/shahkar/smsپارامترها:
mobile: شماره موبایل (11 رقم، شروع با 09)nationalCode: کد ملی (10 رقم)trackId(اختیاری): کد پیگیری (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /kyc/shahkar/sms?mobile=09123456789&nationalCode=1234567890&trackId=shahkar-sms-123پاسخ موفق:
{
"responseCode": "FN-KCAT-20000100000",
"trackId": "shahkar-sms-123",
"result": {
"smsSent": true
},
"status": "DONE"
}GET /kyc/shahkar/verifyپارامترها:
otp: رمز یکبار مصرف (6 رقم)inquiryTrackId: کد پیگیری دریافتی از مرحله ارسال پیامکtrackId(اختیاری): کد پیگیری جدید (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /kyc/shahkar/verify?otp=123456&inquiryTrackId=shahkar-sms-123&trackId=shahkar-verify-123پاسخ موفق:
{
"responseCode": "FN-KCAT-20004500000",
"trackId": "shahkar-verify-123",
"result": {
"isValid": true
},
"status": "DONE"
}GET /shahkar/verifyپارامترها:
mobile: شماره موبایل (11 رقم، شروع با 09)nationalCode: کد ملی (10 رقم)trackId(اختیاری): کد پیگیری (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /shahkar/verify?mobile=09123456789&nationalCode=1234567890&trackId=shahkar-verify-123پاسخ موفق:
{
"responseCode": "FN-FYVR-20001000000",
"trackId": "shahkar-verify-123",
"result": {
"isValid": true
},
"status": "DONE"
}GET /kyc/iban-owner-verificationپارامترها:
nid: کد ملی صاحب حساب (10 رقم)iban: شماره شبا (26 کاراکتر، شروع با IR)trackId(اختیاری): کد پیگیری (حداکثر 40 کاراکتر الفبا-عددی)
مثال:
GET /kyc/iban-owner-verification?nid=6661111111&iban=IR111111111111111111111111&trackId=iban-nid-verify-123پاسخ موفق:
{
"responseCode": "FN-KCFH-20002800000",
"trackId": "iban-nid-verify-123",
"result": {
"isValid": "yes"
},
"status": "DONE"
}پاسخ ناموفق:
{
"status": "FAILED",
"error": {
"code": "ERROR_CODE",
"message": "توضیحات خطا"
}
}02: حساب فعال است03: حساب مسدود با قابلیت واریز04: حساب مسدود بدون قابلیت واریز05: حساب راکد است06: بروز خطا در پاسخ دهی07: سایر موارد
تمام اندپوینتها در صورت بروز خطا، پاسخی با این ساختار برمیگردانند:
{
"status": "FAILED",
"error": {
"code": "ERROR_CODE",
"message": "توضیحات خطا"
}
}- تمام درخواستها باید با متد GET ارسال شوند
- همه پارامترهای trackId اختیاری هستند
- در سرویس شاهکار، inquiryTrackId مرحله دوم باید همان trackId دریافتی از مرحله اول باشد
- اعتبارسنجیهای زیر انجام میشود:
- شماره کارت: دقیقاً 16 رقم
- شماره موبایل: 11 رقم، شروع با 09
- کد ملی: دقیقاً 10 رقم
- OTP: دقیقاً 6 رقم
- trackId: حداکثر 40 کاراکتر الفبا-عددی
- inquiryTrackId: حداکثر 40 کاراکتر الفبا-عددی
- فایل
env.exampleرا به.envکپی کنید - مقادیر متغیرهای محیطی را در فایل
.envتنظیم کنید:# Finnotech API Configuration FINNOTECH_BASE_URL=https://sandboxapi.finnotech.ir # یا https://api.finnotech.ir برای پروداکشن FINNOTECH_CLIENT_ID=YOUR_CLIENT_ID FINNOTECH_CLIENT_SECRET=YOUR_CLIENT_SECRET FINNOTECH_NID=YOUR_NATIONAL_ID # Server Configuration PORT=3000 HOST=0.0.0.0
- نصب وابستگیها:
npm install
- اجرای برنامه:
# برای محیط توسعه npm run dev # برای محیط پروداکشن npm run build npm start