# Shipping API For Ecommerce Developers | Easyship Documentation ## Guides - [Sandbox](https://developers.easyship.com/docs/sandbox.md): The sandbox environment allows you to test all of the APIs. The data, rates and labels are for illustrative purposes only. - [How to connect Easyship users to your platform](https://developers.easyship.com/docs/how-to-authorize-easyship-user.md): This guide is for platforms as partner apps on Easyship to connect existing Easyship users or new signed up users. - [How to Automate your Shipments](https://developers.easyship.com/docs/how-to-automate-your-shipments.md) - [How to Create a Return Shipment](https://developers.easyship.com/docs/how-to-create-a-return-shipment.md) - [How to Display Rates at Checkout](https://developers.easyship.com/docs/how-to-display-rates-at-checkout.md) - [How to Track a Shipment](https://developers.easyship.com/docs/how-to-track-a-shipment.md) - [How to Validate Addresses](https://developers.easyship.com/docs/how-to-validate-addresses.md) - [HS Codes, Address Validation and T&Ds Features](https://developers.easyship.com/docs/hs-codes-address-validation-and-tds-features.md) - [Overview Flow Guide](https://developers.easyship.com/docs/overview-flow-guide.md) - [Easyship - Shipping MCP](https://developers.easyship.com/docs/easyship-mcp-server.md) ## API Reference - [Changelog](https://developers.easyship.com/reference/changelog.md) - [Errors](https://developers.easyship.com/reference/errors.md) - [Overview](https://developers.easyship.com/reference/introduction.md) - [Migrate from v1 to v2024](https://developers.easyship.com/reference/migrate-from-v1-to-v2024.md): This guide highlights changes required for migrating APIs from v1 (legacy version) to v2024-09 (latest version) - [Migrate from v2023 to v2024](https://developers.easyship.com/reference/migrate-from-v2023-to-v2024.md) - [Rate Limit](https://developers.easyship.com/reference/rate-limit.md) - [Register an App](https://developers.easyship.com/reference/register-an-app.md) - [Scopes](https://developers.easyship.com/reference/scopes.md) - [Retrieve info for the Access Token](https://developers.easyship.com/reference/oauth2_token_info.md): Retrieve an OAuth 2 Access Token information. - [Introspect an Access Token](https://developers.easyship.com/reference/oauth2_token_introspect.md): Introspect an OAuth 2 Access Token using another Access Token. - [Revoke an Access Token](https://developers.easyship.com/reference/oauth2_token_revoke.md): Revoke an OAuth 2 Access Token using your Client Credentials. - [Retrieve an Access Token](https://developers.easyship.com/reference/oauth2_token.md): Retrieve an OAuth 2 Access Token. There are two ways of accessing the child companies: 1. **Client Credentials Grant** with a `enterprise.child_company::access` scope and a custom header `X_EASYSHIP_COMPANY_ID` in each request to our Public API. 2. A custom **Delegated Account Grant**, that will generate access and refresh tokens associated with a specific child company defined in the `easyship_company_id`. - [Create a Company](https://developers.easyship.com/reference/companies_create.md): Create a new company in specific organization. Required authorization scope: `enterprise.company:write` - [Delete a Company](https://developers.easyship.com/reference/companies_delete.md): Delete a company. Required authorization scope: `enterprise.company:write` - [List all Companies](https://developers.easyship.com/reference/companies_index.md): List all companies which belong to organisation. Required authorization scope: `enterprise.company:read` - [Update a Company](https://developers.easyship.com/reference/companies_update.md): Update a company. Required authorization scope: `enterprise.company:write` - [Create a Company Onboarding](https://developers.easyship.com/reference/company_onboardings_create.md): Create a Company Onboarding. Required authorization scope: `enterprise.company:write` - [Get a Company Onboarding](https://developers.easyship.com/reference/company_onboardings_show.md): Retrieve a Company Onboarding. Required authorization scope: `enterprise.company:read` - [Downgrade a Subscription](https://developers.easyship.com/reference/downgrade_subscription_create.md): Switch a specific child company to the free-tier subscription plan. The free-tier plan takes effect upon expiration of the current plan period. Required authorization scope: `enterprise.company:write` - [List all Companies of the Organization](https://developers.easyship.com/reference/organization_companies_index.md): Retrieve a list of companies from a specific organization. Required authorization scope: `enterprise.company:read` - [List all Organizations](https://developers.easyship.com/reference/organizations_index.md): Retrieve a list of organizations (groups of child companies) that are a part of your group. Required authorization scope: `enterprise.organization:read` - [Create a Shipping Rule](https://developers.easyship.com/reference/organizations_shipping_rules_create.md): Create a shipping rule for a specific organization. Required authorization scope: `enterprise.shipping_rule:write` - [List all Shipping Rules](https://developers.easyship.com/reference/organizations_shipping_rules_index.md): Retrieve a list of an organization's shipping rules. Required authorization scope: `enterprise.shipping_rule:read` - [Activate a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_activate-1.md): Activate specific shipping rule. Required authorization scope: `enterprise.shipping_rule:write` - [Deactivate a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_deactivate-1.md): Deactivate specific shipping rule. Required authorization scope: `enterprise.shipping_rule:write` - [List all Platform Names](https://developers.easyship.com/reference/shipping_rule_platforms_index-1.md): Retrieve a list of available platform names for shipping rules. Required authorization scope: `enterprise.shipping_rule:read` - [Delete a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_delete-1.md): Delete a shipping rule. Required authorization scope: `enterprise.shipping_rule:write` The path does not include the `organization_id` path parameter used for 'List all Shipping Rules' and 'Create a Shipping Rule' actions. - [Get a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_show-1.md): Retrieve a shipping rule. Required authorization scope: `enterprise.shipping_rule:read` The path does not include the `organization_id` path parameter used for 'List all Shipping Rules' and 'Create a Shipping Rule' actions. - [Update a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_update-1.md): Update a shipping rule. Required authorization scope: `enterprise.shipping_rule:write` The path does not include the `organization_id` path parameter used for 'List all Shipping Rules' and 'Create a Shipping Rule' actions. - [Create Action for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_create-1.md): Create an action for a shipping rule. Required authorization scope: `enterprise.shipping_rule:write` - [Delete Action of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_delete-1.md): Delete shipping rule action. Required authorization scope: `enterprise.shipping_rule:write` - [List all Actions for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_index-1.md): List actions for a shipping rule. Required authorization scope: `enterprise.shipping_rule:read` - [Update Action of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_update-1.md): Update shipping rule action. Required authorization scope: `enterprise.shipping_rule:write` - [Create Condition for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_create-1.md): Create condition for a shipping rule. Required authorization scope: `enterprise.shipping_rule:write` - [Delete Condition of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_delete-1.md): Delete shipping rule condition. Required authorization scope: `enterprise.shipping_rule:write` - [List all Conditions for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_index-1.md): List conditions of a shipping rule. Required authorization scope: `enterprise.shipping_rule:read` - [Update Condition of the Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_update-1.md): Update shipping rule condition. Required authorization scope: `enterprise.shipping_rule:write` - [Activate a Webhook](https://developers.easyship.com/reference/organizations_webhooks_activate.md): Activates a single webhook for your organization. Required authorization scope: `enterprise.webhook:write` - [Create a Webhook](https://developers.easyship.com/reference/organizations_webhooks_create.md): Create a single webhook for specific organization. Required authorization scope: `enterprise.webhook:write` - [Deactivate a Webhook](https://developers.easyship.com/reference/organizations_webhooks_deactivate.md): Deactivates a single webhook for your organization. Required authorization scope: `enterprise.webhook:write` - [Delete a Webhook](https://developers.easyship.com/reference/organizations_webhooks_delete.md): Delete a single webhook from your organization. Required authorization scope: `enterprise.webhook:write` - [List all Webhooks](https://developers.easyship.com/reference/organizations_webhooks_index.md): List all webhooks which belong to specific organisation. Required authorization scope: `enterprise.webhook:read` - [Get a Webhook](https://developers.easyship.com/reference/organizations_webhooks_show.md): Retrieve details of a specific webhook in the organization. Required authorization scope: `enterprise.webhook:read` - [Test a Webhook](https://developers.easyship.com/reference/organizations_webhooks_test.md): Test a single webhook in the organization. (The company ID of the organization owner will be included in the `X-EASYSHIP-COMPANY-ID` header.) Required authorization scope: `enterprise.webhook:write` - [Update a Webhook](https://developers.easyship.com/reference/organizations_webhooks_update.md): Update a single webhook in the organization. Required authorization scope: `enterprise.webhook:write` - [Authorize user on Easyship](https://developers.easyship.com/reference/oauth2_authorize.md): Redirect a user for authentication on Easyship. The endpoint is part of [OAuth 2.0 Authorization Code](https://developers.easyship.com/docs/how-to-authorize-easyship-user) flow. > 🚧 Warning > > This endpoint uses **auth.easyship.com** domain. The full URL, without query params, is `https://auth.easyship.com/oauth2/authorize`. > *This docs platform does not fully support OpenAPI and uses/displays the global URL instead of the correct one.* After successful authentication, the user will be redirected back to `redirect_uri` with a `code` (and `state`) parameter in the query string. The `code` can then be exchanged for an access token using the [OAuth2 Token endpoint](https://developers.easyship.com/reference/oauth2_token-1) with `AUTHORIZATION_CODE` request body. - [Retrieve info for the Access Token](https://developers.easyship.com/reference/oauth2_token_info-1.md): Retrieve an OAuth 2 Access Token information. - [Introspect an Access Token](https://developers.easyship.com/reference/oauth2_token_introspect-1.md): Introspect an OAuth 2 Access Token using another Access Token. - [Revoke an Access Token](https://developers.easyship.com/reference/oauth2_token_revoke-1.md): Revoke an OAuth 2 Access Token using your Client Credentials. - [Create an Access Token](https://developers.easyship.com/reference/oauth2_token-1.md): Retrieve an OAuth 2 Access Token. The endpoint is part of [OAuth 2.0 Authorization Code](https://developers.easyship.com/docs/how-to-authorize-easyship-user) flow. Refresh tokens are for one-time use only. A new refresh token is always issued with a new access token. - [Information about the Account](https://developers.easyship.com/reference/account_show.md): Retrieve information about current account Properties below would display only when the access token includes the corresponding scopes. | Property | Required API Scope | | -------- | ------------------ | | `billing_address` | `public.address:read` | | `credit` | `public.credit:read` | | `payment_sources` | `public.payment_source:read` | - [Create an App Access](https://developers.easyship.com/reference/app_access_create.md): Create a temporary app access redirect token Required authorization scope: `public.app_access:write` - [Activate Assets](https://developers.easyship.com/reference/asset_activate_create.md): Activate specific uploaded asset and define other assets of the same type as inactive. Required authorization scope: `public.asset:write` - [Deactivate Assets](https://developers.easyship.com/reference/asset_deactivate_create.md): Deactivate specific uploaded asset. Required authorization scope: `public.asset:write` - [Create an Asset](https://developers.easyship.com/reference/assets_create.md): Create an asset. > You can store up to five assets for each type. > Allowed file types: png or jpeg. Required authorization scope: `public.asset:write` - [Delete an Asset](https://developers.easyship.com/reference/assets_delete.md): Delete an asset. Required authorization scope: `public.asset:write` - [List all Assets](https://developers.easyship.com/reference/assets_index.md): Retrieve a list of assets. Required authorization scope: `public.asset:read` - [Update an Asset](https://developers.easyship.com/reference/assets_update.md): Update an asset. Required authorization scope: `public.asset:write` - [Create a Redirect](https://developers.easyship.com/reference/redirects_create.md): Create a redirect to the Easyship Dashboard. Required authorization scope: `public.redirect:write` - [List Account Settings](https://developers.easyship.com/reference/settings_index.md): Retrieve account settings. Required authorization scope: `public.setting:read` - [Update Multiple Account Settings](https://developers.easyship.com/reference/settings_update.md): Update multiple account settings. Required authorization scope: `public.setting:write` - [Activate an Address](https://developers.easyship.com/reference/address_activate_create.md): Activate specific address Required authorization scope: `public.address:write` - [Deactivate an Address](https://developers.easyship.com/reference/address_deactivate_create.md): Deactivate specific address. If the address is default for the company, the first active address will be set as default. Required authorization scope: `public.address:write` - [Create an Address](https://developers.easyship.com/reference/addresses_create.md): Create a new address. Required authorization scope: `public.address:write` - [List all Addresses](https://developers.easyship.com/reference/addresses_index.md): Retrieve a list of all addresses ordered by date of creation. Required authorization scope: `public.address:read` - [Update an Address](https://developers.easyship.com/reference/addresses_update.md): Update an address in your account. Required authorization scope: `public.address:write` - [Validate a single domestic (US) address](https://developers.easyship.com/reference/addresses_validation_domestic.md): Create a domestic address validation for US addresses. This endpoint is specifically for US addresses. The `country_alpha2` parameter is optional and will be ignored if provided. Required authorization scope: `public.address_validation_domestic:write` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Validate a single address](https://developers.easyship.com/reference/addresses_validation.md): Create an address validation. Required authorization scope: - `public.address_validation:write` for international addresses. - `public.address_validation_domestic:write` for US addresses. See the [Domestic Address Validation](https://developers.easyship.com/2024-09/addresses/validations_domestic) endpoint for more details. > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [List Analytics Sale Channels Data](https://developers.easyship.com/reference/analytics_sale_channels_index.md): Retrieve sales analytics. Required authorization scope: `public.analytics:read` - [List Shipment Analytics within a Date Range](https://developers.easyship.com/reference/analytics_shipment_shipped_index.md): Retrieve data on whether the company has made any shipments within specified period. Required authorization scope: `public.analytics:read` - [List Analytics Shipment Status Data](https://developers.easyship.com/reference/analytics_shipment_status_index.md): Retrieve shipment status. Possible statuses: - Label Pending - Label Rejected - Label Ready - Pickup/Drop-off in Progress - In Transit to Customer - Failed Delivery Attempt - Exception Required authorization scope: `public.analytics:read` - [List Analytics Shipments Data](https://developers.easyship.com/reference/analytics_shipments_index.md): Retrieve analytics shipments data. Required authorization scope: `public.analytics:read` - [List Analytics Top Couriers Data](https://developers.easyship.com/reference/analytics_top_couriers_index.md): Retrieve analytics top couriers data. Required authorization scope: `public.analytics:read` - [List Analytics Top Shipments Destinations](https://developers.easyship.com/reference/analytics_top_shipments_destinations_index.md): Retrieve a company top shipments destinations country. Required authorization scope: `public.analytics:read` - [Get Auto Recharge Credit Settings](https://developers.easyship.com/reference/credit_auto_recharge_show.md): Show the auto recharge settings for the company. Required authorization scope: `public.payment:read` - [Update Auto Recharge Credit Settings](https://developers.easyship.com/reference/credit_auto_recharge_update.md): Update the settings for auto recharging your credit when your account balance falls below the threshold specified through this endpoint. This endpoint is in beta (subject to change). Please get in touch with customer support to enable it. Required authorization scope: `public.payment:write` - [Create a Batch of Addresses](https://developers.easyship.com/reference/batch_addresses_create.md): Create a batch of addresses. Required authorization scopes: `public.batch:write`, `public.address:write` - [List all Batch Items](https://developers.easyship.com/reference/batch_items_index.md): Retrieve a list of all batches ordered by date of creation. Required authorization scope: `public.batch:read` - [Create a Batch of Labels](https://developers.easyship.com/reference/batch_labels_create.md): Create a batch of labels. Required authorization scopes: `public.batch:write`, `public.label:write` Labels confirm a shipment created with the Shipment API. Calling **Batch Labels** will confirm shipments with selected courier service and begin generating the label and shipping documents if your account balance is sufficient. > You can enter a `courier_service_id` to assign a specific courier service in case your shipment has no assigned courier yet, or you need to overwrite the one suggested by default. Your shipment will be confirmed. If there is no assigned courier service and you leave the `courier_service_id` field blank, we will automatically assign the best value for money courier to your shipment. ## Asynchronous response The label and shipping documents will be generated asynchronously. If you specified a `Callback URL` through the Easyship dashboard, this URL will be called when the documents are ready. Whilst these documents are being generated, the `label_state` will be set to `pending`. The possible states are `not_created`, `pending`, `failed` and `generated`. - [Create a Batch of Shipments](https://developers.easyship.com/reference/batch_shipments_create.md): Create a batch of shipments and schedule it for processing. Required authorization scopes: `public.batch:write`, `public.shipment:write` and `public.label:write` if a label(s) will be created during the batch processing. - [List all Batches](https://developers.easyship.com/reference/batches_index.md): Retrieve a list of all batches ordered by date of creation. Required authorization scope: `public.batch:read` - [Get a Batch](https://developers.easyship.com/reference/batches_show.md): Retrieve a batch by its ID. Required authorization scope: `public.batch:read` - [Download Billing Document](https://developers.easyship.com/reference/billing_documents_download.md): Download the Billing Document in PDF format. Required authorization scope: `public.billing_document:read` - [List all Billing Documents](https://developers.easyship.com/reference/billing_documents_index.md): Retrieve a list of all billing documents within range. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`. Required authorization scope: `public.billing_document:read` - [List all Billing Document's Transaction Records](https://developers.easyship.com/reference/billing_documents_transactions_index.md): Retrieve a list of all billing document's transactions. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`. Required authorization scope: `public.transaction_record:read` - [Create a Box](https://developers.easyship.com/reference/boxes_create.md): Create a box. Required authorization scope: `public.box:write` - [Delete a Box](https://developers.easyship.com/reference/boxes_delete.md): Delete a box from your account. Required authorization scope: `public.box:write` - [List all Boxes](https://developers.easyship.com/reference/boxes_index.md): Retrieve a list of available courier boxes and your custom boxes. Required authorization scope: `public.box:read` This request returns box types specified with a `slug` when creating a shipment via the API or dashboard. > In Easyship API terms, `slug` is a string field used by the `box` object. Slugs contain dimensions of corresponding box types: when you create a shipment, we will get dimensions based on the `slug` provided. - [Update a Box](https://developers.easyship.com/reference/boxes_update.md): Update a box in your account. Required authorization scope: `public.box:write` - [List all Countries](https://developers.easyship.com/reference/countries_index.md): Retrieve a list of countries. Required authorization scope: `public.reference:read` Available filtering parameters: by Alpha-2 country code or continent. - [List all Estimated Delivery Dates for a Courier Service](https://developers.easyship.com/reference/courier_service_estimated_delivery_dates_index.md): Retrieve a list of estimated delivery dates for a specific courier service. Required authorization scope: `public.courier_service:read` Easyship builds estimation model based on shipments delivered within last 12 months. If you use Link Your Own Rates (LYOC) scheme, LYOC couriers are excluded from the calculation. - [List all Courier Services](https://developers.easyship.com/reference/courier_services_index.md): Retrieve a list of active courier services available with your account. Required authorization scope: `public.courier_service:read` - [List Available Pickup Slots](https://developers.easyship.com/reference/courier_services_pickup_slots_index.md): Retrieve a list of pickup slots in local time for the coming seven days. Required authorization scope: `public.pickup:read` - [List all Courier Services of a Courier](https://developers.easyship.com/reference/courier_courier_services_index.md): Retrieve a list of courier services for selected courier. Required authorization scope: `public.courier_service:read` - [List all LYOC](https://developers.easyship.com/reference/courier_lyoc_index.md): LYOC (Link Your Own Courier) allows merchants to connect their existing courier accounts — such as DHL, UPS, FedEx, or Royal Mail — to Easyship, enabling shipments to be rated and labeled using their own negotiated rates. Use this endpoint to discover which couriers can be linked for a given country and the supported methods of connection. Each result includes a `creation` object that indicates how the courier can be linked for that country: `creation.api: true` means you can link programmatically via `POST /2024-09/courier_accounts`; `creation.ui: true` means linking is available through the Easyship Dashboard; `creation.contact: true` means you need to contact Easyship sales to arrange linkage. Filter by `country_alpha2` (ISO 3166-1 Alpha-2, e.g. `GB`) or `country_id`. Both are optional — omitting both returns all available LYOC couriers. If both are provided, `country_id` takes precedence. Required authorization scope: `public.courier:read` - [Create a Courier](https://developers.easyship.com/reference/couriers_create.md): Creates a new courier. - `201` status when created successfully. - `202` status when created but requiring additional verification. Required authorization scope: `public.courier:write` - [Delete a Courier](https://developers.easyship.com/reference/couriers_delete.md): Delete a LYOC courier. Required authorization scope: `public.courier:write` - [List all Couriers](https://developers.easyship.com/reference/couriers_index.md): Retrieve a list of active couriers. Required authorization scope: `public.courier:read` - [Get a Courier](https://developers.easyship.com/reference/couriers_show.md): Retrieve details of a couriers. Required authorization scope: `public.courier:read` - [Update a Courier](https://developers.easyship.com/reference/couriers_update.md): Updates a courier. Required authorization scope: `public.courier:write` - [Confirm Credit Top-up](https://developers.easyship.com/reference/credit_confrim_3ds_create.md): Easyship integrate with Stripe Payment Intent to collect credit card payments. Ref: https://stripe.com/docs/payments/payment-intents The confirmation process includes the collection of payment and creation of a transaction record (credit) in your account. Should the payment intent not have undergone 3D Secure, you'll receive a status code 202, indicating the need to process 3D Secure. Required authorization scope: `public.payment:write` - [Refund a Credit](https://developers.easyship.com/reference/credit_refund_create.md): Refund your credit. Required authorization scope: `public.payment:write` - [Add credit](https://developers.easyship.com/reference/credits_create.md): Top up your credit. In case your payment source (credit card) requires 3D validation use the Stripe SDK. To detect any fraudulent activities and initiate Radar and 3D Secure, integrate `handleCardAction` from Stripe.js. Reference: https://stripe.com/docs/js/payment_intents/handle_card_action Example: ```html ``` > If you are using an authorized bank account as your payment method, the transaction might take around 1 to 3 days to complete. Required authorization scope: `public.payment:write` - [Get credit](https://developers.easyship.com/reference/credits_show.md): Retrieve your credit balance. Required authorization scope: `public.credit:read` - [Tracking Updates](https://developers.easyship.com/reference/efulfillment_tracking_update.md): Update the shipment tracking number and create tracking events. Required authorization scopes: `public.shipment:write`, `public.efulfillment:write` > This endpoint is only available to eFulfillment clients with shipments fulfilled at one of Easyship's integrated warehouses. > You will need to specify `tracking_number` for initial request for a shipment. Further updates of a shipment with the same `easyship_shipment_id` don't need to have the `tracking number` unless you change it. For `events`, specify the `primary_status` field from the list: * `InTransit` * `OutForDelivery` * `AttemptFail` * `Delivered` * `Exception` #### Example request for an initial setup of a shipment ```json { "easyship_shipment_id": "ESHK10017799", "tracking_number": "ABCD1234", "events": [ { "primary_status": "InTransit" } ] } ``` #### Example request for a shipment status update This example has optional `event_time` and `event_time_zone`. ```json { "easyship_shipment_id": "ESHK10017799", "events": [ { "primary_status": "OutForDelivery", "event_time": "2020-04-29T03:38:00", "event_time_zone": "-04:00" } ] } ``` #### Example request for a complete update ```json { "easyship_shipment_id": "ESHK10017799", "events": [ { "primary_status": "OutForDelivery", "location": "Brooklyn, NY", "city": "Brooklyn", "country_alpha2": "US", "state": "NY", "zip": "11201", "handler": "UPS", "message": "On UPS vehicle for delivery", "event_time": "2020-04-29T03:38:00", "event_time_zone": "-04:00" } ] } ``` - [Warehouse State Updates](https://developers.easyship.com/reference/efulfillment_warehouse_state_update.md): Update the warehouse state of one or multiple shipments. Required authorization scope: `public.shipment:write`, `public.efulfillment:write` > This endpoint is only available to eFulfillment clients with shipments fulfilled at one of Easyship's integrated warehouses. > If a shipment contains the `metadata` object, it will persist unless you change existing keys or create new ones: in this case, corresponding keys will be updated or added. The `warehouse_state` field has the following possible statuses:
warehouse_state Description
created An order has been created in the warehouse management system and is ready to be fulfilled.

