ShipMonk Webhooks API

ShipMonk supports webhooks to help you stay updated in real time as key events happen in our system. Currently, we provide webhooks for the following areas: - Orders - Returns - Receivings ## Webhooks Setup You have full flexibility in configuring which webhooks to subscribe to. You can: - Use a single URL to receive all events, or - Define separate endpoints for individual webhook types. Webhook setup can be done by your ShipMonk support team. ## Store filter By default, a webhook subscription delivers events for all stores in your account. If you operate multiple stores, a subscription can be restricted to one or more specific stores (store filter), so you only receive events for those stores. ## Security All webhooks support HTTP Basic Authentication. If you provide a username and password, ShipMonk will include these credentials in the webhook request. This allows you to restrict access and ensure only ShipMonk can call your endpoints. ## Data Integrity Each webhook request sent by ShipMonk includes an `X-Sm-Signature` header. This header allows you to verify that the request genuinely originated from ShipMonk and was not tampered with. To enable this verification, you must provide ShipMonk with a secret key (a random string of your choice). For every webhook, ShipMonk uses this secret key to generate a HMAC using the SHA-512 algorithm (HMAC-SHA512), applied to the raw payload. The resulting signature is included in the `X-Sm-Signature` header. To validate the authenticity of a webhook: - Retrieve the raw payload from the HTTP POST request. - Using the same secret key and the HMAC-SHA512 algorithm, generate a signature from the payload. - Compare your generated signature to the value in the X-Sm-Signature header. - If they match, you can safely trust the request. This mechanism ensures both the integrity and authenticity of the webhook payload. ## Accepting the webhook Webhook requests are sent as HTTP POST requests. To acknowledge successful processing, your endpoint must respond with an HTTP status code in the 2xx range. - If a 2xx response is returned, the webhook is considered successfully delivered. - For any other response, ShipMonk will retry the webhook delivery up to 8 times using an exponential backoff schedule. The delay starts at 30 seconds and doubles after each attempt — 30s, 1m, 2m, 4m, 8m, 16m, 32m, 60m (capped at 60 minutes) — spanning roughly 2 hours before delivery is abandoned.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/shipmonk-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

shipmonk-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Shipmonk Webhooks API
  version: v1.024
  description: 'ShipMonk supports webhooks to help you stay updated in real time as key events happen in our system. Currently, we provide webhooks for the following areas:

    - Orders

    - Returns

    - Receivings


    ## Webhooks Setup

    You have full flexibility in configuring which webhooks to subscribe to. You can:

    - Use a single URL to receive all events, or

    - Define separate endpoints for individual webhook types.


    Webhook setup can be done by your ShipMonk support team.


    ## Store filter

    By default, a webhook subscription delivers events for all stores in your account. If you operate multiple stores, a subscription can be restricted to one or more specific stores (store filter), so you only receive events for those stores.


    ## Security

    All webhooks support HTTP Basic Authentication. If you provide a username and password, ShipMonk will include these credentials in the webhook request. This allows you to restrict access and ensure only ShipMonk can call your endpoints.


    ## Data Integrity

    Each webhook request sent by ShipMonk includes an `X-Sm-Signature` header. This header allows you to verify that the request genuinely originated from ShipMonk and was not tampered with.


    To enable this verification, you must provide ShipMonk with a secret key (a random string of your choice). For every webhook, ShipMonk uses this secret key to generate a HMAC using the SHA-512 algorithm (HMAC-SHA512), applied to the raw payload. The resulting signature is included in the `X-Sm-Signature` header.


    To validate the authenticity of a webhook:

    - Retrieve the raw payload from the HTTP POST request.

    - Using the same secret key and the HMAC-SHA512 algorithm, generate a signature from the payload.

    - Compare your generated signature to the value in the X-Sm-Signature header.

    - If they match, you can safely trust the request.


    This mechanism ensures both the integrity and authenticity of the webhook payload.


    ## Accepting the webhook


    Webhook requests are sent as HTTP POST requests. To acknowledge successful processing, your endpoint must respond with an HTTP status code in the 2xx range.

    - If a 2xx response is returned, the webhook is considered successfully delivered.

    - For any other response, ShipMonk will retry the webhook delivery up to 8 times using an exponential backoff schedule. The delay starts at 30 seconds and doubles after each attempt — 30s, 1m, 2m, 4m, 8m, 16m, 32m, 60m (capped at 60 minutes) — spanning roughly 2 hours before delivery is abandoned.'
