> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Fulfillment Status

> Post a shipment status update or trigger an automation event for a fulfillment.

The status field accepts two types of values:

**Statuses** (e.g., `in_transit`, `delivered`): Real carrier tracking statuses that update the shipment's current status. When you send these, the fulfillment's current status is updated to reflect the new state. Triggers any configured automations for that status.

**Events** (e.g., `stalled_in_transit`, `delayed`, `arriving_early`): Special event types that trigger automations without changing the current shipment status. The status field remains unchanged, but you can still update estimated delivery date and add tracking history entries. Use these to trigger event-based automations.

Both statuses and events can update other fields like estimated delivery date and tracking history.




## OpenAPI

````yaml /api-schema/openapi.yaml post /stores/{storeId}/orders/{orderId}/fulfillments/{fulfillmentId}/shipment-status
openapi: 3.1.0
info:
  contact:
    email: engineering-admin@getredo.com
    name: Redo Engineering
  description: |
    ## Endpoints

    Endpoints are authenticated using the Bearer authorization scheme, using the
    REDO_API_SECRET.

    ```txt
    GET /v2.2/resource HTTP/1.1
    Authorization: Bearer 77bb7598b7a972475cc7c7e171ec33af
    Host: api.getredo.com
    ```

    ## Webhooks

    Webhooks are authenticated using the Bearer authorization scheme, using
    a secret supplied by the subscriber.

    ```txt
    POST /events HTTP/1.1
    Authorization: Bearer subscriberauth123
    Host: subscriber.example.com
    ```

    Webhook events are delivered in order for each individual subject (e.g.
    return).

    If the response is not a 2xx status code, the event will be retried multiple
    times before discarding it.
  title: Redo API
  version: 2.2.1
servers:
  - url: https://api.getredo.com/v2.2
security: []
tags:
  - name: Checkout Buttons
  - name: Coverage Info
  - name: Coverage Products
  - name: Custom Events
  - name: Customer Portal
  - name: Customer Subscriptions
  - name: Customers
  - name: Inbound Shipments
  - name: Inventory Items
  - name: Inventory Levels
  - name: Invoices
  - name: Merchant Admin
  - name: Orders
  - name: Products
  - name: Returns
  - name: Storefront
  - name: Webhooks
paths:
  /stores/{storeId}/orders/{orderId}/fulfillments/{fulfillmentId}/shipment-status:
    summary: Fulfillment Shipment Status
    description: Update fulfillment shipment status.
    parameters:
      - $ref: '#/components/parameters/store-id.param'
      - $ref: '#/components/parameters/order-id.param'
      - $ref: '#/components/parameters/fulfillment-id.param'
    post:
      tags:
        - Orders
      summary: Update Fulfillment Status
      description: >
        Post a shipment status update or trigger an automation event for a
        fulfillment.


        The status field accepts two types of values:


        **Statuses** (e.g., `in_transit`, `delivered`): Real carrier tracking
        statuses that update the shipment's current status. When you send these,
        the fulfillment's current status is updated to reflect the new state.
        Triggers any configured automations for that status.


        **Events** (e.g., `stalled_in_transit`, `delayed`, `arriving_early`):
        Special event types that trigger automations without changing the
        current shipment status. The status field remains unchanged, but you can
        still update estimated delivery date and add tracking history entries.
        Use these to trigger event-based automations.


        Both statuses and events can update other fields like estimated delivery
        date and tracking history.
      operationId: Fulfillment status update
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/orders-api-update-fulfillment-status-request.schema
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orders-api-fulfillment-response.schema'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orders-api-error.schema'
          description: Bad Request (validation error)
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orders-api-error.schema'
          description: Unauthorized (invalid or missing API token)
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orders-api-error.schema'
          description: Fulfillment not found
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/error.schema'
          description: Error
      security:
        - Bearer: []
