Skip to content

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_ID

1. List Inbound Shipments

Retrieve a paginated list of all inbound shipments.

Endpoint

GET /api/partner/v1/inbound

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number (default: 1)
per_pageintegerNoItems per page (default: 20, max: 100)
statusstringNoFilter by status: pending, received, partial, cancelled
location_idstringNoFilter 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

ParameterTypeRequiredDescription
idstringYesInbound 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}/receive

Path Parameters

ParameterTypeRequiredDescription
idstringYesInbound shipment ID

Request Body

ParameterTypeRequiredDescription
itemsarrayYesItems to receive
items[].item_idstringYesItem ID
items[].received_quantitynumberYesQuantity being received
items[].received_atstringNoReceipt timestamp (default: current time)
items[].received_bystringNoStaff 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

StatusDescription
pendingShipment created, awaiting arrival
partialSome items received, others pending
receivedAll items received successfully
cancelledShipment 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