servers:
- url: https://api.shipmonk.com
  description: Once you finish testing on Sandbox, our support team generates you Production API keys and store_id for production. Just write us at api@shipmonk.com and we will handle it.
- url: https://sandbox.shipmonk.dev
  description: 'Sandbox environment is used for preproduction testing. It allows you to play around without worries of corrupting the data. We highly recommend using the Sandbox environment and run tests before going to Production. To get access to the Sandbox, please contact the ShipMonk support team. Note: Sandbox access can only be requested by customers with signed contracts.'
tags:
- name: Webhooks
  description: 'ShipMonk supports webhooks to help you stay updated in real time as key events happen in our system. Currently, we provide webhooks for the following areas:

    - Orders

    - Returns

    - Receivings


    ## Webhooks Setup

    You have full flexibility in configuring which webhooks to subscribe to. You can:

    - Use a single URL to receive all events, or

    - Define separate endpoints for individual webhook types.


    Webhook setup can be done by your ShipMonk support team.


    ## Store filter

    By default, a webhook subscription delivers events for all stores in your account. If you operate multiple stores, a subscription can be restricted to one or more specific stores (store filter), so you only receive events for those stores.


    ## Security

    All webhooks support HTTP Basic Authentication. If you provide a username and password, ShipMonk will include these credentials in the webhook request. This allows you to restrict access and ensure only ShipMonk can call your endpoints.


    ## Data Integrity

    Each webhook request sent by ShipMonk includes an `X-Sm-Signature` header. This header allows you to verify that the request genuinely originated from ShipMonk and was not tampered with.


    To enable this verification, you must provide ShipMonk with a secret key (a random string of your choice). For every webhook, ShipMonk uses this secret key to generate a HMAC using the SHA-512 algorithm (HMAC-SHA512), applied to the raw payload. The resulting signature is included in the `X-Sm-Signature` header.


    To validate the authenticity of a webhook:

    - Retrieve the raw payload from the HTTP POST request.

    - Using the same secret key and the HMAC-SHA512 algorithm, generate a signature from the payload.

    - Compare your generated signature to the value in the X-Sm-Signature header.

    - If they match, you can safely trust the request.


    This mechanism ensures both the integrity and authenticity of the webhook payload.


    ## Accepting the webhook


    Webhook requests are sent as HTTP POST requests. To acknowledge successful processing, your endpoint must respond with an HTTP status code in the 2xx range.

    - If a 2xx response is returned, the webhook is considered successfully delivered.

    - For any other response, ShipMonk will retry the webhook delivery up to 8 times using an exponential backoff schedule. The delay starts at 30 seconds and doubles after each attempt — 30s, 1m, 2m, 4m, 8m, 16m, 32m, 60m (capped at 60 minutes) — spanning roughly 2 hours before delivery is abandoned.'
