Boxc Shipments API

The Shipments resource allows a user to create, update, retrieve, and delete shipments. Only test shipments and shipments without labels can be deleted. Shipments with uncancelled or processed labels cannot be updated. All shipments require address verification on the shipping address. Cancelling a label will refund the cost. Test shipments and shipments without labels are routinely purged from the system. There are some weight and volumetric constraints for shipments that is dependant on the route. For example, if a Shipment's length + girth is greater than a certain size then the user is charged an additional fee per KG. The length is the measurement of the longest dimension, and girth is the distance around the thickest part (perpendicular to the length). If the Shipment's weight or volume exceeds the limit for a route an error will be returned. **Note:** Set the `overpack_id` to null when unassigning it from an overpack. You won't be allowed to update a labelled shipment beyond that.

OpenAPI Specification

boxc-shipments-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  x-logo:
    url: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png
    altText: BoxC
  title: BoxC CalculateDuty Shipments API
  version: '1.123'
  description: 'A simple but powerful logistics API that drives international ecommerce by utilizing a single integration with access to dozens of carriers and global markets. BoxC can complete every leg or only select steps of a shipment''s journey on your behalf with our routing engine.

    '
schemes:
- https
tags:
- name: Shipments
  x-displayName: Shipments
  description: 'The Shipments resource allows a user to create, update, retrieve, and delete shipments. Only test shipments and shipments without labels can be deleted. Shipments with uncancelled or processed labels cannot be updated. All shipments require address verification on the shipping address. Cancelling a label will refund the cost. Test shipments and shipments without labels are routinely purged from the system.


    There are some weight and volumetric constraints for shipments that is dependant on the route. For example, if a Shipment''s length + girth is greater than a certain size then the user is charged an additional fee per KG. The length is the measurement of the longest dimension, and girth is the distance around the thickest part (perpendicular to the length). If the Shipment''s weight or volume exceeds the limit for a route an error will be returned.


    **Note:** Set the `overpack_id` to null when unassigning it from an overpack. You won''t be allowed to update a labelled shipment beyond that.

    '
