Shipment Tracking API

The AST PRO plugin provides a REST API to manage tracking information for WooCommerce orders. It allows adding, retrieving, and deleting tracking entries, along with listing available shipping carriers.

πŸ” How to Get WooCommerce API Keys

To authenticate with the Shipment Tracking API, you’ll need your WooCommerce Consumer Key and Consumer Secret.

πŸ› οΈ Steps to Generate API Keys:

  1. Go to your WordPress dashboard.
  2. Navigate to WooCommerce > Settings > Advanced > REST API.
  3. Click Add Key.
  4. Enter a name (e.g., β€œAST API Access”).
  5. Choose a user (with Admin rights recommended).
  6. Set Permissions to Read/Write.
  7. Click Generate API Key.

βœ… You will now see your Consumer Key and Consumer Secretβ€”copy and store them securely.

blank

🧾 Shipment Tracking API Properties

PropertyTypeRequiredDescription
order_idintegerβœ… YesWooCommerce Order ID.
tracking_providerstringβœ… YesShipping carrier (must match an enabled name or alias).
tracking_numberstringβœ… YesShipment tracking number.
date_shippedstringβœ… YesDate in format: DD-MM-YYYY or MM-DD-YYYY (must match API settings).
status_shippedintegerβœ… Yes0 – No change
1 – Mark order as Shipped
2 – Mark as Partially Shipped
(Default: 0)
replace_trackingbooleanNo0 – Add to existing tracking
1 – Replace all tracking
(Default: 0)
skustringNoComma-separated SKUs (for per-item tracking).
qtystringNoQuantities matching SKUs (for per-item tracking).

πŸ”„ Add Shipment Tracking to an Order

Endpoint:

POST /wp-json/wc-shipment-tracking/v3/orders/<order_id>/shipment-trackings/

Example:

curl -X POST https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
  "tracking_provider": "Fedex",
  "tracking_number": "12345678",
  "date_shipped": "08-07-2024",
  "status_shipped": 1,
  "replace_tracking": 1
}'

Response:

"Tracking ID: fb7170d97d0e628bc3b565999d07c6a9"

πŸ“¦ Add Tracking Per Order Item

Endpoint:

POST /wp-json/wc-ast-pro/v3/orders/<order_id>/shipment-trackings

Example:

curl -X POST https://your-domain.com/wp-json/wc-ast-pro/v3/orders/340/shipment-trackings \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
  "tracking_provider": "USPS",
  "tracking_number": "123456",
  "date_shipped": "2024-07-10",
  "status_shipped": 2,
  "sku": "t-shirt,blue-jeans",
  "qty": "1,1"
}'

Another package:

curl -X POST https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
  "tracking_provider": "USPS",
  "tracking_number": "456879",
  "date_shipped": "2024-07-12",
  "status_shipped": 1,
  "sku": "t-shirt,blue-jeans",
  "qty": "1,2"
}'

πŸ” Get Shipment Tracking Info

Endpoint:

GET /wp-json/wc-shipment-tracking/v3/orders/<order_id>/shipment-trackings/

Example:

curl -X GET https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings \
-u consumer_key:consumer_secret

Response:

{
  "tracking_id": "feb9bde4475fda92cc9408607b7ecb66",
  "tracking_provider": "Fedex",
  "tracking_link": "http://www.fedex.com/Tracking?action=track&tracknumbers=12345678",
  "tracking_number": "12345678",
  "date_shipped": "2024-07-10"
}

❌ Delete Shipment Tracking

Endpoint:

DELETE /wp-json/wc-shipment-tracking/v3/orders/<order_id>/shipment-trackings/<tracking_id>

Example:

curl -X DELETE https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings/fa61d174a05d2f34323b51d92823947d \
-u consumer_key:consumer_secret

Response:

"Tracking ID: fa61d174a05d2f34323b51d92823947d"

🧭 Get Shipping Carriers

Endpoint:

GET /wp-json/wc-shipment-tracking/v3/orders/<order_id>/shipment-trackings/providers

Example:

curl -X GET https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings/providers \
-u consumer_key:consumer_secret

Response Sample:

{
  "United States (US)": {
    "USPS": "https://tools.usps.com/go/TrackConfirmAction_input?qtc_tLabels1=%number%",
    "UPS": "http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=%number%"
  },
  "India": {
    "Delhivery": "https://www.delhivery.com/track/package/%number%"
  }
}

❗ API Request Errors

Status CodeErrorDescription
200 OKSuccessRequest completed successfully.
201 CreatedTracking AddedTracking successfully created.
400 Bad RequestInvalid Request FormatRequest is malformed or missing required data.
401 UnauthorizedAuthentication FailedAPI keys are missing, incorrect, or lack permissions.
403 ForbiddenAccess DeniedUser lacks the correct privileges.
404 Not FoundResource Not FoundOrder ID or endpoint does not exist.
409 ConflictDuplicate EntryTracking already exists without replace flag.
500 Internal ErrorServer ErrorServer-side issue. Check logs or contact support.

πŸ“¬ Postman Example

To test using Postman:

  1. Method: POST
  2. URL:
https://your-domain.com/wp-json/wc-shipment-tracking/v3/orders/340/shipment-trackings
  1. Authorization:
    • Type: Basic Auth
    • Username: Consumer Key
    • Password: Consumer Secret
  2. Headers:
Content-Type: application/json
  1. Body β†’ Raw β†’ JSON:
{
  "tracking_provider": "UPS",
  "tracking_number": "1Z9999",
  "date_shipped": "10-07-2024",
  "status_shipped": 1
}

βœ… Click Send and confirm the response includes a Tracking ID.

blank
blank

$129.00

Billed annually

Buy Now