What you can do
The Shipping API exposes one consistent surface for three Indonesian carriers and the merchant’s saved pickup origins. With a single bitbybit API key you can:- Manage store locations (pickup warehouses).
- Discover which carriers are connected and what services each one offers.
- Look up carrier-specific dictionaries (KiriminAja
kecamatan/kelurahanIDs, RideBlitz allowed cities). - Quote shipping fees with a unified request — the response shape is the same regardless of provider.
- Create, update, cancel, and track shipments linked to your existing orders.
Carriers covered
GoSend
Gojek instant motorcycle / car delivery within select Indonesian cities. Best for same-day intra-city.
KiriminAja
Aggregator exposing JNE, J&T, SiCepat, Anteraja, Lion Parcel, Ninja Xpress, TIKI, NCS, SAP, IDX, J&T Cargo, and Sentral through the Express service. On-demand Instant delivery via KiriminAja’s GoSend / Grab Express / Borzo integrations is coming soon — not yet available to Open API consumers.
RideBlitz
Bali- and Java-focused electric-fleet instant courier with one-, two-, three-, and four-hour SLAs.
Typical end-to-end flow
1
Confirm provider is connected
Call
GET /shipping/providers to see which carriers your merchant has linked. If connected: false, prompt the user to finish setup in Settings > Integrations.2
Resolve addresses
For KiriminAja Express you need
kecamatanId and kelurahanId. Use GET /shipping/coverage/provinces → …/cities → …/districts → …/sub-districts. For RideBlitz you need a pickupCity from GET /shipping/coverage/cities?provider=ride_blitz.3
Quote the fee
Call
POST /shipping/calculate-fee with provider, origin, destination, package, and any provider-specific options. The response always normalizes into { options: [{ serviceCode, serviceName, price, currency, … }] }.4
Create the shipment
Call
POST /shipping/shipments with the chosen provider, serviceName, fee, full sender + delivery + package, and orderId. Leave autoBook: false (default) to just persist, or set true to immediately request pickup.5
Book / cancel / track
Use
PATCH /shipping/shipments/{id} with triggerBooking: true to request pickup later, POST .../cancel to cancel, and GET .../tracking to read the live carrier state.Authentication
All endpoints accept your bitbybit API key in thex-api-key header. Create one in Settings > Developer. The key must have the BITCRM product scope and an orders resource scope; the required action (READ, WRITE, or DELETE) depends on the endpoint.
Carrier credentials (GoSend
clientId/passKey, KiriminAja apiKey, RideBlitz customerCode/secretKey) are stored per-company in Settings > Integrations. The Shipping API resolves them automatically — your code never sees them.Webhook events
Mutations emit events to your registered webhook endpoints so you can react in real time without polling:
See the Webhooks section for delivery semantics and signature verification.

