Skip to content
LocQar
Developers

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

Quickstart

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.

Base URL
https://api.locqar.com
Auth header
x-api-key: lq_live_…

Use lq_test_… keys for sandbox runs that don't hit production.

Get a key

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"
  }'
No auth required

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.

GET/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.

GET/api/public/sellersList all verified sellers (paginated).
curl https://api.locqar.com/api/public/sellers
GET/api/public/sellers/:codeFull profile for a single seller by their public code.
curl https://api.locqar.com/api/public/sellers/SHOP-001
POST/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.

GET/api/public/agentsList active Dropbox Agents (filter by city via query).
curl https://api.locqar.com/api/public/agents?city=accra
GET/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
POST/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.

GET/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.

POST/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}'
GET/api/public/orders/:referenceRead order state by reference.
curl https://api.locqar.com/api/public/orders/ORD-123
POST/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"}'
Auth required

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.

POST/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"}'
GET/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_…'
POST/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"}]}'
GET/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_…'
POST/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_…'
GET/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_…'
GET/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_…'
Outbound events

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 lifecycle
  • dropoff.created
  • dropoff.deposited
  • dropoff.sealed
  • dropoff.swept
  • dropoff.delivered
  • dropoff.picked_up
  • dropoff.cancelled
Returns
  • return.authorised
  • return.deposited
  • return.delivered
Relay (cross-location)
  • relay.collected
  • relay.arrived_at_sorting
  • relay.out_for_delivery
  • relay.delivered
  • relay.incident
Payments (COD)
  • payment.initiated
  • payment.paid
  • payment.failed
  • payment.refunded
Reputation
  • agent.rated
Sample payload
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"
  }
}
Ready to ship?

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.