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
}
]