Boxc website screenshot

Boxc

BoxC (BoxC Logistics, Inc.) is an international e-commerce logistics management platform. Its single RESTful API drives cross-border ecommerce by integrating dozens of carriers, customs clearance, duties and taxes, warehousing and fulfillment, and returns through one integration. A routing engine can complete every leg of a shipment's journey or only selected steps on the merchant's behalf. The v1 API (currently 1.123) exposes 83 operations across 34 resources including Shipments, Labels, Orders, Products, Shops, Warehouses, Manifests, Overpacks, Inbound, Returns, Reshipments, Webhooks, Carrier Credentials, Customs Products, Entry Points, Tracking, Calculate Duty, Validate Address, and Classify. Authentication is OAuth 2.0 / OpenID Connect with RS256 JWT bearer tokens.

Boxc publishes 22 APIs on the APIs.io network, including CalculateDuty API, Classify API, Credentials API, and 19 more. Tagged areas include Company, Logistics, Shipping, Ecommerce, and Cross-Border.

The Boxc catalog on APIs.io includes 1 event-driven AsyncAPI specification.

Boxc’s developer surface includes documentation, API reference, getting-started guide, support, authentication, changelog, sandbox, and 22 more developer resources.

44.7/100 thin ▬ flat Agent 82/100 agent native Full breakdown ↓
scored 2026-07-27 · rubric v0.5
AccessSelf serve
22 APIs 1 MCP Servers
CompanyLogisticsShippingEcommerceCross-BorderFulfillmentCustomsTrackingWebhooks

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-27 · rubric v0.5
Composite quality — 44.7/100 · thin
Contract Quality 15.1 / 25
Developer Ergonomics 14.3 / 20
Commercial Clarity 4.7 / 20
Operational Transparency 3.8 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 82/100 · agent native
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 5 / 5
Well-Known Catalog 4 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/boxc: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 22

Individual APIs this provider publishes, each with its own machine-readable definition.

Boxc CalculateDuty API

Calculate the landed cost of a shipment. This is a quick way to calculate the duties and taxes owed for a shipment without having to create one.

Boxc Classify API

The Classify resource permits a user to retrieve the most likely HS code and description for one or more products. Each successful request costs $0.05 (USD) regardless ...

Boxc Credentials API

The Credentials resource allows users to store their own carrier account secrets securely. This gives users the ability to reuse their credentials without providing actual secre...

Boxc CustomsProducts API