paths:
  /shipments:
    get:
      tags:
      - Shipments
      summary: GET /shipments
      description: Retrieves a paginated list of shipments.
      operationId: getShipments
      consumes:
      - application/json
      produces:
      - application/json
      security:
      - JWT:
        - read_shipments
      parameters:
      - in: query
        name: created_min
        description: The inclusive date to begin the search.
        format: YYYY-MM-DD
        required: false
        type: string
        default: null
      - in: query
        name: created_max
        description: The inclusive date to end the search.
        format: YYYY-MM-DD
        required: false
        type: string
        default: null
      - in: query
        name: labeled
        description: Filter to return only shipments that have labels.
        enum:
        - 'yes'
        - 'no'
        - both
        required: false
        type: string
        default: both
      - in: query
        name: limit
        description: The number of results to return.
        required: false
        type: integer
        default: 50
        minimum: 50
        maximum: 100
      - in: query
        name: order
        description: The sort order of the results.
        enum:
        - asc
        - desc
        required: false
        type: string
        default: desc
      - in: query
        name: order_number
        description: Filter that searches for shipments by the order_number.
        required: false
        type: string
        default: null
      - in: query
        name: overpack_id
        description: Filter that searches for shipments by their overpack ID.
        required: false
        type: integer
        default: null
      - in: query
        name: packed
        description: Filter to return only shipments that are in an overpack.
        enum:
        - 'yes'
        - 'no'
        - both
        required: false
        type: string
        default: both
      - in: query
        name: page_token
        description: Used for selecting the page after the initial query.
        required: false
        default: null
        type: string
      - in: query
        name: processed
        description: Filter to return only shipments that are processed.
        enum:
        - 'yes'
        - 'no'
        - both
        required: false
        type: string
        default: both
      - in: query
        name: tracking_number
        maxLength: 40
        description: Filter that searches for shipments by tracking number. Date filters are ignored if this is provided.
        required: false
        type: string
        default: null
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Accept: application/json\" \\\n  https://api.boxc.com/v1/shipments\\?limit=50\\&order=desc\\&labeled=both\\&packed=both\\&processed=both\\&comments=1+phone+case\\&tracking_number=\n"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  shipments:
                    type: array
                    items:
                      $ref: '#/definitions/Shipment'
                  next_page:
                    type: string
                    description: Page token
                    example: ZGF0ZV9lbmQ9MjAyMy0wNy0yOCZsaW1pdD01MCZvcmRlcj1kZXNjJnBhZ2U9MSZsYXN0X2lkPTE1Mzg0Nw
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/definitions/BadRequest'
              examples:
                invalidToken:
                  summary: Bad Request Page Token
                  description: Invalid page token
                  value:
                    code: 1025
                    message: Invalid page token
                    errors:
                    - Invalid page token
                invalidParameter:
                  summary: Bad Request Query Parameter
                  description: Query parameter is invalid
                  value:
                    code: 1031
                    message: Invalid query parameter
                    errors:
                    - Invalid query parameter
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '429':
          $ref: '#/definitions/RateLimit'
    post:
      tags:
      - Shipments
      summary: POST /shipments
      description: Creates a shipment.
      operationId: addShipment
      consumes:
      - application/json
      produces:
      - application/json
      security:
      - JWT:
        - write_shipments
      x-codeSamples:
      - lang: cURL
        label: cURL Example 1
        source: "curl -X POST https://api.boxc.com/v1/shipments \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shipment\": {\n      \"carrier\": null,\n      \"carrier_params\": null,\n      \"comments\": [\n        \"Test comment\"\n      ],\n      \"cod\": {\n        \"amount\": 0\n      },\n      \"consignee\": {\n        \"name\": \"Addressee John\",\n        \"phone\": \"555-987-7890\",\n        \"email\": null,\n        \"id\": null,\n        \"street1\": \"2959 ANCHOR DR\",\n        \"street2\": null,\n        \"city\": \"MESQUITE\",\n        \"province\": \"TX\",\n        \"postal_code\": \"75150\",\n        \"country\": \"US\"\n      },\n      \"consignor\": {\n        \"name\": \"My Company Name\",\n        \"street1\": \"113 INTL BROADWAY\",\n        \"street2\": \"\",\n        \"city\": \"LOS ANGELES\",\n        \"province\": \"CA\",\n        \"postal_code\": \"91013\",\n        \"country\": \"US\"\n      },\n      \"create_label\": false,\n      \"currency\": \"USD\",\n      \"entry_point\": \"TEST01\",\n      \"exit_point\": \"ORD\",\n      \"freight_charge\": {\n        \"amount\": 12.26,\n        \"currency\": \"USD\"\n      },\n      \"from\": null,\n      \"height\": 3.9,\n      \"ignore_bad_address\": false,\n      \"insurance\": false,\n      \"irregular\": false,\n      \"is_return\": false,\n      \"length\": 10,\n      \"line_items\": [\n        {\n          \"coo\": \"CN\",\n          \"currency\": \"USD\",\n          \"description\": \"Phone case\",\n          \"dg_code\": null,\n          \"hts_code\": null,\n          \"origin_description\": \"手机外壳\",\n          \"product_id\": null,\n          \"quantity\": 1,\n          \"url\": null,\n          \"supplier\": \"US23123131\",\n          \"value\": 9.95,\n          \"weight\": 0.276\n        }\n      ],\n      \"nature_type\": null,\n      \"service\": \"BoxC Parcel\",\n      \"signature_confirmation\": false,\n      \"terms\": \"DDU\",\n      \"test\": true,\n      \"to\": {\n        \"company_name\": null,\n        \"name\": \"John Smith\",\n        \"phone\": \"555-123-456\",\n        \"email\": \"john@example.com\",\n        \"street1\": \"108 N WESTGATE WAY\",\n        \"street2\": null,\n        \"city\": \"Wylie\",\n        \"province\": \"TX\",\n        \"postal_code\": \"75098\",\n        \"country\": \"US\"\n      },\n      \"weight\": 0.4,\n      \"width\": 5\n    }\n  }'\n"
      - lang: cURL
        label: cURL Example 2
        source: "curl -X POST https://api.boxc.com/v1/shipments \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shipment\": {\n      \"carrier\": \"PostPlus\",\n      \"comments\": [\n        \"SKU #10292301\"\n      ],\n      \"consignee\": {\n        \"name\": \"Addressee John\",\n        \"phone\": \"555-987-6543\",\n        \"email\": null,\n        \"id\": null,\n        \"street1\": \"123 Main Ave.\",\n        \"street2\": null,\n        \"city\": \"Amsterdam\",\n        \"province\": null,\n        \"postal_code\": \"1234 AB\",\n        \"country\": \"NL\"\n      },\n      \"consignor\": {\n        \"name\": \"Generic Company, LLC\",\n        \"phone\": \"555-123-4567\",\n        \"email\": null,\n        \"id\": null,\n        \"street1\": \"1 WORLD WAY\",\n        \"street2\": \"\",\n        \"city\": \"Indianapolis\",\n        \"province\": \"IN\",\n        \"postal_code\": 60601,\n        \"country\": \"US\"\n      },\n      \"create_label\": false,\n      \"currency\": \"USD\",\n      \"entry_point\": \"TEST01\",\n      \"exit_point\": \"AMS\",\n      \"from\": null,\n      \"height\": 16.00,\n      \"ignore_bad_address\": false,\n      \"insurance\": false,\n      \"irregular\": false,\n      \"is_return\": false,\n      \"length\": 13,\n      \"line_items\": [\n        {\n          \"coo\": \"CN\",\n          \"currency\": \"USD\",\n          \"description\": \"Phone case\",\n          \"dg_code\": null,\n          \"hts_code\": null,\n          \"origin_description\": \"手机外壳\",\n          \"product_id\": null,\n          \"quantity\": 1,\n          \"supplier\": \"US23123131\",\n          \"url\": null,\n          \"value\": 19.95,\n          \"weight\": 0.276\n        }\n      ],\n      \"nature_type\": null,\n      \"order_number\": \"23018721-ABC\",\n      \"overpack_id\": 1291028,\n      \"service\": \"BoxC Parcel\",\n      \"signature_confirmation\": false,\n      \"terms\": \"DDP\",\n      \"test\": true,\n      \"to\": {\n        \"company_name\": null,\n        \"name\": \"John Smith\",\n        \"phone\": \"555-888-4444\",\n        \"email\": \"john@example.com\",\n        \"street1\": \"108 N WESTGATE WAY\",\n        \"street2\": null,\n        \"city\": \"Amsterdam\",\n        \"province\": null,\n        \"postal_code\": \"1234 AB\",\n        \"country\": \"NL\"\n      },\n      \"weight\": 0.276,\n      \"width\": 10,\n      \"zonos_customer_id\": \"<YOUR ZONOS ID>\"\n    }\n  }'\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                shipment:
                  $ref: '#/definitions/Shipment'
              required:
              - shipment
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  shipment:
                    $ref: '#/definitions/Shipment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/definitions/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: Request is malformed.
                    status: error
                    errors:
                    - Request is malformed.
                notFound:
                  summary: Not Found
                  description: Credential not found
                  value:
                    code: 1450
                    message: Credential not found
                    errors:
                    - Credential not found
                languageError:
                  summary: Entry Point Language
                  description: Origin description must be in the entry point's language
                  value:
                    code: 1222
                    message: Origin description must be in the entry point's language
                    errors:
                    - Origin description must be in the entry point's language
                descriptionError:
                  summary: Description Unacceptable
                  description: Description isn't acceptable
                  value:
                    code: 1223
                    message: Description isn't acceptable
                    errors:
                    - Description isn't acceptable
                htsCode:
                  summary: HTS Code Error
                  description: Line item HTS code error with a reason
                  value:
                    code: 1224
                    message: 'HTS Code error: code is too long after validation (''0102294064220'')'
                    errors:
                    - 'HTS Code error: code is too long after validation (''0102294064220'')'
                noRoutes:
                  summary: Bad Routes Request
                  description: No routes found
                  value:
                    code: 1050
                    message: No routes found
                    errors:
                    - No routes found
                addressError:
                  summary: Bad Address Request
                  description: Address Error
                  value:
                    code: 1012
                    message: Address Error
                    errors:
                    - Address Error
                hsCodeMissing:
                  summary: Missing Requirements
                  description: An HS Code and description are required for all products.
                  value:
                    code: 1215
                    message: Shipment requires an HS Code and description for all line items
                    errors:
                    - Shipment requires an HS Code and description for all line items
                dutyRates:
                  summary: Duty Rates
                  description: Unable to get tax and/or duty rates for this shipment
                  value:
                    code: 1243
                    message: Unable to get tax and/or duty rates for this shipment
                    errors:
                    - Unable to get tax and/or duty rates for this shipment
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '429':
          $ref: '#/definitions/RateLimit'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/definitions/InternalServerError'
              examples:
                internalServerError:
                  summary: Internal Server Error
                  description: Error while checking for denied parties
                  value:
                    code: 1010
                    message: Error while checking for denied parties
                    errors:
                    - Error while checking for denied parties
                labelError:
                  summary: Server Error Creating Label
                  description: Label could not be created.
                  value:
                    code: 1203
                    message: Label could not be created.
                    errors:
                    - Label could not be created.
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/definitions/ServiceUnavailable'
              examples:
                internalServerError:
                  summary: Service Unavailable
                  description: Address resolution service unavailable at this time.
                  value:
                    code: 503
                    message: Address resolution service unavailable at this time.
                    errors:
                    - Address resolution service unavailable at this time.
  /shipments/{id}:
    get:
      tags:
      - Shipments
      summary: GET /shipments/{id}
      description: Gets a shipment by its `id`. Clients can print a generic BoxC shipment label by changing the `Accept` header to <em>application/pdf</em> or providing `type=PDF` in the query parameters. The label is not a carrier label and should only be used for internal operations.
      operationId: getShipmentsById
      consumes:
      - application/json
      produces:
      - application/json
      - application/pdf
      security:
      - JWT:
        - read_shipments
      parameters:
      - name: Accept
        in: header
        required: false
        schema:
          type: string
          example: application/pdf
          enum:
          - application/json
          - application/pdf
        description: Optionally download the generic shipment label.
      - in: query
        name: type
        description: Allows a client to print the BoxC generic shipment label.
        required: false
        deprecated: true
        type: string
        example: PDF
        enum:
        - PDF
      - name: id
        in: path
        description: The shipment ID
        required: true
        type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL JSON
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Accept: application/json\" \\\n  https://api.boxc.com/v1/shipments/{id}\n"
      - lang: cURL
        label: cURL PDF
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Accept: application/pdf\" \\\n  https://api.boxc.com/v1/shipments/{id}\n"
      responses:
        '200':
          description: Returns application/json or a PDF depending on the Accept request header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  shipment:
                    $ref: '#/definitions/Shipment'
            application/pdf:
              type: string
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/definitions/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Shipment not found
                  value:
                    code: 1210
                    message: Shipment not found
                    errors:
                    - Shipment not found
        '429':
          $ref: '#/definitions/RateLimit'
    put:
      tags:
      - Shipments
      summary: PUT /shipments/{id}
      description: Updates a shipment. Only shipments with no labels or cancelled labels can be updated.
      operationId: updateShipment
      consumes:
      - application/json
      produces:
      - application/json
      security:
      - JWT:
        - write_shipments
      parameters:
      - name: id
        in: path
        description: The shipment ID
        required: true
        type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X PUT https://api.boxc.com/v1/shipments/{id} \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shipment\": {\n      \"carrier\": \"PostPlus\",\n      \"carrier_params\": null,\n      \"comments\": [\n        \"SKU #10292301\"\n      ],\n      \"cod: {\n        \"amount\": 0\n      },\n      \"consignee\": {\n        \"name\": \"Addressee John\",\n        \"phone\": \"555-987-6543\",\n        \"email\": null,\n        \"id\": null,\n        \"street1\": \"2959 ANCHOR DR\",\n        \"street2\": null,\n        \"city\": \"Amsterdam\",\n        \"province\": null,\n        \"postal_code\": \"1234 AB\",\n        \"country\": \"NL\"\n      },\n      \"consignor\": {\n        \"name\": \"Generic Company, LLC\",\n        \"phone\": \"555-123-4567\",\n        \"email\": null,\n        \"id\": null,\n        \"street1\": \"1 WORLD WAY\",\n        \"street2\": \"\",\n        \"city\": \"Indianapolis\",\n        \"province\": \"IN\",\n        \"postal_code\": 60601,\n        \"country\": \"US\"\n      },\n      \"create_label\": false,\n      \"currency\": \"USD\",\n      \"entry_point\": \"TEST01\",\n      \"exit_point\": \"AMS\",\n      \"freight_charge\": {\n        \"amount\": 12.26,\n        \"currency\": \"USD\"\n      },\n      \"from\": null,\n      \"height\": 16.00,\n      \"ignore_bad_address\": false,\n      \"insurance\": false,\n      \"irregular\": false,\n      \"is_return\": false,\n      \"length\": 13,\n      \"line_items\": [\n        {\n          \"coo\": \"CN\",\n          \"currency\": \"USD\",\n          \"description\": \"Phone case\",\n          \"dg_code\": null,\n          \"hts_code\": null,\n          \"origin_description\": \"手机外壳\",\n          \"product_id\": null,\n          \"quantity\": 1,\n          \"supplier\": \"US23123131\",\n          \"url\": null,\n          \"value\": 19.95,\n          \"weight\": 0.276\n        }\n      ],\n      \"order_number\": \"23018721-ABC\",\n      \"overpack_id\": 1291028,\n      \"service\": \"BoxC Parcel\",\n      \"signature_confirmation\": false,\n      \"terms\": \"DDP\",\n      \"test\": false,\n      \"to\": {\n        \"company_name\": null,\n        \"name\": \"John Smith\",\n        \"phone\": \"555-888-4444\",\n        \"email\": \"john@example.com\",\n        \"street1\": \"108 N WESTGATE WAY\",\n        \"street2\": null,\n        \"city\": \"Amsterdam\",\n        \"province\": null,\n        \"postal_code\": \"1234 AB\",\n        \"country\": \"NL\"\n      },\n      \"weight\": 0.276,\n      \"width\": 10,\n      \"zonos_customer_id\": \"<YOUR ZONOS ID>\"\n    }\n  }'\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                shipment:
                  $ref: '#/definitions/Shipment'
              required:
              - shipment
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  shipment:
                    $ref: '#/definitions/Shipment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/definitions/BadRequest'
              examples:
                validation:
                  summary: Validation error
                  description: The request schema is invalid.
                  value:
                    code: 1000
                    message: Request is malformed.
                    status: error
                    errors:
                    - Request is malformed.
                badRequest:
                  summary: Bad Request
                  description: Shipment has uncancelled or processed labels
                  value:
                    code: 1201
                    message: Shipment has uncancelled or processed labels
                    errors:
                    - Shipment has uncancelled or processed labels
                notFound:
                  summary: Not Found
                  description: Credential not found
                  value:
                    code: 1450
                    message: Credential not found
                    errors:
                    - Credential not found
                languageError:
                  summary: Entry Point Language
                  description: Origin description must be in the entry point's language
                  value:
                    code: 1222
                    message: Origin description must be in the entry point's language
                    errors:
                    - Origin description must be in the entry point's language
                descriptionError:
                  summary: Description Unacceptable
                  description: Description isn't acceptable
                  value:
                    code: 1223
                    message: Description isn't acceptable
                    errors:
                    - Description isn't acceptable
                noRoutes:
                  summary: Bad Routes Request
                  description: No routes found
                  value:
                    code: 1050
                    message: No routes found
                    errors:
                    - No routes found
                addressError:
                  summary: Bad Address Request
                  description: Address Error
                  value:
                    code: 1012
                    message: Address Error
                    errors:
                    - Address Error
                hsCode:
                  summary: Missing Requirements
                  description: An HS Code and description are required for all products.
                  value:
                    code: 1215
                    message: Shipment requires an HS Code and description for all line items
                    errors:
                    - Shipment requires an HS Code and description for all line items
                dutyRates:
                  summary: Duty Rates
                  description: Unable to get tax and/or duty rates for this shipment
                  value:
                    code: 1243
                    message: Unable to get tax and/or duty rates for this shipment
                    errors:
                    - Unable to get tax and/or duty rates for this shipment
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/definitions/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Shipment not found
                  value:
                    code: 1210
                    message: Shipment not found
                    errors:
                    - Shipment not found
        '429':
          $ref: '#/definitions/RateLimit'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/definitions/InternalServerError'
              examples:
                internalServerError:
                  summary: Internal Server Error
                  description: Error while checking for denied parties
                  value:
                    code: 1010
                    message: Error while checking for denied parties
                    errors:
                    - Error while checking for denied parties
                labelError:
                  summary: Server Error Creating Label
                  description: Label could not be created.
                  value:
                    code: 1203
                    message: Label could not be created.
                    errors:
                    - Label could not be created.
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/definitions/ServiceUnavailable'
              examples:
                ServerError:
                  summary: Service Unavailable
                  description: Address resolution service unavailable at this time.
                  value:
                    code: 503
                    message: Address resolution service unavailable at this time.
                    errors:
                    - Address resolution service unavailable at this time.
    delete:
      tags:
      - Shipments
      summary: DELETE /shipments/{id}
      description: Deletes a shipment.
      operationId: deleteShipment
      consumes:
      - application/json
      produces:
      - application/json
      security:
      - JWT:
        - write_shipments
      parameters:
      - name: id
        in: path
        description: The shipment ID
        required: true
        type: integer
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X DELETE https://api.boxc.com/v1/shipments/{id} \\\n  -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Content-Type: application/json\"\n"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/definitions/BadRequest'
              examples:
                cannotDelete:
                  summary: Bad Request
                  description: Shipment can't be deleted
                  value:
                    code: 1212
                    message: Shipment can't be deleted
                    errors:
                    - Shipment can't be deleted
                cannotDeleteOverpack:
                  summary: Bad Request Overpack
                  description: Shipments that are linked to an overpack can't be deleted
                  value:
                    code: 1218
                    message: Shipments that are linked to an overpack can't be deleted
                    errors:
                    - Shipments that are linked to an overpack can't be deleted
        '401':
          $ref: '#/definitions/Unauthorized'
        '403':
          $ref: '#/definitions/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/definitions/NotFound'
              examples:
                notFound:
                  summary: Not Found
                  description: Shipment not found
                  value:
                    code: 1210
                    message: Shipment not found
                    errors:
                    - Shipment not found
        '429':
          $ref: '#/definitions/RateLimit'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/definitions/InternalServerError'
              examples:
                internalServerError:
                  summary: Internal Server Error
                  description: Shipment can't be deleted
                  value:
                    code: 1212
                    message: Shipment can't be deleted
                    errors:
                    - Shipment can't be deleted
  /shipments/{id}/process:
    put:
      tags:
      - Shipments
      summary: PUT /shipments/{id}/process
      description: Process a shipment with the final measured weight and dimensions. Useful for clients that process shipments at their own facilities. Only select clients are authorized to perform this action. This changes shipment status to <em>Processed</em> and can't be reversed.<p><strong>Note:</strong> Multi-package shipments can't be processed this way as of now.</p>
      operationId: processShipment
      consumes:
      - application/json
      produces:
      - application/json
      security:
      - JWT:
        - write_shipments
        PrivilegedClient: []
      parameters:
      - name: id
        in: path
        description: The shipment ID

# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/boxc/refs/heads/main/openapi/boxc-shipments-api-openapi.yml