The LocQar API
for builders in Ghana.
REST endpoints, partner-key auth, and outbound webhooks. Integrate smart-locker delivery into your checkout, OMS, or courier app in an afternoon.
Already a partner? Sign in to the Business Portal
Make your first call in 60 seconds
No key yet? Everything under public endpoints is unauthenticated, you can try the API before you talk to us.
https://api.locqar.comx-api-key: lq_live_…Use lq_test_… keys for sandbox runs that don't hit production.
Keys live inside a business account. Apply here; once it is approved, open the Business Portal and generate one on the API keys tab.
curl -X POST https://api.locqar.com/api/partner/shipments \
-H 'x-api-key: lq_live_…' \
-H 'Content-Type: application/json' \
-d '{
"recipientName": "Ama",
"recipientPhone": "+233509876543",
"size": "M",
"reference": "#1001"
}'Public endpoints
These mirror what locqar.com exposes to anonymous users. Safe to call from a browser. Rate-limited per IP.
Tracking
Look up package status by waybill. No auth, same data the public tracking page renders.
/api/public/track/:waybillStatus, station and ETA for a waybill or pickup code.curl https://api.locqar.com/api/public/track/LQ-8294
Sellers
Verified-seller directory powering the Marketplace and Verify pages.
/api/public/sellersList all verified sellers (paginated).curl https://api.locqar.com/api/public/sellers
/api/public/sellers/:codeFull profile for a single seller by their public code.curl https://api.locqar.com/api/public/sellers/SHOP-001
/api/public/sellers/applySubmit a seller verification application.curl -X POST https://api.locqar.com/api/public/sellers/apply \
-H 'Content-Type: application/json' \
-d '{"businessName":"Acme","phone":"+233241234567"}'Agents
Dropbox-agent directory and rating submissions.
/api/public/agentsList active Dropbox Agents (filter by city via query).curl https://api.locqar.com/api/public/agents?city=accra
/api/public/agents/verify?code=…Verify an agent code printed on a sealed parcel.curl https://api.locqar.com/api/public/agents/verify?code=AG-1234
/api/public/agents/rateSubmit a 1-5 star rating for the agent who handled a ticket.curl -X POST https://api.locqar.com/api/public/agents/rate \
-H 'Content-Type: application/json' \
-d '{"ticketReference":"TKT-9","rating":5}'Pricing
Public price book for size + duration combos.
/api/public/pricingReturns the active price matrix (per-size, per-day in GH₵).curl https://api.locqar.com/api/public/pricing
Orders & dropoffs
Customer-facing flows for buy-with-escrow and dropoff PIN creation.
/api/public/ordersCreate a buy-with-escrow order against a verified seller.curl -X POST https://api.locqar.com/api/public/orders \
-H 'Content-Type: application/json' \
-d '{"sellerCode":"SHOP-001","amountCents":15000}'/api/public/orders/:referenceRead order state by reference.curl https://api.locqar.com/api/public/orders/ORD-123
/api/public/dropoff/drop-off-pinGenerate a drop-off PIN for the sender (Customer-app uses this).curl -X POST https://api.locqar.com/api/public/dropoff/drop-off-pin \
-H 'Content-Type: application/json' \
-d '{"phone":"+233241234567","size":"M"}'Partner endpoints
Send x-api-key on every request. Every call is automatically scoped to your business. Tier shown is the minimum subscription that unlocks the route.
/api/partner/shipmentsStarter+Register one shipment, get back a drop-off PIN for your courier.curl -X POST https://api.locqar.com/api/partner/shipments \
-H 'x-api-key: lq_live_…' \
-H 'Content-Type: application/json' \
-d '{"recipientPhone":"+233509876543","size":"M","reference":"#1001"}'/api/partner/shipmentsStarter+List all shipments for the partner this key belongs to.curl https://api.locqar.com/api/partner/shipments -H 'x-api-key: lq_live_…'
/api/partner/shipments/bulkGrowth+Register up to 500 shipments in one call. Returns per-row PINs and errors.curl -X POST https://api.locqar.com/api/partner/shipments/bulk \
-H 'x-api-key: lq_live_…' \
-H 'Content-Type: application/json' \
-d '{"rows":[{"recipientPhone":"+233...","size":"M"}]}'/api/partner/shipments/:refStarter+Live status for one shipment (locker, pickup-code state, COD).curl https://api.locqar.com/api/partner/shipments/REF-1001 -H 'x-api-key: lq_live_…'
/api/partner/shipments/:ref/resend-pickup-smsGrowth+Re-fire the pickup SMS to the recipient (rate-limited per shipment).curl -X POST https://api.locqar.com/api/partner/shipments/REF-1001/resend-pickup-sms \ -H 'x-api-key: lq_live_…'
/api/partner/lockersStarter+Locker directory for your checkout selector (filter by city or region).curl 'https://api.locqar.com/api/partner/lockers?city=accra' -H 'x-api-key: lq_live_…'
/api/partner/quoteStarter+Price quote (incl. COD fees) before committing a shipment.curl 'https://api.locqar.com/api/partner/quote?size=M&hours=72' -H 'x-api-key: lq_live_…'
Webhooks
Subscribe in the Business Portal → Webhooks. Every delivery is signed with an HMAC-SHA256 in X-LocQar-Signature. A 5xx or a timeout is retried, three attempts in all, spaced 5s then 30s. A 4xx is treated as a rejection and never retried. After that the delivery is marked failed, and you replay it yourself from the delivery log in the portal.
dropoff.createddropoff.depositeddropoff.sealeddropoff.sweptdropoff.delivereddropoff.picked_updropoff.cancelled
return.authorisedreturn.depositedreturn.delivered
relay.collectedrelay.arrived_at_sortingrelay.out_for_deliveryrelay.deliveredrelay.incident
payment.initiatedpayment.paidpayment.failedpayment.refunded
agent.rated
POST https://your-app.example.com/locqar-hook
X-LocQar-Signature: t=1716552000,v1=8f3e…
Content-Type: application/json
{
"event": "dropoff.picked_up",
"occurredAt": "2026-05-24T10:14:33.512Z",
"data": {
"reference": "REF-1001",
"waybill": "LQ-8294",
"pickupTerminal": "accra-mall",
"recipientPhone": "+233509876543",
"pickedUpAt": "2026-05-24T10:14:30.000Z"
}
}Apply for a business account. Once it is approved you can generate a sandbox key in the portal and build the whole integration against it before a single real parcel moves. Not sure it fits what you are building? Ask us first, a person answers.
Or email business@locqar.com.