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.

Quickstart

Make your first call in 60 seconds

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

Sign in to the Business Portal → Settings → API keys.

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 and retried with exponential back-off for up to 24 hours.

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?

Create a business account, generate a sandbox key, and have a working integration before lunch.