7feastr
Get Rate & ETAAPITrack ShipmentContactBlog
LoginRegister
Documentation/Logistics API
PricingMenu
Overview

Get started

Getting startedAuthenticationSandbox and production

Plan your integration

Coverage & delivery timesPricing

API reference

Quotes & shipmentsTrackingWallet & disputes

Integrate

WebhooksErrors & rate limits

Resources

Changelog
K
Overview

Get started

Getting startedAuthenticationSandbox and production

Plan your integration

Coverage & delivery timesPricing

API reference

Quotes & shipmentsTrackingWallet & disputes

Integrate

WebhooksErrors & rate limits

Resources

Changelog
7feastr

Nigeria's food delivery and logistics infrastructure. Order from your favourite local restaurants, or ship anywhere in the country with 7feastr Logistics.

support@7feastr.com
+234 905 606 2230
Lagos, Nigeria

Company

  • About Us
  • Blog

Services

  • Nearby Restaurants
  • Logistics
  • Track Shipment
  • API Documentation

Food in Kaduna

  • Food Delivery in Kaduna
  • Shawarma
  • Jollof Rice
  • Chicken
  • Suya & Grills
  • Pizza
  • Swallow & Soup

Partners

  • Become an Agent
  • Become an Ambassador

Support

  • FAQ
  • Contact
  • System status
  • Privacy Policy
  • Terms of Service
  • Monetary Policy
  • Refund Policy

© 2026 7feastr Technologies Ltd. All rights reserved.

Plan your integration

Pricing

How a delivery price is built, how VAT and rounding work, and how you pay from your wallet.

Last updated 21 October 2026

Every shipment has one all-in price, worked out by our live rate engine when you request a quote. The price you are quoted is exactly the price charged to your wallet. There are no hidden fees.

What goes into a price

A price depends on four things:

FactorHow it affects the price
RouteThe pickup and dropoff locations and the distance between them, and whether the trip is same-state (intrastate) or interstate
WeightpackageWeightKg, in kilograms
Service typeconsolidated (shared vehicle) or dedicated (a full vehicle for your load)
Declared valueThe optional declaredValue of the goods in NGN, used for insurance cover

Doorstep pickup and door delivery are always included. You don't pay extra to have a rider collect from your door or deliver to your customer's door.

VAT and rounding

Each quote returns a pricing object:

FieldDescription
pricing.subtotalThe delivery price before VAT, in NGN, rounded up to the nearest ₦100
pricing.vatPercentThe VAT rate: 7.5
pricing.vatAmount7.5% of the subtotal, shown separately
pricing.totalsubtotal + vatAmount. This is the amount charged to your wallet

For example, a subtotal of ₦7,900 carries VAT of ₦592.50, for a total of ₦8,492.50. Amounts are numbers in naira, and vatAmount and total can have kobo.

The quoted price is the charged price

When you create a shipment with a quoteId, your wallet is debited exactly pricing.total from that quote, even if rates change in between. The shipment stores the same subtotal, vatPercent, vatAmount and price (the total) that the quote returned.

  • A quote is valid for 10 minutes (see quoteExpiresAt) and can be used once.
  • After it expires or has been used, request a new quote. The new price can be different.
  • If you create a shipment without a quoteId, it is priced live at that moment in exactly the same way.

Tip

Show your customer pricing.total at checkout and create the shipment with the same quoteId within 10 minutes. You will be charged exactly what your customer saw.

Consolidated and dedicated

ConsolidatedDedicated
serviceTypeconsolidateddedicated
What you getYour parcel shares a vehicle with other parcels on the same routeA full vehicle reserved for your load
Billed byRoute and weightRoute and vehicle
Weight limit0.01 kg to 200 kg0.01 kg to 4,500 kg
VehiclesSame-city parcels go by motorbike up to 20 kg and by van above 20 kgVan up to 1,000 kg, truck above 1,000 kg
Best forEveryday parcels and e-commerce ordersBulky, heavy or high-value loads

A weight outside the limit for the service returns 400 invalid_request, for example "packageWeightKg must be between 0.01 and 200 kg for consolidated shipments".

Paying from your wallet

