ShipGlobal provides API-based integration for logistics companies to generate shipping labels through our portal.
{
"email": "test@shipglobal.in",
"password": "123456"
}
{
"token": "your_token_here",
"expires_at": "YYYY-MM-DD HH:MM:SS",
"customer": {
"id": 1,
"name": "Test Account",
"email": "test@shipglobal.in"
}
}
M = Mandatory, O = Optional
{
"invoice_no": "INV-123456", // M
"invoice_date": "2025-08-20", // M
"order_reference": "ORDER-9876533", // M
"service": "{{SERVICE_CODE}}", // M
"package_weight": 2500, // M – in grams (e.g. 2500 = 2.5 KG)
"package_length": 30, // M – in cm
"package_breadth": 20, // M – in cm
"package_height": 15, // M – in cm
"currency_code": "EUR", // M
"csb5_status": 1, // M
"seller_nickname": "ShipGlobalTest", // M
"seller_firstname": "John", // M
"seller_lastname": "Doe", // M
"seller_mobile": "+491234567890", // M
"seller_email": "seller@example.com", // M
"seller_company": "ShipGlobal GmbH", // M
"seller_address": "Fasanenweg 5", // M
"seller_address_2": "Unit 2", // M
"seller_address_3": "Building A", // O
"seller_city": "Kelsterbach", // M
"seller_postcode": "65451", // M
"seller_country_code": "DE", // M
"seller_state": "Hessen", // M
"seller_tax_id_type": "VAT", // O
"seller_tax_id": "DE123456789", // O
"customer_shipping_firstname": "Alice", // M
"customer_shipping_lastname": "Muller", // M
"customer_shipping_mobile": "+12125551234", // M
"customer_shipping_email": "alice.mueller@example.com", // M
"customer_shipping_company": "Customer LLC", // M
"customer_shipping_address": "350 5th Ave", // M
"customer_shipping_address_2": "Floor 10", // M
"customer_shipping_address_3": "Near Lobby", // O
"customer_shipping_city": "New York", // M
"customer_shipping_postcode": "10467", // M
"customer_shipping_country_code": "US", // M
"customer_shipping_state": "NY", // M
"ioss_number": "IM1234567890", // O
"vendor_order_items": [
{
"vendor_order_item_name": "Bluetooth Headphones", // M
"vendor_order_item_sku": "SKU-HEAD-123", // M
"vendor_order_item_quantity": 1, // M
"vendor_order_item_unit_price": 59.99, // M
"vendor_order_item_hsn": "85183000", // M
"vendor_order_item_tax_rate": 19 // M
}
], // M
"tracking": "TESTTRACK123456", // M
"mailClass": "First", // O (M for VIPPARCEL)
"deliveryConfirmation": "NO_SIGNATURE", // O (M for VIPPARCEL)
"retry": false // O
}
{
"success": true,
"label": "generated",
"data": {
"order_number": "ABCD12345678",
"waybill_number": "UUSXXXXXXXXXXXX",
"pdf_base64": "BASE64_ENCODED_PDF_STRING"
}
}
| Field | Unit | Example |
|---|---|---|
package_weight | Grams (g) | 2500 = 2.5 KG |
package_length | Centimeters (cm) | 30 |
package_breadth | Centimeters (cm) | 20 |
package_height | Centimeters (cm) | 15 |
Important: package_weight must be provided in grams. The API internally converts it to KG before sending to carrier services.
If the combination of order_reference + invoice_no already exists:
?download=false (default): Returns 409 with "label already generated"?download=true: Returns saved label (200 Success)Note: Pass download as a query parameter in the URL
pdf_base64 : Decode the Base64 string and save it as a .pdf file for printing
| Service | Service Code |
|---|---|
| DPD | DPD-CLASSIC |
| UniUni | UNIUNI-CLASSIC |
| VipParcel | VIPPARCEL-CLASSIC |
| DHL E-Commerce | DHLECS-CLASSIC |
| UBI (eTower) | UBI-CLASSIC |
Notify the lastmile carrier that a batch of orders is incoming (manifest close / destination handoff).
This endpoint internally calls the carrier's processDestination method for supported services (e.g. UBI-CLASSIC).
M = Mandatory, O = Optional
{
"service": "UBI-CLASSIC", // M – carrier service code
"order_reference_numbers": ["WAYBILL001", "WAYBILL002"], // M – array of order_reference values from addOrder
"manifest_code": "MANIFEST-2026-001" // M – manifest / bag number
}
{
"message": "Process destination request processed successfully",
"details": {
"status": "Success",
"errors": null,
"warnings": null,
"data": [
{
"status": "Success",
"errors": null,
"warnings": null,
"orderId": "TEST_CST-0078",
"trackingNo": "420922839214490411387001126133"
}
]
}
}
// Carrier returned failure { "error": "Process destination request failed", "details": { "status": "Failed", "errors": "...", "warnings": null, "data": null } } // Invalid order references (not found in DB) { "error": "Invalid Request", "details": { "order_reference_numbers": "The following order_reference_number do not exist: ORD-999" } } // Validation error { "error": "Validation failed", "details": ["Missing/empty field: manifest_code"] }
| Service | Service Code | Destination Notify |
|---|---|---|
| UBI (eTower) | UBI-CLASSIC | ✅ Supported |
| DPD | DPD-CLASSIC | — Not supported |
| UniUni | UNIUNI-CLASSIC | — Not supported |
| VipParcel | VIPPARCEL-CLASSIC | — Not supported |
| DHL E-Commerce | DHLECS-CLASSIC | — Not supported |
| Field | Type | Description |
|---|---|---|
status | string | Success or Failed per shipment |
orderId | string | Carrier's internal order ID (matches the order_reference sent) |
trackingNo | string | Final tracking number assigned by the lastmile carrier |
errors | string|null | Error message from carrier if status is Failed |
warnings | string|null | Non-fatal warnings from carrier |
order_reference values (same values used in addOrder.php) in the order_reference_numbers array — these are validated against the DB.manifest_code is mandatory — it represents the bag/manifest number for the carrier.process_destination_logs for auditing.