Register on the QikTruck platform at https://qiktruck.co.za/developers
Obtain your API keys for the sandbox and production environment: XXXXXX-XVXVXVXVXVXVXVX
Start scheduling trips in your apps.
Trip Price is measured in South African Cents.
💰 Price Example: sellingPrice: 12500 means R125.00 or One hundred and twenty five Rands.
Trip Distance is measured in Meters.
📍 Distance example: tripDistance: 64500 means 64 Kilometers + 500 metres.
Trip Duration is measured in Seconds:
🕙 Time example: tripDuration: 300 means 5 minutes while 28 800 means 8 hours.
🚚 🚚 🚚
Method: GET
URL: {{url}}/vehicle-types
Description:
This endpoint returns a list of available vehicle configurations, categories, and detailed information about each vehicle type.
Array of objects.
Detailed information about each vehicle type. Each object has the following properties:
type
: string. The type of the vehicle.bodylabel
: string. The label of the vehicle's body type.displaytype
: string. The display name of the vehicle type.tonnes
: number. The cargo capacity of the vehicle in tonnes.loadgroup
: string. The load group of the vehicle.tip
: object. Tips and information about the vehicle, with properties like benefits
, drivertip
, examples
, and longform
.categories
: array of strings. The categories of deliveries that this vehicle type can handle.ResponseStatus: OK (200)
Response Body:
[ { "type": "fleet", "bodylabel": "open body", "displaytype": "open mini bakkie", "tonnes": 0, "loadgroup": "mini van", "tip": { "benefits": "driver, fuel and insurance included.", "drivertip": "minivan bakkie", "heading": "", "shortform": "", "examples": "furniture, packed goods, handheld-goods, materials, packages", "longform": "this vehicle is perfect for transporting a wide range of goods and materials. " }, "categories": [ "furniture", "equipment", "materials", "fresh-goods", "handheld-items" ] } ]
Method: POST
URL: {{url}}/truckype-quote
Description:
The request body should be a JSON object with the following properties:
trucktype
(string): The type of truck required for the delivery.collection
(object): The collection point with lat
and lng
properties for latitude and longitude respectively.delivery
(object): The delivery point with lat
and lng
properties for latitude and longitude respectively.category
(string): The category of items to be delivered.promocode
(string): The promo code for the delivery.runners
(number): The number of runners required for the delivery.floors
(number): The number of floors involved in the delivery.description
(string): A description of the delivery{ "description": "Testing usage", "trucktype": "1.5tonopen", "delivery": { "lat": -25.7478676, "lng": 28.2292712 }, "collectiondate": "01-01-24", "collectiontime": "11:11", "email": "user@mail.com", "mobilenumber": "0xx36xx27x", "firstname": "Dineo ea1652b0", "lastname": "Assistant ", "collection": { "lat": -26.111657, "lng": 27.9903441 }, "category": "handheld-items", "promocode": "", "runners": 1, "floors": 0 }
ResponseStatus: OK (200)
Response Body:
{ "trucktype": "1.5tonopen", "tripdistance": 64508, "tripduration": 3022, "sellingprice": 295000, "quoteid": "8e28cac4-95b8-4433-807b-4deb7d59e9f0", "discount": 0 }
Method: POST
URL: {{url}}/accept-quote
Description:
The request body should be a JSON object with the following properties:
acceptedquoteid
(string): the id of the quotation accepted by the user.{ "acceptedquoteid": "8e28cac4-95b8-4433-807b-4deb7d59e9f0" }
ResponseStatus: OK (200)
Response Body:
{ "quoteid": "8e28cac4-95b8-4433-807b-4deb7d59e9f0" }
Method: POST
URL: {{url}}/track-order
Description:
The request body should be a JSON object with the following properties:
{ "orderid": "171f420f-3bda-42a8-a1c2-8ed245044297" }
ResponseStatus: OK (200)
Response Body:
{ "trips": [ { "paymentid": null, "orderid": "171f420f-3bda-42a8-a1c2-8ed245044297", "gatewaypaymentid": null, "paymentstatus": null, "itemname": null, "itemdescription": null, "firstname": "null", "lastname": "null", "email": "sdsd@mail.com", "mobilenumber": "078xxxXXXX", "orderstatus": "in-review", "paymentkey": null, "signature": null, "amountgross": null, "amountfee": null, "amountnet": null, "dateadded": "2024-02-06T17:30:20.017Z", "paymenttype": null, "licenseplatenumber": "1.5tonopen-xx", "quoteid": "8e28cac4-95b8-4433-807b-4deb7d59e9f0", "trucktype": "1.5tonopen", "collectiondate": "01-01-24", "collectiontime": "11:11", "sellingprice": 295000, "collectionlat": -26.111657, "collectionlng": 27.9903441, "deliverylat": -25.7478676, "deliverylng": 28.2292712, "description": "testing usage>>>", "vehicleid": "0acdf065-f45a-48a8-9163-0a76e4882ea7", "category": "handheld-items", "promocode": "", "runners": 1, "floors": 0, "driverpaid": 0, "customquote": 0, "acceptedoffer": null, "customerid": "ba5bef7a-771d-480a-9807-43c7e2f74ba0", "customercontractid": null, "fleetstatus": "single", "returntrip": null, "goods": "[]", "servicefee": 0.2, "driverfirstname": "1.5tonopen1.5tonopen-27.475780000000004", "driverlastname": "Driver1.5tonopen-27.475780000000004", "drivermobilenumber": "060-27.475780000000004", "driverhomelat": -26.09099, "driverhomelng": 28.00275 } ] }
Method: POST
URL: {{url}}/cancel-order
Description:
The request body should be a JSON object with the following properties:
{ "orderid": "e956da61-d052-4e41-b440-bd0cf92b6c8b", "reason":"customer changed mind" }
ResponseStatus: Bad Request (400)
Response Body:
{ "orderid": "e956da61-d052-4e41-b440-bd0cf92b6c8b", "status": "no update" }
Method: POST
URL: {{url}}/update-order-contacts
Description:
The request body should be a JSON object with the following properties:
{ "orderid": "30575d22-c068-4626-855c-97d44ecce445", "firstname": "ea1652b0", "lastname": "assistant", "email": "test@qruck.coz.a", "mobilenumber": "06613488888", "collectiondate": "2023-05-15", "collectiontime": "20:30", "description": "testing usage", "category": "handheld-items" }
ResponseStatus: OK (200)
Response Body:
true if you own this field
Method: GET
URL: {{url}}/track-orders
Description:
Track all orders from your profile
ResponseStatus: OK (200)
Response Body:
[ { "paymentid": null, "orderid": "8c31ebb0-5c8e-4455-a8ea-906f5df21b8f", "gatewaypaymentid": null, "paymentstatus": null, "itemname": null, "itemdescription": null, "firstname": "null", "lastname": "null", "email": "sdsd@mail.com", "mobilenumber": "078xxxXXXX", "orderstatus": "in-review", "paymentkey": null, "signature": null, "amountgross": null, "amountfee": null, "amountnet": null, "dateadded": "2024-02-06T17:34:35.518Z", "paymenttype": null, "licenseplatenumber": "1.5tonopen-xx", "quoteid": "8e28cac4-95b8-4433-807b-4deb7d59e9f0", "trucktype": "1.5tonopen", "collectiondate": "01-01-24", "collectiontime": "11:11", "sellingprice": 295000, "collectionlat": -26.111657, "collectionlng": 27.9903441, "deliverylat": -25.7478676, "deliverylng": 28.2292712, "description": "testing usage>>>", "vehicleid": "1e7c63af-5fa3-45e8-9751-74e6fcfde0a7", "category": "handheld-items", "promocode": "", "runners": 1, "floors": 0, "driverpaid": 0, "customquote": 0, "acceptedoffer": null, "customerid": "ba5bef7a-771d-480a-9807-43c7e2f74ba0", "customercontractid": null, "fleetstatus": "single", "returntrip": null, "goods": "[]", "servicefee": 0.2, "driverfirstname": "1.5tonopen1.5tonopen-27.475780000000004", "driverlastname": "Driver1.5tonopen-27.475780000000004", "drivermobilenumber": "060-27.475780000000004", "driverhomelat": -26.09099, "driverhomelng": 28.00275 } ]