fabric Orders (OMS) API

fabric's Order Management System (OMS) — order creation, lookup, status transitions, payment authorization, address and fee updates, and the operational surface used by customer service, fulfillment teams, and downstream finance systems.

fabric Orders (OMS) API is one of 16 APIs that fabric publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 3 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Orders, OMS, Fulfillment, and Returns. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 3 Naftiko capability specs.

OpenAPI Specification

fabric-orders-openapi.yml Raw ↑
components:
  headers:
    xFabricRequestIdResponseHeader:
      description: Unique request ID
      example: 263e731c-45c8-11ed-b878-0242ac120002
      required: false
      schema:
        type: string
  parameters:
    xFabricChannelId:
      description: >-
        x-fabric-channel-id identifies the sales channel where the API request
        is being made; primarily for multichannel use cases. The channel ids are
        12 corresponding to US and 13 corresponding to Canada. The default
        channel id is 12. This field is required.
      example: '12'
      in: header
      name: x-fabric-channel-id
      required: true
      schema:
        type: string
    xFabricChannelIdOptional:
      description: >-
        x-fabric-channel-id identifies the sales channel through which the API
        request is being made; primarily for multichannel use cases. It is an
        optional field. The default US channel is 12 while the default Canada
        channel is 13.
      example: '12'
      in: header
      name: x-fabric-channel-id
      required: false
      schema:
        type: string
    xFabricChannelIds:
      description: >-
        x-fabric-channel-id identifies the sales channel where the API request
        is being made; primarily for multichannel use cases. The channel ids are
        12 corresponding to US and 13 corresponding to Canada. The default
        channel id is 12. This field is required. A comma separated list of
        sales channel IDs. This comma separated list of sales channel IDs are
        required when using multiple channels.
      example: 12, 13, 16
      in: header
      name: x-fabric-channel-ids
      required: false
      schema:
        type: string
    xFabricChannelIdsOptional:
      description: >-
        x-fabric-channel-id identifies the sales channel through which the API
        request is being made; primarily for multichannel use cases. It is an
        optional field. The default US channel is 12 while the default Canada
        channel is 13. This field is optional. **Note:** Use `xFabricChannelIds`
        for multiple channels, and `xFabricChannelId` for a single channel.
      example: 12, 13, 16
      in: header
      name: x-fabric-channel-ids
      required: false
      schema:
        type: string
    xFabricRequestId:
      description: Unique request ID
      example: 263e731c-45c8-11ed-b878-0242ac120002
      in: header
      name: x-fabric-request-id
      required: false
      schema:
        type: string
    xFabricTenantId:
      description: >-
        A header used by fabric to identify the tenant making the request. You
        must include tenant id in the authentication header for an API request
        to access any of fabric’s endpoints. You can retrieve the tenant id ,
        which is also called account id, from
        [Copilot](/v3/platform/settings/account-details/getting-the-account-id).
        This header is required.
      example: 5f328bf0b5f328bf0b5f328b
      in: header
      name: x-fabric-tenant-id
      required: true
      schema:
        type: string
  schemas:
    acknowledgePackageTrackingRequest:
      description: Acknowledgement for package tracking
      properties:
        attributes:
          additionalProperties:
            description: Additional custom attribute mappings.
            type: object
          description: Custom attribute mappings.
          type: object
        eventType:
          description: Event type for which acknowledgement is received
          enum:
            - ORDER_CREATE_IN_PTS
            - ORDER_CANCELLED_IN_PTS
            - SHIPMENT_CREATE_IN_PTS
            - SHIPMENT_CANCELLED_IN_PTS
            - TRANSFER_CREATE_IN_PTS
            - TRANSFER_CANCELLED_IN_PTS
            - TRANSFER_SHIPMENT_CREATE_IN_PTS
            - TRANSFER_SHIPMENT_CANCELLED_IN_PTS
          example: ORDER_CREATE_IN_PTS
          type: string
      required:
        - eventType
      type: object
    addPaymentLogRequest:
      type: object
      description: Request to add a payment log entry for a specific payment in an order
      properties:
        type:
          type: string
          description: Transaction type such as CAPTURE, VOID, REFUND, AUTH, REAUTH, etc.
          example: CAPTURE
        amount:
          type: number
          description: Transaction amount for the payment operation
          example: 60
        amountInCurrencies:
          type: array
          items:
            $ref: '#/components/schemas/amountInCurrencyResource'
        paymentId:
          type: string
          description: >-
            Merchant-provided unique identifier for a payment based on payment
            connector
          example: 820180910982102800
        paymentLogId:
          type: string
          description: ID generated to uniquely identify the payment log
          example: 671faad5-c530-4361-94a8-6b81614dfe30
        status:
          type: string
          description: Payment status such as 200, 400, etc.
          example: 200
        data:
          $ref: '#/components/schemas/paymentDetails'
          description: Payment details object containing response information
        attributes:
          type: object
          description: Merchant-defined custom attributes
          example:
            key: value
    address:
      description: Address details
      properties:
        addressLine1:
          description: Address line 1
          example: 123 Main St.
          type: string
        addressLine2:
          description: Address line 2
          example: Suite 100
          type: string
        addressLine3:
          description: Address line 3
          example: Seventh floor
          type: string
        addressLine4:
          description: Address line 4
          example: 'Attention: Pat E. Kake'
          type: string
        city:
          description: City name
          example: Seattle
          type: string
        countryCode:
          description: ISO 3166-1 alpha-2 based country code
          example: US
          type: string
        email:
          description: Contact person's email
          example: [email protected]
          type: string
        latitude:
          description: >-
            Address latitude, used with `longitude` to specify the address
            location. Decimal degrees format; negative is degrees
            South.**Note:**Value must be between -90 and 90, both inclusive.
          example: 47.6205
          format: double
          type: number
        longitude:
          description: >-
            Address longitude, used with `latitude` to specify the address
            location. Decimal degrees format; negative is degrees South.
            **Note:**Value must be between -180 and 180, both inclusive.
          example: -122.3493
          format: double
          type: number
        name:
          $ref: '#/components/schemas/orderContactName'
        phone:
          $ref: '#/components/schemas/orderContactPhone'
        postalCode:
          description: Postal or ZIP code
          example: '98121'
          type: string
        region:
          description: Region or state
          example: WA
          type: string
        type:
          description: Address type
          example: Home
          type: string
      required:
        - addressLine1
        - city
        - countryCode
        - latitude
        - longitude
        - postalCode
        - region
        - type
      type: object
    adjustmentDetail:
      description: Price adjustment details object.
      properties:
        adjustmentCounter:
          description: Sequential or incremental counter for price adjustment
          example: 1
          format: int32
          type: integer
        amount:
          description: Adjustment amount
          example: 2.4
          format: double
          type: number
        amountInCurrencies:
          description: >-
            The adjustment amount, itemized by each currency used within the
            order.
          items:
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        attributes:
          description: >-
            Merchant-defined custom attributes. This is a placeholder for
            additional info in key-value pairs.
          example:
            number: XlQZTmFDFtPFGMxJP6oiAqN3vo+qKZ
          type: object
        cancelQuantity:
          description: Cancel quantity
          example: 2
          format: int32
          type: integer
        invoiceQuantity:
          description: Total quantity invoiced
          example: 10
          format: int32
          type: integer
        notes:
          description: Placeholder for additional info, if any.
          example: Any additional info
          type: string
        quantity:
          description: Adjustment quantity
          example: 2
          format: int32
          type: integer
        reasonCode:
          description: Reason code
          example: RFC
          type: string
        returnQuantity:
          default: 0
          description: Returned quantity of given item
          example: 1
          format: int32
          type: integer
        subReasonCode:
          description: Subreason code
          example: Late shipping
          type: string
      type: object
    amountInCurrency:
      description: Amount in currency object details.
      properties:
        amount:
          description: The amount displayed in the primary currency.
          example: 123.45
          format: double
          type: number
        currency:
          description: Currency in ISO-4217
          example: USD
          type: string
        group:
          description: >-
            A unique identifier for currencies. All calculations and invoicing
            are based on this identifier. For example, the `Shopper` group uses
            USD, while the `Retailer` group uses EUR.
          example: SHOPPER
          type: string
      required:
        - currency
        - group
      type: object
    amountInCurrencyResource:
      description: Amount in currency object details.
      properties:
        amount:
          description: The amount displayed in the primary currency.
          example: 123.45
          format: double
          type: number
        currency:
          description: Currency in ISO-4217
          example: USD
          type: string
        group:
          description: >-
            A unique identifier for currencies. All calculations and invoicing
            are based on this identifier. For example, the `Shopper` group uses
            USD, while the `Retailer` group uses EUR.
          example: SHOPPER
          type: string
      required:
        - currency
        - group
      type: object
    apiResponse:
      description: Response message
      properties:
        message:
          description: Response message
          example: OK
          type: string
      type: object
    appeasementEligibilityItemResource:
      description: >-
        An object that contains properties and information on an item's
        eligibility for appeasement.
      properties:
        lineItemId:
          description: The system generated item sequence ID.
          example: 6f25bf01-ae4e-4e7f-96b9-0579a40a1a7d
          type: string
        quantity:
          description: The eligible quantity for appeasement.
          example: 2
          format: int32
          type: integer
        refundAmount:
          description: The maximum eligible refund amount for an appeasement item.
          example: 20.5
          type: number
        sku:
          description: The unique identifier of item. Stock Keeping Unit (SKU).
          example: P1234
          type: string
        refundAmountInCurrencies:
          type: array
          description: >
            A list of refund amounts, each represented in a specific currency.  

            Each item includes the monetary value and its associated currency
            code,  

            following the structure defined in the `amountInCurrencyResource`
            schema.  

            This allows multi-currency refunds to be accurately represented and
            processed.
          items:
            $ref: '#/components/schemas/amountInCurrencyResource'
      type: object
    appeasementEligibilityResponse:
      description: >-
        A response object that contains properties and information on an item's
        eligibility for appeasement.
      properties:
        eligibleItems:
          description: >-
            An array of containing an item's eligibility for returns,
            cancellations, or exchanges.
          items:
            $ref: '#/components/schemas/appeasementEligibilityItemResource'
          type: array
        eligibleReasonCodes:
          description: An array containing the reason codes for the returns.
          items:
            $ref: '#/components/schemas/reasonCodeAndDescription'
          type: array
        orderId:
          description: The fabric system generated 24-character order ID.
          example: 62f3982438bcab1951be0a19
          type: string
        orderNumber:
          description: A unique order number.
          example: '309019176'
          type: string
        period:
          description: >-
            The return, exchange, or cancellation time window set in your
            policy.
          example: 30D00H00M
          type: string
        policyType:
          description: >-
            The policy type that determines the eligibility of an exchange,
            return, appeasement or cancellation. If omitted, the default policy
            is used.
          example: Company Policy 2023
          type: string
        remainingRefundableAmount:
          description: The order's remaining refundable amount excluding items refunds.
          example: 30.5
          type: number
        remainingRefundableAmountInCurrencies:
          items:
            $ref: '#/components/schemas/amountInCurrency'
          type: array
        totalRefundableAmount:
          description: The total refundable amount for the order.
          example: 130.7
          type: number
        totalRefundableAmountInCurrencies:
          items:
            $ref: '#/components/schemas/amountInCurrency'
          type: array
      type: object
    appeasementResponse:
      description: Appeasement info
      properties:
        orderNumber:
          description: >-
            Merchant-defined order identifier. If omitted, this is generated by
            fabric's sequence generator using Configuration service
          example: '12'
          type: string
        totalAmountRefunded:
          description: Total refunded amount
          example: 25.5
          format: double
          type: number
        totalAmountRefundedInCurrencies:
          description: >
            The total amount that has been refunded, represented in one or more
            currencies.  

            Each entry provides the total refunded value and its corresponding
            currency code,  

            using the structure defined in the `amountInCurrency` schema.  

            This field enables tracking of cumulative refunds across multiple
            currencies.
          items:
            $ref: '#/components/schemas/amountInCurrency'
          type: array
      type: object
    auditLog:
      description: Audit log to capture change history
      properties:
        amount:
          description: Amount for which audit is done
          example: 2.4
          format: double
          type: number
        attributes:
          description: Custom attributes
          example:
            key: value
          type: object
        auditId:
          description: System-generated audit ID (UUID format)
          example: a05b72dc-78d8-4ea4-90fc-2fe6a1fe1111
          type: string
        auditType:
          description: Audit type such as cancel, return, etc.
          example: CANCEL
          type: string
        auditedAt:
          description: Audit time (UTC)
          example: '2023-03-12T09:24:54.804Z'
          format: date-time
          type: string
        employeeId:
          description: Employee (ID or name) who made the last update
          example: '6227'
          type: string
        isSuccess:
          default: false
          description: >-
            true: Update operation (any update to the service) is successful 
            false: Update operation has failed
          example: true
          type: boolean
        lineItemId:
          description: >-
            Merchant-defined unique identifier for each item in an order. When
            omitted, fabric will generate it during order creation, in UUID
            format.
          example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
          type: string
        lineItemNumber:
          description: Item identifier
          example: 1
          format: int32
          type: integer
        note:
          description: Additional info, if any
          example: Note
          type: string
        paymentToken:
          $ref: '#/components/schemas/orderPaymentToken'
        policyCode:
          description: >-
            Configurable in Copilot as per requirement. If omitted, default
            policy is used.
          example: POS
          type: string
        quantity:
          description: Ordered quantity of given item
          example: 1
          format: int32
          type: integer
        reasonCode:
          description: Merchant-defined reason code, varies from merchant to merchant
          example: Scratched item
          type: string
        sku:
          description: Stock keeping unit (SKU), unique item identifier
          example: SKU0023
          type: string
        source:
          description: >-
            Merchant-defined source from where the update was initiated. There
            are no predefined values; possible values could be Customer Service
            Representative (CSR), Point-of-Sale (POS), etc.
          example: POS
          type: string
        subReasonCode:
          description: >-
            Merchant-defined sub reason code; provides more clarity to audit
            reason
          example: Scratched item
          type: string
        updatedFields:
          description: Audit log for change history
          items:
            $ref: '#/components/schemas/orderAuditLogUpdatedField'
          type: array
      type: object
    cancellationItemResource:
      description: >-
        A resource used to capture detailed cancellation information at the item
        level.
      properties:
        amount:
          description: Amount
          example: '-20.'
          format: double
          type: number
        amountInCurrencies:
          description: >-
            The amount associated with the cancellation, itemized by each
            currency used within the original order.
          items:
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        attributes:
          description: Custom attributes
          type: object
        cancellationCounter:
          description: An identifier used for cancellations.
          example: 1
          type: string
        invoicedAmount:
          description: Invoiced amount
          example: '-20.'
          format: double
          type: number
        invoicedAmountInCurrencies:
          items:
            description: >-
              The invoiced amount, itemized by each currency used within a
              specific order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        payments:
          items:
            $ref: '#/components/schemas/paymentReference'
          type: array
        quantity:
          description: The total quantity of an item for this cancellation request.
          example: 10
          format: int32
          type: integer
        reasonCode:
          description: Reason code
          example: Order line cancel
          type: string
        refunds:
          items:
            $ref: '#/components/schemas/refundDetailResource'
          type: array
        source:
          description: >-
            An optional field used to determine the source that initiated the
            API request.
          example: CSR
          type: string
        status:
          description: Cancellation status
          enum:
            - PROCESSING
            - COMPLETED
            - REJECTED
          example: PROCESSING
          type: string
        subReasonCode:
          description: Sub reason code
          example: Late shipping
          type: string
      type: object
    cancellationResource:
      description: Cancellation resource
      properties:
        amount:
          description: Amount
          example: '-20.'
          format: double
          type: number
        amountInCurrencies:
          items:
            description: >-
              The total amount, itemized by each currency used within a specific
              order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        attributes:
          description: Custom attributes
          example:
            number: XlQZTmFDFtPFGMxJP6oiAqN3vo+qKZ
          type: object
        cancellationCounter:
          description: An identifier used for cancellations.
          example: 1
          type: string
        invoicedAmount:
          description: Invoiced amount
          example: '-20.'
          format: double
          type: number
        invoicedAmountInCurrencies:
          items:
            description: >-
              The invoiced amount will be displayed in all currencies used for
              the order. If only a single currency was used, then only that
              currency will be shown.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        payments:
          items:
            $ref: '#/components/schemas/paymentReference'
          type: array
        reasonCode:
          description: Reason code
          example: Order Line Cancel
          type: string
        refunds:
          items:
            $ref: '#/components/schemas/refundDetailResource'
          type: array
        source:
          description: >-
            An optional field used to determine the source that initiated the
            API request.
          example: CSR
          type: string
        status:
          description: Cancellation Status
          enum:
            - PROCESSING
            - COMPLETED
            - REJECTED
          example: PROCESSING
          type: string
        subReasonCode:
          description: Sub reason code
          example: Late shipping
          type: string
      type: object
    createOrderRequest:
      description: The object containing details related to order creation.
      properties:
        adjustmentTotal:
          description: Total price adjustments for all items of the order.
          example: 123.45
          format: double
          type: number
        adjustmentTotalInCurrencies:
          items:
            description: >-
              The total adjustments made to the prices of all items in an order,
              itemized by each currency used within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        adjustments:
          description: >-
            Price adjustments are made to modify product prices during order
            creation, aiming to incentivize shoppers by offering discounts and
            promotions based on specified criteria. Price adjustments are also
            made to apply coupons that the shopper has used.
          items:
            $ref: '#/components/schemas/adjustmentDetail'
          type: array
        attributes:
          description: >-
            Merchant-defined custom attributes. This is a placeholder for
            additional info (in key-value pairs).
          example:
            fraudCheckStatus: UPDATED
            fraudStatus: FRAUD_PASS
          type: object
        cartId:
          description: >-
            Unique identifier of a cart, either from fabric Cart or an external
            cart service. It is used for linking an order to a specific cart. If
            available, it is also used for inventory reservation from cart
            workflow.
          example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
          type: string
        currencies:
          $ref: '#/components/schemas/currencies'
          description: The supported currency groups you defined.
        currency:
          description: Three-letter currency code as defined by ISO-4217
          example: USD
          type: string
        customer:
          $ref: '#/components/schemas/invoiceCustomer'
        discounts:
          description: Discounts
          items:
            $ref: '#/components/schemas/orderDiscountRequest'
          type: array
        employeeId:
          description: Employee (ID or name) who initiated the order creation request
          example: 62272e917b12209e68751d94
          type: string
        feeTotal:
          description: Total item fee = `orderedQuantity` * Item Fee Total
          example: 12.34
          format: double
          type: number
        feeTotalInCurrencies:
          items:
            description: >-
              The total fee for an item, calculated as the `orderedQuantity`
              multiplied by the `Item Fee Total`, itemized by each currency used
              within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        fees:
          description: Fees
          items:
            $ref: '#/components/schemas/orderFeeDetail'
          type: array
        items:
          description: Items
          items:
            $ref: '#/components/schemas/orderItemRequest'
          maxItems: 2147483647
          minItems: 1
          type: array
        notes:
          description: >-
            Additional info, if any. To be used by customer service
            representative (CSR) only
          items:
            $ref: '#/components/schemas/orderNote'
          type: array
        orderDiscount:
          description: Order discount = `summationOfAll(itemDiscountTotal)`
          example: 1.23
          format: double
          type: number
        orderDiscountInCurrencies:
          items:
            description: >-
              The total discount applied to the order, calculated as the sum of
              all `itemDiscountTotal` values, itemized by each currency used
              within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        orderNumber:
          description: >-
            Merchant-defined order identifier. If omitted, this is generated by
            fabric's sequence generator using Configuration service.
          example: '309019176'
          type: string
        orderExternalId:
          type: string
          description: >
            A merchant-defined external order identifier.  

            This field is optional and can be used to reference the order in
            external 

            systems such as an ERP, OMS, or CRM.
          example: 191763090_O1231
        orderSubtotal:
          description: Recalculated order subtotal = `summationOfAll(itemSubTotal)`
          example: 123.45
          format: double
          type: number
        orderSubtotalInCurrencies:
          items:
            description: >-
              The updated subtotal for the entire order, calculated as the sum
              of all `itemSubTotal` values, itemized by each currency used
              within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        orderTotal:
          description: >-
            Total amount to be charged for the order = `orderSubTotal` -
            `orderDiscountTotal` + `orderFeeTotal` + `orderTaxTotal`.
          example: 146.9
          format: double
          type: number
        orderTotalInCurrencies:
          items:
            description: >-
              The total amount to be charged for an order, calculated as
              `orderSubTotal` - `orderDiscountTotal` + `orderFeeTotal` +
              `orderTaxTotal`, itemized by each currency used within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        orderedAt:
          description: >-
            Merchant-defined order creation time in UTC. It is mandatory in the
            request body of Create Order endpoint - `POST /orders`.
          example: '2022-05-12T09:30:31.198Z'
          format: date-time
          type: string
        payments:
          description: Payments
          items:
            $ref: '#/components/schemas/orderPaymentRequest'
          type: array
        retail:
          $ref: '#/components/schemas/orderRetail'
        shipInfo:
          description: Shipping info
          items:
            $ref: '#/components/schemas/orderShipInfo'
          maxItems: 2147483647
          minItems: 1
          type: array
        statusCode:
          description: Status code. Primarily used for Point-of-Sale (POS) orders.
          example: ORDER_CREATED
          type: string
        statusDescription:
          description: Description corresponding to `statusCode`
          example: Order Created
          type: string
        subtype:
          description: Order subtype, for additional classification
          enum:
            - IOS
            - ANDROID
            - INTERNATIONAL
          example: INTERNATIONAL
          type: string
        taxTotal:
          description: >-
            Total tax on order =
            `summationOfAll(itemTaxTotal)+summationOfAll(tax[].value)`
          example: 12.34
          format: double
          type: number
        taxTotalInCurrencies:
          items:
            description: >-
              The total tax on an order, calculated as the sum of all
              `itemTaxTotal` values and all `tax[].value` values, itemized by
              each currency used within the order.
            $ref: '#/components/schemas/amountInCurrencyResource'
          type: array
        type:
          description: >-
            Order type. It is critical for order life cycle as it indicates the
            workflow that varies with the type. For example, Storefront orders
            have different workflows than Call Center orders. fabric Orders
            service offers standard configurations for Storefront, Call Center,
            Point of Sale, iOS, Android, and International.
          enum:
            - WEB
            - CSC
            - MOBILE_APP
            - POS
          example: WEB
          type: string
        requestContext:
          $ref: '#/components/schemas/requestReferenceContextResource'
          description: Request reference context information
      required:
        - items
        - orderNumber
        - statusCode
      type: object
    creditsEligibilityResponse:
      description: Credits eligibility model
      properties:
        description:
          description: Description provided while requesting credits (for reference)
          example: Policy used to add credits
          type: string
        eligibleReasonCodes:
          description: Reason codes to support credits request
          items:
            $ref: '#/components/schemas/reasonCodeAndDescription'
          type: array
        orderId:
          description: 24-character system-generated order ID
          example: 62f3982438bcab1951be0a19
          type: string
        policyName:
          description: Merchant-given policy name.
          example: Credits policy
          type: string
        policyType:
          description: Policy type used to check credits eligibility
          example: credits
          type: string
      type: object
    creditsRequest:
      description: Request for credits
      properties:
        amount:
          description: Credits amount
          example: 21.5
          format: double
          type: number
        amountInCurrencies:
          description: >
            A list of amounts represented in different currencies.  

            Each item includes a monetary value and its corresponding currency
            code,  

       

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