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
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.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.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, … }] }.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.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:| Event | Triggered by |
|---|---|
SHIPMENT_CREATED | POST /shipping/shipments |
SHIPMENT_UPDATED | PATCH /shipping/shipments/{id} |
SHIPMENT_BOOKED | autoBook=true on create, triggerBooking=true on update, or carrier webhook upgrading the row |
SHIPMENT_CANCELLED | POST /shipping/shipments/{id}/cancel |
Provider capability matrix
| Capability | GoSend | KiriminAja | RideBlitz |
|---|---|---|---|
| Quote fee | ✓ | ✓ | ✓ |
| Coverage lookup | — | ✓ | ✓ (cities only) |
| Auto-book on create | — | ✓ | ✓ |
| Cancel via API | ✓ (if orderNo) | ✓ (after AWB) | ✓ (after AWB) |
| Live tracking | — | ✓ | ✓ |