Note: This update is not needed if a success response is sent when Easyship sends the label callback.
failed The order creation was rejected for an internal reason by the WMS. This can happen if the order information doesn't meet the WMS' requirements, or a product SKU is not defined in your WMS.

A message can be added using the message parameter. This will allow the client and Easyship to understand the reason for rejection.
packed The order has been processed and packed and is waiting to be handed over to the courier
shipped The order has been handed over to the courier and has left the warehouse.

Note: This status update will trigger the following:
  • If the shipment was created through a store integration, Easyship will mark the order as "shipped" on the store
  • If the company has the email notification option turned on, Easyship will send an email notification to the receiver, with the tracking number and the tracking page URL
  • Easyship will start tracking the shipment, and update its status based on the courier's tracking events
cancellation_requested A cancellation request has been sent to the warehouse management system. It is awaiting confirmation by the warehouse.

Note: This status is set by clients requesting a cancellation through the dashboard. It should not be set by a warehouse.
cancelled The order has been cancelled in the warehouse management system.

Note: This status update will trigger Easyship to cancel the shipment.
cancelled_no_stock The order has been cancelled in the warehouse management system because the products are out of stock.

Note: This status update will trigger Easyship to cancel the shipment.
backorder_no_stock The order is set as backorder because of the products are out of stock. It may be packed and shipped at a later date.
returned The package was returned by the courier or by the receiver, and received at the warehouse.
- [List HS Codes](https://developers.easyship.com/reference/hs_code_index.md): Retrieve a list of HS codes. Required authorization scope: `public.hs_code:read` **Rate limit**: This endpoint is rate-limited by 100 requests per second, 1,000 requests per minute, 1,000 requests per hour, 1,000 requests per day, and 30,000 requests per month. Exceeding this limit returns a `429 Too Many Requests` response for subsequent requests. If you need a higher rate limit, get in touch with us. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Create an Insurance Policy](https://developers.easyship.com/reference/insurances_policies_create.md): Create insurance for a shipment whose label isn't provided by Easyship. For the shipment whose label is provided by Easyship, please ues [Shipment Insurance Endpoint](https://developers.easyship.com/reference/shipments_insure_create) to ensure it. Easyship relies on the tracking number and courier service ID to validate the shipment. Once the tracking record is successfully established, the insurance will be automatically set up and charged. If the tracking record is initiated using the tracking endpoint `POST /:version/trackings`, it becomes valid for insurance only after receiving a response from the courier service, and within 24 hours of that time. Required authorization scope: `public.insurance_policy_3p:write` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. - [Create an Insurance Policy from Quote](https://developers.easyship.com/reference/insurances_policies_from_quote_create.md): > **Regional availability**: This endpoint is currently only available for US entities. Support for additional regions will be available in a future release. Create an insurance policy from an existing quote. The quote must be active and not expired. Easyship relies on the tracking number and courier service name to register the shipment with the insurance provider. Required authorization scope: `public.insurance_policy_3p:write` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. - [List all Insurance Policies](https://developers.easyship.com/reference/insurances_policies_index.md): Retrieve a list of insurance policies. Required authorization scope: `public.insurance_policy:read` - [Create an Insurance Quote](https://developers.easyship.com/reference/insurances_quotes_create.md): > **Regional availability**: This endpoint is currently only available for US entities. Support for additional regions will be available in a future release. Create an insurance quote for products to be shipped. Returns a quote with fee calculations per product and an overall total. The quote is valid for 48 hours and can be converted to a policy using the [Create Insurance Policy from Quote](#operation/insurances_policies_from_quote_create) endpoint. Required authorization scope: `public.insurance_quote:write` - [List all Item Categories](https://developers.easyship.com/reference/item_categories_index.md): Retrieve a list of item categories. Required authorization scope: `public.reference:read` - [List Canada Post Locations](https://developers.easyship.com/reference/locations_canada_post_index.md): Retrieve Canada Post locations. This endpoint routes requests to the Canada Post `Get Nearest Post Office` API. For further information, kindly look into the Canada Post API documentation available at https://www.canadapost-postescanada.ca/info/mc/business/productsservices/developers/services/findpostoffice/nearestpostoffice.jsf Required authorization scope: `public.location:read` - [List FedEx Locations](https://developers.easyship.com/reference/locations_fedex_index.md): Retrieve FedEx locations. This endpoint routes requests to the FedEx Location API. For further information, kindly look into the FedEx API documentation available at https://developer.fedex.com/api/en-kr/catalog/locations/v1/docs.html. Required authorization scope: `public.location:read` - [List UPS Locations](https://developers.easyship.com/reference/locations_ups_index.md): Retrieve UPS locations. This endpoint routes requests to the UPS locator API. For further information, kindly look into the UPS API documentation available at https://developer.ups.com/api/reference?loc=en_US#operation/Locator. Required authorization scope: `public.location:read` - [List USPS Locations](https://developers.easyship.com/reference/locations_usps_index.md): Retrieve USPS locations. This endpoint routes requests to the USPS Locations API. For further information, kindly look into the UPS API documentation available at https://developers.usps.com/locationsv3. Required authorization scope: `public.location:read` - [Create a Manifest](https://developers.easyship.com/reference/manifests_create.md): Create a [manifest](https://support.easyship.com/hc/en-us/articles/4414489808525-What-Is-a-Manifest-in-Shipping). Required authorization scope: `public.manifest:write` - [List all Manifests](https://developers.easyship.com/reference/manifests_index.md): Retrieve a list of [manifests](https://support.easyship.com/hc/en-us/articles/4414489808525-What-Is-a-Manifest-in-Shipping). Required authorization scope: `public.manifest:read` - [Get a Manifest](https://developers.easyship.com/reference/manifests_show.md): Retrieve details of a specific manifest. Required authorization scope: `public.manifest:read` - [Confirm Payment Source](https://developers.easyship.com/reference/payment_sources_confrim_3ds_create.md): Easyship integrate with Stripe Setup Intent to collect credit card and bank account information. Ref: https://docs.stripe.com/payments/save-and-reuse-cards-only Here's a example of how you can process 3DS for card setup intent on the client side. Once the validation is completed, you can use the `setup_intent.id` to finalize the payment source in Easyship.
Confirm 3DS Example ```html
```
Should the setup intent not have undergone 3D Secure, you'll receive a status code 202, indicating the need to process 3D Secure. If the setup intent is for us bank account. You'll receive a status code 202, indicating the need to do micro deposit verification. The verification url will be provided in the response and the verification code will be sent to the email address attached to the bank account. Reference: https://docs.stripe.com/payments/ach-debit/set-up-payment?platform=web&payment-ui=direct-api#optional:-send-custom-email-notifications Once the verification is completed, stripe webhook would mark your bank account payment source activated. Required authorization scope: `public.payment_source:write` - [Create a Payment Source](https://developers.easyship.com/reference/payment_sources_create.md): Create a payment sources. Easyship won't hold the details of your credit card. We use `stripe token` to attach the credit card to your easyship account on Stripe. Please upload your credit card to stripe via Stripe Token JS. Example:
Stripe Token JS Example ```html ```
When the credit card needs 3DS (with response status code 202), proceed with the next step found in `POST /2024-09/payment_sources/confirm`. If the payment source type is bank account, you'll receive a status code 202, indicating the need to submit the bank account information. Easyship won't hold the details of your bank account. We use `setup intent` to attach the bank account to your easyship account on Stripe. Note: A bank account payment source is only available for US companies. Example:
Stripe Bank Account JS Example ```html ```
Once the bank account information has been submitted successfully, proceed with the next step found in `POST /2024-09/payment_sources/confirm`. Required authorization scope: `public.payment_source:write` - [Delete a Payment Source](https://developers.easyship.com/reference/payment_sources_delete.md): Delete a card Payment Source Required authorization scope: `public.payment_source:write` - [List all Payment Sources](https://developers.easyship.com/reference/payment_sources_index.md): Retrieve a list of payment sources. Required authorization scope: `public.payment_source:read` - [Update a Payment Source](https://developers.easyship.com/reference/payment_sources_update.md): Update a card payment source. Required authorization scope: `public.payment_source:write` - [Get a Stripe Public Key](https://developers.easyship.com/reference/stripes_show.md): Retrieve a stripe public key according to your registration country. Required authorization scope: `public.payment_sources:read` - [Cancel a Pickup](https://developers.easyship.com/reference/pickups_cancel.md): Cancel a pickup. Required authorization scope: `public.pickup:write` - [Create a Pickup](https://developers.easyship.com/reference/pickups_create.md): Schedule a pickup. Required authorization scope: `public.pickup:write` > Only available if your courier provides pickup options. ## Select a pickup time After retrieving a courier's pickup slots, you can specify a pickup time in `time_slot_id` or in `selected_from_time` and `selected_to_time`. - [List all Pickups](https://developers.easyship.com/reference/pickups_index.md): Retrieve a list of pickups. Required authorization scope: `public.pickup:read` - [List All Shipments of Specific Pickup](https://developers.easyship.com/reference/pickups_shipments_index.md): Retrieve a list of pickup's shipments. Required authorization scope: `public.shipment:read` - [Get a Pickup](https://developers.easyship.com/reference/pickups_show.md): Retrieve details of a specific pickup. Required authorization scope: `public.pickup:write` - [Create a Product](https://developers.easyship.com/reference/products_create.md): Create a single product in your account. Required authorization scope: `public.product:write` - [Delete a Product](https://developers.easyship.com/reference/products_delete.md): Delete a single product from your account. Required authorization scope: `public.product:write` - [List all Products](https://developers.easyship.com/reference/products_index.md): Retrieve a list of products available with your account. Required authorization scope: `public.product:read` - [Update a Product](https://developers.easyship.com/reference/products_update.md): Update a single product in your account. Required authorization scope: `public.product:write` - [Request Rates](https://developers.easyship.com/reference/rates_request.md): Request a list of shipping quotes for a prospective shipment. Required authorization scope: `public.rate:read` > Compare couriers to see the cheapest, fastest and best value for money, or a combination of speed, price and reliability. ## Input city and state If you are shipping to or within the United States, Canada, Mexico or Australia, we recommend that you always input the origin and destination `city` and `state`. This information is required by certain couriers to return accurate rates. ## Calculate dimensions and total weight You can calculate dimensions and total weight of your shipment in three ways: * Provide `total_actual_weight` and `box` objects for the shipment. * Specify `actual_weight` and `dimensions` for each item of the `items` object: in this case, total weight and box size will be calculated automatically. * Specify `sku` for each item of the `items` object: in this case, actual weight and dimensions for calculations will be taken as set for the product. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Create a Return Shipment](https://developers.easyship.com/reference/return_shipments_create.md): Create a new return shipment from an existing shipment. Required authorization scope: `public.shipment:write` - [Create Label](https://developers.easyship.com/reference/shipment_labels_create.md): Create a label for an existing shipment and retrieve it synchronously. Required authorization scope: `public.label:write` This API **finalizes** a shipment created via the Shipment API. Executing this call will **book** the shipment with the selected courier, trigger label generation, and prepare all necessary shipping documents—provided your account balance is sufficient. > You can enter a `courier_service_id` to assign a specific courier service in case your shipment has no assigned courier yet, or you need to overwrite the one suggested by default. Your shipment will be confirmed. If there is no assigned courier service and you leave the `courier_service_id` field blank, we will automatically assign the best value for money courier to your shipment. > 🚧 This API is in beta (subject to change). - [List Unavailable Couriers for a Shipment](https://developers.easyship.com/reference/shipment_unavailable_couriers_index.md): List unavailable couriers for a shipment. Required authorization scopes: `public.shipment:read`, `public.rate:read` - [Cancel a Shipment](https://developers.easyship.com/reference/shipments_cancel.md): Cancel a shipment after a label has been requested, as long as the shipment is not yet in transit. Required authorization scope: `public.shipment:write` > **Cancel vs Delete:** Use **Delete** to remove a shipment before a label has been requested (`label_state: not_created`). Use **Cancel** after a label has been requested, as long as the shipment is not yet in transit. **When can you cancel?** The shipment's `label_state` must be one of: `pending`, `generated`, `printed`, `shipping_document_generated`, `failed`, `technical_failed`, or `reported`. The shipment's `delivery_state` must be pre-transit: `not_created`, `pending`, `info_received`, or `expired`. **When can you NOT cancel?** - `label_state: generating` — the label is actively being generated; wait until it resolves to `generated` or `failed` before retrying - `label_state: voided` or `void_failed` — the label has already been voided; the shipment cannot be cancelled via this endpoint - `delivery_state` is `in_transit_to_customer`, `out_for_delivery`, `delivered`, or similar — the shipment has left the origin facility - The label was generated more than **6 months ago** (pre-paid shipments only) - [Create a Shipment](https://developers.easyship.com/reference/shipments_create.md): Create a new shipment. Required authorization scope: `public.shipment:write` and `public.label:write` if a label is requested during the request. ## Select a courier If you use our Rates API, you can define a courier ID to assign a courier to the shipment using `courier_service_id`. If you skip courier ID, we will return a list of all possible rates to your new shipment and assign the best value for money courier. ## Calculate dimensions and total weight You can calculate dimensions and total weight of your shipment in three ways: * Provide `total_actual_weight` and `box` objects for the shipment. * Specify `actual_weight` and `dimensions` for each item of the `items` object: in this case, total weight and box size will be calculated automatically. * Specify `sku` for each item of the `items` object: in this case, actual weight and dimensions for calculations will be taken as set for the product. - [Delete a Shipment](https://developers.easyship.com/reference/shipments_delete.md): Delete a shipment before a label has been requested (`label_state: not_created`). Required authorization scope: `public.shipment:write` > **Cancel vs Delete:** Use **Delete** to remove a shipment before a label has been requested (`label_state: not_created`). Use **Cancel** after a label has been requested, as long as the shipment is not yet in transit. - [List All Documents](https://developers.easyship.com/reference/shipments_documents_index.md): Retrieve shipping documents of specific shipment. Required authorization scope: `public.shipment_document:read` - [List all Shipments](https://developers.easyship.com/reference/shipments_index.md): Retrieve a list of shipments. Required authorization scope: `public.shipment:read` - [Buy Insurance for a Shipment](https://developers.easyship.com/reference/shipments_insure_create.md): Buy insurance for a shipment with a generated label. If the shipment label hasn't been generated yet, you can update the insurance settings through the [shipment API](https://developers.easyship.com/reference/shipments_update). The insurance will be applied once the label has been created. [Insurance Terms & Conditions](https://www.easyship.com/legal/insurance-terms-and-conditions) Required authorization scope: `public.insurance_policy:write` > You can purchase insurance for a paid shipment only after its label has been successfully generated, and within 24 hours of that generation time. > This API is available upon request. Get in touch with your account manager or Easyship Support Team. - [Get a Shipment](https://developers.easyship.com/reference/shipments_show.md): Retrieve details of a specific shipment. Required authorization scope: `public.shipment:read` > All shipment documents are customisable. You can set: > > - Document format: URL, PDF or PNG > - Label page size: A4, A5 or 4x6 > - Commercial invoice page size: A4 or 4x6 > - Packing slip page size: A4 or 4x6 - [List all Trackings](https://developers.easyship.com/reference/shipments_trackings_index.md): Retrieve the most recent status for a shipment and a history of all previous checkpoints. Required authorization scope: `public.track:read` - [List Transaction Records for a Shipment](https://developers.easyship.com/reference/shipments_transaction_records_index.md): List transaction records for a shipment. Required authorization scope: `public.transaction_record:read` - [Update a Shipment](https://developers.easyship.com/reference/shipments_update.md): Update shipment details. Required authorization scope: `public.shipment:write` and `public.label:write` if a label is requested during the request. - [Create Action for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_create.md): Create action for a shipping rule. Required authorization scope: `public.shipping_rule:write` - [Delete Action of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_delete.md): Delete shipping rule action. Required authorization scope: `public.shipping_rule:write` - [List all Actions for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_index.md): List actions for a shipping rule. Required authorization scope: `public.shipping_rule:read` - [Update Action of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_action_update.md): Update shipping rule action. Required authorization scope: `public.shipping_rule:write` - [Create Condition for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_create.md): Create condition for a shipping rule. Required authorization scope: `public.shipping_rule:write` - [Delete Condition of a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_delete.md): Delete shipping rule condition. Required authorization scope: `public.shipping_rule:write` - [List all Conditions for a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_index.md): List conditions of a shipping rule. Required authorization scope: `public.shipping_rule:read` - [Update Condition of the Shipping Rule](https://developers.easyship.com/reference/shipping_rule_condition_update.md): Update shipping rule condition. Required authorization scope: `public.shipping_rule:write` - [Activate a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_activate.md): Activate specific shipping rule. Required authorization scope: `public.shipping_rule:write` - [Deactivate a Shipping Rule](https://developers.easyship.com/reference/shipping_rule_deactivate.md): Deactivate specific shipping rule. Required authorization scope: `public.shipping_rule:write` - [List all Platform Names](https://developers.easyship.com/reference/shipping_rule_platforms_index.md): Retrieve a list of available platform names for shipping rules. Required authorization scope: `public.shipping_rule:write` - [Create a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_create.md): Create a shipping rule. Required authorization scope: `public.shipping_rule:write` - [Delete a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_delete.md): Delete a shipping rule. Required authorization scope: `public.shipping_rule:write` - [List all Shipping Rules](https://developers.easyship.com/reference/shipping_rules_index.md): Retrieve a list of shipping rules. Required authorization scope: `public.shipping_rule:read` - [Get a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_show.md): Retrieve a shipping rule. Required authorization scope: `public.shipping_rule:read` - [Update a Shipping Rule](https://developers.easyship.com/reference/shipping_rules_update.md): Update a shipping rule. Required authorization scope: `public.shipping_rule:write` - [List all States](https://developers.easyship.com/reference/states_index.md): Retrieve a list of states. Required authorization scope: `public.reference:read` This endpoint in only used for the United States, Canada, Australia and Mexico. - [List all Stores](https://developers.easyship.com/reference/stores_index.md): Retrieve a list of stores available with your account. Required authorization scope: `public.store:read` - [Create a Tag](https://developers.easyship.com/reference/tags_create.md): Create a new tag. Required authorization scope: `public.tag:write` - [List all Tags](https://developers.easyship.com/reference/tags_index.md): Retrieve a list of tags. Required authorization scope: `public.tag:read` > You can filter your tags by keywords. - [Calculate Tax and Duty](https://developers.easyship.com/reference/taxes_and_duties_calculate.md): Retrieve tax and duty costs information. Use either of the two schemas `WITH COUNTRY IDS` OR `WITH COUNTRY ALPHA2` to provide country specific details. Required authorization scope: `public.tax_and_duty:read` > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Update a tracking](https://developers.easyship.com/reference/sandbox_trackings_update.md): Update a tracking (Sandbox only) This endpoint is intended for testing tracking status updates and is exclusively available in the Sandbox environment. Required authorization scope: `public.track_3p:write` > 🚧 Warning > > This endpoint uses **api-sandbox.easyship.com** domain. The full URL, without query params, is `https://api-sandbox.easyship.com`. > *This docs platform does not fully support OpenAPI and uses/displays the global URL instead of the correct one.* - [Create a Tracking](https://developers.easyship.com/reference/trackings_create.md): Create a single tracking in your account. Required authorization scope: `public.track_3p:write` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Delete a Tracking](https://developers.easyship.com/reference/trackings_delete.md): Delete a single tracking from your account. Required authorization scope: `public.track_3p:write` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [List of Supported Couriers](https://developers.easyship.com/reference/trackings_external_courier_services_index.md): List courier services that do not support label generation but are trackable. Required authorization scope: `public.track_3p:read` > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [List all Trackings](https://developers.easyship.com/reference/trackings_index.md): Retrieve a list of trackings available with your account. Required authorization scope: `public.track_3p:read` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [List of Supported Couriers](https://developers.easyship.com/reference/trackings_list_supported_couriers.md): List supported couriers. Required authorization scope: `public.track_3p:read` > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [Get a Tracking](https://developers.easyship.com/reference/trackings_show.md): Show a single tracking in your account. Required authorization scope: `public.track_3p:read` > This API requires an updated contract with Easyship. Get in touch with your account manager or Easyship Support Team. > **Note:** Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account. - [List all Transaction Records](https://developers.easyship.com/reference/transactions_index.md): Retrieve a list of all transactions within range. Pagination of this endpoint is not indexed. `count` on the response body will always be `null`. Required authorization scope: `public.transaction_record:read` - [batch.finished](https://developers.easyship.com/reference/batchfinished.md) - [batch.item.finished](https://developers.easyship.com/reference/batchitemfinished.md) - [batch.started](https://developers.easyship.com/reference/batchstarted.md) - [courier.state.changed](https://developers.easyship.com/reference/courierstatechanged.md) - [credit.balance.low](https://developers.easyship.com/reference/creditbalancelow.md) - [enterprise.company.creation](https://developers.easyship.com/reference/enterprisecompanycreation.md) - [external.shipment.insured](https://developers.easyship.com/reference/externalshipmentinsured.md) - [Webhook Events](https://developers.easyship.com/reference/webhook_events.md): Easyship provides webhook events to notify you proactively. - [oauth.authorization.revoked](https://developers.easyship.com/reference/oauthauthorizationrevoked.md) - [shipment.cancelled](https://developers.easyship.com/reference/shipmentcancelled.md) - [shipment.label.created](https://developers.easyship.com/reference/shipmentlabelcreated.md) - [shipment.label.failed](https://developers.easyship.com/reference/shipmentlabelfailed.md) - [shipment.tracking.checkpointscreated](https://developers.easyship.com/reference/shipmenttrackingcheckpointscreated.md) - [shipment.tracking.statuschanged](https://developers.easyship.com/reference/shipmenttrackingstatuschanged.md) - [shipment.warehouse.stateupdated](https://developers.easyship.com/reference/shipmentwarehousestateupdated.md) - [Webhooks Guide](https://developers.easyship.com/reference/webhooks-guide.md) - [Activate a Webhook](https://developers.easyship.com/reference/webhooks_activate.md): Activates a single webhook for your account. Required authorization scope: `public.Webhook` - [Create a Webhook](https://developers.easyship.com/reference/webhooks_create.md): Create a single webhook in your account. Required authorization scope: `public.webhook:write` - [Deactivate a Webhook](https://developers.easyship.com/reference/webhooks_deactivate.md): Deactivates a single webhook for your account. Required authorization scope: `public.Webhook` - [Delete a Webhook](https://developers.easyship.com/reference/webhooks_delete.md): Delete a single webhook from your account. Required authorization scope: `public.webhook:write` - [List all Webhooks](https://developers.easyship.com/reference/webhooks_index.md): Retrieve a list of webhooks available within your account. Required authorization scope: `public.webhook:read` - [Get a Webhook](https://developers.easyship.com/reference/webhooks_show.md): Show a single webhook in your account. Required authorization scope: `public.webhook:read` - [Test a Webhook](https://developers.easyship.com/reference/webhooks_test.md): Test a single webhook in your account. Required authorization scope: `public.Webhook` - [Update a Webhook](https://developers.easyship.com/reference/webhooks_update.md): Update a single webhook in your account. Required authorization scope: `public.webhook:write` ## Recipes - [How to Create a Shipment](https://developers.easyship.com/recipes/how-to-create-a-shipment.md) ## Pages - [Enterprise Organization Restructure](https://developers.easyship.com/enterprise-organization-restructure.md) - [IP Addresses](https://developers.easyship.com/ip-addresses.md) - [Warehouse Integration for Easyship customers](https://developers.easyship.com/warehouse-integration-for-easyship-customers.md)