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

# Create Fulfillment

> Create a fulfillment for specific line items within an order, including tracking information. The orderId parameter can be either the external order ID you provided when creating the order, or the internal Redo order ID returned from the create order response.



## OpenAPI

````yaml /api-schema/openapi.yaml post /stores/{storeId}/orders/{orderId}/fulfillments
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:
    summary: Order Fulfillments
    description: Order fulfillments collection.
    parameters:
      - $ref: '#/components/parameters/store-id.param'
      - $ref: '#/components/parameters/order-id.param'
    post:
      tags:
        - Orders
      summary: Create Fulfillment
      description: >-
        Create a fulfillment for specific line items within an order, including
        tracking information. The orderId parameter can be either the external
        order ID you provided when creating the order, or the internal Redo
        order ID returned from the create order response.
      operationId: Fulfillment create
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/orders-api-create-fulfillment-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: Order 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
  schemas:
    orders-api-create-fulfillment-request.schema:
      description: Request body for creating a fulfillment.
      properties:
        fulfillmentId:
          description: >-
            Unique identifier for the fulfillment. If not provided, will be
            auto-generated.
          type: string
        lineItems:
          description: List of line items to fulfill.
          items:
            description: Line item fulfillment details.
            properties:
              id:
                description: Line item ID to fulfill.
                type: string
              quantity:
                description: Quantity to fulfill for this line item.
                minimum: 1
                maximum: 1000
                type: integer
            required:
              - id
              - quantity
            type: object
          minItems: 1
          type: array
        tracking:
          description: Optional tracking information for the shipment.
          properties:
            carrier:
              description: Name of the shipping carrier (e.g., FedEx, UPS, USPS).
              type: string
            code:
              description: Tracking number/code for the shipment.
              type: string
          required:
            - carrier
            - code
          type:
            - object
            - 'null'
        useDummyTracking:
          description: >-
            If true, creates a dummy tracker for testing without calling
            external tracking APIs. Useful for development and testing the
            fulfillment status update endpoint.
          type: boolean
        initialTracking:
          description: >-
            Initial tracking information for the dummy tracker. Only used when
            useDummyTracking is true. If not specified, defaults to status
            "pre_transit".
          properties:
            status:
              description: >-
                Initial shipment status for the dummy tracker. Only actual
                statuses are allowed (not automation events).
              enum:
                - pre_transit
                - unknown
                - in_transit
                - out_for_delivery
                - available_for_pickup
                - delivered
                - return_to_sender
                - failure
                - cancelled
                - error
              type: string
            estimatedDeliveryDate:
              description: Estimated delivery date in ISO 8601 format.
              format: date-time
              type:
                - string
                - 'null'
            message:
              description: Tracking event message.
              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
      required:
        - lineItems
      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

````