Inbound API
Manage inbound shipments and warehouse receiving operations. The Inbound API provides comprehensive functionality for tracking and managing incoming inventory to your warehouse facilities.
Authentication
All API requests require authentication using API key in the Authorization header and X-Tenant-Id header for tenant identification:
Authorization: YOUR_API_KEY
X-Tenant-Id: YOUR_TENANT_ID1. List Inbound Shipments
Retrieve a paginated list of all inbound shipments.
Endpoint
GET /api/partner/v1/inboundQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number (default: 1) |
| per_page | integer | No | Items per page (default: 20, max: 100) |
| status | string | No | Filter by status: pending, received, partial, cancelled |
| location_id | string | No | Filter by location ID |
Response
Success Response (200 OK)
json
{
"status": 200,
"message": "Ok",
"data": {
"inbounds": [
{
"inbound_id": 6,
"code": "INB-2025-10-4DEFFBFB",
"inbound_date": "2025-10-03T00:00:00.000000Z",
"source_type": "purchase",
"source_id": 7,
"source_code": "PO-2025-3077",
"location_id": 1,
"status": "pending",
"received_at": null,
"cancelled_at": null,
"notes": "Inbound dari Purchase Order PO-2025-3077",
"created_by": "abed",
"updated_by": "abed",
"created_at": "2025-10-03T07:58:47.000000Z",
"updated_at": "2025-10-03T07:58:47.000000Z",
"details": [
{
"inbound_detail_id": 7,
"inbound_id": 6,
"product_id": 1,
"expected_quantity": 10,
"notes": "Dari Purchase Detail ID: 9",
"created_by": "abed",
"updated_by": "abed",
"deleted_by": null,
"received_by": null,
"deleted_at": null,
"created_at": "2025-10-03T07:58:47.000000Z",
"updated_at": "2025-10-03T07:58:47.000000Z",
"product": {
"product_id": 1,
"category_id": 2,
"name": "Produk Pertama",
"sku": "ABC001",
"barcode": "ABC001",
"brand": null,
"description": "asdasdasdasdasd",
"product_type": "physical",
"published_price": "1000.00",
"cost_price": "100.00",
"weight": "10.30",
"width": "10.00",
"height": "10.00",
"length": "11.12",
"status": "published",
"is_bundle": false,
"is_managed_by_fulfillment": false,
"fulfillment_manage_by": null,
"outbound_expired": 0,
"inbound_expired": 0,
"outer_barcode": null,
"advance_qc": false,
"production_batch": false,
"cold_storage": false,
"created_by": "abed",
"updated_by": "abed",
"deleted_by": null,
"deleted_at": null,
"created_at": "2025-09-29T07:29:12.000000Z",
"updated_at": "2025-09-29T07:29:12.000000Z"
}
}
],
"details_count": 1,
"location": {
"location_id": 1,
"name": "Warehouse Pusat",
"code": "WH-PUSAT",
"type": "warehouse",
"address": "Jl. Raya No. 1",
"city": "Bandung",
"state": "Jawa Barat",
"zip": "40921",
"subdistrict": "Katapang",
"country": "Indonesia",
"pic_name": "John Doe",
"phone": "081234567890",
"latitude": "-6.175110",
"longitude": "106.865036",
"is_default": true,
"is_pickup": true,
"status": "active",
"created_by": "system",
"updated_by": "system",
"deleted_by": null,
"deleted_at": null,
"created_at": "2025-09-25T09:05:12.000000Z",
"updated_at": "2025-09-25T09:05:12.000000Z",
"origin_code": null,
"is_return": false
},
"inbound_details": [
{
"inbound_detail_id": 7,
"inbound_id": 6,
"product_id": 1,
"expected_quantity": 10,
"notes": "Dari Purchase Detail ID: 9",
"created_by": "abed",
"updated_by": "abed",
"deleted_by": null,
"received_by": null,
"deleted_at": null,
"created_at": "2025-10-03T07:58:47.000000Z",
"updated_at": "2025-10-03T07:58:47.000000Z",
"product": {
"product_id": 1,
"category_id": 2,
"name": "Produk Pertama",
"sku": "ABC001",
"barcode": "ABC001",
"brand": null,
"description": "asdasdasdasdasd",
"product_type": "physical",
"published_price": "1000.00",
"cost_price": "100.00",
"weight": "10.30",
"width": "10.00",
"height": "10.00",
"length": "11.12",
"status": "published",
"is_bundle": false,
"is_managed_by_fulfillment": false,
"fulfillment_manage_by": null,
"outbound_expired": 0,
"inbound_expired": 0,
"outer_barcode": null,
"advance_qc": false,
"production_batch": false,
"cold_storage": false,
"created_by": "abed",
"updated_by": "abed",
"deleted_by": null,
"deleted_at": null,
"created_at": "2025-09-29T07:29:12.000000Z",
"updated_at": "2025-09-29T07:29:12.000000Z"
}
}
]
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 1,
"last_page": 1,
"from": 1,
"to": 1
}
},
"errors": null,
"request_id": "626424c8-7009-45b8-8dd0-b5edda6b732a"
}Example Request
bash
curl -X GET "https://sandbox-api.bebaskirim.com/api/partner/v1/inbound?page=1&per_page=20&status=pending" \
-H "Authorization: YOUR_API_KEY" \
-H "X-Tenant-Id: YOUR_TENANT_ID"2. Get Inbound Shipment Details
Retrieve detailed information about a specific inbound shipment.
Endpoint
GET /api/partner/v1/inbound/{id}Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Inbound shipment ID |
Response
Success Response (200 OK)
json
{
"status": "ok",
"data": {
"inbound": {
"id": "inb_123456789",
"reference_number": "PO-2024-001",
"status": "received",
"location": {
"id": "wh_001",
"code": "WH-001",
"name": "Jakarta Warehouse",
"address": "Jl. Warehouse No. 123, Jakarta"
},
"items": [
{
"id": "item_001",
"sku": "SKU-001",
"name": "Product A",
"quantity": 100,
"unit": "pcs",
"unit_price": 50000,
"expected_quantity": 100,
"good_received_quantity": 100,
"damaged_received_quantity": 0,
"grid_id": "grid_123",
"received_at": "2024-01-15T10:30:00Z",
"received_by": "warehouse_staff"
}
],
"notes": "Handle with care",
"created_at": "2024-01-10T08:00:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
},
"errors": null,
"request_id": "req_123456789"
}Example Request
bash
curl -X GET https://sandbox-api.bebaskirim.com/api/partner/v1/inbound/inb_123456789 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-Id: YOUR_TENANT_ID"3. Receive Items
Mark items as received for an inbound shipment.
Endpoint
POST /api/partner/v1/inbound/{id}/receivePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Inbound shipment ID |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| items | array | Yes | Items to receive |
| items[].item_id | string | Yes | Item ID |
| items[].received_quantity | number | Yes | Quantity being received |
| items[].received_at | string | No | Receipt timestamp (default: current time) |
| items[].received_by | string | No | Staff member receiving the items |
Response
Success Response (200 OK)
json
{
"status": "ok",
"data": {
"inbound": {
"id": "inb_123456789",
"status": "received",
"items": [
{
"id": "item_001",
"received_quantity": 100,
"pending_quantity": 0,
"grid_id": "grid_123",
"received_at": "2024-01-15T10:30:00Z",
"received_by": "warehouse_staff"
}
],
"updated_at": "2024-01-15T10:30:00Z"
}
},
"errors": null,
"request_id": "req_123456789"
}Status Definitions
| Status | Description |
|---|---|
| pending | Shipment created, awaiting arrival |
| partial | Some items received, others pending |
| received | All items received successfully |
| cancelled | Shipment cancelled |
Rate Limits
- List Inbound: 200 requests per minute
- Get Details: 200 requests per minute
- Receive Items: 200 requests per minute
Best Practices
Shipment Planning
- Create inbound shipments as soon as purchase orders are confirmed
- Include accurate expected arrival dates for better warehouse planning
- Use reference numbers that match your internal purchase order numbers
Item Management
- Always verify item SKUs match your inventory system
- Include unit prices for accurate inventory valuation
- Track partial receipts for better inventory accuracy
Receiving Process
- Use barcode scanning for accurate item identification
- Record actual received quantities immediately
- Document any discrepancies between expected and received quantities
- Take photos of damaged items for insurance claims
Integration Tips
- Set up webhooks to receive real-time updates on inbound status changes
- Use the reference_number field to link with your purchase order system
- Implement automated receiving workflows using the receive items endpoint