Updated 28 September 2026 · Travo.ng
Quick answer
A delivery pricing API lets your website, app or ERP fetch a live delivery price for a specific pickup and drop-off before your customer pays. On Travo, you call GET /v1/service-quotes with a pickup and a drop-off, and you get back a price in kobo that is usually valid for about 30 minutes. You then book the job with POST /v1/orders and track it through webhooks. Access is by request, and test keys run in a sandbox with no real dispatch and no charges.
Flat delivery fees are easy to set up, but they rarely match what a rider or van actually costs on the day. In Nigeria, fuel prices move, Lagos traffic changes by the hour, and a parcel going from Ikeja to Lekki costs something very different from one going across the street. A pricing API fixes this by asking the logistics provider for a real quote every time. This guide explains how a delivery pricing API works, what the Travo API offers today (based on our developer documentation), and how to add live delivery prices to your checkout step by step.
What is a delivery pricing API?
An API (application programming interface) is a way for one piece of software to ask another for data or to trigger an action. A delivery pricing API does one job well: you send it where a package starts, where it is going and, optionally, what kind of service and weight you need, and it returns a price. The better ones also let you turn that price into a booked delivery and follow the delivery until it is complete.
For an online shop, the difference shows up at checkout. Instead of charging every customer the same ₦2,000 and hoping it evens out, you show the real delivery price for that address. Customers far away pay a fair price, customers nearby are not overcharged, and you stop absorbing losses on long or awkward deliveries.
How the Travo delivery pricing API works
The Travo API is a REST API with a base URL of https://api.travo.ng/v1. Every request is authenticated with a secret API key sent as a bearer token in the Authorization header. There are two kinds of key: travo_test_ keys for the sandbox and travo_live_ keys for production. You manage keys in the Travo Console under Developers, then API Keys.
| Endpoint | What it does | When you call it |
|---|---|---|
| GET /v1/service-quotes | Returns available delivery quotes for a pickup and drop-off pair | At checkout, when the customer enters or confirms an address |
| POST /v1/orders | Creates a delivery order that is sent for dispatch | After the customer pays or the order is confirmed |
| GET /v1/orders/{id} | Returns the current state and tracking of an order | On your order page, or when support needs a status |
Source: Travo developer documentation, services.travo.ng/developers, accessed September 2026.
Quote request parameters
| Parameter | Type | Notes |
|---|---|---|
| pickup | string | Coordinates (lat,lng), a street address, or an existing place ID. Coordinates give the most precise price; addresses are geocoded automatically. |
| dropoff | string | Same formats as pickup |
| service_type | string (optional) | The service you want quoted, for example a parcel delivery |
| scheduled_at | ISO 8601 date-time (optional) | For a pickup at a future time |
| total_weight | number (optional) | Weight in kilograms |
Source: Travo developer documentation, accessed September 2026.
A quote comes back with an id, an amount, the currency (NGN), the service_type and an expires_at time. The documentation says quotes usually remain valid for about 30 minutes.
Why the amount is in kobo
All money values in the API are in kobo, the smallest unit of the naira. The documentation gives the example of ₦2,450.00 being returned as 245000. Store and compare amounts as whole numbers in kobo, and only divide by 100 when you display a price. This avoids rounding errors that creep in when you store naira amounts with decimals.
Following a delivery with webhooks
Once an order is created, you do not need to keep polling for updates. Travo can send webhook events to a URL on your server as the order moves along.
| Webhook event | Meaning |
|---|---|
| order.created | The order has been accepted into the system |
| order.dispatched | The order has been sent for rider allocation |
| order.driver_assigned | A rider has confirmed; the driver name and phone are now on the order |
| order.picked_up | The parcel has been collected and pickup proof recorded |
| order.completed | Delivered, with a proof-of-delivery photo or PIN recorded |
| order.canceled | Cancelled by the merchant or by operations, with a reason |
Source: Travo developer documentation, accessed September 2026. Order statuses are created, dispatched, driver_assigned, picked_up, in_transit, completed and canceled.
Step-by-step: adding live delivery prices to your checkout
- Request access. Send your company name and website through the developer page. Integration accounts are approved after a short review. You can also message the Travo WhatsApp line starting with “DEV API:”.
- Build against the sandbox. Use a travo_test_ key. The sandbox gives full API behaviour but no real dispatch and no charges, so you can test every step safely.
- Capture a precise location. Ask customers to pick their address from a map or autocomplete so you can send coordinates. This gives a more accurate price than free-typed addresses.
- Request a quote at checkout. Call GET /v1/service-quotes with the pickup (your store or warehouse) and the customer drop-off. Show the amount, converted from kobo, as the delivery fee.
- Respect the expiry. Save the quote id and expires_at. If the customer takes too long, request a fresh quote before they pay.
- Create the order after payment. Call POST /v1/orders. Keep the order id with your own order record.
- Listen for webhooks. Update your order page and send customer notifications when the order is picked up and completed.
- Switch to live keys. When testing is complete, replace the test key with a travo_live_ key on your server only. Never put secret keys in a mobile app or front-end code.
Handling errors properly
| HTTP code | Meaning | What to do |
|---|---|---|
| 401 | Authentication failed | Check the API key and the Authorization header |
| 404 | Unknown resource | Check the order or quote id |
| 422 | Validation failed | Fix the request, for example a missing or unreadable address |
| 429 | Rate limited | Slow down and retry after a pause |
| 5xx | Server error | Safe to retry idempotently |
Source: Travo developer documentation, accessed September 2026.
A good checkout never leaves the customer stuck. If a quote fails, show a clear message and a fallback, such as “delivery fee confirmed after order”, rather than an error screen.
Flat-rate delivery vs live pricing
| Flat rate | Live pricing API | |
|---|---|---|
| Set-up effort | Very low | Some development work |
| Accuracy for each order | Low: near and far pay the same | High: price reflects the actual trip |
| Risk of losing money on delivery | Higher on long or awkward trips | Lower |
| Customer trust | Customers nearby may feel overcharged | Customers see the real fee before paying |
| Booking and tracking | Usually manual | Automated through orders and webhooks |
Travo comparison for planning purposes.
Who benefits most
- Online stores and social sellers who ship many orders a day and want accurate fees at checkout.
- Marketplaces that need to price delivery between many sellers and buyers.
- Restaurants, pharmacies and grocery shops that run same-day deliveries within a city. See our same-day delivery service.
- Businesses with a warehouse that want orders to flow straight from stock to dispatch. See warehouse fulfilment.
- Companies with their own apps or ERPs that want delivery booking inside existing tools.
If you only send a few parcels a week, you may not need an integration at all. You can book each delivery in the Travo app or read our guide to interstate package delivery in Nigeria.
Tips for a smooth integration
- Keep your store or warehouse pickup as saved coordinates so every quote starts from the same exact point.
- Send the total_weight when you know it, especially for heavier orders, so the quote fits the load.
- Log every quote id and order id. It makes support conversations quicker.
- Show customers the tracking status from webhooks rather than asking them to call.
- Test cancellations in the sandbox so your system handles order.canceled cleanly.
Need deliveries without writing code?
Book a parcel pickup in the Travo app, or ask us on WhatsApp about API access for your business.
Frequently asked questions
What is a delivery pricing API?
It is a service your software calls to get a delivery price for a specific pickup and drop-off. Travo’s version returns a quote in kobo that you can show at checkout and then turn into a booked order.
How long is a Travo delivery quote valid?
Each quote has an expires_at time. The documentation says quotes typically remain valid for about 30 minutes. Request a new one if it has expired.
Does testing cost anything?
No. Test keys (travo_test_) give full API behaviour with no real dispatch and no charges.
How do I get API keys?
Request access with your company name and website on the developer page. After a short review, you manage keys in the Travo Console under Developers.
Why are prices returned in kobo?
Whole numbers in kobo avoid decimal rounding problems. For example, ₦2,450.00 is returned as 245000.
Can I track deliveries automatically?
Yes. Subscribe to webhook events such as order.picked_up and order.completed, or call GET /v1/orders/{id} for the current state.
Related guides
- Travo developer and API documentation
- Business delivery with Travo
- Best logistics app in Nigeria
- All-in-one delivery and travel app in Nigeria
- How to track a package with a tracking number
Sources: Travo developer documentation (services.travo.ng/developers), accessed 28 September 2026. API details can change, so always check the current documentation before you go live. Fares and prices change often — confirm before you travel or pay.
