Errors
Errors use a small JSON object:
{
"error": "Missing required courierId"
}
Some shipping-provider errors also include details and retryable.
Status Codes
| Status | Meaning |
|---|---|
200 | Request completed. Validation endpoints can return valid: false with 200. |
202 | Shipment accepted but still pending carrier creation. Poll /status. |
400 | Missing or invalid request data, unavailable inventory, or an unsupported carrier selection. |
401 | API key is missing or incorrect. |
403 | Standard Public API key is invalid, disabled, revoked, expired, or its owning account does not have access to the requested company inventory. |
404 | Company, shipment, or requested record was not found. |
405 | HTTP method is not supported by the endpoint. |
409 | Insufficient live inventory for the shipment, or the transaction hash is already assigned to another company shipment. |
422 | The inventory cannot be packed with the available shipping configuration. |
429 | Standard Public API key rate limit exceeded. Read Retry-After. |
500 | DYLI could not complete the request. |
502 | Carrier or upstream shipping service failed. |
503 | Inventory availability could not be verified. Retry the request with the same transaction hash. |
Retry Rules
- Retry
202by polling/status; do not create a second order. - Retry
429after theRetry-Aftervalue. - You can safely retry an order with the same
txHash; DYLI will not create a duplicate shipment. - Do not automatically retry
/vaultafter an unknown server error because the blockchain transaction may already exist. - For non-retryable
502responses, request a new rate or contact DYLI.