Introduction
API Endpoints https://api.novinpal.ir/invoice/request https://api.novinpal.ir/invoice/start/{{refId}} https://api.novinpal.ir/invoice/verify https://api.novinpal.ir/invoice/reverse
Welcome to Novinpal Internet Payment Gateway (IPG) service guide. These documents have been collected for your ease of using Novinpal services. If you have any questions, contact Novinpal's technical team. The duty of our colleagues is to answer your messages as soon as possible.
Please pay attention to the following points before implementation:
- Novinpal APIs are RESTful and requests and responses are exchanged as Form-Data.
- NovinPal will only respond to requests sent under the nominated domain from the recipient.
- If you receive any error from Novinpal, after checking your sent values, send us this error along with the sent values and the received response values. We are aware of the possibility of error by Novinpal and we will quickly take steps to solve the problem!
Download a sample of Novin Pal's postman collection novinpal.postman_collection.json
Setup steps
It is not complicated to use and set up the Novinpal internet payment gateway service. Just follow the three steps below!
1. Payment request - Request
To set up your portal, Novinpal needs your order information, which can be sent through this terminal. In response, refId
you will receive this terminal as the payment reference ID.
2. Start payment - Start
By sending refId
to this terminal, the payment page will appear for you and you are ready to pay.
3. Payment confirmation - Verify
Novinpal will send the payment status of each order to the address you return_url
have registered for that order. After that, you need to call the transaction confirmation method. It is possible to confirm the successful payment through this terminal.
By following the mentioned path, the payment process of an order ends. The deposit amount is deposited through the internet payment portal to the account designated by you depending on your user account settings.
Payment request - Request
Use this terminal to send order information and register it in Novinpal system.
Application information
POST
https://api.novinpal.ir/invoice/request
The body of the request
POST
https://api.novinpal.ir/invoice/request
{
"api_key": "xxxxxxxxxxxxxxxxxxxx",
"amount": 10000,
"return_url": "http://yourapiurl.com/callback.php",
"order_id": "NP-88999",
"description": "Sample description",
"mobile": "09129999999",
"card_number": "610433******2024
}
parameter | Necessary? | type | Description | |
---|---|---|---|---|
api_key | Yes | String | Your API key | |
amount | Yes | Number (Long) | The total amount of the order (in Rials) | |
return_url | Yes | String | The address of the receiving site to which Novinpal will send the payment information. | |
order_id | Yes | String | Your unique order ID | |
description | no | String | Description of the order | |
mobile | no | String | با فرستادن شماره موبایل کاربران خود، شماره کارتهای ثبتشده مشتریان در درگاه پرداخت جهت انتخاب ظاهر میشوند. | |
card_number | خیر | رشته (String) | در صورت نیاز به احراز هویت پرداخت کننده (تطبیق کارت پرداخت کننده با کارت ارسالی از سوی شما) | |
توجه: شماره کارت باید کامل و صحیح ارسال شود در غیر اینصورت پرداخت تایید نمیشود |
بدنه پاسخ
در صورت موفقیت آمیز بودن
در صورت صحت اطلاعات ارسالی پاسخی حاوی شناسه مرجع و کد وضعیت بازگردانده خواهد شد.
{
"refId": "447515262",
"status": 1,
}
در صورت رد درخواست
در صورت رد پاسخی حاوی کد وضعیت، کد خطا و شرح خطا بازگردانده خواهد شد.
{
"status": 0,
"errorCode": 103,
"errorDescription" : "return url is invalid"
}
جدول status
کد | توضیحات |
---|---|
1 | تأیید درخواست |
0 | رد درخواست |
جدول errorCode
کد | توضیحات |
---|---|
100 | درخواست موفقیت آمیز بود |
101 | آی پی سایت پذیرنده مجاز نیست |
102 | ترمینال بلاک شده است |
103 | آدرس بازگشتی متعلق به سایت پذیرنده نیست |
104 | خطای PSP |
107 | PSP یافت نشد |
108 | خطای سرور |
110 | مبلغ اشتباه وارد شده یا کمتر از 10000 ریال است |
111 | کلید API اشتباه است |
112 | پذیرنده غیرفعال است |
114 | متد ارسال شده اشتباه است |
115 | ترمینال تأیید نشده است |
116 | ترمینال غیرفعال است |
117 | ترمینال رد شده است |
118 | ترمینال تعلیق شده است |
119 | ترمینالی تعریف نشده است |
120 | حساب کاربری پذیرنده به حالت تعلیق درآمده است |
121 | حساب کاربری پذیرنده تأیید نشده است |
122 | حساب کاربری پذیرنده یافت نشد |
123 | کارت نامعتبر است (عدم تطبیق کارت ارسالی با کارت پرداختی) |
شروع پرداخت - Start
از این پایانه جهت ورود به صفحهی پرداخت و شروع پرداخت استفاده کنید.
اطلاعات درخواست
GET
https://api.novinpal.ir/invoice/start/{{refId}}
بدنه درخواست
با ارسال refId
به آدرس بالا و باز کردن این صفحه در مرورگر به صفحهی پرداخت منتقل خواهید شد.
پاسخ - Callback
نوینپال اطلاعات پرداخت یک سفارش را در زمان تغییر وضعیت به return_url
ثبت شده برای آن سفارش ارسال میکند.
این اطلاعات به صورت Query String و از طریق متد GET
برای return_url
ارسال میشوند.
برای پایان دادن به جلسه پرداخت یک سفارش در صورت موفقیتآمیز بودن پرداخت، حتما از طریق پایانهی تایید پرداخت اقدام به تایید اطلاعات دریافتی نمایید.
بدنه Callback
پارامتر | توضیحات |
---|---|
success | در صورت موفقیت آمیز بودن تراکنش 1، در غیر این صورت 0 است |
refId | شناسه مرجع جلسهی پرداخت |
code | کد وضعیت پرداخت |
invoiceNumber | شناسه سفارش ارسال شده در هنگام درخواست پرداخت |
amount | مبلغ تراکنش |
مثال
https://return-url.com/callback?refId=999999&success=1&code=100&invoiceNumber=888888&amount=10000
جدول code
کد | توضیحات |
---|---|
100 | تراکنش موفقیت آمیز بود |
109 | تراکنش ناموفق بود |
104 | خطای PSP |
107 | PSP یافت نشد |
108 | خطای سرور |
114 | متد ارسال شده اشتباه است |
115 | ترمینال تأیید نشده است |
116 | ترمینال غیرفعال است |
117 | ترمینال رد شده است |
118 | ترمینال تعلیق شده است |
119 | ترمینالی تعریف نشده است |
120 | حساب کاربری پذیرنده به حالت تعلیق درآمده است |
121 | حساب کاربری پذیرنده تأیید نشده است |
122 | حساب کاربری پذیرنده یافت نشد |
تأیید پرداخت - Verify
از این پایانه جهت تایید موفقیتآمیز بودن پرداخت و پایان دادن به یک جلسهی پرداخت استفاده نمایید.
تایید پرداخت
همانطور که قبلا اشاره شد نوینپال با ارسال اطلاعات پرداخت به return_url
ثبتشده، شما را از وضعیت یک پرداخت مطلع میسازد. این پایانه جهت اطمینان نوینپال از دریافت این اطلاعات توسط شما و خاتمهدادن پروسه پرداخت سفارش تعبیه شدهاست.
اطلاعات درخواست
POST
https://api.novinpal.ir/invoice/verify
بدنه درخواست
POST
https://api.novinpal.ir/invoice/verify
{
"api_key": "xxxxxxxxxxxxxxxxxxxx",
"ref_id": 99999999,
}
پارامتر | ضروری؟ | نوع | توضیحات |
---|---|---|---|
api_key | بله | رشته (String) | کلید API شما |
ref_id | بله | رشته (String) | شناسه مرجع سفارش که در بدنه پاسخ به "درخواست پرداخت - Request" برای شما ارسال می شود |
بدنه پاسخ
در صورت موفقیت آمیز بودن
در صورت صحت اطلاعات ارسالی پاسخی حاوی اطلاعات تراکنش بازگردانده خواهد شد.
{
"paidAt": "2022-12-07 19:59:45",
"cardNumber": "6104-33**-****-6047",
"status": 1,
"amount": 10000,
"refNumber": "638060399619297999",
"refId": "509744199",
"description": "Sample description",
"orderId": "9999999",
"verifiedBefore": false,
}
پارامتر | توضیحات |
---|---|
paidAt | تاریخ پرداخت سفارش (در صورت موفقیتآمیز بودن پرداخت) |
cardNumber | شماره کارت پرداخت کننده (Mask شده) |
status | وضعیت پرداخت |
amount | مبلغ سفارش (به ریال) |
refNumber | Transaction bank reference ID (if the payment is successful) |
refId | Transaction reference ID with Novinpal |
description | Transaction description (if the payment is successful) |
orderId | Order ID (if payment is successful) |
verifiedBefore | This value will be returned true if the transaction has already been approved by you |
Tablestatus
code | Description |
---|---|
1 | The transaction has been successful |
0 | Awaiting Payment |
-1 | The transaction has failed |
-2 | Server error |
If the request is rejected
If the request is rejected, a response containing the status code, error code and error description will be returned.
{
"status": 0,
"errorCode": 101,
"errorDescription" : "access denied"
}
TableerrorCode
code | Description |
---|---|
100 | The request was successful |
101 | The IP of the receiving site is not allowed |
102 | The terminal is blocked |
103 | The return address does not belong to the receiving site |
104 | PSP error |
107 | PSP not found |
108 | Server error |
110 | The amount entered is incorrect or less than 10,000 Rials |
111 | The API key is incorrect |
112 | Receiver is inactive |
114 | The submitted method is incorrect |
115 | The terminal is not verified |
116 | The terminal is disabled |
117 | The terminal is rejected |
118 | The terminal is suspended |
119 | The terminal is not defined |
120 | The recipient's account has been suspended |
121 | The recipient's account has not been verified |
122 | Accepting user account not found |
Return of the transaction amount - Reverse
Use this terminal to reverse a successful transaction up to 120 minutes after the transaction.
Transaction reversal
In Novin Pal, for any reason, you can cancel the successful transaction and payment of your customers with the Reverse operation and automatically return their payment. Please note that this action should
120 دقیقه (2 ساعت)
be done at the latest after the transaction and after verifying the transaction.
Application information
POST
https://api.novinpal.ir/invoice/reverse
The body of the request
POST
https://api.novinpal.ir/invoice/reverse
{
"api_key": "xxxxxxxxxxxxxxxxxxxx",
"ref_id": 99999999,
}
parameter | Necessary? | type | Description |
---|---|---|---|
api_key | Yes | String | Your API key |
ref_id | Yes | String | The reference ID of the order that is sent to you in the body of the response to "Request for payment - Request". |
Response body
If successful
If the information sent is correct, a response containing the transaction information will be returned.
{
"paidAt": "2022-12-07 19:59:45",
"cardNumber": "6104-33**-****-6047",
"status": 1,
"amount": 10000,
"refNumber": "638060399619297999",
"refId": "509744199",
"description": "Sample description",
"orderId": "9999999",
"verifiedBefore": false,
}
parameter | Description |
---|---|
paidAt | Order payment date (if the payment is successful) |
cardNumber | Payer card number (masked) |
status | Payment status |
amount | Order amount (in Rials) |
refNumber | Transaction bank reference ID (if the payment is successful) |
refId | Transaction reference ID with Novinpal |
description | Transaction description (if the payment is successful) |
orderId | Order ID (if payment is successful) |
verifiedBefore | This value will be returned true if the transaction has already been approved by you |
Tablestatus
code | Description |
---|---|
1 | The transaction has been successful |
0 | Awaiting Payment |
-1 | The transaction has failed |
-2 | Server error |
If the request is rejected
If the request is rejected, a response containing the status code, error code and error description will be returned.
{
"status": 0,
"errorCode": 101,
"errorDescription" : "access denied"
}
TableerrorCode
code | Description |
---|---|
100 | The request was successful |
101 | The IP of the receiving site is not allowed |
102 | The terminal is blocked |
103 | The return address does not belong to the receiving site |
104 | PSP error |
107 | PSP not found |
108 | Server error |
110 | The amount entered is incorrect or less than 10,000 Rials |
111 | The API key is incorrect |
112 | Receiver is inactive |
114 | The submitted method is incorrect |
115 | The terminal is not verified |
116 | The terminal is disabled |
117 | The terminal is rejected |
118 | The terminal is suspended |
119 | The terminal is not defined |
120 | The recipient's account has been suspended |
121 | The recipient's account has not been verified |
122 | Accepting user account not found |
Status table
code | Description |
---|---|
100 | The request was successful |
101 | The IP of the receiving site is not allowed |
102 | The terminal is blocked |
103 | The return address does not belong to the receiving site |
104 | PSP error |
105 | Transaction not found |
106 | The reference ID is incorrect |
107 | PSP not found |
108 | Server error |
109 | The transaction has failed |
110 | The amount entered is incorrect or less than 10,000 Rials |
111 | The API key is incorrect |
112 | Receiver is inactive |
113 | The order ID is incorrect |
114 | The submitted method is incorrect |
115 | The terminal is not verified |
116 | The terminal is disabled |
117 | The terminal is rejected |
118 | The terminal is suspended |
119 | The terminal is not defined |
120 | The recipient's account has been suspended |
121 | The recipient's account has not been verified |
122 | Accepting user account not found |
123 | The card is invalid (failure to match the sent card with the payment card) |