action fulfillment_post_orders { label: "New Order" description: "Error Notes:\n* When `409 Conflict` is a 'Duplicate Order' the `context` will include the FDC `id`, see samples.\n" provider: fulfillment method: POST path: "/orders" encoding: json input: { type: "object" required: ["items", "merchantOrderId", "recipient", "shippingMethod"] properties: { integrator: { type: "string" description: "Use of this property requires special permission and must be discussed with your account executive; values are restricted while custom values need to be accepted by your AE." enum: ["1ShoppingCart", "3dCart", "AdobeBC", "AmazonAU", "AmazonEU", "AmazonNA", "BigCommerce", "BrandBoom", "BrightPearl", "BuyGoods", "Celery", "ChannelAdvisor", "Clickbank", "CommerceHub", "Custom", "Demandware", "Ebay", "Ecwid", "Etsy", "FoxyCart", "Goodsie", "Infusionsoft", "Konnektive", "LimeLight", "Linio", "Linnworks", "Magento", "Netsuite", "NewEgg", "Nexternal", "NuOrder", "Opencart", "OrderWave", "osCommerce1", "Overstock", "PayPal", "PrestaShop", "Pricefalls", "Quickbooks", "Rakuten", "Sears", "Sellbrite", "SellerCloud", "Shipstation", "Shopify", "Skubana", "SolidCommerce", "SparkPay", "SpreeCommerce", "spsCommerce", "StitchLabs", "StoneEdge", "TradeGecko", "UltraCart", "Volusion", "VTEX", "Walmart", "WooCommerce", "Yahoo"] } items: { type: "array" items: { type: "object" required: ["quantity", "sku", "declaredValue"] properties: { declaredValue: { type: "string" format: "double" description: "Using USD, a per unit value of a single SKU. If your declaring a kit this is the sum total for a single kit. In both scenarios we will multiply the `declaredValue` against the `quantity` for customs declaration." } quantity: { type: "integer" } sku: { type: "string" } } } } merchantId: { type: "integer" description: "Necessary if you have a multitenancy account, otherwise we will associate the order with your account" } merchantOrderId: { type: "string" description: "Unique ID provided by the merchant" } notes: { type: "string" } recipient: { type: "object" required: ["address1", "addressLocality", "addressRegion", "country", "email", "firstName", "lastName", "phone"] properties: { address1: { type: "string" description: "Address Line 1" } address2: { type: "string" description: "Address Line 2" } addressLocality: { type: "string" description: "City" } addressRegion: { type: "string" description: "Province / State" } companyName: { type: "string" } country: { type: "string" description: "Country, for best results please provide the two character ISO code" } email: { type: "string" description: "Email, required for international shipments" } firstName: { type: "string" } lastName: { type: "string" } phone: { type: "string" description: "Phone number, required for international shipments" } postalCode: { type: "string" description: "Postal Code / Zip" } } } shippingMethod: { type: "string" description: "Custom for you, it will be mapped to an actual method within the OMS UI" } warehouse: { type: "object" description: "We automatically select a warehouse based on inventory availability, requested carrier and delivery schedule, and carrier cost. You may however override this process. Because this is not recommended please inform your AE prior to using so they may enable this feature." properties: { id: { type: "integer" } } } } } output: { type: "object" required: ["currentStatus", "id", "merchant", "merchantOrderId", "merchantShippingMethod", "originalConsignee", "recordedOn", "validatedConsignee"] properties: { currentStatus: { type: "object" required: ["id"] properties: { createdBy: { type: "object" additionalProperties: true } date: { type: "string" format: "date-time" description: "DateTime of Status Event" } id: { type: "integer" } reason: { type: "string" description: "Explanation for status" } status: { type: "object" required: ["code", "detailCode", "stage", "state"] properties: { actionRequiredBy: { type: "object" description: "Responsibility for resolving this issue" properties: { id: { type: "integer" } name: { type: "string" description: "Human readable description of responsible party to resolve the issue" } } } code: { type: "string" description: "Code, see [status codes](#section/Getting-Started/Status-Codes)" } detail: { type: "string" } detailCode: { type: "string" } id: { type: "integer" description: "Depricated, use code instead" } isClosed: { type: "boolean" description: "Depricated, does this status event close the order" } name: { type: "string" description: "Depricated, use stage/state instead" } reason: { type: "string" description: "Depricated" } stage: { type: "object" properties: { code: { type: "string" } name: { type: "string" } } } state: { type: "object" properties: { code: { type: "string" } name: { type: "string" } } } } } } } departDate: { type: "string" format: "date-time" description: "DateTime order departed an FDC warehouse" } dispatchDate: { type: "string" format: "date-time" description: "DateTime order was dispatched for fulfillment by FDC" } id: { type: "integer" description: "FDC ID for this order" } merchant: { type: "object" required: ["id", "name"] properties: { id: { type: "integer" } name: { type: "string" description: "Merchant Company Name" } } } merchantOrderId: { type: "string" description: "Merchant provided ID" } merchantShippingMethod: { type: "string" description: "Requested ship method" } originalConsignee: { type: "object" required: ["address1", "addressLocality", "addressRegion", "country", "firstName", "id", "lastName", "postalCode"] properties: { address1: { type: "string" } address2: { type: "string" } addressLocality: { type: "string" description: "City" } addressRegion: { type: "string" description: "Province / State" } companyName: { type: "string" } country: { type: "string" description: "Ideally provide the two character ISO code" } email: { type: "string" } firstName: { type: "string" } id: { type: "integer" } iso: { type: "object" properties: { id: { type: "integer" } iso2: { type: "string" description: "Two character ISO code" } name: { type: "string" description: "Country Name" } } } lastName: { type: "string" } phone: { type: "string" } postalCode: { type: "string" description: "Postal Code / Zip" } updatedAt: { type: "string" format: "date-time" } updatedBy: { type: "object" additionalProperties: true } } } parentOrder: { type: "object" properties: { id: { type: "integer" description: "Reference to parent `id` if order was grouped" } } } purchaseOrderNum: { type: "string" description: "Merchant provided PO#" } recordedOn: { type: "string" format: "date-time" description: "DateTime order was recorded by FDC" } trackingNumbers: { type: "array" items: { type: "object" properties: { barcodeScanValue: { type: "string" description: "The computer readable alternative to the human readable" } carrier: { type: "object" required: ["id"] properties: { id: { type: "integer" } } } value: { type: "string" description: "The human readable tracking number recipients (consignee) expect" } } } } validatedConsignee: { type: "object" additionalProperties: true } warehouse: { type: "object" required: ["id"] properties: { id: { type: "integer" } } } } } }