APIv3
Exit Documentation

Errors

API errors use one consistent JSON object with a human-readable message and a machine-readable code.


Error object

json
{
  "error": {
    "type": "invalid_request_error",
    "code": "validation_failed",
    "message": "Customer validation failed.",
    "param": "name",
    "errors": {
      "name": {
        "_required": "This field is required"
      }
    }
  }
}
FieldAlways presentDescription
typeYesBroad error category.
codeYesStable code suitable for program logic.
messageYesHuman-readable explanation.
paramNoRequest field or header associated with the error.
errorsNoField-level validation details.

Use code for programmatic decisions. Messages may become clearer over time and should primarily be shown to developers.


Error types

TypeMeaning
authentication_errorAuthentication is missing or invalid.
permission_errorAccount access, plan limits, user permissions, or key scopes deny the action.
invalid_request_errorRequest input, state, or a requested resource is invalid.
rate_limit_errorThe client has exceeded an enforced request limit.
api_errorSalesBinder encountered an unexpected server error.

Common error codes

CodeTypical statusMeaning
bad_request400The request is malformed.
authentication_required401A valid credential is required.
permission_denied403The action is not permitted.
account_access_restricted403The SalesBinder account is not currently permitted to use the API.
record_limit_exceeded403The account has reached its effective subscription record limit.
resource_missing404The requested resource is unavailable.
method_not_allowed405The endpoint does not accept this HTTP method.
conflict409The request conflicts with the resource's current state.
validation_failed422One or more fields failed validation.
unknown_parameter422The request contains a parameter that the endpoint does not accept.
invalid_query_parameter422A query-string value is invalid.
invalid_date_filter400A date filter is not in the required format or range.
invalid_assembly_method400A kit list assembly-method filter is not manual or automatic.
rate_limit_exceeded429The API key has exhausted its current request allowance.
invalid_idempotency_key400The idempotency key format is invalid.
invalid_request_body400The request body cannot be normalized.
idempotency_key_reused409The key was used with different request data.
idempotency_in_progress409An identical request is still being processed.
request_failedVariesThe request failed with another client-error status.
api_error500An unexpected server error occurred.

Inventory error codes

CodeStatusMeaning
invalid_quantity_delta422The quantity adjustment is missing, zero, or otherwise invalid.
invalid_adjustment_reason422The adjustment reason is invalid.
location_mismatch422The requested location does not match the item's inventory location.
unsupported_inventory_feature422The requested operation is unavailable for that inventory type or configuration.
inventory_location_unavailable422A usable inventory location could not be selected for the variation.
duplicate_variation409The selected variation attributes already exist on the item.
variation_in_use409The variation is referenced by existing records and cannot be deleted.
variation_has_inventory409The variation still has inventory and cannot be deleted.
variation_delete_failed422The variation could not be deleted.
variation_location_exists409The variation is already assigned to the requested location.
variation_location_in_use409The variation-location record is referenced by existing records.
variation_location_has_inventory409The variation location still has inventory and cannot be deleted.
variation_last_location409The variation's final location cannot be deleted.
variation_location_delete_failed422The variation location could not be deleted.

Kit error codes

CodeStatusMeaning
invalid_kit_build422The assembly quantity, component definition, or available component stock is invalid.
unsupported_kit_build_field422The request contains a field outside the manual assembly contract.
unsupported_kit_disassembly_field422A disassembly request contains a body field.
kit_disassembly_failed422The stored assembly could not be reversed and removed.

Stock-transfer error codes

CodeStatusMeaning
invalid_stock_transfer422A stock-transfer create or update field or line value is invalid.
unsupported_stock_transfer_field422The request contains a field outside the stock-transfer create or update contract.
stock_transfer_update_not_allowed409A completed stock transfer cannot be edited.
invalid_stock_transfer_send422A send date or shipping field is invalid.
unsupported_stock_transfer_send_field422The request contains a field outside the stock-transfer send contract.
stock_transfer_send_not_allowed409The transfer is not pending or its inventory can no longer be sent.
invalid_stock_transfer_receive422A received date or shipping field is invalid.
unsupported_stock_transfer_receive_field422The request contains a field outside the stock-transfer receive contract.
stock_transfer_receive_not_allowed409The transfer is not in transit or its inventory can no longer be received.
stock_transfer_delete_not_allowed409Existing transfer inventory cannot be safely reversed for deletion.
stock_transfer_delete_failed422The stock transfer could not be deleted.

Invoice error codes

CodeStatusMeaning
invalid_invoice422An invoice field or line value is invalid.
unsupported_invoice_field422The request contains a field outside the invoice create or update contract.
invoice_update_not_allowed422The invoice's current state does not allow updates.
invoice_delete_not_allowed409The invoice has related activity that prevents deletion.
invoice_delete_failed422The invoice could not be deleted.
invalid_invoice_payment422A manual payment field or amount is invalid for the invoice's current balance.
unsupported_invoice_payment_field422The payment request contains a field outside the manual-payment contract.
invalid_invoice_refund422A manual refund field or amount is invalid for the payment's refundable balance.
unsupported_invoice_refund_field422The refund request contains a field outside the manual-refund contract.
provider_refund_required409The payment is provider-backed and must be refunded through its integration.
invalid_invoice_dispatch422The dispatch request or dispatch date is invalid.
unsupported_invoice_dispatch_field422The request contains a field outside the invoice-dispatch contract.
invoice_dispatch_not_allowed409The invoice's current state does not allow dispatch.
unsupported_invoice_cancel_field422The request contains a field outside the invoice-cancellation contract.
invoice_cancel_not_allowed409The invoice's current state does not allow cancellation.