paths: {}
webhooks:
  orderShipmentNotification:
    post:
      operationId: webhook-order-shipment-notification
      summary: Shipment Notification
      tags:
      - Webhooks
      description: 'Once the order is fulfilled, ShipMonk can notify the 3rd party software of such event via webhook or Marketplace via direct integration. The payload consists of tracking and packing information.


        Triggers for sending notification are:

        - once regular order is packed

        - batch is completed

        - wholesale order is picked up


        Notification is sent with delay which can be set per each store in ShipMonk OMS.


        Your endpoint URL can be set up in the store detail in ShipMonk OMS. Please note that Basic Auth (username and password) is supported only.


        We expect the status code 200 in response. When we receive another status call, we will be re-trying it for the next 3 days.


        To test it, place the order and submit it for fulfilment. You have to make sure the inventory is available and order is all right first (it has set the shipping service and the address is valid). In production the order is shipped by our warehouse employees, while for testing you will have to call our `complete-order` endpoint.


        Edge cases:

        - If the order is big and cannot fit into a single packaging, we will send out multiple packages. Each package has its own tracking number inside of packages array.

        - If the inventory of any SKU is not available, it is possible to manually split the order in the ShipMonk app and then we send Shipment Notification per each shipment.

        - If the order is split and send out within multiple days, we send the Shipment Notification just once (when the first package is sent out)


        `fulfilled_quantity` vs `ordered_quantity`: The value of these two fields might differ in case of partially fulfilled Orders. If a Product consists of `1x Item A` and `1x Item B`, when the customer orders 2 Products and the Shipment contains 1 piece of Item A and 2 pieces of Item B, then `ordered_quantity = 2` but `fulfilled_quantity = 1`.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipMonk_OMS_Notification_ApiResource_ShipmentNotificationOutput'
      responses:
        '200':
          description: Return a 2xx status to indicate that the data was received successfully
        default:
          description: For a 4xx status, ShipMonk will retry the webhook delivery for the next 3 days.
  orderStatusChange:
    post:
      operationId: webhook-order-status-change
      summary: Order status change
      tags:
      - Webhooks
      description: 'As an order progresses from initial import to full fulfillment, it transitions through multiple statuses. ShipMonk can notify external systems of these status changes via webhooks.


        ## Supported Order Webhooks

        Currently ShipMonk supports these order-related webhooks.


        - Order being back-ordered (`processing_status`: `back-order`)

        - Order is unable to submit (`processing_status`: `unable_to_submit`)

        - Order is queued to submit (`processing_status`: `queued_to_submit`)

        - Order is subscription - Order (`processing_status`: `subscription`)

        - Order is package-forwarding - Order (`processing_status`: `package_forwarding`)

        - Order is put to on hold (`processing_status`: `on_hold`)

        - Order is submitted (`processing_status`: `submitted`)

        - Order is being picked (`processing_status`: `pick_in_progress`)

        - Order is being packed (`processing_status`: `pack_in_progress`)

        - Order is packed (`processing_status`: `packed`)

        - Order is awaiting pickup (`processing_status`: `awaiting_pick_up`)

        - Order is awaiting carrier processing (`processing_status`: `awaiting_carrier_processing`)

        - Order is en route (`processing_status`: `en_route`)

        - Order is delivered (`processing_status`: `delivered`)

        - Order is undeliverable (`processing_status`: `undeliverable`)

        - Order is shipped, but it’s untrackable (`processing_status`: `shipped_untrackable`)

        - Order cancellation requested (`processing_status`: `cancellation_requested`)

        - Order is cancelled (`processing_status`: `cancelled`)


        All order-related webhooks are closely tied to the order’s processing-status. Each webhook is triggered by a change in the processing-status, reflecting key moments in the order lifecycle.


        ## Payload Structure (JSON Schema)

        All order-related webhooks share the same JSON schema, which matches the response of our GET endpoint for retrieving a single order.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderDetailOutput'
      responses:
        '200':
          description: Return a 2xx status to indicate that the data was received successfully
        default:
          description: For a 4xx status, ShipMonk will retry the webhook delivery up to 100 times, with a 5-minute delay between attempts.
  returnStatusChange:
    post:
      operationId: webhook-return-status-change
      summary: Return status change
      tags:
      - Webhooks
      description: '## Supported Return Webhooks

        All return-related webhooks are closely tied to the status of the return. Each webhook is triggered by a specific status transition, marking important stages in the return process.


        - Return created (`status`: `status_created`)

        - Return in progress (`status`: `in_progress`)

        - Return en route (`status`: `en_route`)

        - Return returned (`status`: `returned`)


        ## Payload Structure (JSON Schema)

        The payload of each return-related webhook matches the structure of a single return object as returned by the `GET /v1/integrations/returns-list` endpoint. While the `GET /v1/integrations/returns-list` endpoint responds with an array of return objects (`returns-list` field), each webhook delivers the full data of one return in the same format. This allows for easy reuse of the return model across both API responses and webhook events.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_ReturnOutput'
      responses:
        '200':
          description: Return a 2xx status to indicate that the data was received successfully
        default:
          description: For a 4xx status, ShipMonk will retry the webhook delivery up to 100 times, with a 5-minute delay between attempts.
  receivingStatusChange:
    post:
      operationId: webhook-receiving-status-change
      summary: Receiving status change
      tags:
      - Webhooks
      description: '## Supported Receiving Webhooks

        All receiving-related webhooks are closely tied to the status of the receiving. Each webhook is triggered when the receiving transitions to a specific `status`, reflecting key milestones in the receiving process.


        - Receiving awaiting (`status`: `awaiting`)

        - Receiving in progress (`status`: `in_progress`)

        - Receiving arrived (`status`: `arrived`)

        - Receiving received (`status`: `received`)'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipMonk_OMS_Receiving_ApiResource_PublicApiReceivingOutput'
      responses:
        '200':
          description: Return a 2xx status to indicate that the data was received successfully
        default:
          description: For a 4xx status, ShipMonk will retry the webhook delivery up to 100 times, with a 5-minute delay between attempts.
