# Update Carriers

This API operation sets the allowed capabilities—services, packages, and special services - for a subscription and carrier. By default, all carrier-provided capabilities are available. After this call, only the specified capabilities are permitted for Rate Shop and Create Shipment operations. Requests that use capabilities not in this allowlist are rejected with an error.<br/> The Get Services, Get Parcel Types , and Get Special Services APIs will also return only the capabilities defined in this allowlist.

Endpoint: PUT /api/v1/carriers/{carrier}
Version: 1.0.0
Security: bearerAuth

## Path parameters:

  - `carrier` (string, required)
    Carrier name whose capabilities are to be allowlisted for this subscription.

## Request fields (application/json):

  - `originCountryCode` (string, required)
    Two-letter ISO 3166-1 alpha-2 country code (shipment origin country) to which the allowlist applies.
    Example: US

  - `capabilities` (object, required)
    Carrier-specific capability codes to allow for the subscription and origin country.

  - `capabilities.parcelTypes` (array)
    Package codes allowed in shipment calls for this subscription. Only these codes will be accepted by Rate Shipment and Create Shipment calls. Set only what you intend to use; others will be rejected. If omitted, the current allowlist (or carrier-supported defaults) remains in effect.
    Example: ["LP"]

  - `capabilities.services` (array)
    Service codes allowed in shipment calls for this subscription. Only these codes will be accepted in Rate Shipment and Create Shipment calls. Set only what you intend to use; others will be rejected. If omitted, the current allowlist (or carrier-supported defaults) remains in effect.
    Example: ["NDA"]

  - `capabilities.specialServices` (array)
    Special service codes allowed in shipment calls for this subscription. Only these codes will be accepted by Rate Shipment and Create Shipment calls. Set only what you intend to use; others will be rejected. If omitted, the current allowlist (or carrier-supported defaults) remains in effect.
    Example: ["INS"]

## Response 400 fields (application/json):

  - `errorCode` (string)
    Error code(s) that appear due to HTTP  400- Invalid or Bad Request, e.g., validation-error.
    Example: validation_error

  - `errorDescription` (string)
    The HTTP 400 Bad Request response status code indicates that the server cannot process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    Example: string

  - `additionalCode` (string)
    A unique identifier for the error, for example 1101055, 0100008, or 1021126.

  - `additionalInfo` (string)
    This is an additional information about the error. This error 'Invalid Request' might appear due to invalid dimension, weight, or serviceID, or if the information is missing.

  - `additionalParameters` (array)

## Response 401 fields (application/json):

  - `message` (string, required)
    This is HTTP 401 Unauthorized response status code, which indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.

## Response 500 fields (application/json):

  - `message` (string, required)
    This is HTTP 500 Internal Server Error response status code, which indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

