Developer integration guide
Technical instructions for website developers. Return to the customer guide.
Developer integration reference
For the developer connecting your website: Download API specification
1. Courier provider IDs
| Provider ID | Courier |
|---|---|
| 9 | Internet Express |
| 39 | Citi Sprint |
This mapping is fixed. Use providerId in the SDK, query
string or submission body, or the X-Provider-Id header.
Conflicting selectors and unknown IDs are rejected. Public location
requests default to Internet Express when omitted.
GET /v1/locations?providerId=9 GET /v1/locations?providerId=9&q=Cape%20Town
Public locations work from customer websites without authentication. Rate limits still apply. Responses include providerId, providerName, locations, pagination and last successful update.
2. Try the embedded selector and map
This is the Internet Express SDK. Shared map access is included. Choose whether to show the map.
Customise the branding placeholders and colours, then select Update preview.
Loading environment…
Selection returned to your checkout
Choose a location to inspect the callback payload.
3. Embed in your website
Copy this code, using your deployed middleware HTTPS address. There is no token exchange. The shared map key is included; the operator authorizes customer hostnames for tiles.
showMap:false gives a list-only selector. For a dialog
set mode:'modal' and call open(). Use
selectedId or restore(id) to restore a
choice; call destroy() on unmount.
onSelect and the bobbox:select event
return provider ID/name and a validated location. Send the provider
ID and stable location.id to your order backend. Selection does not
reserve a compartment or create a shipment.
4. Submit shipments through your backend
After a locker selection, your backend calls POST /v1/rates with providerId 9 (Internet Express) or 39 (Citi Sprint), the location ID, trusted collection address and parcel. Display the returned services and prices for customer selection, then submit quoteId and the chosen serviceLevelCode to POST /v1/shipments with trusted order/contact details and an Idempotency-Key.
Rate and shipment requests require the merchant's authentication key. Keep it on your backend; public browsing is unauthenticated. Live submission uses that merchant's own configured Shiplogic credentials and account. Locker mappings are discovered automatically. Production requires a registered merchant; invalid or revoked keys return 401.
GET /v1/integrations/{id} retrieves a result using X-Provider-Id and the merchant key. Quotes and results belong to the authenticated merchant. Duplicate submissions replay saved results; changed input with the same key returns 409. Pending/unknown results require reconciliation.
5. API endpoints
Generated from API specification. Listing supports q, paired latitude/longitude, limit up to 100, offset and providerId. Download the API specification for full schemas/examples/errors.