Shipments are prepaid from your 7feastr wallet for the environment you are using.

  • Funding: fund your production wallet by card or bank transfer (via Paystack) from the merchant dashboard. Your sandbox wallet starts with ₦500,000 of test credit.
  • Charging: the wallet is debited pricing.total when the shipment is created. The shipment and the charge are saved together, so you never get one without the other.
  • Insufficient funds: if your balance is lower than the total, POST /shipments returns 402 insufficient_funds and nothing is created. Your quote stays valid for the rest of its 10 minutes, so you can fund your wallet and retry with the same quoteId.
  • Refunds: if you cancel a shipment before a rider is assigned, the full amount goes back to your wallet automatically, and you receive the shipment.refunded webhook.
JSON
{
  "success": false,
  "error": {
    "code": "insufficient_funds",
    "message": "Insufficient wallet balance"
  }
}

Example sandbox quotes

Warning

These are indicative sandbox prices from our test delivery network's test rate table. They show the shape of real quotes, not live prices. Production quotes can differ, so always read the price from the API.

RouteServiceWeightSubtotalVAT (7.5%)Total
Ikeja → Lekki (Lagos)Consolidated2 kg₦7,900₦592.50₦8,492.50
Lagos → KadunaConsolidated5 kg₦18,700₦1,402.50₦20,102.50
Ikeja → Lekki (Lagos)Dedicated (van)60 kg₦60,400₦4,530₦64,930

Worked example

Request a quote for the second route in the table, a 5 kg consolidated parcel from Lagos to Kaduna:

cURL
curl -X POST "https://api.7feastr.com/api/v1/logistics/v1/rates/estimate" \
  -H "Authorization: Bearer $SEVENFEASTR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "serviceType": "consolidated",
    "pickupAddress": "14 Allen Avenue",
    "pickupCity": "Ikeja",
    "pickupState": "Lagos",
    "dropoffAddress": "22 Ahmadu Bello Way",
    "dropoffCity": "Kaduna",
    "dropoffState": "Kaduna",
    "packageWeightKg": 5
  }'

The response carries the price breakdown in pricing:

JSON
{
  "success": true,
  "message": "OK",
  "sandbox": true,
  "data": {
    "quoteId": "QUOTE-3B7D19E0A4C24F6E",
    "quoteExpiresAt": "2026-10-21T10:10:00.000Z",
    "tripType": "interstate",
    "serviceType": "consolidated",
    "pickup": { "address": "14 Allen Ave, Ikeja, Lagos, Nigeria", "city": "Ikeja", "state": "Lagos", "lat": 6.6018, "lng": 3.3515 },
    "dropoff": { "address": "22 Ahmadu Bello Way, Kaduna, Nigeria", "city": "Kaduna", "state": "Kaduna", "lat": 10.5222, "lng": 7.4383 },
    "distanceKm": 768.4,
    "packageWeightKg": 5,
    "etaRawMinutes": 655,
    "etaBufferedMinutes": 4320,
    "etaDays": 3,
    "etaAt": "2026-10-24T10:00:00.000Z",
    "pricing": { "subtotal": 18700, "vatPercent": 7.5, "vatAmount": 1402.5, "total": 20102.5 },
    "currency": "NGN"
  }
}

Read the three amounts straight from the response and format them for your checkout. Don't recompute them on your side.

// Node.js 18+: `quote` is the parsed JSON body above
const { subtotal, vatAmount, total } = quote.data.pricing;
const naira = new Intl.NumberFormat("en-NG", { style: "currency", currency: "NGN" });

console.log(`Delivery: ${naira.format(subtotal)}`); // Delivery: ₦18,700.00
console.log(`VAT (7.5%): ${naira.format(vatAmount)}`); // VAT (7.5%): ₦1,402.50
console.log(`Total: ${naira.format(total)}`); // Total: ₦20,102.50
# `quote` is the parsed JSON body above
pricing = quote["data"]["pricing"]

print(f"Delivery: ₦{pricing['subtotal']:,.2f}")  # Delivery: ₦18,700.00
print(f"VAT (7.5%): ₦{pricing['vatAmount']:,.2f}")  # VAT (7.5%): ₦1,402.50
print(f"Total: ₦{pricing['total']:,.2f}")  # Total: ₦20,102.50

Create the shipment with quoteId: "QUOTE-3B7D19E0A4C24F6E" within 10 minutes and your wallet is debited exactly ₦20,102.50. See Quotes & shipments.

PreviousCoverage & delivery timesNext Quotes & shipments

On this page

  • What goes into a price
  • VAT and rounding
  • The quoted price is the charged price
  • Consolidated and dedicated
  • Paying from your wallet
  • Example sandbox quotes
  • Worked example