components:
  schemas:
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiPackageCartonLabelOutput:
      type: object
      properties:
        type:
          description: Kind of label printed on the carton. Values include order- and carton-level pack lists, retailer packing slips, carton/pallet labels, GS1 labels, and customized or special-instruction labels.
          $ref: '#/components/schemas/ShipMonk_OMS_RequiredLabels_Enum_PackingLabelType'
        identifier:
          description: Identifier printed on the label (e.g. SSCC); null if the label type has no identifier.
          type:
          - string
          - 'null'
      required:
      - type
      - identifier
      title: Package Carton Label Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderPartOutput:
      type: object
      properties:
        main_order:
          description: Reference to the original (main) order from which this order was split.
          $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderPartMainOrderOutput'
      required:
      - main_order
      title: Order Part Output
    ShipMonk_OMS_Notification_ApiResource_ShipmentNotificationProductLotOutput:
      type: object
      properties:
        sku:
          description: SKU of the product allocated to fulfill the line.
          type: string
        quantity:
          description: Allocated quantity of this product. Deprecated alias of ordered_quantity, kept for backwards compatibility.
          type: integer
        ordered_quantity:
          description: Quantity of this product allocated to the line.
          type: integer
        lot:
          description: Lot the product was picked from; null when no lot control applies.
          anyOf:
          - $ref: '#/components/schemas/ShipMonk_OMS_Notification_ApiResource_ShipmentNotificationLotOutput'
          - type: 'null'
        other_potential_lots:
          description: Additional lots that could fulfill this product when the primary lot is insufficient.
          type: array
          items:
            $ref: '#/components/schemas/ShipMonk_OMS_Notification_ApiResource_ShipmentNotificationLotOutput'
      required:
      - sku
      - quantity
      - ordered_quantity
      - lot
      - other_potential_lots
      title: Shipment Notification Product Lot Output
    ShipMonk_OMS_Receiving_ApiResource_PublicApiPalletOutput:
      type: object
      properties:
        pallet_key:
          description: Client-supplied unique key identifying this pallet within the receiving; referenced by cartons[].pallet_key and receiving_lines[].loose_units_pallet_key.
          type: string
        identifiers:
          description: Packaging identifiers attached to this pallet (e.g. SSCC barcodes).
          type: array
          items:
            $ref: '#/components/schemas/ShipMonk_OMS_Receiving_ApiResource_PublicApiLpnOutput'
      required:
      - pallet_key
      - identifiers
      title: Pallet Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderPackageDataOutput:
      type: object
      properties:
        number:
          description: Sequential index (1-based) of this package within the order; null if not assigned.
          type:
          - integer
          - 'null'
        tracking_number:
          description: Carrier tracking number for this package; null if not yet generated or untrackable.
          type:
          - string
          - 'null'
        tracking_url:
          description: Carrier URL for tracking this package; null if not yet available.
          type:
          - string
          - 'null'
        weight_lb:
          description: Total weight of the package (the unit, despite the field name, is provided in the value object); null if not measured.
          anyOf:
          - $ref: '#/components/schemas/ShipMonk_Measurement_Output_WeightOutput'
          - type: 'null'
        pallet_weight_lb:
          description: Weight of the pallet on which this package is shipped (unit given inside the value object); null if not palletized or not measured.
          anyOf:
          - $ref: '#/components/schemas/ShipMonk_Measurement_Output_WeightOutput'
          - type: 'null'
        pallet_number:
          description: Index (1-based) of the pallet that contains this package; null if not palletized.
          type:
          - integer
          - 'null'
        box_number:
          description: Index (1-based) of the box within its pallet; null if not palletized.
          type:
          - integer
          - 'null'
        carton_labels:
          description: Carton-level labels (e.g. packing slip, pallet label) applied to this package.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiPackageCartonLabelOutput'
        packed_products:
          description: Products contained in this package, aggregated by SKU with packed quantities and lot details.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiPackedProductOutput'
        packing_group:
          description: Packing group this package belongs to, used to split an order across multiple shipments; null if not grouped.
          anyOf:
          - $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PackingGroupOutput'
          - type: 'null'
        packed_items:
          description: Order line items packed in this package, with per-line quantities.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_OrderPackedItemOutput'
      required:
      - number
      - tracking_number
      - tracking_url
      - weight_lb
      - pallet_weight_lb
      - pallet_number
      - box_number
      - carton_labels
      - packed_products
      - packing_group
      - packed_items
      title: Order Package Data Output
    ShipMonk_OMS_Receiving_ApiResource_PublicApiLpnOutput:
      type: object
      properties:
        type:
          description: 'Type of identifier. Allowed values: SSCC (Serial Shipping Container Code, a GS1 18-digit logistics barcode).'
          $ref: '#/components/schemas/ShipMonk_OMS_Receiving_Enum_LpnType'
        value:
          description: The identifier value, formatted according to the rules of the chosen type (e.g. 18 digits for SSCC).
          type: string
      required:
      - type
      - value
      title: Lpn Output
    ShipMonk_OMS_Notification_ApiResource_PackingLabelOutput:
      type: object
      properties:
        type:
          description: 'Type of the label. One of: shipmonk_pack_list_order_level, shipmonk_pack_list_carton_level, retailer_packing_slip_order_level, shipmonk_carton_label, shipmonk_pallet_label, gs1_label, shipmonk_gs1, customized_carton_labels, custom_pack_list_order_level, special_instructions.'
          type: string
        identifier:
          description: Identifier (e.g. barcode value) printed on the label; null when none.
          type:
          - string
          - 'null'
      required:
      - type
      - identifier
      title: Packing Label Output
    ShipMonk_OMS_Receiving_Enum_PublicApiReceivingStatus:
      type:
      - string
      enum:
      - awaiting
      - arrived
      - in_progress
      - received
      title: Receiving Status
    ShipMonk_OMS_Notification_ApiResource_SerialNumberItemOutput:
      type: object
      properties:
        sku:
          description: SKU of the product the serial number belongs to.
          type: string
        serial_number:
          description: Serial number scanned for the product unit.
          type: string
      required:
      - sku
      - serial_number
      title: Serial Number Item Output
    ShipMonk_OMS_Notification_ApiResource_PackedOrderItemOutput:
      type: object
      properties:
        sku:
          description: Marketplace SKU of the packed order item.
          type: string
        line_key:
          description: Client-supplied key of the order line this item belongs to; null when the line has no key.
          type:
          - string
          - 'null'
        quantity:
          description: Quantity of this item packed into the package.
          type: integer
      required:
      - sku
      - line_key
      - quantity
      title: Packed Order Item Output
    Fulfillment_IntegrationsBundle_Crate_ReturnItemDetailsType:
      type:
      - string
      enum:
      - receive
      - optoro_inventory
      title: Return Item Details Type
    ShipMonk_OMS_Receiving_Enum_LpnType:
      type:
      - string
      enum:
      - SSCC
      title: Lpn Type
    ShipMonk_Measurement_ValueObject_WeightUnit:
      type:
      - string
      enum:
      - kg
      - g
      - lb
      - oz
      title: Weight Unit
    Fulfillment_IntegrationsBundle_Crate_NotifyShipmentPackingConfigurationPackingGroupOutput:
      type: object
      properties:
        key:
          type: string
        name:
          type:
          - string
          - 'null'
      required:
      - key
      - name
      title: Notify Shipment Packing Configuration Packing Group Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderReferenceOutput:
      type: object
      properties:
        type:
          description: 'Type of order reference. One of: order_number, original_imported_order_number, customer_order_number, po_number, reference_number, b2b_routing_reference, release_number, job_number, depositor_order_number.'
          $ref: '#/components/schemas/Fulfillment_OrderBundle_Enum_OrderReferenceType'
        value:
          description: The reference identifier value, interpreted according to type.
          type: string
      required:
      - type
      - value
      title: Order Reference Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PackingGroupOutput:
      type: object
      properties:
        key:
          description: Stable identifier of the packing group, unique within the order.
          type: string
        name:
          description: Human-readable name of the packing group; null if unnamed.
          type:
          - string
          - 'null'
      required:
      - key
      - name
      title: Packing Group Output
    ShipMonk_OMS_Notification_ApiResource_OrderPartsOutput:
      type: object
      properties:
        main_order:
          description: Main order together with the partial orders it was split into.
          $ref: '#/components/schemas/ShipMonk_OMS_Notification_ApiResource_MainOrderOutput'
      required:
      - main_order
      title: Order Parts Output
    Fulfillment_PublicApiBundle_ApiResource_Carrier_PublicApiCarrierDetailOutput:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
      required:
      - id
      - name
      title: Carrier Detail Output
    ShipMonk_OMS_Notification_ApiResource_ShipmentNotificationExtraDataOutput:
      type: object
      properties:
        label:
          description: Type of the extra data entry.
          $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_Enum_ShipmentNotificationExtraDataType'
        value:
          description: Value associated with the label.
          type: string
      required:
      - label
      - value
      title: Shipment Notification Extra Data Output
    Fulfillment_PublicApiBundle_ApiResource_Order_PublicApiOrderTaxIdOutput:
      type: object
      properties:
        tax_id_type:
          description: 'Type of tax identifier. One of: VAT, IOSS, TIN, EIN, EORI, ARN, RFC, CPF, CNPJ, PCCC.'
          $ref: '#/components/schemas/Fulfillment_UserBundle_Enum_TaxIdType'
        value:
          description: Tax identification number, formatted according to its type and issuing country.
          type: string
        issuing_country:
          description: Country that issued the tax identification number.
          $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiCountryDetailOutput'
      required:
      - tax_id_type
      - value
      - issuing_country
      title: Order Tax Id Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderPartMainOrderOutput:
      type: object
      properties:
        order_number:
          description: Order number of the main order this part was split from.
          type: string
        parts:
          description: List of all part orders created from splitting the main order.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderPartItemOutput'
      required:
      - order_number
      - parts
      title: Order Part Main Order Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiOrderDetailCustomDataOutput:
      type: object
      properties:
        name:
          description: Key name of the custom data entry.
          type: string
        value:
          description: Value of the custom data entry.
          type: string
      required:
      - name
      - value
      title: Order Detail Custom Data Output
    Fulfillment_IntegrationsBundle_Enum_ShipmentNotificationExtraDataType:
      type:
      - string
      enum:
      - carrierShippingMethod
      title: Shipment Notification Extra Data Type
    Fulfillment_IntegrationsBundle_Crate_PublicApiReturnItemOutput:
      type: object
      properties:
        product:
          description: The product identified by this receiving item.
          $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_Crate_ReturnOrReceivingItemProductPublicApiOutput'
        expected_quantity:
          description: Total number of units of this product expected to be received.
          type: integer
        received_quantity:
          description: Total number of units of this product received so far across all batches.
          type: integer
        receiving_details:
          description: Per-unit receiving records for this return item, capturing lot, quantities, timestamps, and final disposition.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_Crate_ReturnItemDetailsPublicApiOutput'
        desired_action:
          description: 'Requested handling for the returned item: received_back_into_inventory or damaged_not_resellable.'
          $ref: '#/components/schemas/ShipMonk_Warehouse_Returns_Enum_ReturnItemStatus'
      required:
      - product
      - expected_quantity
      - received_quantity
      - receiving_details
      - desired_action
      title: Return Item Output
    ShipMonk_Warehouse_Returns_Enum_ReturnItemFinalDisposition:
      type:
      - string
      enum:
      - reworked
      - returned_to_inventory
      - return_to_merchant
      - dispose
      - donate
      - other
      title: Return Item Final Disposition
    ShipMonk_OMS_Notification_ApiResource_SerialNumbersOutput:
      type: object
      properties:
        line_key:
          description: Client-supplied key of the order line these serial numbers belong to; null when the line has no key.
          type:
          - string
          - 'null'
        serial_numbers:
          description: Serial numbers scanned for the products on this line.
          type: array
          items:
            $ref: '#/components/schemas/ShipMonk_OMS_Notification_ApiResource_SerialNumberItemOutput'
      required:
      - line_key
      - serial_numbers
      title: Serial Numbers Output
    Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiSerialNumberOutput:
      type: object
      properties:
        line_key:
          description: Key of the order line item these serial numbers belong to; null when serial numbers cannot be matched to a specific line.
          type:
          - string
          - 'null'
        serial_numbers:
          description: Serial numbers recorded for units fulfilled on this order line.
          type: array
          items:
            $ref: '#/components/schemas/Fulfillment_IntegrationsBundle_ApiResource_Output_Order_PublicApiSerialNumberItemOutput'
      required:
      - line_key
      - serial_numbers
      title: Serial Number Output
    Fulfillment_OrderBundle_Enum_OrderListStatus:
      type:
      - string
      enum:
      - backorder
      - unable_to_submit
      - queued_to_submit
      - subscription
      - package_forwarding
      - awaiting_label_request_from_merchant_facility
      - on_hold
      - submitted
      - pick_in_progress
      - pack_in_progress
      - packed
      - awaiting_pick_up
      - awaiting_carrier_processing
      - en_route
      - delivered
      - undeliverable
      - shipped_untrackable
      - fulfilled_by_3rd
      - cancellation_requested
      - cancelled
      - updating
      title: Order List Status
    ShipMonk_OMS_Notification_ApiResource_ShipToAddressOutput:
      type: object
      properties:
        name:
          description: Full name of the recipient; null when not provided.
          type:
          - string
          - 'null'
        company:
          description: Company name of the recipient; null when not provided.
          type:
          - string
          - 'null'
        street1:
          description: First line of the recipient street address; null when not provided.
          type:
          - string
          - 'null'
        street2:
          description: Second line of the recipient street address; null when not provided.
          type:
          - string
          - 'null'
        state:
          description: State, province or region of the recipient; null when not provided.
          type:
          - string
          - 'null'
        city:
          description: City of the recipient; null when not provided.
          type:
          - string
          - 'null'
        zip:
          description: Postal or ZIP code of the recipient; null when not provided.
          type:
          - string
          - 'null'
        country_code:
          description: ISO 3166-1 alpha-2 country code of the recipient; null when not provided.
          type:
          - string
          - 'null'
        phone:
          description: Phone number of the recipient; null when not provided.
          type:
          - string
          - 'null'
        email:
          description: Email address of the recipient; null when not provided.
          type:
          - string
          - 'null'
        residential:
          description: Wheth

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