components:
  parameters:
    store-id.param:
      description: Store ID
      in: path
      name: storeId
      required: true
      schema:
        example: 64e5a8a1af49a89df37e4ee7
        type: string
    order-id.param:
      description: >-
        Order ID. Can be either the external order ID provided when creating the
        order, or the internal Redo order ID.
      in: path
      name: orderId
      required: true
      schema:
        type: string
    fulfillment-id.param:
      description: Unique fulfillment identifier.
      in: path
      name: fulfillmentId
      required: true
      schema:
        type: string
  schemas:
    orders-api-update-fulfillment-status-request.schema:
      description: >
        Request body for updating a fulfillment's tracking status.


        The status field accepts two types of values:

        - **Statuses** (e.g., `in_transit`, `delivered`): Update the shipment's
        current status and trigger configured automations.

        - **Events** (e.g., `stalled_in_transit`, `delayed`, `arriving_early`):
        Trigger automations without changing the current shipment status.


        Both can update other fields like estimated delivery date and tracking
        history.
      properties:
        status:
          description: >
            Shipment status or automation event.


            Statuses update the current shipment status and trigger automations:

            `pre_transit`, `in_transit`, `out_for_delivery`,
            `available_for_pickup`, `delivered`, `return_to_sender`, `failure`,
            `cancelled`, `error`.


            Events trigger automations without changing the current status:

            `stalled_in_transit`, `delayed`, `arriving_early`.
          enum:
            - pre_transit
            - in_transit
            - out_for_delivery
            - available_for_pickup
            - delivered
            - return_to_sender
            - failure
            - cancelled
            - error
            - stalled_in_transit
            - delayed
            - arriving_early
          type: string
        estimatedDeliveryDate:
          description: Estimated delivery date in ISO 8601 format.
          format: date-time
          type:
            - string
            - 'null'
        message:
          description: Tracking event message (e.g., "Departed shipping partner facility").
          type:
            - string
            - 'null'
        datetime:
          description: Timestamp of the tracking event in ISO 8601 format.
          format: date-time
          type:
            - string
            - 'null'
        location:
          $ref: '#/components/schemas/orders-api-tracking-location.schema'
      required:
        - status
      type: object
    orders-api-fulfillment-response.schema:
      description: Successful fulfillment operation response.
      properties:
        success:
          const: true
          type: boolean
        fulfillment:
          $ref: '#/components/schemas/orders-api-fulfillment.schema'
      required:
        - success
        - fulfillment
      type: object
    orders-api-error.schema:
      description: Orders API error response.
      properties:
        error:
          description: Error message describing what went wrong.
          type: string
      required:
        - error
      type: object
    error.schema:
      description: >-
        Problem details. See [RFC 7807 Section
        3](https://datatracker.ietf.org/doc/html/rfc7807#section-3).
      properties:
        detail:
          description: Human-readable description of the problem.
          title: Detail
          type: string
        instance:
          description: A URI reference that identifies this problem.
          format: uri-reference
          type: string
        title:
          description: Human-readable summary of the problem type.
          title: Title
          type: string
        type:
          default: about:blank
          description: A URI reference that identifies the problem type.
          format: uri-reference
          type: string
      title: Problem details
      type: object
    orders-api-tracking-location.schema:
      description: Location information for a tracking event.
      properties:
        city:
          type:
            - string
            - 'null'
        state:
          type:
            - string
            - 'null'
        country:
          type:
            - string
            - 'null'
        postalCode:
          type:
            - string
            - 'null'
      type: object
    orders-api-fulfillment.schema:
      description: Fulfillment information.
      properties:
        id:
          description: Unique fulfillment ID.
          type: string
        createdAt:
          description: ISO 8601 date string for when the fulfillment was created.
          format: date-time
          type: string
        lineItems:
          description: List of line items in this fulfillment.
          items:
            $ref: '#/components/schemas/orders-api-fulfillment-line-item.schema'
          type: array
        trackingCompany:
          description: Shipping carrier name (e.g., FedEx, UPS).
          type:
            - string
            - 'null'
        trackingNumber:
          description: Tracking number for the shipment.
          type:
            - string
            - 'null'
        status:
          description: Current shipment status.
          enum:
            - pre_transit
            - unknown
            - in_transit
            - out_for_delivery
            - available_for_pickup
            - delivered
            - return_to_sender
            - failure
            - cancelled
            - error
          type: string
        estimatedDeliveryDate:
          description: >-
            Carrier's estimated delivery date (YYYY-MM-DD), typically in the
            destination's local time. Some carriers do not clearly distinguish
            local vs UTC, so the date may occasionally be off by one day.
          pattern: ^\d{4}-\d{2}-\d{2}$
          type:
            - string
            - 'null'
        deliveredAt:
          description: ISO 8601 timestamp of when the shipment was delivered.
          format: date-time
          type:
            - string
            - 'null'
        trackingHistory:
          description: List of tracking events in chronological order.
          items:
            $ref: '#/components/schemas/orders-api-tracking-event.schema'
          type: array
      required:
        - id
        - createdAt
        - lineItems
        - status
        - trackingHistory
      type: object
    orders-api-fulfillment-line-item.schema:
      description: Fulfilled line item details.
      properties:
        id:
          description: Line item ID that was fulfilled.
          type: string
        quantity:
          description: Quantity fulfilled for this line item.
          minimum: 1
          maximum: 1000
          type: integer
        title:
          description: Title/name of the product.
          type: string
        productId:
          description: Product ID.
          type: string
        variantId:
          description: Product variant ID.
          type:
            - string
            - 'null'
        sku:
          description: SKU of the product.
          type:
            - string
            - 'null'
      required:
        - id
        - quantity
        - title
        - productId
      type: object
    orders-api-tracking-event.schema:
      description: Tracking event details.
      properties:
        message:
          description: Tracking event message.
          type: string
        status:
          description: Status at this tracking event.
          type: string
        datetime:
          description: ISO 8601 timestamp of the tracking event.
          format: date-time
          type: string
        location:
          $ref: '#/components/schemas/orders-api-tracking-location.schema'
      required:
        - message
        - status
        - datetime
      type: object
  securitySchemes:
    Bearer:
      scheme: bearer
      type: http

````