Skip to content

Service Configuration API

API endpoints for the Service Configuration module. All endpoints require token_admin authentication and are prefixed with /services/{id}.

Authentication

All endpoints require a valid JWT token:

Authorization: Bearer <token>

Endpoint Summary

MethodPathDescriptionPermission
GET/services/{id}/dataGet service detailsplans-menu
GET/services/{id}/taxesGet tax rules for the service localeplans-menu
GET/services/{id}/costsGet cost matrixplans-menu
PUT/services/{id}/costsUpdate cost matrixmanage-service-costs
GET/services/{id}/priceGet pricing matrix (all tariff types)plans-menu
PUT/services/{id}/priceUpdate pricing for one tariff typemanage-service-pricing
PATCH/services/{id}/volumetric-factorUpdate volumetric factormanage-service-config
GET/services/{id}/default-ratesGet default tariff per zoneplans-menu
PUT/services/{id}/default-ratesUpdate default tariffs per zonemanage-service-config
GET/services/{id}/additionalsList additional services/chargesplans-menu
POST/services/{id}/additionalsCreate additional service/chargemanage-service-config
PATCH/services/{id}/additionals/{additional_id}Update additional service/chargemanage-service-config

Service Details

GET /services/{id}/data

Returns service metadata including carrier, locale, status, and volumetric factor.

Path params: id (number) — Service ID

Response (200):

json
{
  "id": 42,
  "carrier": "FedEx",
  "service_code": "FEDEX_EXPRESS",
  "locale_id": 1,
  "active": 1,
  "volumetric_factor": {
    "id": 3,
    "factor": 5000,
    "unit_weight": "KG"
  }
}

Taxes

GET /services/{id}/taxes

Returns tax rules for the service's locale. Read-only — taxes are managed in Organization Settings.

Response (200):

json
{
  "tax_rules": [
    {
      "id": 1,
      "country_name": "Mexico",
      "rule_description": "Standard VAT",
      "concept_description": "IVA",
      "application_type": "transferred",
      "amount": 16,
      "default_tax": 1
    }
  ]
}

Volumetric Factor

PATCH /services/{id}/volumetric-factor

Updates the volumetric factor for a service by assigning a factor from the catalog.

Request:

json
{
  "factor_id": 3
}

Payload fields:

FieldTypeRequiredDescription
factor_idnumberYesID from catalog_volumetric_factors

Response (200):

json
{
  "volumetric_factor": {
    "id": 3,
    "factor": 5000,
    "unit_weight": "KG"
  }
}

Default Rates

GET /services/{id}/default-rates

Returns the default tariff type assigned to each zone for the service.

Response (200):

json
[
  { "zone": "1", "type_id": 1, "service_id": 42 },
  { "zone": "2", "type_id": 2, "service_id": 42 },
  { "zone": "3", "type_id": null, "service_id": 42 }
]

type_id values: 1 = basic, 2 = pro, 3 = enterprise, 4 = corporate, null = no tariff assigned.

PUT /services/{id}/default-rates

Updates the default tariff type for each zone.

Request:

json
[
  { "zone": 1, "type_id": 1 },
  { "zone": 2, "type_id": 2 },
  { "zone": 3, "type_id": 3 }
]

Payload fields (per item):

FieldTypeRequiredDescription
zonenumberYesZone identifier (min: 1)
type_idnumberYesTariff type ID (1–4)

Common Error Responses

All errors follow the Boom format:

json
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Descriptive error message"
}
StatusWhen
400Validation failed (Joi schema)
401Missing or invalid JWT
403Insufficient permissions
404Service not found

For cost/price matrix endpoints, see Pricing & Costs API.

For additional services/charges endpoints, see Additional Services API.

Envia Admin