Estimate error codes

CodeStatusMeaning
invalid_estimate422An estimate field or line value is invalid.
unsupported_estimate_field422The request contains a field outside the estimate create or update contract.
estimate_update_not_allowed422The estimate's current state does not allow updates.
estimate_delete_not_allowed409The estimate has related activity that prevents deletion.
estimate_delete_failed422The estimate could not be deleted.
unsupported_estimate_decline_field422The request contains a field outside the estimate-decline contract.
estimate_decline_not_allowed409The estimate's current state does not allow decline.
invalid_estimate_conversion422The estimate-to-invoice conversion request is invalid.
unsupported_estimate_conversion_field422The request contains a field outside the estimate-to-invoice contract.
estimate_conversion_not_allowed409The estimate cannot be converted to an invoice in its current state.
estimate_conversion_failed422The estimate-to-invoice conversion could not be completed.
unsupported_estimate_sales_order_conversion_field422The request contains a field outside the estimate-to-sales-order contract.
estimate_sales_order_conversion_not_allowed409The estimate cannot be converted to a sales order in its current state.
estimate_sales_order_conversion_failed422The estimate-to-sales-order conversion could not be completed.

Purchase-order error codes

CodeStatusMeaning
invalid_purchase_order422A purchase-order field or line value is invalid.
unsupported_purchase_order_field422The request contains a field outside the purchase-order create or update contract.
purchase_order_update_not_allowed422The purchase order's current state does not allow updates.
purchase_order_delete_not_allowed409The purchase order has related activity that prevents deletion.
purchase_order_delete_failed422The purchase order could not be deleted.
invalid_purchase_order_payment422A manual payment field or amount is invalid.
unsupported_purchase_order_payment_field422The request contains a field outside the payment-creation contract.
purchase_order_payment_not_allowed409The purchase order's state or balance does not allow the payment operation.
unsupported_purchase_order_payment_delete_field422A payment-deletion request contains a body field.
purchase_order_payment_delete_not_allowed409The selected payment cannot be deleted.
purchase_order_payment_delete_failed422The payment could not be deleted.
invalid_purchase_order_receive422The receiving request or one of its line quantities is invalid.
unsupported_purchase_order_receive_field422The request contains an unsupported receiving field.
unsupported_purchase_order_receive_line_field422A receiving line contains an unsupported field.
purchase_order_receive_not_allowed409The purchase order cannot be received in its current state.
invalid_purchase_order_send422The send request or send date is invalid.
unsupported_purchase_order_send_field422The request contains a field outside the purchase-order-send contract.
purchase_order_send_not_allowed422The purchase order cannot be marked sent in its current state.

Sales-order error codes

CodeStatusMeaning
invalid_sales_order422A sales-order field or line value is invalid.
unsupported_sales_order_field422The request contains a field outside the sales-order create or update contract.
sales_order_update_not_allowed422The sales order's current state does not allow updates.
sales_order_financial_update_not_allowed422Financial or line fields cannot be changed after related processing begins.
sales_order_delete_not_allowed409The sales order has related activity that prevents deletion.
sales_order_delete_failed422The sales order could not be deleted.
invalid_sales_order_invoice422The invoice-creation request or a line quantity is invalid.
unsupported_sales_order_invoice_field422The request contains a field outside the sales-order-invoice contract.
sales_order_invoice_not_allowed409The sales order cannot be invoiced in its current state.
sales_order_already_invoiced409All sales-order quantities have already been invoiced.
sales_order_line_already_invoiced409The selected sales-order line has already been fully invoiced.
sales_order_invoice_failed500Invoice creation failed unexpectedly.
invalid_sales_order_pack422The packing request or a line quantity is invalid.
unsupported_sales_order_pack_field422The request contains a field outside the packing contract.
sales_order_pack_not_allowed409The sales order cannot be packed in its current state.
sales_order_line_already_packed409The selected sales-order line has already been fully packed.
sales_order_pack_failed500Fulfillment creation failed unexpectedly.
invalid_sales_order_shipment422The manual-shipment request is invalid.
unsupported_sales_order_ship_field422The request contains a field outside the manual-shipment contract.
sales_order_ship_not_allowed409The fulfillment cannot be shipped in its current state.
sales_order_ship_failed500Manual shipment failed unexpectedly.

Handling errors

  1. Branch on the HTTP status and error.code.
  2. Correct invalid fields using param and errors when present.
  3. Retry only errors that are safe to retry.
  4. Preserve the response's Request-Id when logging or reporting a problem.
  5. Never include the API key in application logs or support messages.

Unexpected server errors intentionally return a generic message and do not expose stack traces or internal implementation details.