openapi: 3.0.1
info:
title: Cart Actions Endpoints Orders API
description: fabric's **Cart API** lets you add, update, and remove items from your Storefront cart, either as a guest user or as a logged-in user. It also provides functionality to merge carts when you switch from guest user to logged-in user, and apply coupons and other attributes (for example, gift wrapping) to the line items. Additionally, the API supports more advanced tasks such as using multiple carts within a B2B organization, sharing carts, and supporting a unified cart experience for multi-region and multi-brand businesses.
The Cart API provides high performance, scalability, multi-tenancy, and configurability to the end-to-end order processing actions that start from the item being added to the cart; through the pre-checkout stage that includes billing, shipping, and payment details; to the checkout stage where the order is processed and confirmed by fabric's Order Management System (OMS)
contact:
name: Cart Support
email: support.cnc@fabric.inc
license:
name: fabric API License
url: https://fabric.inc/api-license
version: 3.0.0
servers:
- url: https://api.fabric.inc/v3
security:
- bearerAuth: []
tags:
- description: These endpoints create orders, update pickup details (for BOPIS scenarios) and get order details.
name: Orders
paths:
/orders:
post:
description: This endpoint creates a new order in the fabric Orders (OMS) system, regardless of whether it originates from fabric CnC service or an external system. The response includes an order ID, which is required for subsequent calls such as updating pickup information, getting order details, verifying eligibility for order cancellations, returns, exchanges, as well as creating appeasements, and processing order returns, cancellations, and exchanges.
operationId: createOrder
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/createOrderRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: Created
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Create New Order
tags:
- Orders
/orders/{orderIdentifierType}/{orderIdentifierValue}/actions/update-status:
post:
tags:
- Orders
summary: Update an Order’s Status with State Transition
description: Performs a state transition on an order using the order state machine. The provided status code must correspond to a valid action available from the order’s current state. Orders that are already in or beyond the **ORDER_ALLOCATED** state cannot be updated using this endpoint.
operationId: updateOrderStatus
parameters:
- name: orderIdentifierType
in: path
description: The type of identifier used to locate the order. Supported values are `order-id`, `order-number`, and `order-external-id`.
required: true
schema:
type: string
example: ORDER0001
- name: orderIdentifierValue
in: path
description: The value of the order identifier corresponding to the specified `orderIdentifierType`.
required: true
schema:
type: string
example: ORDER0001
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/orderStatusUpdateRequest'
required: true
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'404':
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
message: Order not found
type: CLIENT_ERROR
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/{orderIdentifierType}/{orderIdentifierValue}/actions/update-fees-and-taxes:
post:
tags:
- Orders
summary: Update Order Fees and Taxes
description: Recalculates and updates fee and tax totals for an existing order. The request payload allows you to provide updated fee and tax values at the order, item, and ship-to levels. Only fields included in the payload are applied. Use `overrideAllArrayFields` to control whether array fields in the payload replace the existing arrays or are merged.
operationId: updateFeesAndTaxes_1
parameters:
- name: orderIdentifierType
in: path
description: 'The type of identifier used to locate the order. Supported values: `order-id`, `order-number`, `order-external-id`.'
required: true
schema:
type: string
example: order-id
- name: orderIdentifierValue
in: path
description: The value of the order identifier that corresponds to `orderIdentifierType`.
required: true
schema:
type: string
example: 5349b4ddd2781d08c09890f4
- name: overrideAllArrayFields
in: query
description: Controls how array fields in the request body are applied. When true, arrays provided in the payload replace the existing arrays on the order. When false, array updates are merged/partially applied based on the service's update behavior.
required: false
schema:
type: boolean
default: true
example: true
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updateOrderFeesAndTaxesRequest'
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/{orderIdentifierType}/{orderIdentifierValue}/ship-info/{shipToId}/ship-to-address:
put:
tags:
- Orders
summary: Update a Ship-to Address for a Specific Shiptoid
description: Updates the ship-to address for a specific `shipToId` on an order. Only the address fields present in the payload are updated. If address enrichment (for example Google Maps) is configured, address validation and automatic latitude/longitude enrichment may run. If you are using Geography and Zones, the fulfillment zone is updated and a soft reservation is triggered to move inventory to the correct network.
operationId: updateShipToAddress
parameters:
- name: orderIdentifierType
in: path
description: 'The type of identifier used to locate the order. Supported values: `order-id`, `order-number`, `order-external-id`.'
required: true
schema:
type: string
example: order-id
- name: orderIdentifierValue
in: path
description: The value of the order identifier that corresponds to the `orderIdentifierType`.
required: true
schema:
type: string
example: ORDER0001
- name: shipToId
in: path
description: Unique identifier (UUID) of the ship-to location within the order (`shipInfo`).
required: true
schema:
type: string
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updateShipToAddressRequest'
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'404':
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
message: Order or shipToId not found
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/{orderIdentifierType}/{orderIdentifierValue}/payments/{paymentCounter}/bill-to-address:
put:
tags:
- Orders
summary: Update Bill-to Address for a Specific Payment
description: Updates the bill-to address for a specific payment on an order, identified by `paymentCounter`. Only address fields included in the payload are updated.
operationId: updatePaymentBillToAddress
parameters:
- name: orderIdentifierType
in: path
description: 'The type of identifier used to locate the order. Supported values: `order-id`, `order-number`, `order-external-id`.'
required: true
schema:
type: string
example: order-id
- name: orderIdentifierValue
in: path
description: The value of the order identifier that corresponds to `orderIdentifierType`.
required: true
schema:
type: string
example: 5349b4ddd2781d08c09890f4
- name: paymentCounter
in: path
description: The sequential counter identifying the specific payment within the order (used to select which payment's bill-to address to update).
required: true
schema:
type: integer
format: int32
example: 1
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updatePaymentBillToAddressRequest'
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'404':
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
message: Order or payment not found
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/{orderIdentifierType}/{orderIdentifierValue}/payments/{paymentCounter}/payment-logs:
put:
tags:
- Orders
summary: Add a Payment Log Entry for a Specific Payment
description: Adds a new payment log entry to the logs for a specific payment on an order, identified by `paymentCounter`. Payment logs capture when a payment is charged or credited, and include provider response details and metadata. Only fields present in the payload are applied.
operationId: addPaymentLog
parameters:
- name: orderIdentifierType
in: path
description: 'The type of identifier used to locate the order. Supported values: `order-id`, `order-number`, `order-external-id`.'
required: true
schema:
type: string
example: order-id
- name: orderIdentifierValue
in: path
description: The value of the order identifier that corresponds to `orderIdentifierType`.
required: true
schema:
type: string
example: 5349b4ddd2781d08c09890f4
- name: paymentCounter
in: path
description: The sequential counter identifying the specific payment within the order (used to select which payment to attach the log to).
required: true
schema:
type: integer
format: int32
example: 1
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/addPaymentLogRequest'
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'404':
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
message: Order or payment not found
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/{orderIdType}/{orderIdValue}/actions/update-attributes:
post:
tags:
- Orders
summary: Update Order Attributes by Order Identifier
description: "Updates order attributes, typically used by the integration layer to modify \nor synchronize external system–related information. \n\n**Note:** \n- Use this endpoint if you have the order ID, order number, or external order ID. \n- If you only have an order number, set `orderIdType` to `order-number`.\n"
operationId: updateOrderAttributesByOrderIdentifier
parameters:
- name: orderIdType
in: path
description: "The type of order identifier used to locate the order. \nSupported values: \n- `order-id` \n- `order-number` \n- `order-external-id`\n"
required: true
schema:
type: string
enum:
- order-id
- order-number
- order-external-id
example: order-id
- name: orderIdValue
in: path
description: The value of the specified order identifier.
required: true
schema:
type: string
example: ORDER0001
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/orderAttributesUpdateRequest'
required: true
responses:
'200':
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
'400':
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4003
message: 'Mandatory param(s): `requiredField1` is/are missing'
errors:
- type: CLIENT_ERROR
errorCode: SERVICE-4002
message: Invalid value(s) specified for 'requiredField.field3'
errors: []
context:
service: orders
endpoint: POST /v3/orders
'401':
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: CLIENT_ERROR
errorCode: SERVICE-4001
message: Unauthorized request
errors: []
context:
service: orders
endpoint: POST /v3/orders/OrderId_12345
'500':
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
example:
type: SERVER_ERROR
errorCode: SERVICE-5000
message: Internal server error
errors: []
context:
service: inventories
endpoint: POST /v3/inventories/actions/find-by-geography
/orders/actions/update-customer:
post:
description: In many scenarios, customer details may change over time. For example, a customer might change their email, phone, or company affiliation.
By providing the order IDs and the updated customer details, this endpoint facilitates updating customer info for the given order IDs. This ensures order-related communication reaches the customer and they get timely customer service.
operationId: updateCustomerInfoInOrderList
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/updateCustomerRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/customerResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Update Customer Details for Given Order Ids
tags:
- Orders
/orders/order-number/{orderNumber}:
get:
description: 'As a merchant, you may need to review or monitor an order to answer customer inquiries, resolve a complaint or for analytics and reporting. With this endpoint, you can get order details by order number. **Note**: If you do not have the order number, use the corresponding order ID-based endpoint - `GET /orders/{orderId}`.
'
operationId: getOrderByNumber
parameters:
- description: Merchant-defined order identifier
example: Order-320000001
in: path
name: orderNumber
required: true
schema:
type: string
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'404':
content:
application/json:
example:
message: Order with orderNumber is not found
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Get Order by Order Number
tags:
- Orders
/orders/order-number/{orderNumber}/actions/update-attributes:
post:
description: The following endpoint is used to update attributes by order number.
operationId: updateOrderAttributesByOrderNumber
parameters:
- description: The merchant-defined order identifier provided during the Create Order - `POST /orders` endpoint.
example: Order-320000001
in: path
name: orderNumber
required: true
schema:
type: string
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/orderAttributesUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Update Shipping Information for an Existing Order by Order Number
tags:
- Orders
/orders/search:
post:
description: Search and retrieve orders using filter parameters such as order `type`, status, date range, and more. This endpoint allows customers and merchants to query past orders for review, analysis, or support. Filters must be provided in the request body. You can paginate results using `offset` and `limit`. If pagination parameters are not specified, the default response returns up to 10 orders.
operationId: getOrdersByQuery
parameters:
- description: Number of records to skip before returning records. For example, When `offset=20`, `limit=10` returns records 21-30.
example: 0
in: query
name: offset
schema:
default: 0
type: number
- description: Maximum number of records per page
example: 10
in: query
name: limit
schema:
default: 10
example: 10
type: number
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/orderSearchRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/searchResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Search for Orders
tags:
- Orders
/orders/{orderId}:
get:
description: 'As a merchant, you may need to review or monitor an order to answer customer inquiries, resolve a complaint, or for analytics and reporting. With this endpoint, you can get order details by order ID. **Note**: If you do not have the order ID, use the corresponding order number-based endpoint - `GET /orders/order-number/{orderNumber}`.
'
operationId: getOrder
parameters:
- description: 24-character system-generated order ID returned in the response of Create Order endpoint - `POST /orders`.
example: 5349b4ddd2781d08c09890f4
in: path
name: orderId
required: true
schema:
type: string
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'404':
content:
application/json:
example:
message: Order with orderId is not found
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Get Order by Order ID
tags:
- Orders
/orders/{orderId}/actions/update-attributes:
post:
description: The update attributes endpoint is used to update order attributes using the order ID. Attributes can be updated in the integration layer to modify external system related information.
operationId: updateOrderAttributesByOrderId
parameters:
- description: The merchant-defined order identifier provided during the Create Order - `POST /orders` endpoint.
example: 123k4h123k
in: path
name: orderId
required: true
schema:
type: string
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/orderAttributesUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Update Order Attributes
tags:
- Orders
/orders/{orderId}/ship-info/{shipToId}/pickup:
put:
description: Customers can choose to either have their order delivered to them or opt to pick up from a store or warehouse. In a Buy Online Pickup in Store (BOPIS) scenario, there may be situations when the primary pickup person has changed. This endpoint allows for the updating pickup person details in BOPIS, ensuring that the most up-to-date information is available.
operationId: updatePickInfo
parameters:
- description: 24-character system-generated order ID returned in the response of Create Order - `POST /orders` endpoint.
example: 5349b4ddd2781d08c09890f4
in: path
name: orderId
required: true
schema:
type: string
- description: Unique ID for the given `shipInfo`
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
in: path
name: shipToId
required: true
schema:
type: string
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricChannelId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pickupRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/orderResponse'
description: OK
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'400':
content:
application/json:
example:
errors:
- message: Invalid request
type: CLIENT_ERROR
message: Bad request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Bad request
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'401':
content:
application/json:
example:
message: Unauthorized request
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Unauthorized
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'404':
content:
application/json:
example:
message: Order not found
type: CLIENT_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Not found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
'500':
content:
application/json:
example:
message: Internal server error
type: SERVER_ERROR
schema:
$ref: '#/components/schemas/errorResponse'
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestIdResponseHeader'
summary: Updates Order Pick-up Details
tags:
- Orders
components:
parameters:
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
xFabricRequestId:
description: Unique request ID
example: 263e731c-45c8-11ed-b878-0242ac120002
in: header
name: x-fabric-request-id
required: false
schema:
type: string
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
schemas:
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
quantityInStatus:
description: Item quantity for each status
properties:
cancelled:
description: Cancelled quantity of given item
example: 10
format: int32
type: integer
created:
description: Ordered quantity of given item
example: 10
format: int32
type: integer
delivered:
description: Delivered quantity of given item
example: 10
format: int32
type: integer
hold:
description: Held quantity of given item
example: 10
format: int32
type: integer
pendingShipped:
description: Pending quantity of given item
example: 10
format: int32
type: integer
returned:
description: Returned quantity of given item
example: 10
format: int32
type: integer
shipped:
description: Shipped quantity of given item
example: 10
format: int32
type: integer
type: object
valueSearchFilter:
allOf:
- $ref: '#/components/schemas/orderSearchFilter'
- properties:
value:
description: Search criteria using a single value
example: ORDER_CREATE
oneOf:
- description: Target record's non-numeric identifier
example: ORDER_CREATE
type: string
- description: Target record's numeric identifier
example: 112233
format: int64
type: number
- description: Target record's numeric identifier
example: 1122.33
format: double
type: number
type: object
description: Criteria to find orders by a single value. Condition between `field` and `value` is anything except IN and NIN when `valueSearchFilter` is used.
required:
- condition
- field
type: object
trackingDetailsResource:
type: object
description: Tracking details
properties:
trackingNumber:
type: string
description: Tracking number
example: 1ZH4E331YW37690225
trackingURL:
type: string
description: Tracking URL
example: https://www.ups.com/track?tracknum=1ZH4E331YW37690225
orderDiscount:
description: An object containing all the discount details for an order.
properties:
amount:
description: Discounted amount for the given `quantity` within an order.
example: 2.99
format: double
type: number
amountInCurrencies:
items:
description: Discounted amount for the given `quantity`, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
invoiceQuantity:
description: Total quantity invoiced. If customer placed order for 10 quantity of an item and only 2 got shipped, then 2 is the `invoiceQuantity`.
example: 10
format: int32
type: integer
promotionCode:
description: Promotion code used by shoppers to take advantage of an ongoing promotion.
example: HNY2022
type: string
promotionId:
description: Unique promotion ID either from fabric Offers service or external Offers service. When fabric Offers service is used, this is the 24-character system-generated promotion ID returned in the response of create promotion endpoint.
example: HNY2022
type: string
promotionName:
description: Promotion name
example: New Year
type: string
quantity:
description: Number of discounted items in an order such as buy 2 get 1 free. In this case 1 is the discounted quantity.
example: 1
format: int32
type: integer
unit:
description: Indicates whether the discount is in amount or percentage
example: AMOUNT_OFF
type: string
value:
description: Value corresponding to `unit`
example: 10
format: int32
type: integer
type: object
refundDetailResource:
description: Used for credit rules. This resource captures the split of fees and tax refunds at the item and order level.
properties:
amount:
description: Refund Amount
example: '-10.'
format: double
type: number
amountInCurrencies:
items:
description: The total refund amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
name:
description: The name of the fee or tax.
example: Name
type: string
type:
description: Type of refund
example: ITEM
type: string
type: object
searchResponse:
description: Search response
properties:
data:
items:
$ref: '#/components/schemas/orderResponse'
type: array
pagination:
$ref: '#/components/schemas/pagination'
type: object
orderItemRequest:
description: Order item model
properties:
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:
colorCode: '001'
isDonation: 'false'
style: '570223020'
type: object
currency:
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
discounts:
items:
$ref: '#/components/schemas/orderDiscountRequest'
type: array
employeeId:
description: Employee (ID or name) who initiated the request
example: 62272e917b12209e68751d94
type: string
fees:
items:
$ref: '#/components/schemas/taxDetail'
type: array
fulfillment:
$ref: '#/components/schemas/itemFulfillmentResource'
isBackorder:
description: '**true:** Backordered item. **false:** Ordered item.'
example: true
type: boolean
isDonation:
description: 'true: Item is a donation
false: Item is not a donation'
example: true
type: boolean
isPreorder:
description: '**true:** Preordered item. **false:** Ordered item.'
example: true
type: boolean
itemAdjustmentTotalInCurrencies:
items:
description: The total value of item adjustments, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemDiscountsTotal:
description: Item's total discount = `summationOfAll(discounts[].amount)'. Refer to `amount` in `orderDiscount`.
example: 10
format: double
type: number
itemDiscountsTotalInCurrencies:
items:
description: The total discount applied to items, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemFeeTotal:
description: Recalculated item's fee = `summationOfAll(fees[].amount)`. Refer to `amount` in `itemFeeDetails`.
example: 10
format: double
type: number
itemFeeTotalInCurrencies:
items:
description: The updated fee for an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemId:
description: Unique identifier of item from fabric Products (PIM) service.
example: 1234
format: int32
type: integer
itemName:
description: Item name
example: Item
type: string
itemSubtotal:
description: Recalculated item's subtotal - `Item unit price x (orderedQuantity - cancelledQuantity)`
example: 600
format: double
type: number
itemSubtotalInCurrencies:
items:
description: The updated subtotal for an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemSubtype:
description: Subtype of `type`, for another layer of classification.
example: Borderfree
type: string
itemTaxTotal:
description: Recalculated total tax on item = `summationOfAll(itemTaxTotal)`
example: 10
format: double
type: number
itemTaxTotalInCurrencies:
items:
description: The updated total tax applied to an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemTotal:
description: Recalculated item's total cost = `itemSubTotal - itemDiscountTotal + itemTaxTotal + itemFeeTotal`.
example: 10
format: double
type: number
itemTotalInCurrencies:
items:
description: The updated total cost of an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemUnitPrice:
description: Item's unit price
example: 10
format: double
type: number
itemUnitPriceInCurrencies:
items:
description: The price of a single unit of an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
lineItemId:
description: Merchant-defined unique identifier for each item in an order. When omitted, fabric auto-generates this value during order creation, in UUID format.
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
type: string
lineItemNumber:
description: Merchant-defined line item number to identify each item in an order.
example: 1
format: int32
type: integer
notes:
description: Notes section to be used by customer service representative (CSR) only
items:
$ref: '#/components/schemas/orderNote'
type: array
orderedQuantity:
description: Ordered quantity of given item
example: 60
format: int32
type: integer
segment:
description: Segment
example: P1234
type: string
shipToId:
description: 'System-generated UUID associated with `shipInfo`, generated from CnC service. **Note**: An order can have multiple ship-to (delivery) locations and items going to the same location have one `shipToId`.'
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
type: string
sku:
description: Stock keeping unit (SKU), unique identifier of item.
example: P1234
type: string
taxCode:
description: Applicable tax code, varies from state to state
example: FR01
type: string
taxDetails:
items:
$ref: '#/components/schemas/taxDetail'
type: array
type:
description: Identify order type whether it's a pickup, web ship, or international order.
example: WEB_SHIP
type: string
uom:
description: Unit in which a product is sold or measured. It is important for accurately fulfilling orders and ensuring customers receive the correct quantity of products they have ordered. The possible values are EA (Each) or GAL (Gallon), DZ (Dozen), etc.
example: EA
type: string
vendorId:
description: Vendor ID
example: P1234
type: string
required:
- itemId
- lineItemId
- lineItemNumber
- shipToId
- sku
type: object
orderFeeDetail:
description: An object containing an orders fee details.
properties:
amount:
description: Tax amount
example: 34.56
format: double
type: number
amountInCurrencies:
items:
description: The total tax amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
attributes:
additionalProperties:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
currency:
default: USD
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
invoicedAmount:
description: System-generated amount from Invoice service based on requested `amount`
example: 34.56
format: double
type: number
invoicedAmountInCurrencies:
items:
description: A System-generated amount returned from the Invoice service based on requested `amount` in all currencies used by an order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
name:
description: Applied tax name
example: STATE
type: string
rate:
description: Rate
example: 10
format: double
type: number
rateType:
description: Rate type
example: PERCENTAGE
type: string
taxCode:
description: Tax code applied
example: FR01
type: string
type: object
orderContactName:
description: Contact person's name
properties:
firstName:
description: Contact person's first name
example: Alex
type: string
lastName:
description: Contact person's last name
example: Doe
type: string
middleName:
description: Contact person's middle name or initial
example: E
type: string
type: object
itemFeeDetails:
description: Item fees object containing item fee details.
properties:
amount:
description: Tax amount
example: 34.56
format: double
type: number
amountInCurrencies:
items:
description: The total tax amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
attributes:
additionalProperties:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
currency:
default: USD
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
invoiceQuantity:
description: Total quantity invoiced. If customer placed order for 10 quantity of an item and only 2 got shipped then 2 is the `invoiceQuantity`
example: 10
format: int32
type: integer
name:
description: Applied tax name
example: STATE
type: string
quantity:
description: Total number of items in the order
example: 12
format: int32
type: integer
refundAmount:
description: Total refund amount
example: 21.5
format: double
type: number
refundAmountInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
taxCode:
description: Tax code applied
example: FR01
type: string
type: object
errorResponse:
description: Error response
properties:
errors:
description: Errors
items:
$ref: '#/components/schemas/errorResponse'
type: array
message:
description: Error message
example: Bad request
type: string
type:
description: Error type
example: CLIENT_ERROR
type: string
type: object
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: test@example.com
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
orderShipInfo:
description: An object containing an orders shipment details.
properties:
attributes:
description: User defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
giftMessage: '[]'
type: object
discounts:
items:
$ref: '#/components/schemas/shippingDiscount'
type: array
estimatedDeliveryDate:
description: Estimated delivery time (UTC) provided by carrier
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
estimatedShipDate:
description: Estimated shipping time (UTC) provided by merchant
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
isInvoiced:
default: false
description: '**true:** At least one captured invoice is created by Invoice service. **false:** Captured invoice is not created.'
example: true
type: boolean
locationNumber:
description: Unique value to identify ship-from or Buy Online Pickup from Store location. This must be the locationNumber stored in the fabric Location service.
example: WH334
type: string
pickups:
description: Order pickup details
items:
$ref: '#/components/schemas/orderPickup'
type: array
shipMethod:
description: Shipping method
example: Parcel post delivery
type: string
shipToAddress:
$ref: '#/components/schemas/address'
shipToDiscount:
description: Merchant-defined shipping discount amount
example: 12.6
format: double
type: number
shipToDiscountInCurrencies:
items:
description: The shipping discount applied to an order, itemized by each currency used within that order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
shipToId:
description: 'System-generated UUID associated with `shipInfo`, generated from CnC service. **Note**: An order can have multiple ship-to (delivery) locations and items going to the same location have one `shipToId`.'
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
type: string
shipToPrice:
description: Merchant-defined shipping cost
example: 20
format: double
type: number
shipToPriceInCurrencies:
items:
description: The total shipping cost, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
shipToTaxTotal:
description: Total shipping tax
example: 12.6
format: double
type: number
shipToTaxTotalInCurrencies:
items:
description: The total tax applied to shipping costs, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
shipToType:
description: Type of shipping address. There are no pre-defined values; the possible values are SDD (same day delivery), point-of-sale (POS), etc.
example: SHIP_TO_ADDRESS
type: string
shipToUnitPrice:
description: A number indicating the ship to unit price.
example: 20
format: double
type: number
shipToUnitPriceInCurrencies:
items:
description: The unit price for shipping, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
shipmentInstructions:
description: Shipment instructions
example: Handle with care
type: string
taxCode:
description: Applicable tax code, varies from state to state
example: FR01
type: string
taxDetails:
items:
$ref: '#/components/schemas/taxDetail'
type: array
required:
- shipToId
type: object
orderAppeasementPaymentInfo:
description: Order appeasement payment info
properties:
paymentCounter:
description: Payment counter to identify which payment to refund.
example: 1
format: int32
type: integer
refundAmount:
description: Refund amount for appeasements.
example: 34.56
format: double
type: number
refundAmountInCurrencies:
items:
description: The refund amount specifically for appeasements, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
type: object
returnFeeDetail:
description: An object containing return fee details.
properties:
amount:
description: Merchant-defined return amount
example: 34.56
format: double
type: number
amountInCurrencies:
items:
$ref: '#/components/schemas/amountInCurrency'
type: array
name:
description: Fee name
example: RETURN_FEE
type: string
reason:
description: Merchant-defined return reason
example: Return fee
type: string
type:
description: Return fee type
enum:
- TAX
- DISCOUNT
- FEE
- ITEM
- ADJUSTMENT
example: FEE
type: string
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
orderReturns:
description: An object containing the order return details.
properties:
attributes:
additionalProperties:
description: Attributes
example:
transactionId: 0R12TQ46
type: object
description: Attributes
example:
transactionId: 0R12TQ46
type: object
exchangeLineItemId:
description: Exchange line item ID
example: 62f3dfc438bcab1951be0a19
type: string
fees:
items:
$ref: '#/components/schemas/returnFeeDetail'
type: array
invoicedAmount:
description: System-generated amount from Invoice service based on requested `amount`
example: 11.29
format: double
type: number
isExchangeItemReturned:
default: false
description: '**true:** Item received for exchange is returned. **false:** Item received for exchange is not returned.'
example: true
type: boolean
reasonCode:
description: Merchant-defined reason code for return
example: Incorrect item
type: string
refundAmount:
description: Refund amount
example: 11.29
format: double
type: number
refunds:
items:
$ref: '#/components/schemas/returnFeeDetail'
type: array
returnRequestCounter:
description: Unique, sequential, or incremental counter for return request
example: 1
format: int32
type: integer
returnsReceivedAt:
description: System-generated time of returned item that has come back to the facility (UTC)
example: '2022-09-14T14:07:36.861Z'
format: date-time
type: string
shipmentId:
description: 24-character system-generated shipment ID
example: 62b37697c67b204dd18a7465
type: string
shipmentInvoice:
$ref: '#/components/schemas/shipmentInvoiceResource'
shipmentLineItemId:
description: Unique identifier for each item in the shipment
example: '234'
type: string
shipmentQuantity:
default: 0
description: Shipped quantity of given item
example: 1
format: int32
type: integer
source:
description: An optional field used to determine the source that initiated the API request.
example: CSR
type: string
type: object
updateOrderFeesAndTaxesRequestUpdateItemFeesAndTaxesResource:
type: object
properties:
lineItemId:
type: string
itemTaxTotal:
type: number
itemTaxTotalInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
taxes:
type: array
items:
$ref: '#/components/schemas/taxDetail'
itemFeeTotal:
type: number
itemFeeTotalInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
fees:
type: array
items:
$ref: '#/components/schemas/itemFeeDetails'
customerResponse:
description: Response for customer update request
properties:
failedCount:
description: Failed count
example: 2
format: int32
type: integer
failedOrderIds:
description: OrderIds of orders for which update failed
example:
- 123k4h123k
- 123k4h124k
items:
description: OrderIds of orders for which update failed
example: '["123k4h123k","123k4h124k"]'
type: string
type: array
successCount:
description: Success count
example: 18
format: int32
type: integer
totalRecordCount:
description: Total record count
example: 10
format: int32
type: integer
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
shipmentInvoiceResource:
description: Shipment Invoice resource
properties:
invoiceId:
description: Unique Id of the invoice
example: 62ff5c0bec0aed3c86202c32
type: string
invoiceNumber:
description: Unique number of the invoice
example: '23940791'
type: string
invoicedAt:
description: Date when order invoiced
example: '2022-08-01T20:03:28.483971941Z'
format: date-time
type: string
required:
- invoiceId
type: object
orderAttributesUpdateRequest:
description: An object containing order attributes update request details.
properties:
attributes:
additionalProperties:
description: An object containing your custom attributes.
example:
fraudCheckStatus: UPDATED
loyaltyStatus: N
type: object
description: An object containing your custom attributes.
example:
fraudCheckStatus: UPDATED
loyaltyStatus: N
type: object
keysToRemove:
description: A list of keys to be removed.
items:
type: string
type: array
required:
- attributes
type: object
updateShipToAddressRequest:
type: object
description: Request to update ship-to address for a specific shipToId
properties:
name:
$ref: '#/components/schemas/orderContactName'
email:
type: string
description: Contact person's email
example: test@example.com
phone:
$ref: '#/components/schemas/orderContactPhone'
type:
type: string
description: Address type
example: Home
addressLine1:
type: string
description: Address line 1
example: 123
addressLine2:
type: string
description: Address line 2
example: Suite 100
addressLine3:
type: string
description: Address line 3
example: Seventh floor
addressLine4:
type: string
description: Address line 4
example: 'Attention: Pat E. Kake'
city:
type: string
description: City name
example: Seattle
region:
type: string
description: Region or state
example: WA
countryCode:
type: string
description: ISO 3166-1 alpha-2 based country code
example: US
postalCode:
type: string
description: Postal or ZIP code
example: 98121
latitude:
type: number
format: double
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
longitude:
type: number
format: double
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
attributes:
type: object
description: 'User defined custom attributes. This is a placeholder for additional info (in key: value pairs).'
example:
giftMessage: '[]'
required:
- addressLine1
- city
- countryCode
- latitude
- longitude
- postalCode
- region
- type
orderAuditLogUpdatedField:
description: Audit log for change history
properties:
fieldName:
description: Field or property name that was updated
example: UOM
type: string
fieldOriginalValue:
description: Original value of `fieldName` before it was updated
example: PK
type: string
type: object
orderReturnsInfo:
description: Order returns info
properties:
attributes:
additionalProperties:
description: Attributes
example:
transactionId: 0R12TQ46
type: object
description: Attributes
example:
transactionId: 0R12TQ46
type: object
fees:
items:
$ref: '#/components/schemas/returnFeeDetail'
type: array
invoicedAmount:
description: System-generated invoiced amount for the return request
example: 11.29
format: double
type: number
invoicedAmountInCurrencies:
items:
description: The invoiced amount is 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
paymentCounterRefundDetails:
items:
$ref: '#/components/schemas/paymentCounterRefundInfo'
type: array
refunds:
items:
$ref: '#/components/schemas/returnFeeDetail'
type: array
returnCounter:
description: Unique, sequential or incremental counter for return request
example: 1
format: int32
type: integer
totalRefundAmount:
description: Merchant-defined total refund amount for the return request
example: 11.29
format: double
type: number
totalRefundAmountInCurrencies:
items:
description: The total amount refunded, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
type: object
paymentDetails:
description: An object containing payment details.
properties:
body:
$ref: '#/components/schemas/paymentDetailsResponseBody'
paymentStatusCode:
description: Status code for payment. There are no pre-defined values; possible values are 200, 400, 402, etc.
example: '200'
type: string
type: object
currencyGroup:
description: CurrencyGroup object details.
properties:
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
fxId: ID123
type: object
conversionRate:
description: conversion rate
example: 1
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
orderSearchFilter:
description: Search filter
discriminator:
mapping:
EQ: '#/components/schemas/valueSearchFilter'
GT: '#/components/schemas/valueSearchFilter'
GTE: '#/components/schemas/valueSearchFilter'
IN: '#/components/schemas/valuesSearchFilter'
LT: '#/components/schemas/valueSearchFilter'
LTE: '#/components/schemas/valueSearchFilter'
NEQ: '#/components/schemas/valueSearchFilter'
NIN: '#/components/schemas/valuesSearchFilter'
propertyName: condition
properties:
condition:
default: EQ
description: SearchCondition to apply filter
enum:
- EQ
- NEQ
- IN
- NIN
- LT
- GT
- LTE
- GTE
example: EQ
type: string
field:
description: Field name
example: order.orderId
pattern: ^order\.[a-zA-Z.\-_]*
type: string
group:
default: Default
description: The group name.
example: GroupA
type: string
required:
- condition
- field
type: object
shippingDiscount:
description: An object containing shipping discount details.
properties:
amount:
description: Discounted amount for the given `quantity`
example: 2.99
format: double
type: number
amountInCurrencies:
items:
description: The discounted amount for the specified quantity, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
promotionCode:
description: Promotion code used by shoppers to take advantage of an ongoing promotion.
example: SHIPFREE
type: string
promotionId:
description: Unique promotion ID either from fabric Offers service or an external Offers service. When fabric Offers service is used, this is the 24-character system-generated promotion ID returned in the response of the create promotion endpoint.
example: SHIPFREE
type: string
promotionName:
description: Promotion name
example: Free Shipping
type: string
quantity:
description: Number of discounted items in an order such as `buy 2 get 1 free`. In this case `1` is the discounted quantity.
example: 1
format: int32
type: integer
unit:
description: Indicates whether the discount is in amount or percentage
example: AMOUNT_OFF
type: string
value:
description: Value corresponding to `unit`
example: 10
format: int32
type: integer
type: object
erroredField:
description: An object containing information on error fields, error messages, and the amended status.
properties:
amended:
description: A boolean that signifies if the error has been amended.
example: false
type: boolean
errorMessage:
description: The reason the error occurred.
example: Invalid email address
type: string
fieldName:
description: The name of the field where the error occurred.
example: shipInfo.shipToAddress.email
type: string
required:
- amended
- errorMessage
- fieldName
type: object
requestReferenceContextResource:
type: object
description: Request reference context information
properties:
id:
type: string
description: System-generated unique identifier (UUID format)
example: a05b72dc-78d8-4ea4-90fc-2fe6a1fe1111
type:
type: string
requestId:
type: string
description: request id
readOnly: true
requestTime:
type: string
format: date-time
description: System-generated order creation time
example: '2022-04-12T09:30:31.198Z'
attributes:
type: object
description: 'Merchant-defined custom attributes. This is a placeholder for additional info (in key: value pairs).'
example:
attribute: N
someFlag: true
orderPaymentToken:
description: An object containing the order payment token details.
properties:
paymentType:
description: Payment type, for example, credit card payment providers can be Visa, Mastercard, American express, etc.
example: VISA
type: string
token:
description: Payment token provided by payment provider
example: pi_34tr6787rt
type: string
type: object
orderAppeasementDetail:
description: The order appeasement details object containing appeasement details.
properties:
amount:
description: Merchant-defined appeasement amount, which should not exceed (`charged amount` - `already refunded amount`).
example: 34.56
format: double
type: number
amountInCurrencies:
items:
description: The appeasement amount specified by the merchant, which must not be greater than the difference between the charged amount and any amounts already refunded, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
appeasementCounter:
description: Sequential or incremental counter for appeasement. Used for keeping track of duplicates in the request. If omitted in the request, it is automatically generated and will not be used to check duplicates. Multiple appeasement calls for the same order can cause repetition of appeasement counter and may cause the request to be rejected completely.
example: 1
format: int32
type: integer
attributes:
description: 'Merchant-defined custom attributes. This is a placeholder for additional info in key: value pairs'
example:
number: XlQZTmFDFtPFGMxJP6oiAqN3vo+qKZ
type: object
invoicedAmount:
description: System-generated amount from Invoice service based on requested `amount`
example: 34.56
format: double
type: number
invoicedAmountInCurrencies:
items:
description: System-generated amount from Invoice service based on requested `amount` in all currencies used by an order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
payments:
items:
$ref: '#/components/schemas/orderAppeasementPaymentInfo'
type: array
reasonCode:
description: Merchant-defined appeasement reason code; varies from merchant to merchant.
example: Incorrect Item
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
subReasonCode:
description: Subreason code for appeasement, for another layer of classification
example: Late shipping
type: string
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
updateCustomerRequest:
description: Update customer info request
properties:
accountId:
description: Customer's loyalty account ID or external identifier that is used to track their loyalty program activity and rewards earned.
example: 62272e917b12209e68751d94
type: string
company:
description: Shopper's company name. This may be used for company discounts.
example: Demo Inc
type: string
email:
description: Contact person's email
example: test@example.com
type: string
employeeId:
description: Employee (ID or name) who initiated an update request
example: 62272e917b12209e68751d94
type: string
name:
$ref: '#/components/schemas/orderContactName'
phone:
$ref: '#/components/schemas/orderContactPhone'
userId:
description: Identifier of the logged in user who initiated the request. This could be from either fabric Identity service or an external Identity service.
example: 62272e917b12209e68751d94
type: string
type: object
orderDiscountRequest:
description: Order discount
properties:
amount:
description: The discount amount applied to a specific quantity of items.
example: 2.4
format: double
type: number
amountInCurrencies:
items:
description: The discount amount applied to a specific quantity of items, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
promotionCode:
description: Promotion code used by shoppers to take advantage of an ongoing promotion.
example: HNY2022
type: string
promotionId:
description: Unique promotion ID either from fabric Offers service or external Offers service. When fabric Offers service is used, this is the 24-character system-generated promotion ID returned in the response of Create promotion endpoint.
example: HNY2022
type: string
promotionName:
description: Promotion name
example: New Year
type: string
quantity:
description: Discounted quantity of given item
example: 2
format: int32
type: integer
type:
description: Promotion type. There are no pre-defined values.
example: promotion
type: string
unit:
description: Discount offer - dollar value or percentage
example: AMOUNT_OFF
type: string
value:
description: Discount value in amount or percentage
example: 2
format: int32
type: integer
type: object
pagination:
description: Pagination response
properties:
count:
description: Total number of search results
example: 1000
format: int32
type: integer
limit:
default: 10
description: Maximum number of records per page
example: 10
format: int32
maximum: 100
minimum: 1
type: integer
offset:
default: 0
description: Number of records to skip before returning all records. For example, `offset=20, limit=10` returns records 21-30.
example: 1
format: int32
minimum: 0
type: integer
type: object
orderResponse:
description: An object containing order details.
properties:
adjustmentTotal:
description: The total amount of price adjustments for all items of the order.
example: 123.45
format: double
type: number
adjustmentTotalInCurrencies:
items:
description: The total price adjustments applied to all items within an order, itemized by each currency used in that order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
adjustments:
description: Price adjustments refer to changes or modifications made to the listed price of a product. A Customer Sales Representative (CSR) makes the price adjustments to provide discounts, promotional offers, or coupons that the shopper used.
items:
$ref: '#/components/schemas/adjustmentDetail'
type: array
allocatedAt:
description: System-generated order allocation time (UTC) once the order is allocated using Allocation service
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
appeasementTotal:
description: Final appeasement amount
example: 12.34
format: double
type: number
appeasementTotalInCurrencies:
items:
description: The final appeasement amount, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
appeasements:
items:
$ref: '#/components/schemas/orderAppeasementDetail'
type: array
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
fraudCheckStatus: UPDATED
loyaltyStatus: N
type: object
auditLogs:
items:
$ref: '#/components/schemas/auditLog'
type: array
cancelTotal:
description: Amount to be returned after order cancellation, calculated as `cancelledQuantity / orderedQuantity * itemTotal`
example: 12.34
format: double
type: number
cancelTotalInCurrencies:
items:
description: The total amount to be returned to the customer following an order cancellation, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
cancellations:
items:
$ref: '#/components/schemas/cancellationResource'
type: array
cancelledAt:
description: System-generated order cancellation time in UTC. This is returned in the response of Cancel order by ID - `POST /orders/{orderId}/actions/cancel` or Cancel order by order number - `POST /orders/order-number/{orderNumber}/actions/cancel` once the order is successfully cancelled.
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
cartId:
description: Unique cart identifier, either from fabric Cart service 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
channelId:
description: Sales channel ID
example: '12'
type: string
createdAt:
description: Order creation time (UTC)
example: '2022-05-12T09:30:31.198Z'
format: date-time
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:
items:
$ref: '#/components/schemas/orderDiscount'
type: array
employeeId:
description: Employee (ID or name) who initiated the request
example: '43278'
type: string
erroredFields:
items:
$ref: '#/components/schemas/erroredField'
type: array
feeTotal:
description: Recalculated total fee, calculated as `orderedQuantity* itemFeeTotal`
example: 12.34
format: double
type: number
feeTotalInCurrencies:
items:
description: The updated total fee amount for an order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
fees:
items:
$ref: '#/components/schemas/orderFeeDetail'
type: array
invoiceTotal:
description: Total payment captured by fabric Invoice service. If merchant is using third-party service, then this amount will be null. For partial payment scenarios, this value will be different from `orderTotal`.
example: 12.34
format: double
type: number
invoiceTotalInCurrencies:
items:
description: The total payment captured by fabric's Invoice service, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
items:
description: Item details
items:
$ref: '#/components/schemas/orderItem'
maxItems: 2147483647
minItems: 1
type: array
notes:
items:
$ref: '#/components/schemas/orderNote'
type: array
orderDiscount:
description: Recalculated order discount
example: 1.23
format: double
type: number
orderDiscountInCurrencies:
items:
description: The updated total discount applied to the order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
orderId:
description: 24-character system-generated order ID
example: 5349b4ddd2781d08c09890f4
type: string
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. \nThis field is optional and can be used to reference the order in external \nsystems such as an ERP, OMS, or CRM.\n"
example: 191763090_O1231
orderReleasedAt:
description: Order released time (UTC). When an order is placed, its status is On Hold by default and the duration of hold may vary from merchant to merchant (~1 min). After the hold period, the order is released from hold.
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
orderSubtotal:
description: Recalculated `orderSubtotal` - `summationOfAll(itemSubTotal)`
example: 123.45
format: double
type: number
orderSubtotalInCurrencies:
items:
description: The updated subtotal for the entire order, 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 the order, 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
originalAdjustmentTotal:
description: Original adjustment total
example: 123.45
format: double
type: number
originalAdjustmentTotalInCurrencies:
items:
description: The initial total value of adjustments made to an order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalDiscount:
description: System-generated total discount, auto-filled by Orders service when the order is placed. This is saved for reference in case the value changes later.
example: 1.45
format: double
type: number
originalDiscountInCurrencies:
items:
description: The initial discount applied to an order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalFeeTotal:
description: System-generated total fees, auto-filled by Orders service when the order is placed.
example: 12.34
format: double
type: number
originalFeeTotalInCurrencies:
items:
description: The initial total fee amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalOrderTotal:
description: System-generated order total, auto-filled by Orders service when the order is placed. This is saved for reference in case the `orderTotal` changes later.
example: 146.9
format: double
type: number
originalOrderTotalInCurrencies:
items:
description: The initial total cost of the entire order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalSubtotal:
description: System-generated order subtotal, auto-filled by Orders service when the order is placed. This is saved for reference in case the value changes later.
example: 113.45
format: double
type: number
originalSubtotalInCurrencies:
items:
description: The initial subtotal of the entire order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalTaxTotal:
description: System-generated total tax, auto-filled by Orders service when the order is placed.
example: 12.34
format: double
type: number
originalTaxTotalInCurrencies:
items:
description: The initial total tax amount for an order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
payments:
items:
$ref: '#/components/schemas/orderPayment'
type: array
retail:
$ref: '#/components/schemas/orderRetail'
returnTotal:
description: Return total of order, for return scenarios, calculated as `summationOfAll(itemReturnTotal)`
example: 12.34
format: double
type: number
returnTotalInCurrencies:
items:
description: The total amount returned for an order, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
returns:
items:
$ref: '#/components/schemas/orderReturnsInfo'
type: array
shipInfo:
items:
$ref: '#/components/schemas/orderShipInfo'
maxItems: 2147483647
minItems: 1
type: array
statusCode:
description: Status code. There are no pre-defined values; possible values are - ORDER_ALLOCATED ("Order Allocated"), ORDER_SHIPPED ("Order Shipped"), ORDER_PARTIALLY_SHIPPED ("Order Partially Shipped"), ORDER_PICKED_UP ("Order Picked Up"), ORDER_PARTIALLY_PICKED_UP ("Order Partially Picked Up"), ORDER_DELIVERED ("Order Delivered"), ORDER_PARTIALLY_DELIVERED ("Order Partially Delivered"), ORDER_RETURNED ("Order Returned"), ORDER_HOLD_EXTERNAL ("Order on Hold") etc.
example: ORDER_CREATED
type: string
statusDescription:
description: Human-readable brief description based on `statusCode`
example: Order Created
type: string
subtype:
description: Order subtype, for further classification
enum:
- IOS
- ANDROID
- INTERNATIONAL
example: INTERNATIONAL
type: string
taxTotal:
description: Recalculated total tax on order `summationOfAll(itemTaxTotal)+summationOf(tax[].value)`
example: 12.34
format: double
type: number
taxTotalInCurrencies:
items:
description: The updated total tax amount, itemized by each currency used within that order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
type:
description: Order type is critical for the order life cycle as it indicates the workflow. For example, storefront orders have a different workflow 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
transactionLogs:
type: array
items:
$ref: '#/components/schemas/requestReferenceContextResource'
updatedAt:
description: Time of last update to order (UTC)
example: '2022-05-12T09:30:31.198Z'
format: date-time
type: string
version:
description: Current version of order document. Indicates the number of times the order is updated by any operation.
example: 2
format: int64
type: integer
required:
- channelId
- items
- orderNumber
- shipInfo
- statusCode
- version
type: object
paymentCounterRefundInfo:
description: An object containing payment counter refund details.
properties:
amount:
description: Final refunded amount
example: 34.56
format: double
type: number
amountInCurrencies:
items:
description: the payment counter refund amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
paymentCounter:
description: Unique incremented number for this payment object.
example: 1
format: int32
type: integer
type: object
orderItem:
description: An object containing an orders item details.
properties:
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
appeasementTotal:
description: Appeasement total = `summationOfAll(appeasements[].amount and items[].appeasements[].amount)`
example: 5.5
format: double
type: number
appeasementTotalInCurrencies:
items:
description: The total appeasement amount, calculated as the sum of all `appeasements[].amount` and `items[].appeasements[].amount` values, expressed in all currencies used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
appeasements:
description: Appeasement info
items:
$ref: '#/components/schemas/orderAppeasementDetail'
type: array
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
colorCode: '001'
isDonation: 'false'
style: '570223020'
type: object
backOrderedQuantity:
description: Backordered quantity of given item
example: 10
format: int32
type: integer
cancellations:
items:
$ref: '#/components/schemas/cancellationItemResource'
type: array
cancelledAmount:
description: Cancelled amount is either voided (payment is only authorized but not captured at checkout) or refunded (amount is authorized and captured at checkout).
example: 12.4
format: double
type: number
cancelledAmountInCurrencies:
items:
description: The total amount cancelled, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
cancelledQuantity:
description: Cancelled quantity of an item
example: 10
format: int32
type: integer
channelId:
description: Sales channel ID
example: WHBM
type: string
currency:
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
deliveredQuantity:
description: Delivered quantity of an item
example: 10
format: int32
type: integer
discounts:
description: Discount details
items:
$ref: '#/components/schemas/orderDiscount'
type: array
employeeId:
description: Employee (ID or name) who initiated the request
example: 5345HJH
type: string
exchangeQuantity:
description: System-generated item quantity that are exchanged
example: 13
format: int32
type: integer
fees:
description: Fee details
items:
$ref: '#/components/schemas/itemFeeDetails'
type: array
fulfillment:
$ref: '#/components/schemas/itemFulfillmentResource'
hasInfiniteConsent:
description: Applicable for backorder and preorder scenarios where customer consents for further delay in delivery of preordered and backordered items than the initial estimate. **true:** Customer consents for delayed delivery. **false:** Customer does not consent for delayed delivery.
example: true
type: boolean
invoiceTotal:
description: Invoice total is updated once invoice created
example: 800
format: double
type: number
invoiceTotalInCurrencies:
items:
description: The total amount to be charged for the invoice, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
invoicedQuantity:
description: Invoiced quantity of an item
example: 10
format: int32
type: integer
isBackorder:
description: Merchant-defined value. **true:** Backordered item. **false:** Ordered item.
example: true
type: boolean
isDonation:
description: '**true:** Item is a donation. **false:** Item is not a donation.'
example: true
type: boolean
isExchangeItem:
description: Merchant-defined value for exchange scenarios. **true:** Item is an exchange. **false:** Item is not an exchange.
example: true
type: boolean
isGifting:
description: '**true:** Item is a gift. **false:** Item is not a gift.'
example: true
type: boolean
isPreorder:
description: Merchant-defined value. **true:** Pre-ordered item. **false:** Ordered item.
example: true
type: boolean
isFulfillable:
type: boolean
description: "Determines whether an **Allocation** document must be created before fulfillment. \n- If `false`, the allocation step is skipped and the process continues directly to **Invoice & Payment Capture**. \n- If omitted, the system defaults to `true`.\n"
example: true
default: true
isInventoryManaged:
type: boolean
description: "Indicates whether the **On-Hand / Available to Purchase** quantity is managed in fabric OMS. \n- If `false`, inventory management is bypassed and no inventory document is created in OMS. \n- If omitted, the system defaults to `true`.\n"
example: true
default: true
itemAdjustmentTotal:
description: Total price adjustment made to the item.
example: 123.45
format: double
type: number
itemAdjustmentTotalInCurrencies:
items:
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemDiscountsTotal:
description: Item's total discount = `summationOfAll(discounts[].amount)'. Refer to `amount` in `orderDiscount`.
example: 80
format: double
type: number
itemDiscountsTotalInCurrencies:
items:
description: The total discount applied to an item, calculated as the sum of all `discounts[].amount` values, expressed in all currencies used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemFeeTotal:
description: Recalculated item's fee = `summationOfAll(itemFeeTotal)`. Refer to `amount` in `itemFeeDetails`
example: 200
format: double
type: number
itemFeeTotalInCurrencies:
items:
description: The updated fee for an item, calculated as the sum of all `itemFeeTotal` values, expressed in all currencies used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemId:
description: System-generated unique identifier of item from fabric Products (PIM) service
example: 1234
format: int32
type: integer
itemName:
description: Item name
example: Item
type: string
itemShippingTotal:
description: Merchant-defined item's shipping total
example: 10
format: double
type: number
itemShippingTotalInCurrencies:
items:
description: The updated total shipping cost for an item, expressed in all currencies used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemSubtotal:
description: Recalculated item's subtotal = `itemUnitPrice x (orderedQuantity - cancelledQuantity)`
example: 600
format: double
type: number
itemSubtotalInCurrencies:
items:
description: The updated subtotal for an item, calculated as `itemUnitPrice x (orderedQuantity - cancelledQuantity)`, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemSubtype:
description: Subtype of `type`, for another layer of classification.
example: Borderfree
type: string
itemTaxTotal:
description: Recalculated total tax on item = `summationOfAll(itemTaxTotal)`
example: 80
format: double
type: number
itemTaxTotalInCurrencies:
items:
description: The updated total tax on an item, calculated as the sum of all `itemTaxTotal` values, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemTotal:
description: Recalculated item's total cost = `itemSubTotal - itemDiscountTotal + itemTaxTotal + itemFeeTotal`.
example: 800
format: double
type: number
itemTotalInCurrencies:
items:
description: The updated total cost of an item, calculated as `itemSubTotal - itemDiscountTotal + itemTaxTotal + itemFeeTotal`, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
itemUnitPrice:
description: Item's unit price
example: 10
format: double
type: number
itemUnitPriceInCurrencies:
items:
description: The price of a single unit of an item, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
lineItemId:
description: Merchant-defined unique identifier for each item in an order. When omitted, fabric will generate it (in UUID format) during order creation.
example: d538b1f1-0e45-43c6-bfc6-9666fc1188ca
type: string
lineItemNumber:
description: Merchant-defined line item number to identify each item in an order
example: 1
format: int32
type: integer
lineOrderStatus:
description: System-generated status for each item in the orders - SHIPPED, RETURNED, CANCELLED, EXCHANGED, VALID, and the like
example: VALID
type: string
notes:
description: For additional information, to be used by Customer Service Representative (CSR) only
items:
$ref: '#/components/schemas/orderNote'
type: array
orderedQuantity:
description: Ordered quantity of given item
example: 60
format: int32
type: integer
orderedQuantityToShip:
description: Quantity of given item that is yet to ship, out of the initially allocated quantity. For example, if a customer orders four units of an item, inventory will reserve four units of the item. If only two units are currently available and are shipped, the remaining two units will be considered as the `pendingShippedQuantity`.
example: 10
format: int32
type: integer
originalDiscounts:
description: System-generated total discount, auto-filled by Orders service when the order is placed.
example: 50
format: double
type: number
originalDiscountsInCurrencies:
items:
description: The initial discounts applied, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalFeeTotal:
description: System-generated fee total, auto-filled by fabric Orders when the order is placed. This is saved for reference in case the value changes later.
example: 300
format: double
type: number
originalFeeTotalInCurrencies:
items:
description: The initial total fee amount, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalItemAdjustmentTotalInCurrencies:
items:
description: The initial total value of item adjustments, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalItemSubtotal:
description: System-generated total discount, auto-filled by Orders service when the order is placed.
example: 800
format: double
type: number
originalItemSubtotalInCurrencies:
items:
description: The initial subtotal for an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalItemTotal:
description: System-generated item total cost, auto-filled by Orders service when the order is placed
example: 500
format: double
type: number
originalItemTotalInCurrencies:
items:
description: The initial total cost of an item, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalOutstandingItemTotalInCurrencies:
items:
description: The initial outstanding total cost of items that had not yet been paid for, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalShippingTotal:
description: System-generated total shipping cost, auto-filled by Orders service when the order is placed.
example: 80
format: double
type: number
originalShippingTotalInCurrencies:
items:
description: The initial total shipping cost, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
originalTaxTotal:
description: System-generated total tax, auto-filled by Orders service when the order is placed.
example: 90
format: double
type: number
originalTaxTotalInCurrencies:
items:
description: The initial total tax amount, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
outstandingItemTotalInCurrencies:
items:
description: The remaining total cost of items that have not yet been paid for, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
parentLineItemNumber:
description: Applicable in exchange scenarios. Item being returned is the `parentLineItemNumber`.
example: 12
format: int32
type: integer
pendingExchangeQuantity:
description: System-generated item quantity pending for exchange
example: 12
format: int32
type: integer
pendingReturnQuantity:
description: Quantity of an item awaiting approval for return. For example, when customer initiates return request for 2 units of an item, the request will be initially in a pending status because they are awaiting approval from merchant. They are referred to as `pendingReturnQuantity`.
example: 10
format: int32
type: integer
pendingShippedBackOrderQuantity:
description: Backordered quantity that is yet to be shipped. For example, If a customer places a backorder for four units of an item, inventory will reserve four units of the item to ship when they become available. If only two units are available and are shipped, the remaining two backordered units will be considered as the `pendingShippedBackOrderQuantity`.
example: 10
format: int32
type: integer
processingReturnQuantity:
description: Quantity of an item currently being processed for return. For example, when merchant approves return of 1 out of 2 units of an item, then 1 is the `processingReturnQuantity`
example: 10
format: int32
type: integer
quantityInStatus:
$ref: '#/components/schemas/quantityInStatus'
refundAmount:
description: Merchant-defined total refund amount
example: 21.5
format: double
type: number
refundAmountInCurrencies:
items:
description: The total refund amount, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
rejectedReturnQuantity:
description: Quantity of an item rejected in return request. For example, For example, when merchant rejects return of 1 out of 2 units of an item, then 1 is the `rejectedReturnQuantity`.
example: 10
format: int32
type: integer
reshippedQuantity:
description: Reshipped quantity of given item (in case of lost shipment)
example: 10
format: int32
type: integer
returnedQuantity:
description: Returned quantity of given item
example: 10
format: int32
type: integer
returns:
description: Order return details
items:
$ref: '#/components/schemas/orderReturns'
type: array
shipToId:
description: 'System-generated ship-to ID (UUID) associated with `shipInfo`, generated from CnC service. **Note**: An order can have multiple ship-to (delivery) locations and items going to the one location will have the same `shipToId`.'
example: b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569
type: string
shippedQuantity:
description: Shipped quantity of an item
example: 10
format: int32
type: integer
sku:
description: Stock keeping unit (SKU), unique identifier of item
example: P1234
type: string
taxCode:
description: Applicable tax code, varies from state to state
example: FR01
type: string
taxDetails:
description: Tax details
items:
$ref: '#/components/schemas/taxDetail'
type: array
type:
description: Order type. Critical in order life cycle as it indicates the workflow that varies with the type. For example, Storefront orders have a different workflow than Call Center orders. fabric Orders service offers default configurations for Storefront, Call Center, Point of Sale, iOS, Android, and International.
example: WEB_SHIP
type: string
uom:
description: Unit in which a product is sold or measured. It is important to accurately fulfill orders and ensure customers receive the correct quantity of products they have ordered. The possible values are EA (Each) or GAL (Gallon), DZ (Dozen), etc.
example: EA
type: string
vendorId:
description: Vendor ID. Applicable in drop shipping to indicate vendor responsible for given item.
example: P1234
type: string
required:
- itemId
- lineItemId
- lineItemNumber
- shipToId
- sku
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
orderSearchRequest:
description: Filter conditions with sort option
example:
filters:
- field: order.type
value: WEB
- condition: IN
field: order.items.type
values:
- WEB_SHIP
- WEB_PICKUP
- WEB_SDD
sort: -order.createdAt
properties:
filters:
items:
oneOf:
- $ref: '#/components/schemas/valueSearchFilter'
- $ref: '#/components/schemas/valuesSearchFilter'
maxItems: 50
minItems: 0
type: array
sort:
default: -order.createdAt
description: Field or property name to sort the results. + represents ascending and - represents descending order of sorting.
example: +order.createdAt
pattern: (^[+-]order\.[a-zA-Z.\-_]*)(,([+-]order\.[a-zA-Z.\-_]*)){0,}
type: string
required:
- filters
type: object
updatePaymentBillToAddressRequest:
type: object
description: Request to update bill-to address for a specific payment in an order.
properties:
name:
$ref: '#/components/schemas/orderContactName'
email:
type: string
description: Contact person's email
example: test@example.com
phone:
$ref: '#/components/schemas/orderContactPhone'
type:
type: string
description: Address type
example: Home
addressLine1:
type: string
description: Address line 1
example: 123
addressLine2:
type: string
description: Address line 2
example: Suite 100
addressLine3:
type: string
description: Address line 3
example: Seventh floor
addressLine4:
type: string
description: Address line 4
example: 'Attention: Pat E. Kake'
city:
type: string
description: City name
example: Seattle
region:
type: string
description: Region or state
example: WA
countryCode:
type: string
description: ISO 3166-1 alpha-2 based country code
example: US
postalCode:
type: string
description: Postal or ZIP code
example: 98121
latitude:
type: number
format: double
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
longitude:
type: number
format: double
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
attributes:
type: object
description: 'User defined custom attributes. This is a placeholder for additional info (in key: value pairs).'
example:
giftMessage: '[]'
required:
- addressLine1
- city
- countryCode
- latitude
- longitude
- postalCode
- region
- type
updateOrderFeesAndTaxesRequest:
type: object
properties:
feeTotal:
type: number
feeTotalInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
fees:
type: array
items:
$ref: '#/components/schemas/orderFeeDetail'
taxTotal:
type: number
taxTotalInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
items:
type: array
items:
$ref: '#/components/schemas/updateOrderFeesAndTaxesRequestUpdateItemFeesAndTaxesResource'
shipInfo:
type: array
items:
$ref: '#/components/schemas/updateOrderFeesAndTaxesRequestUpdateShipInfoFeesAndTaxesResource'
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
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. \nThis field is optional and can be used to reference the order in external \nsystems such as an ERP, OMS, or CRM.\n"
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
orderPaymentRequest:
description: An object containing the payment details for an order.
properties:
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
captureCurrencyCode: USD
payerId: M7AWTK3YK3B46
referenceId: 4DY41894J2904533S
type: object
authorizationExpirationDate:
description: Expiration time for authorization
example: '2022-01-27T16:15:58-05:00'
format: date-time
type: string
authorizedAmount:
description: Amount authorized to be debited from the given `paymentMethod`
example: 123.2
format: double
type: number
authorizedAmountInCurrencies:
items:
description: The authorized debit amount from the specified payment method, broken down by each currency used in the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
billToAddress:
$ref: '#/components/schemas/address'
chargedAmount:
description: Charged amount
example: 60
format: double
type: number
chargedAmountInCurrencies:
items:
description: The total amount charged, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
currency:
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
paidAt:
description: System-generated time of payment capture at shipment. When payment is captured at checkout, this is a merchant-defined value during order creation.
example: '2022-01-27T16:15:58-05:00'
format: date-time
type: string
paymentCounter:
description: A sequential or incremental counter associated with a payment for an order. Applicable in refund scenarios to identify the specific payment for refund.
example: 1
format: int32
type: integer
paymentIdentifier:
$ref: '#/components/schemas/orderPaymentIdentifier'
paymentMethod:
description: Payment method
example: CREDIT_CARD
type: string
paymentProvider:
description: Payment provider
example: stripe
type: string
paymentStatus:
description: Payment status. There are no pre-defined values; possible values are Paid, Partially Paid, Authorized, and Error.
example: Paid
type: string
paymentToken:
$ref: '#/components/schemas/orderPaymentToken'
type: object
orderStatusUpdateRequest:
type: object
description: Request to update order status using state machine
properties:
statusCode:
type: string
description: Action code representing the next step in the flow
example: RELEASE_HOLD_EXTERNAL
statusDescription:
type: string
description: Optional description for the status update
example: Order created and ready for processing
required:
- statusCode
orderContactPhone:
description: Contact person's phone details.
properties:
number:
description: Contact person's phone number
example: 123-456-7890
type: string
type:
description: Contact number type
enum:
- MOBILE
- HOME
- BUSINESS
example: MOBILE
type: string
type: object
currencies:
description: currencies
properties:
groups:
items:
$ref: '#/components/schemas/currencyGroup'
type: array
primaryCurrency:
description: Primary currency for order
example: SHOPPER
type: string
type: object
orderRetail:
description: Optionally used as reference, for orders created from Point-of-Sale systems
properties:
cashierId:
description: Merchant-defined cashier ID during order creation
example: C-123
type: string
locationNumber:
description: Unique value to identify ship-from or Buy Online Pickup from Store location. This must be the locationNumber stored in the fabric Location service.
example: WH334
type: string
registerId:
description: Merchant-defined register ID during order creation
example: '113'
type: string
transactionId:
description: Transaction ID such as the Point-of-Sale system's version of the `orderId`.
example: '328942333412'
type: string
type: object
updateOrderFeesAndTaxesRequestUpdateShipInfoFeesAndTaxesResource:
type: object
properties:
shipToId:
type: string
shipToTaxTotal:
type: number
shipToTaxTotalInCurrencies:
type: array
items:
$ref: '#/components/schemas/amountInCurrencyResource'
taxes:
type: array
items:
$ref: '#/components/schemas/taxDetail'
paymentResponse:
description: Payment information
properties:
amount:
description: Transaction amount for the payment operation
example: -12.4
type: number
amountInCurrencies:
description: The details of the `CurrencyList`, itemized by each currency used within the order.
items:
$ref: '#/components/schemas/amountInCurrency'
properties:
empty:
type: boolean
type: array
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
key: value
type: object
data:
$ref: '#/components/schemas/paymentDetails'
id:
description: ID provided by payment gateway in response to payment operation
example: '328942333412'
type: string
paymentId:
description: Merchant-provided unique identifier for a payment based on payment connector. When omitted, this value will be generated by fabric in UUID format.
example: '328942333412'
type: string
paymentLogId:
description: ID generated by fabric to uniquely identify the payment log
example: '328942333412'
type: string
paymentLogRefId:
description: Payment reference log ID with which this record is associated
example: '328942333412'
type: string
status:
description: Payment status such as Authorized, Captured, etc.
example: Authorized
type: string
type:
description: Transaction type such as VOID, CAPTURED, REDUND, etc.
example: REFUND
type: string
type: object
orderPickup:
description: An object containing the order pickup details.
properties:
email:
description: Contact person's email
example: test@example.com
type: string
name:
$ref: '#/components/schemas/orderContactName'
phone:
$ref: '#/components/schemas/orderContactPhone'
pickupType:
description: Order pickup type
enum:
- PRIMARY
- ALTERNATE
example: PRIMARY
type: string
type: object
valuesSearchFilter:
allOf:
- $ref: '#/components/schemas/orderSearchFilter'
- properties:
values:
items:
description: Search criteria using multiple values
example: ORDER_CREATE
oneOf:
- description: Target record's non-numeric identifier
example: ORDER_CREATE
type: string
- description: Target record's numeric identifier
example: 112233
format: int64
type: number
- description: Target record's numeric identifier
example: 1122.33
format: double
type: number
maxItems: 25
minItems: 1
type: array
type: object
description: Criteria to find orders using multiple values. Condition between `field` and `values` is either IN or NIN when `valuesSearchFilter` is used.
required:
- condition
- field
type: object
pickupRequest:
description: An object containing pickup details.
properties:
email:
description: Contact person's email
example: test@example.com
type: string
name:
$ref: '#/components/schemas/orderContactName'
phone:
$ref: '#/components/schemas/orderContactPhone'
pickupType:
description: Order pickup type
enum:
- PRIMARY
- ALTERNATE
example: PRIMARY
type: string
type: object
paymentReference:
description: Payment details for order
properties:
paymentCounter:
description: A sequential or incremental counter associated with a payment for an order. Applicable in refund scenarios to identify the specific payment for refund.
example: 1
format: int32
type: integer
amount:
description: Payment refund amount
example: 60
format: double
type: number
amountInCurrencies:
items:
description: Payment refund amount in currencies
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
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
orderNote:
description: Note for attention
properties:
createdAt:
description: Time note was created (UTC)
example: '2022-05-12T09:30:31.198Z'
type: string
notes:
description: Additional info about the order, if any
example: Fragile - handle with care
type: string
user:
description: Customer Service Representative or Employee (ID or name) who created the note
example: 62272e917b12209e68751d94
type: string
type: object
invoiceCustomer:
description: Invoice customer
properties:
accountId:
description: Customer's loyalty account ID or external identifier that is used to track their loyalty program activity and rewards earned.
example: 62272e917b12209e68751d94
type: string
company:
description: Shopper's company name. This may be used for company discounts.
example: Demo Inc
type: string
email:
description: Contact person's email
example: test@example.com
type: string
employeeId:
description: Employee (ID or name) who initiated an update request
example: 62272e917b12209e68751d94
type: string
name:
$ref: '#/components/schemas/orderContactName'
phone:
$ref: '#/components/schemas/orderContactPhone'
userId:
description: Identifier of the logged in user who initiated the request. This could be from either fabric Identity service or an external Identity service.
example: 62272e917b12209e68751d94
type: string
type: object
orderPayment:
description: An object containing an orders payment details.
properties:
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
captureCurrencyCode: USD
payerId: M7AWTK3YK3B46
referenceId: 4DY41894J2904533S
type: object
authorizationAttempts:
description: An integer representing the number of payment authorization attempts.
example: 0
format: int64
type: integer
authorizedAmount:
description: Amount authorized to be debited from the given `paymentMethod`
example: 123.2
format: double
type: number
authorizedAmountInCurrencies:
items:
description: The amount authorized for debit from the specified payment method, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
billToAddress:
$ref: '#/components/schemas/address'
chargedAmount:
description: Amount charged to the given `paymentMethod`
example: 60
format: double
type: number
chargedAmountInCurrencies:
items:
description: The amount charged to the specified payment method, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
currency:
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
isFinalCapture:
description: '**true:** Payment is final capture. **false:** Payment is not a final capture.'
example: false
type: boolean
isPartialCapture:
description: '**true:** Payment is partial capture. **false:** Payment is full capture.'
example: false
type: boolean
paidAt:
description: System-generated time when payment was captured at shipment. In case of payment captured at checkout, this is a merchant-defined value given during order creation.
example: '2022-01-27T16:15:58-05:00'
format: date-time
type: string
paymentCounter:
description: A sequential or incremental counter associated with a payment for an order. Applicable in refund scenarios to identify the specific payment for refund.
example: 1
format: int32
type: integer
paymentIdentifier:
$ref: '#/components/schemas/orderPaymentIdentifier'
paymentLogs:
description: Payment details
items:
$ref: '#/components/schemas/paymentResponse'
type: array
paymentMethod:
description: Payment method such as PayPal or credit card
example: CREDIT_CARD
type: string
paymentProvider:
description: Payment provider
example: stripe
type: string
paymentStatus:
description: Payment status. There are no pre-defined values; possible values are Paid, Partially Paid, Authorized, and Error.
example: Paid
type: string
paymentToken:
$ref: '#/components/schemas/orderPaymentToken'
reauthorizationAttempts:
description: An integer representing the number of payment reauthorization attempts.
example: 0
format: int64
type: integer
refundAmount:
description: Merchant-defined refund amount
example: 21.5
format: double
type: number
refundAmountInCurrencies:
items:
description: The merchant specified refund amount, itemized by each currency used within a specific order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
type: object
orderPaymentIdentifier:
description: An object containing the details of payment modes and payment identifiers.
properties:
cardIdentifier:
description: Last 4 digits of the card
example: '3456'
type: string
expirationMonth:
description: Card expiration month
example: '12'
type: string
expirationYear:
description: Card expiration year
example: '2029'
type: string
fabricPaymentReference:
description: System-generated UUID referenced internally for Invoice and Orders services.
example: f886c96c-5f65-11ed-9b6a-0242ac120002
type: string
paymentId:
description: Merchant provided unique identifier for a payment based on payment connector. When omitted, it is a fabric-generated UUID.
example: 62272e917b12209e68751d94
type: string
type: object
paymentDetailsResponseBody:
description: Payment info
properties:
attributes:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
example:
key: value
type: object
errors:
description: Error details
items:
additionalProperties:
description: Error map
example:
key: value
type: object
description: Error map
example:
key: value
type: object
type: array
responseCode:
description: Response code such as success, OK, or failure
example: OK
type: string
status:
description: Payment status such as Authorized, Captured, etc.
example: Authorized
type: string
transactionId:
description: Transaction ID such as the point-of-sale system's version of the `orderId`.
example: '328942333412'
type: string
transactionTimestamp:
description: Transaction time (UTC) when the payment was successful
example: 2022-04-10T23:00:45:12.111Z
type: string
type: object
taxDetail:
description: An object containing tax information.
properties:
amount:
description: Tax amount
example: 34.56
format: double
type: number
amountInCurrencies:
items:
description: The tax amount, itemized by each currency used within the order.
$ref: '#/components/schemas/amountInCurrencyResource'
type: array
attributes:
additionalProperties:
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
description: Merchant-defined custom attributes. This is a placeholder for additional info (in key-value pairs).
type: object
currency:
default: USD
description: Three-letter currency code as defined by ISO-4217
example: USD
type: string
name:
description: Applied tax name
example: STATE
type: string
rate:
description: Rate
example: 10
format: double
type: number
rateType:
description: Rate type
example: PERCENTAGE
type: string
taxCode:
description: Tax code applied
example: FR01
type: string
type: object
itemFulfillmentResource:
type: object
description: Item fulfillment model
properties:
isFulfillable:
type: boolean
default: 'true'
description: Indicates whether the item can be fulfilled based on its current state and configuration.
example: true
isInventoryManaged:
type: boolean
default: 'true'
description: To identify if an inventory is managed or not for the respective item
example: true
locationNumber:
type: string
description: Location number
example: 123
shipFromAddress:
$ref: '#/components/schemas/address'
trackingDetails:
$ref: '#/components/schemas/trackingDetailsResource'
description: Tracking details for the shipment
attributes:
type: object
additionalProperties:
type: object
description: Custom attributes for this item
example:
attribute1: value
headers:
xFabricRequestIdResponseHeader:
description: Unique request ID
example: 263e731c-45c8-11ed-b878-0242ac120002
required: false
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the [Making your first API request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure) section.
'