Not to be confused with Fulfillment [Products](/#tag/Products), Customs Products are for clearing shipments containing regulated items like Food and Cosmetics (PGA). Customs Pro...

Boxc EntryPoints API

An entry point is the drop off location / origin for your shipments which affects your rates and the routes available. The `entry_point.id` is required when creating a shipment....

Boxc Estimate API

The Estimate resource allows a user to retrieve the estimated cost of shipping a package based on weight, dimensions, entry point, destination, and other parameters. No services...

Boxc Inbound API

The Inbound resource is part of the fulfillment component and allows customers to restock their products at warehouses operated by BoxC. An inbound shipment's products can't be ...

Boxc Invoices API

Invoices and statements are generated weekly and include a summary of all transactions between the invoice's `start_date` and `end_date`. Users can export an itemized list of al...

Boxc Labels API

The Labels resource allows a user to create, cancel, retrieve, and track labels for shipments. A label can't be created if there is already an uncancelled or processed label for...

Boxc Manifests API

The Manifests resource is used for generating the paperwork required for dropping off Overpacks at a [collection center](/#tag/EntryPoints) or carrier facility at the end of the...

Boxc Orders API

The Orders resource allows you to create, read, update, and delete orders that are meant to be fulfilled by BoxC. If you wish to manually create an order for a third party shop ...

Boxc Overpacks API

The Overpacks resource allows a user to combine many Shipments into one object for faster clearance with BoxC and Customs. An overpack can be a carton, container, pallet, or bag...

Boxc Products API

The Products resource allows users to add their products to the BoxC system. A product can have one or more Stock Keeping Units (SKUs). This gives users the ability to link thei...

Boxc Reshipments API

The Reshipments resource allows you to reship one or more returned packages at a time from a BoxC warehouse. When a reshipment is created the `status` of all included returns wi...

Boxc Returns API

The Returns resource allows a user to retrieve a list of returned shipments processed at a BoxC warehouse. Users may verify, [reship](/#tag/Reshipments), or discard their return...

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 uncancell...

Boxc Shops API

The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted. Clients should use a third party platform for integrating their ...

Boxc Track API

The Track resource allows clients to retrieve tracking events for shipments by their tracking number. You may only track one shipment per request. This endpoint is rate limited....

Boxc Users API

The Users resources allows an application to retrieve information about the tokenized user such as balances, personal/company address, and subscriptions. Only the addresses can ...

Boxc ValidateAddress API

The Validate Address resource permits a user to validate and retrieve the most likely matches of provided postal addresses. Each successful validation costs $0.03 (USD).

Boxc Warehouses API

The Warehouses resource allows you to retrieve location and identity information for a single warehouse or all warehouses. You should query this endpoint to retrieve an active l...

Boxc Webhooks API

The Webhooks resource allows applications to subscribe to topics and receive events for users. Events are pushed to the webhook's `address` with a payload by issuing an HTTP POS...

Scroll for all 22

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

boxc-mcp.yml

MCP SERVER

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Boxc Webhooks

ASYNCAPI

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Boxc Authentication

oauth2/openIdConnect/http · 2 schemes

SECURITY

Boxc Domain Security

TLSv1.3 · DMARC

SECURITY

Scopes 1

OAuth scopes governing access to this provider's APIs.

Boxc Scopes

19 scopes · authorizationCode

19 scopes

SCOPES

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Boxc Agentic Access

83 operations · 49 acting

83 operations · 49 acting

AGENTIC

Resources

Get Started 4

Portal, sign-up, and the first successful call

Documentation 3

Reference material describing how the API behaves

Agent Surfaces 5

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Build 2

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Operate 3

Status, limits, changes, and where to get help

Commercial 1

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: boxc
name: Boxc
description: BoxC (BoxC Logistics, Inc.) is an international e-commerce logistics management platform. Its single RESTful
  API drives cross-border ecommerce by integrating dozens of carriers, customs clearance, duties and taxes, warehousing and
  fulfillment, and returns through one integration. A routing engine can complete every leg of a shipment's journey or only
  selected steps on the merchant's behalf. The v1 API (currently 1.123) exposes 83 operations across 34 resources including
  Shipments, Labels, Orders, Products, Shops, Warehouses, Manifests, Overpacks, Inbound, Returns, Reshipments, Webhooks, Carrier
  Credentials, Customs Products, Entry Points, Tracking, Calculate Duty, Validate Address, and Classify. Authentication is
  OAuth 2.0 / OpenID Connect with RS256 JWT bearer tokens.
accessModel:
  pricing: unknown
  onboarding: self-serve
  trial: false
  try_now: false
  public: false
  label: Self-serve signup
  confidence: medium
  source:
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png
url: https://raw.githubusercontent.com/api-evangelist/boxc/refs/heads/main/apis.yml
x-type: company
x-source: vc-portfolio
x-backed-by:
- 500-global
x-tier: profiled
x-tier-reason: enriched-2026-07-18
specificationVersion: '0.20'
created: '2026-07-17'
modified: '2026-07-18'
tags:
- Company
- Logistics
- Shipping
- Ecommerce
- Cross-Border
- Fulfillment
- Customs
- Tracking
- Webhooks
apis:
- aid: boxc:boxc-calculateduty-api
  name: Boxc CalculateDuty API
  description: Calculate the landed cost of a shipment. This is a quick way to calculate the duties and taxes owed for a shipment
    without having to create one.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - CalculateDuty
  properties:
  - type: OpenAPI
    url: openapi/boxc-calculateduty-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-classify-api
  name: Boxc Classify API
  description: The Classify resource permits a user to retrieve the <em>most likely</em> HS code and description for one or
    more products. Each successful request costs $0.05 (USD) regardless of the number of products.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Classify
  properties:
  - type: OpenAPI
    url: openapi/boxc-classify-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-credentials-api
  name: Boxc Credentials API
  description: 'The Credentials resource allows users to store their own carrier account secrets securely. This gives users
    the ability to reuse their credentials without providing actual secret values in every single shipment request. There
    can be multiple secret values stored in a single credential resource. Supported carriers and parameters can be found in
    the [Carrier Credentials](/#tag/CarrierCredentials) section.


    **Note:** All secret params that are stored by BoxC are encrypted at the storage layer using the Advanced Encryption Standard
    (AES) algorithm — AES-256.


    **Important:** Once a credential resource is created, it is not possible to see the secret values for security reasons.


    **Important:** If the secret values have to be updated for any reason, we recommend updating your existing Credential
    resource instead of creating a new one. Doing so will ensure that secret values are always up to date for previously created
    labels with the same Credential resource and event tracking is not affected adversely.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Credentials
  properties:
  - type: OpenAPI
    url: openapi/boxc-credentials-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-customsproducts-api
  name: Boxc CustomsProducts API
  description: 'Not to be confused with Fulfillment [Products](/#tag/Products), Customs Products are for clearing shipments
    containing regulated items like Food and Cosmetics (PGA). Customs Products contain information about the item including
    the manufacturer, seller, importer, etc. Shipments that are determined to be PGA must provide the `product_id` in the
    line item. Manifesting PGA shipments will notify the relevant agencies.


    Several properties are conditional and offer different options based on the `coi` and `type` of product.


    **Important:** This resource and its operations are in Beta and subject to change without notice.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - CustomsProducts
  properties:
  - type: OpenAPI
    url: openapi/boxc-customsproducts-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-entrypoints-api
  name: Boxc EntryPoints API
  description: An entry point is the drop off location / origin for your shipments which affects your rates and the routes
    available. The `entry_point.id` is required when creating a shipment. You must query this endpoint to get an active list
    of entry points as some of added, changed, or removed.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - EntryPoints
  properties:
  - type: OpenAPI
    url: openapi/boxc-entrypoints-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-estimate-api
  name: Boxc Estimate API
  description: The Estimate resource allows a user to retrieve the estimated cost of shipping a package based on weight, dimensions,
    entry point, destination, and other parameters. No services will be returned if a route can't be matched against the provided
    parameters.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Estimate
  properties:
  - type: OpenAPI
    url: openapi/boxc-estimate-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-inbound-api
  name: Boxc Inbound API
  description: 'The Inbound resource is part of the fulfillment component and allows customers to restock their products at
    warehouses operated by BoxC. An inbound shipment''s products can''t be modified after creation, but the warehouse, carrier,
    tracking number, and notes can be modified.


    ### Inbound Status

    The following table lists all possible states of an inbound shipment indicated by its `status` property. Only the system
    or warehouse can modify a shipment''s status.


    | Status | Description |

    |--------|-------------|

    | Pending | The inbound shipment was created and may be en route to the warehouse. Default state. |

    | Received | The inbound shipment arrived at the warehouse. It can no longer be updated or deleted. |

    | Processed | The inbound shipment was processed and inventoried by the warehouse. |'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Inbound
  properties:
  - type: OpenAPI
    url: openapi/boxc-inbound-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-invoices-api
  name: Boxc Invoices API
  description: Invoices and statements are generated weekly and include a summary of all transactions between the invoice's
    `start_date` and `end_date`. Users can export an itemized list of all transactions for a billing period in their account.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Invoices
  properties:
  - type: OpenAPI
    url: openapi/boxc-invoices-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-labels-api
  name: Boxc Labels API
  description: The Labels resource allows a user to create, cancel, retrieve, and track labels for shipments. A label can't
    be created if there is already an uncancelled or processed label for the shipment. Labels that have been processed can't
    be cancelled. The user is responsible for paying the shipping costs if a label is cancelled but still processed at a facility.
    Test labels are routinely purged from the system.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Labels
  properties:
  - type: OpenAPI
    url: openapi/boxc-labels-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-manifests-api
  name: Boxc Manifests API
  description: 'The Manifests resource is used for generating the paperwork required for dropping off Overpacks at a [collection
    center](/#tag/EntryPoints) or carrier facility at the end of the day. It also transmits the shipment data to the carrier(s)
    electronically. In order to create a manifest you must provide a list of the Overpacks that will be dropped off together.
    A manifest consists of all Shipments that are linked to each Overpack.


    **Note:** All overpacks in a manifest must have the same ```entry_point```, can''t be empty, or missing weight and dimensions.


    Some manifests may have separate forms or no forms at all for the different carriers depending on the routes utilized
    by the affected shipments. Shipments should be sorted into Overpacks based on the carrier and other details prior to manifesting.
    Multiple copies of a form may exist for the driver and facility.


    **Note:** It can take up to several minutes before forms are available for download after manifesting because the required
    background tasks run asynchronously.


    **Important:** Once a manifest is created the associated overpacks and shipments can''t be modified.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Manifests
  properties:
  - type: OpenAPI
    url: openapi/boxc-manifests-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-orders-api
  name: Boxc Orders API
  description: 'The Orders resource allows you to create, read, update, and delete orders that are meant to be fulfilled by
    BoxC. If you wish to manually create an order for a third party shop you must provide the `shop.id` and `shop.order_id`.
    Neither property can be updated. The system will push tracking information to the shop when the order is fulfilled if
    both properties are set. Clients can force which warehouse is used for order fulfillment by setting the `warehouse.id`
    property.

    ### Order Status


    The following table lists all possible states of an order indicated by its `status` property. Updating an order that is
    ''Ready'' will reset its status to ''Processing'' and restore product quantities until it''s processed by the system again.


    | Status | Description |

    |--------|-------------|

    | Backordered | There is insufficient quantity for one or more line items. The system will change the status once more
    inventory is added. |

    | Exception | There is a problem with the order such as missing or invalid information. The user must correct the problem
    before the order can be processed by the system. |

    | Holding | The order is being delayed from processing by the user. |

    | Processing | The order is waiting for the system to process it. Default state. |

    | Ready | The order is assigned to a warehouse for packing and quantities were deducted. |

    | Packing | One or more line items are being packed. <em>It can''t be edited in this state</em>. |

    | Partial | The order was partially fulfilled. The remaining line items will be fulfilled when more inventory arrives.
    |

    | Fulfilled | The order was completely fulfilled. |

    | Archived | The system archives orders that were fulfilled at least 90 days in the past. |


    ### Pruning Orders


    The system routinely prunes or closes out orders in the system more than **365 days** ago. The start time is based on
    the `placed_at` and not the `created` datetime. What happens to the order depends on its current state at the time of
    pruning.


    - Unfulfilled (not Packing, Partial, Fulfilled) orders are deleted.

    - Partially fulfilled orders (Holding, Packing, Partial) are bumped to Fulfilled.

    - Orders in Packing have their unfulfilled line items and fulfillment objects deleted, and are bumped to Fulfilled.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Orders
  properties:
  - type: OpenAPI
    url: openapi/boxc-orders-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-overpacks-api
  name: Boxc Overpacks API
  description: 'The Overpacks resource allows a user to combine many Shipments into one object for faster clearance with BoxC
    and Customs. An overpack can be a carton, container, pallet, or bag. Regardless, it must contain an overpack label on
    the outside. Empty overpacks are routinely purged from the system.


    When creating an overpack it''s recommended to provide one or more shipment ID, label ID, or tracking numbers in the request.
    The overpack will inherit the first shipment''s (`n`) attributes like the `entry_point`, `service`, `terms`, etc. All
    shipments require identical attributes to be a part of the same overpack. Errors will be returned if the `n + 1` shipments
    do not match the first one. An error message will be present in the `shipments` array for each shipment that fails while
    creating or updating overpacks. Shipments that pass validation will still be added in the same request.


    The system will calculate the routing and other applicable carrier logic to determine the physical appearance of the label.
    Some carriers require custom messaging on the labels while others require a completely different label altogether. The
    system handles this logic on your behalf.


    **Note:** Shipments without labels and cancelled shipments can''t be added to overpacks.


    The overpack(s) must be dropped off at the BoxC collection center indicated by the `entry_point`. Some entry points do
    not require overpacking and the system will prevent you from creating one. Deleting an overpack unassigns all shipments
    from it.


    **Note:** A client won''t be able to print an overpack label until at least one shipment is assigned to it.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Overpacks
  properties:
  - type: OpenAPI
    url: openapi/boxc-overpacks-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-products-api
  name: Boxc Products API
  description: 'The Products resource allows users to add their products to the BoxC system. A product can have one or more
    Stock Keeping Units (SKUs). This gives users the ability to link their different shops'' SKUs to the same product. There
    can only be one active SKU per shop per product. Orders won''t be fulfilled until the warehouse accepts and processes
    your products. This includes measuring the weight and dimensions, and updating the quantity.


    **Note:** Products and SKUs linked to orders can''t be deleted. Existing SKUs can''t be assigned to a different shop.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Products
  properties:
  - type: OpenAPI
    url: openapi/boxc-products-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-reshipments-api
  name: Boxc Reshipments API
  description: 'The Reshipments resource allows you to reship one or more returned packages at a time from a BoxC warehouse.
    When a reshipment is created the `status` of all included returns will change to "Reshipping". Only returns with the following
    status can be reshipped: Processed, Verifying, and Verified. If reshipping more than one return at a time then you must
    wait for a facility operator to provide an `estimated_reship_fee`. If reshipping one return then the estimate will be
    instantaneous. In both cases you must approve the estimate before the reshipment is sent and your account is charged.


    **Note:** All returns in a bulk reshipment (> 1 return) must reside in the same warehouse.

    ### Status

    When a reshipment is created its status is set to "Pending" by default. It will remain that way until the `estimated_reship_fee`
    is populated by the system or facility operator. Afterwards, you have the option to approve or decline the amount by [updating](/#tag/Reshipments/operation/updateReshipment)
    the status accordingly. If "Declined", it will not be reshipped. If "Approved" it will be reshipped, tracking information
    will be made available, and a final reship_fee will be provided. Reshipments with the status "Approved" cannot be deleted.


    **Important:** Reshipments that are "Pending" or "Declined" longer than 15 days will be deleted by the system.


    **Note:** The final reshipping fee may differ from the estimated reshipping fee.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Reshipments
  properties:
  - type: OpenAPI
    url: openapi/boxc-reshipments-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-returns-api
  name: Boxc Returns API
  description: 'The Returns resource allows a user to retrieve a list of returned shipments processed at a BoxC warehouse.
    Users may verify, [reship](/#tag/Reshipments), or discard their returns. Discarding a return is irreversible.

    ### Verify

    Users have the option to verify a return before reshipping it. The facility operator will take additional pictures of
    the contents inside the return and add messages if necessary. To verify a return the user should <strong>PUT</strong>
    a `status` of "Verify". This will change the status of the return to "Verifying" which cannot be reversed. Only returns
    in the "Processed" state can be verified.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Returns
  properties:
  - type: OpenAPI
    url: openapi/boxc-returns-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-shipments-api
  name: Boxc Shipments API
  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.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Shipments
  properties:
  - type: OpenAPI
    url: openapi/boxc-shipments-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-shops-api
  name: Boxc Shops API
  description: The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted.
    Clients should use a third party platform for integrating their ecommerce marketplaces with the BoxC API.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Shops
  properties:
  - type: OpenAPI
    url: openapi/boxc-shops-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-track-api
  name: Boxc Track API
  description: "The Track resource allows clients to retrieve tracking events for shipments by their tracking number. You\
    \ may only track one shipment per request. This endpoint is rate limited.\n\nSome shipments may have <code>images</code>\
    \ attached to them during transit such as processing scans and proof of delivery. To reveal these images in the response\
    \ the client must either:\n\n  A. Be the owner of the shipment;<br>\n  B. Provide the shipping email address in the query;<br>\n\
    \  C. Provide the postal code in the query if it's not revealed in the event history."
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Track
  properties:
  - type: OpenAPI
    url: openapi/boxc-track-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-users-api
  name: Boxc Users API
  description: 'The Users resources allows an application to retrieve information about the tokenized user such as balances,
    personal/company address, and subscriptions. Only the addresses can be updated by applications


    ### Subscriptions


    A subscription is a recurring payment for a provided service. The specified `amount` is deducted from the user''s BoxC
    balance at the start of each `interval` - also known as `current_period_start`.


    - Applications can only view subscriptions that belong to them.

    - Subscriptions automatically renew each interval until cancelled.

    - Cancelling a subscription will flag it to be deleted after `current_period_end`. To save a subscription it must be renewed
    before `current_period_end`.

    - Subscriptions are automatically removed from the list if their `current_period_end` is less than the current time.

    - A subscription cannot be modified after creation - only renewed.

    - A subscription will not be renewed if the user has insufficient funds.

    - A subscription can only be cancelled by the user from their account''s dashboard.'
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Users
  properties:
  - type: OpenAPI
    url: openapi/boxc-users-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-validateaddress-api
  name: Boxc ValidateAddress API
  description: The Validate Address resource permits a user to validate and retrieve the most likely matches of provided postal
    addresses. Each successful validation costs $0.03 (USD).
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - ValidateAddress
  properties:
  - type: OpenAPI
    url: openapi/boxc-validateaddress-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-warehouses-api
  name: Boxc Warehouses API
  description: The Warehouses resource allows you to retrieve location and identity information for a single warehouse or
    all warehouses. You should query this endpoint to retrieve an active list of fulfillment warehouses that customers can
    send their products to restock their inventory. The ```warehouse.id``` is used for selecting the warehouse while creating
    an inbound shipment or an order.
  humanURL: https://docs.boxc.com/
  baseURL: https://api.boxc.com/v1
  tags:
  - Warehouses
  properties:
  - type: OpenAPI
    url: openapi/boxc-warehouses-api-openapi.yml
  - type: Swagger
    url: openapi/boxc-openapi-original.yml
  - type: Documentation
    url: https://docs.boxc.com/
  - type: APIReference
    url: https://docs.boxc.com/
- aid: boxc:boxc-webhooks-api
  name: Boxc Webhooks API
  description: "The Webhooks resource allows applications to subscribe to topics and receive events for users. Events are\
    \ pushed to the webhook's `address` with a payload by issuing an HTTP POST request each time.\n\n**Note:** Webhook subscriptions\
    \ are scoped only to the application that they're registered to which means other applications can't read, modify, or\
    \ delete them.\n### Address Rules\nTo create a webhook you register a valid HTTP address for consuming the events. It\
    \ can be updated at any time. An address is considered valid if it meets the following conditions:\n\n- Must be RFC compliant\
    \ (include HTTP/S).\n- Must include a valid hostname (example: www.boxc.com).\n- Must include a path and can't be just\
    \ a domain or IP address (example: <span>http://</span>boxc.com/path/to/script).\n- Can't include localhost in the hostname.\n\
    - Must be less than or equal to 128 characters in length.\n\n### HTTP Headers\nThere are four additional HTTP headers\
    \ added to the webhook event to aid applications in processing them.\n\n- **User-Agent** - Always \"BoxC/1.0 Webhook\"\
    \ for filtering webhook requests.\n- **X-BoxC-Hmac-SHA256** - Base64 encoded HMAC digest. Useful for verifying the event\
    \ is authentic (example: Ikaxp9lMrkNXb6kxVhYxxiYDZplIN1kQcHV6gK3duFk=).\n- **X-BoxC-Topic** - The subject of the event\
    \ (example: shipments_status).\n- **X-BoxC-Account** - The user ID affected by the event (example: 9512).\n### Verifying\
    \ Events\nA `key` is required when creating a webhook. Every webhook has a `key` that is used to calculate the **X-BoxC-Hmac-SHA256**\
    \ HTTP header by using the payload sent in the request. To verify the request came from BoxC, compute the HMAC digest\
    \ using the SHA-256 hash function, encode it to [Base64](https://en.wikipedia.org/wiki/Base64), and compare it to the\
    \ X-BoxC-Hmac-SHA256 header.\n\nKeys are provided by the application and must be between 16 and 32 characters long. They're\
    \ not unique or immutable.\n### Payloads\nThe payload contains a JSON object with the data for the webhook event. The\
    \ contents and structure of each payload varies depending on the topic.\n### Responding to Webhooks\nThe configured webhook\
    \ `address` must respond with an HTTP Status between 200 and 299 (inclusive) to be considered successful. Any response\
    \ outside the 200 range will result in a failed attempt and will be queued for three additional attempts within an hour\
    \ before it's evicted. Requests made to the webhook address will not follow any redirects.\n\nThe `address` must connect\
    \ within 2 seconds and respond within 4 seconds overall or it will be considered a failed attempt. If you believe it will\
    \ take longer than 4 seconds to respond then you should process the request asynchronously after responding with 200 OK.\n\
    \nBoxC uses an exponential backoff timer for calculating the next attempt and will continue to retry three more times.\
    \ Webhook addresses that don't respond with a successful status 1000 consecutive times are deactivated until the client\
    \ updates the malfunctioning webhook. An email is sent to the OAuth client when a webhook is deactivated.\n### Testing\
    \ Webhooks\nApplications can test their integration by POSTing an event to a webhook they manage. The same event will\
    \ be injected into the queue and subsequently POSTed to the webhook's configured address without any alterations. A fake\
    \ payload from one of the topics below can be used as a template and modified to test the different stages of an object's\
    \ lifecycle. The event's payload must match the topic's schema the webhook is subscribed to.\n### Topics\nListed below\
    \ are the current topics and their respective event structures that users may subscribe to.\n\n#### fulfillments_complete\n\
    \nThis event is triggered when a fulfillment is fulfilled and finalized at a warehouse. Tracking numbers will be provided\
    \ in most cases, but sometimes there's a delay from the carrier - users should subscribe to `fulfillments_update` to handle\
    \ this scenario.\n```json\n{\n  \"fulfillment\": {\n    \"id\": 619231,\n    \"line_items\": [\n        {\n          \
    \  \"product_id\": 121000,\n            \"quantity\": 2,\n            \"sku\": \"MYSKU123\"\n        }\n    ],\n    \"\
    order_id\": 600001,\n    \"service\": \"BoxC Parcel\",\n    \"shipment_id\": 1521231,\n    \"shop\": {\n        \"id\"\
    : \"my-test-shop\",\n        \"order_id\": \"#1002\"\n    },\n    \"tracking_number\": null,\n    \"tracking_url\": null,\n\
    \    \"warehouse_id\": \"WH0HKG01\"\n  }\n}\n```\n\n#### fulfillments_update\n\nThis event is triggered when a fulfillment's\
    \ tracking information is updated by the carrier after it was already completed. Some carriers don't provide a tracking\
    \ number immediately.\n```json\n{\n  \"fulfillment\": {\n      \"id\": 619231,\n      \"order_id\": 600001,\n      \"\
    service\": \"BoxC Parcel\",\n      \"shipment_id\": 1521231,\n      \"shop\": {\n          \"id\": \"my-test-shop\",\n\
    \          \"order_id\": \"#1002\"\n      },\n      \"tracking_number\": \"9261290185965500000103\",\n      \"tracking_url\"\
    : \"https:\\/\\/track.boxc.com\\/?id=9261290185965500000103\",\n      \"warehouse_id\": \"WH0HKG01\"\n  }\n}\n```\n\n\
    #### manifests_complete\n\nThis event is triggered when a manifest finished processing and any related PDF documents are\
    \ available for download.\n```json\n{\n  \"manifest\": {\n      \"created\": \"2022-08-02 12:12:12\",\n      \"entry_point\"\
    : \"LAXI01\",\n      \"exit_point\": \"SYD\",\n      \"id\": 909447,\n      \"forms\": [\n          \"Toll_IPEC.pdf\"\n\
    \      ],\n      \"mawb_id\": null,\n      \"overpacks\": [\n        {\n          \"carrier\": \"Toll\",\n          \"\
    created\": \"2021-08-01 00:26:05\",\n          \"height\": 10,\n          \"id\": 1002730,\n          \"length\": 10,\n\
    \          \"service\": \"BoxC Parcel\",\n          \"terms\": \"DDU\",\n          \"type86\": false,\n          \"weight\"\
    : 5,\n          \"width\": 10\n        }\n      ],\n      \"total_shipments\": 4,\n      \"warehouse_no\": \"02599225803\"\
    \n  }\n}\n```\n\n#### orders_status\n\nThis event is triggered when an order's status changes. Only orders updated to\
    \ \"Exception\" will trigger this event.\n```json\n{\n  \"order\": {\n      \"created\": \"2020-02-27 12:12:12\",\n  \
    \    \"id\": 1831488,\n      \"line_items\": [\n          {\n              \"product_id\": 123456,\n              \"sku\"\
    : \"sku123\",\n              \"quantity\": 1\n          }\n      ],\n      \"placed_at\": \"2020-02-27 15:15:15\",\n \
    \     \"service\": \"Bo

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