وبسرویس استعلام و پرداخت بیمه شخصثالث و موتور بر دو جزء اصلی میباشد:
استعلام: فرایند استعلام فرایندی است مبتنی بر دریافت وضعیت بیمهنامه قبلی و پس از آن ارائه جزئیات خودرو درخواست شده.
پرداخت: فرایندی دو مرحله ای مبنی بر ارائه شماره پلاک و شناسه vin خودرو با ارائه اطلاعات هویتی و خودرو خریدار بیمه و همچنین اطلاعات بیمه درخواستی که پس از تایید مبلغ قابل پرداخت و شناسه سفارش ارائه شده و در مرحله دوم پس نسبت به تایید سفارش ثبت شده اقدام میشود و کیف پول الکترونیک سرویسگیرنده به مبلغ پرداخت بیمه بدهکار خواهد شد.
روند پیشنهادی آیتول بیز برای پیادهسازی وبسرویسها را میتوانید در اینجا مشاهده کنید.
وبسرویس استعلام برای استعلام وضعیت بیمهنامه فعلی (قبلی) کاربر میباشد.
Address:
{{base_url}}/api/insurance/current-status-by-license-and-national-code
HTTP Method:
GET
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
Query Parameters:
| Parameter | Value | Description |
| license | 9 Digit Plate Number |
پلاک طبق استاندارد پیوست 1 - ساختار پلاک |
| national_code | 10 Digit National Code |
کد ملی 10 رقمی |
Headers:
| Header | Value |
| Content-Type | application/json |
Response Body (SUCCESS):
{
"data":
{
"insurance":
{
"insurance_number": "1110/412010/99/000234",
"issue_date": "2020-07-16",
"end_date": "2021-07-17",
"company":
{
"id": 1,
"name": "بیمه پارسیان",
"logo_url": "https://itoll.biz/images/insurance-companies/1.png",
"slug": "parsian"
},
"risk":
{
"id": 5,
"title": "۱۵٪",
"amount": 15
},
"driver_risk":
{
"id": 5,
"title": "۱۵٪",
"amount": 15
},
"damages_count": 0
},
"car":
{
"system": "رنو",
"type": "SANDERO-AT",
"model": 1396,
"car_model":
{
"car_brand":
{
"id": 5,
"title": "رنو"
},
"id": 83,
"title": "ساندرو اتوماتیک"
}
}
}
}
Response Body (INTERNAL_SERVER_ERROR):
{
"success": false,
"error": true,
"details": "سرویس استعلام در حال حاضر در دسترس نمیباشد"
}
مثال CURL:
curl --location --request GET 'https://itoll.biz/api/insurance/current-status-by-license-and-national-code?national_code=xxx&license=xxx'
--header 'Authorization: Bearer {{token}}'
--header 'Accept: application/json'
فهرست خطاها :
| کد خطا | متن خطا |
| 404 | با توجه به اطلاعات وارد شده، بیمهای برای شما یافت نشد. |
| 503 | سرویس استعلام در دسترس نمیباشد. |
وبسرویس استعلام برای استعلام وضعیت بیمهنامه فعلی (قبلی) کاربر میباشد.
وبسرویس استعلام قیمت شرکت های بیمه براساس اطلاعات بیمهای و مدل خودرو
Address:
{{base_url}}/api/insurance/price-query
HTTP Method:
GET
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
Query Parameters:
| Parameter | Value | Required |
| car_model | Id of car model | yes |
| car_usage | Id of car usage | no |
| risk | Id of insurance risk | yes |
| driver_risk | Id of driver risk (تخفیف حوادث راننده) | yes |
| duration | Id of insurance duration | yes |
| coverage_rate | Id of insurance coverage rate | yes |
| property_damage | Id of property damage (خسارت مالی دریافت شده از آخرین بیمهنامه) | yes |
| health_damage | Id health damage (خسارت جانی دریافت شده از آخرین بیمهنامه) | yes |
| driver_damage | Id of driver damage (خسارت حوادث راننده دریافت شده از آخرین بیمهنامه) | yes |
| build_year | Car build year by Jalali year (eg. 1392) or Gregorian (eg. 2020) | yes |
| current_insurance_deadline | Date of current insurance deadline (Gregorian Format: Y-m-d) | yes |
| current_insurance_issuance_date | Date of current insurance issuance (Gregorian Format: Y-m-d) | no |
| vehicle_owner_changed | Boolean | no |
| license | 9 digit license |
پلاک طبق استاندارد پیوست 1 - ساختار پلاک |
توجه: برای استعلام قیمت بیمه موتور، می توان در فیلد car_model، آیدی موتور مربوطه را ارسال کرد.
Headers:
| Header | Value |
| Content-Type | application/json |
Body (SUCCESS):
{
"error": false,
"data": [
{
"insurance_company": {
"id": 4,
"name": "بیمه ایران",
"logo_url": "https://itoll.biz/images/insurance-companies/4.png",
"slug": "iran",
"issuable": true
},
"price": {
"total": 31407750,
"discounted_price": 31407750
},
"installment": {
"pre_payment_percent": 50,
"installment_interval": 1,
"installment_count": 5,
"partner_id": 29,
"partner_name": "نسترن قنبرنژاد مغانلو"
},
"installment_prices": {
"pre_payment": 15707750,
"installments": [
{
"price": 3140000
},
{
"price": 3140000
},
{
"price": 3140000
},
{
"price": 3140000
},
{
"price": 3140000
}
]
}
},
{
"insurance_company": {
"id": 5,
"name": "بیمه دانا",
"logo_url": "https://itoll.biz/images/insurance-companies/5.png",
"slug": "dana",
"issuable": true
},
"price": {
"total": 31407750,
"discounted_price": 31407750
},
"installment": null,
"installment_prices": null
}
]
}
Body (BAD_REQUEST):
{
"message": مقادیر ورودی صحیح نیست.,
"errors": {
"Input_parameter_name": [
"The selected parameter name is invalid."
],
. . .
},
}
Body (INTERNAL_SERVER_ERROR):
{
"message": 'Something Went wrong.',
"error": true,
}
این وبسرویس برای ثبت موقت اطلاعات وارد شده توسط کاربر در سامانه کاربیل استفاده میشود. این ثبت به معنی ثبت نهایی نمیباشد و صرفا پیشنویس پرداخت است و باید با استفاده از order_id ثبت شده، آن سفارش تایید پرداخت شود تا مبلغ آن در کیف پول الکترونیکی اعمال شود.
Address:
{{base_url}}/api/insurance/{{license}}/order
HTTP Method:
POST
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
URL Parameters:
| Parameter | Value | Description |
| license | 9 Digit Plate Number |
پلاک طبق استاندارد پیوست 1 - ساختار پلاک |
Body: raw JSON
| Parameter | Value | Required |
| birthday | Birthday in gregorian date (Y-m-d) | yes |
| insurance_company | Id of insurance company | yes |
| previous_insurance_company | Id of previous insurance company | yes |
| previous_insurance_number | string | no |
| risk | Id of insurance risk (تخفیف شخص ثالث) | yes |
| driver_risk | Id of driver risk (تخفیف حوادث راننده) | yes |
| duration | Id of insurance duration | yes |
| coverage_rate | Id of insurance coverage rate | yes |
| property_damage | Id of property damage | yes |
| health_damage | Id health damage | yes |
| driver_damage | Id of driver damage | yes |
| current_insurance_deadline | Date of current insurance deadline (Gregorian Format: Y-m-d) | yes |
| insurer_info | Json of insurer info:
|
yes |
| city_id | Id of city | yes |
| address | String of address | yes |
| vehicle_owner_changed | Boolean | no |
| real_user_id | Integer | no |
| birth_year | عددی بین 1300 تا 1398 | no |
| payment_type | CASH = پرداخت نقدی
INSTALLMENT = پرداخت اقساطی |
no |
| build_year | Persian year (e.g.1400) or Gregorian (eg. 2020), | yes |
| car_model_id | Id of car model | yes |
| unique_code | string | no |
| mobile | string | no |
| car_usage | Id of car usage | yes |
| buyer_id | شناسهی رشتهای یا عددی دلخواه از سمت سرویسگیرنده که کاربیل به وسیله آن، موارد دارای مشکل را از سمت سرویس گیرنده پیگیری میکند. | yes |
Body (SUCCESS):
{
"order_id": ****,
"price": 15786810
}
Body (BAD_REQUEST):
{
"message": "مقادیر ورودی صحیح نیست".,
"errors": {
"Input_parameter_name": [
"The selected parameter name is invalid."
],
. . .
},
}
Body (UNPROCESSABLE_ENTITY):
{
"error": true,
"errorCode": INVALID_DATA,
"errorMessage": "بیمهنامهای با مشخصات وارد شده یافت نشد"
}
Body (INTERNAL_SERVER_ERROR):
{
"error": true,
"errorCode": "Internal Server Error",
"errorMessage": "Something went wrong"
}
با استفاده از این وبسرویس، مدارک دریافت شده از کاربر شامل تصاویر پشت و رو از کارت ماشین و تصاویر پشت و رو از گواهینامهی کاربر را بارگذاری میکنید.
Address:
{{base_url}}/api/insurance/{{insuranceOrder}}/docs
HTTP Method:
POST
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
URL Parameters:
| Parameter | Value |
| insuranceOrder | شناسه سفارش ثبت شده |
Body: form-data
| Parameter | Type |
| card_front_image | file/image |
| card_back_image | file/image |
| license_front_image | file/image |
| license_back_image | file/image |
Body (SUCCESS):
{
"message": "Images successfully uploaded.",
"data": [
"card_front_image": "file-name.mime",
"card_back_image": "file-name.mime",
"license_front_image": "file-name.mime",
"license_back_image": "file-name.mime",
]
}
Body (UNAUTHORIZED):
{
"message": "UN_AUTHORIZED",
"Error": true
}
Body (INTERNAL_SERVER_ERROR):
{
"error": true,
"message": "خطایی در سمت سرور رخ داد."
}
با استفاده از این وبسرویس، سفارش بیمه ثبت شده پرداخت میشود و مبلغ سفارش از کیف پول شما کم خواهد شد.
Address:
{{base_url}}/api/insurance/order/{{insuranceOrder}}/confirm
HTTP Method:
POST
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
URL Parameters:
| Parameter | Value |
| insuranceOrder | شناسه سفارش ثبت شده |
Body: raw JSON
| Parameter | Value |
| reference_code | شناسهی رشتهای یا عددی دلخواه از سمت سرویسگیرنده که کاربیل به وسیله آن، موارد دارای مشکل را از سمت سرویس گیرنده پیگیری میکند. |
Body (SUCCESS):
{
"error": false,
"reference_code": ****,
"price": 15786810
}
Body (UNAUTHORIZED):
{
"message": "UN_AUTHORIZED",
"Error": true
}
Body (BAD_REQUEST):
{
"message": "شارژ حساب کاربری شما برای انجام عملیات کافی نمیباشد",
"Error": true
}
Body (UNAUTHORIZED):
{
"message": "کد مرجع تکراری میباشد",
"Error": true
}
Body (INTERNAL_SERVER_ERROR):
{
"error": true,
"message": "خطایی در سمت سرور رخ داد."
}
در بعضی مواقع امکان اعلام مغایرت مبلغ بیمه نامه توسط نماینده بیمه وجود دارد، که میتواند علت های مختلفی داشته باشد از جمله اشتباه وارد شدن موارد تاثیر گذار توسط کاربر، قیمت دهی اشتباه و یا موارد دیگر. بعد از اعلام مغایرت قیمت توسط نماینده بیمه و تیم صدور، این مغایرت قیمت به همراه مبلغ در وبهوک ارسال میشود. مغایرت مبلغ میتواند منفی یا مثبت باشد. منفی به معنای اینکه به میزان گفته شده باید به کاربر عودت داده شود. و مثبت به این معناست که به همان میزان از کاربر باید دریافت شود. بعد از انجام عملیات مربوطه باید سرویس رفع مغایرت فراخوانی شود تا فرایند صدور ادامه پیدا کند:
Address:
{{base_url}}/api/insurance/order/{{insuranceOrder}}/resolve
HTTP Method:
PUT
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
URL Parameters:
| Parameter | Value |
| insuranceOrder | شناسه سفارش ثبت شده |
با استفاده از این وبسرویس، از آخرین وضعیت بیمه مطلع شوید.
Address:
{{base_url}}/api/insurance/{{insuranceOrder}}/follow-up
HTTP Method:
GET
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
Body (SUCCESS):
{
"data": {
"id": 1,
"buyer_id": "INSURANCE_1",
"car_id": 1,
"car_usage_id": 1,
"production_year": 1400,
"insurance_company_id": 1,
"property_damage_risk_id": 1,
"driver_life_damage_risk_id": 1,
"coverage_rate_id": 1,
"property_damage_id": 1,
"vehicle_owner_changed": false,
"health_damage_id": 1,
"driver_damage_id": 1,
"first_name": "صادق",
"last_name": "زارعیان",
"national_code": "**********",
"pay_status": "PAID",
"temporary_price": 50000000,
"insurance_image": "",
"insurance_supplement_image": "",
"conflict_price": 0,
"insurance_type": "THIRD_PARTY_INSURANCE",
"payment_type": "INSTALLMENT",
"price": 50000000,
"status": "CONFLICT_RESOLVED",
"birthday": "1998-02-20",
"mobile": "09394041410",
"installments": [
{
"type": "PRE_PAYMENT",
"price": 20000000,
"paymentDate": "2022-09-05"
},
{
"type": "INSTALLMENT",
"price": 10000000,
"paymentDate": "2022-09-30"
},
{
"type": "INSTALLMENT",
"price": 10000000,
"paymentDate": "2022-10-30"
},
{
"type": "INSTALLMENT",
"price": 10000000,
"paymentDate": "2022-11-29"
}
],
"status_updates": null,
"previous_insurance_end_date": "2022-10-11"
}
}
Body (UNAUTHORIZED):
{
"message": "شما دسترسی به این بیمهنامه ندارید",
"Error": true
}
با استفاده از این وبسرویس، لیست درخواستهایی که ما به سرویس گیرنده ارسال کردیم و با خطا مواجه شده را دریافت کنید.
Address:
{{base_url}}/api/insurance/failed-webhooks
HTTP Method:
GET
Headers:
| Header | Value |
| Accept | application/json |
| Authorization | Bearer {{token}} |
Body (SUCCESS):
{
"current_page": 1,
"data": [
{
"id": 11,
"insurance_order_id": 93463,
"error_message": "Server error: `POST https://app.itoll.ir/api/webhook/insurance` resulted in a `504 Gateway Time-out` response:
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><c (truncated...)
",
"retry_status": "FAILED",
"insurance_original_status": "ISSUED_UNCONFIRMED",
"insurance_status": "ISSUED",
"last_try": "2022-08-31",
"meta": {
"id": 484194,
"price": 13006880,
"car_id": 10422313,
"mobile": "09192250082",
"status": "ISSUED",
"birthday": "1961-09-05T20:30:00.000000Z",
"buyer_id": "INSURANCE_3110626",
"last_name": "شادرو",
"first_name": "رضا",
"pay_status": "PAID",
"car_usage_id": 1,
"installments": [],
"payment_type": "CASH",
"national_code": "0042753414",
"conflict_price": 0,
"insurance_type": "THIRD_PARTY_INSURANCE",
"status_updates": null,
"insurance_image": "484194-nkpwp.pdf",
"production_year": 1382,
"temporary_price": null,
"coverage_rate_id": 5,
"driver_damage_id": 1,
"health_damage_id": 1,
"property_damage_id": 1,
"insurance_company_id": 4,
"vehicle_owner_changed": false,
"property_damage_risk_id": 16,
"driver_life_damage_risk_id": 16,
"insurance_supplement_image": "",
"previous_insurance_end_date": "2022-08-31T19:30:00.000000Z"
},
"created_at": "2022-08-31T08:29:54.000000Z",
"updated_at": "2022-08-31T08:29:54.000000Z"
},
],
"first_page_url": "http://localhost:8000/api/insurance/failed-webhooks?page=1",
"from": 1,
"last_page": 9,
"last_page_url": "http://localhost:8000/api/insurance/failed-webhooks?page=9",
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "http://localhost:8000/api/insurance/failed-webhooks?page=1",
"label": "1",
"active": true
},
{
"url": "http://localhost:8000/api/insurance/failed-webhooks?page=2",
"label": "2",
"active": false
},
{
"url": "http://localhost:8000/api/insurance/failed-webhooks?page=3",
"label": "3",
"active": false
}
],
"next_page_url": "http://localhost:8000/api/insurance/failed-webhooks?page=2",
"path": "{{domain}}/api/insurance/failed-webhooks",
"per_page": 15,
"prev_page_url": null,
"to": 15,
"total": 20
}
با استفاده از این URl، در صورت وجود تصویر و پر بودن فیلد insurance_image در وبسرویسهای فالوآپ و وبهوک، میتوانید فایل تصویر را دریافت کنید:
Address:
{{base_url}}/insurance/file/{insurance_image}