FlxpointAPI Help CenterBeta

[Deprecated] Create Purchase Order

posthttps://api.flxpoint.com/purchase-ordersDeprecated

Use this when you want to create purchase order data through the API.

🔑 X-API-TOKEN⏱ 2 req/sToken: Account · Source · Channel

This page explains the endpoint. To send a live test request, use the interactive tester in Stoplight or your own Postman / HTTP client.

Deprecated, please use POST /fulfillment-requests

This endpoint creates a Purchase Order (PO)!

Purchase Orders can be created by using an Account token. A `sourceId` is required to create a Purchase Order.

PO Items are associated to `Order Items` by `orderItemId`.

PO Items are associated to `Inventory` by `sku` or `inventoryVariantId`.

For more information, see the `item` request details below.

When an Purchase Order is created, it will : - Estimate Shipping Costs (via Workflow or Rate Shopping) - Estimate Dropship Fees (via Workflow) - Run `PO/FR Strategy` settings (Auto Processing, PO Workflow, PO # Utilities, etc.)

For more information about Purchase Orders, see our docs : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests

Request

Bodyapplication/json
purchaseOrderNumberstring
A unique identifier that will be passed to your source to identify the PO. If one is not provided the default account & source rules will be used to generate one.
purchaseOrderTypestring
The type of PO : - Purchase Order (PO) - Fulfillment Request (FR) [Deprecated - use Fulfillment Order instead] - Transfer Order (TO) - Stocking Purchase Order (SPO) - Fulfillment Order (FO) See docs on order & PO terminology at this link https://docs.flxpoint.com/flxpoint/terminology#order-terminology
allowedPOFRTOSPOFO
purchaseOrderStatusstring
Leave `null` to let Flxpoint handle via Workflow rules (PO Strategy settings). A `non-null` status will by-pass any PO Strategy rules and force the status passed in the API request. For more information on PO statuses, refer to our documentation : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests
allowedunprocessedprocessingprocessedacknowledgedvoidedcanceledpo_number_exceeds_max_lengthduplicateadditional_info_requiredcross_dockedprocessing_error
orderIdintegerrequired
The flxpoint ID of the order this PO is for
sourceIdintegerrequired
The flxpoint source ID the PO should be fulfilled to
shippingAddressobjectrequired
Request to create a new address if it does not already exist. State/State Code and Country/Country Code can be populated based on the data available. (i.e. "FL" could be passed to "stateCode" to derive the "state" value "Florida" - also works in the opposite direction).
namestring
If `name` is provided and `firstName` and `lastName` are not provided, we will split this into a `firstName` and `lastName` fields
firstNamestring
lastNamestring
addressLine1string
citystring
postalstring
Postal / Zip Code
addressLine2string
statestring
If "state code" is provided, this field will automatically be populated for US States.
countrystring
If "country code" is populated, this will automatically be populated for most countries.
stateCodestring
If "state" is populated, this will automatically be populated for US States.
countryCodestring
If "country" is populated, this will automatically be populated for most countries. ISO 3166 format
emailstring (email)
phonestring
companyNamestring
billingAddressobjectrequired
Request to create a new address if it does not already exist. State/State Code and Country/Country Code can be populated based on the data available. (i.e. "FL" could be passed to "stateCode" to derive the "state" value "Florida" - also works in the opposite direction).
namestring
If `name` is provided and `firstName` and `lastName` are not provided, we will split this into a `firstName` and `lastName` fields
firstNamestring
lastNamestring
addressLine1string
citystring
postalstring
Postal / Zip Code
addressLine2string
statestring
If "state code" is provided, this field will automatically be populated for US States.
countrystring
If "country code" is populated, this will automatically be populated for most countries.
stateCodestring
If "state" is populated, this will automatically be populated for US States.
countryCodestring
If "country" is populated, this will automatically be populated for most countries. ISO 3166 format
emailstring (email)
phonestring
companyNamestring
shippingTextstringdeprecated
Deprecated
notestring
A note that can optionally be passed through all the way to the source
totalCostnumber
estimatedShippingCostnumber
estimatedDropshipFeenumber
suppressTrackingboolean
If set to true shipments for this PO will not be propagated to the originating channel order via sync order operations inside flxpoint.
default false
fflInfoRequiredboolean
Set to true to indicate that the PO contains items that are firearms and will require valid FFL license information before fulfillment
default false
holdUntilstring (date-time)
If passed the PO will not be processed via automated flxpoint operations until a time older than the value passed
rateShoppedIdstring
Used by internal flxpoint processes to track third party rate shopping responses
packageDimensionUnitstring
used to specify the unit of measurement being used by packageLength, packageHeight, packageWidth. Currently our system supports 'inch' and 'centimeter'
allowedinchcentimeter
packageLengthnumber
packageWidthnumber
packageHeightnumber
packageWeightUnitstring
used to specify the unit of measurement being used by packageWeight. Currently our system supports 'pound', 'ounce', 'gram' and 'kilogram'
allowedpoundouncegramkilogram
packageWeightnumber
crossDockPurchaseOrderIdinteger
Establish this PO as part of a cross docking request by providing the cross dock PO ID
purchaseOrderItemsarray[CreatePurchaseOrderItemRequest]required
orderItemIdintegerrequired
In order to associate PO items to Order Items, we require `orderItemId`. If an `orderItemId` is provided that does not correspond to the `orderId` provided in the creation request, a bad request (status code `400`) will be returned with a relevant message.
quantityintegerrequired
inventoryVariantIdinteger (int64)
If `inventoryVariantId` is passed, we will associate that inventory variant record and it's metadata with this PO item. This field allows you to leverage features like "committed stock". This must be an inventory variant from the same `sourceId` used in the creation request. If this field is NOT passed, you will need to pass `sku`. The following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null) - Cost - Title - Weight - Weight Unit - Length - Width - Height - Dimension Unit - MPN - UPC If an inventory variant cannnot be found with the ID provided, we will check the `sku` field and follow it's workflow. If `sku` is null, an error message will be returned.
skustring
If `inventoryVariantId` is also passed with `sku`, we will first defer to that field's workflow. If `sku` is passed, we will search for a matching Inventory Variant (within the same `sourceId` used in the creation request) to associate with this PO item. If this field is NOT passed, you will need to pass `inventoryVariantId` The following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null) - Cost - Title - Weight - Weight Unit - Length - Width - Height - Dimension Unit - MPN - UPC If an inventory variant cannnot be found for this `sku` - the PO item will be treated as a unmanaged item and no fields or links will be established.
costnumber
titlestring
weightUnitstring
allowedpoundouncegramkilogram
weightnumber
dimensionUnitstring
allowedinchcentimeter
lengthnumber
widthnumber
heightnumber
upcstring
mpnstring
attributesarray[CreatePurchaseOrderItemAttributeRequest]
keystringrequired
valuestringrequired
bundleComponentsarray[CreatePurchaseOrderItemBundleRequest]
If this PO Item is associated to a specific Order Item Bundle Component, an ID must be passed here
orderItemBundleComponentIdintegerrequired
purchaseOrderAttributesarray[CreatePurchaseOrderAttributeRequest]
if there is a requirement to associate some extra information with the purchase order, it can be done by passing an array of CreatePurchaseOrderAttributeRequest.
keystring
valuestring
sourceShippingMethodIdinteger
The ID of the method you intend for the source to ship the PO via. You are required to configure these yourself on your account prior to creating your first PO for the source. Once created (whether via API or UI) use the list source shipping methods endpoint to find the relevant ID.
shippingDistancenumber
Leave `null` for Flxpoint to calculate shipping distance. If a `non-null` value is passed, Flxpoint will not calculate shipping distance. This field is primarily used during Order Routing.
accountingSyncedboolean | null
externalAccountingIdstring | null

Example request

post/purchase-orders
curl -X POST "https://api.flxpoint.com/purchase-orders" \
  -H "Accept: application/json" \
  -H "X-API-TOKEN: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
         "purchaseOrderNumber": "string",
         "purchaseOrderType": "PO",
         "purchaseOrderStatus": "unprocessed",
         "orderId": 0,
         "sourceId": 0,
         "shippingAddress": {
           "name": "Joe Smith",
           "firstName": "Joe",
           "lastName": "Smith",
           "addressLine1": "1000 1st Lane",
           "city": "Jacksonville",
           "postal": "12345",
           "addressLine2": "Suite 123",
           "state": "Florida",
           "country": "United States",
           "stateCode": "FL",
           "countryCode": "US",
           "email": "person@example.com",
           "phone": "1-555-123-4567",
           "companyName": "string"
         },
         "billingAddress": {
           "name": "Joe Smith",
           "firstName": "Joe",
           "lastName": "Smith",
           "addressLine1": "1000 1st Lane",
           "city": "Jacksonville",
           "postal": "12345",
           "addressLine2": "Suite 123",
           "state": "Florida",
           "country": "United States",
           "stateCode": "FL",
           "countryCode": "US",
           "email": "person@example.com",
           "phone": "1-555-123-4567",
           "companyName": "string"
         },
         "shippingText": "string",
         "note": "string",
         "totalCost": 0,
         "estimatedShippingCost": 0,
         "estimatedDropshipFee": 0,
         "suppressTracking": true,
         "fflInfoRequired": true,
         "holdUntil": "2026-04-20T00:00:00Z",
         "rateShoppedId": "string",
         "packageDimensionUnit": "inch",
         "packageLength": 0,
         "packageWidth": 0,
         "packageHeight": 0,
         "packageWeightUnit": "pound",
         "packageWeight": 0,
         "crossDockPurchaseOrderId": 0,
         "purchaseOrderItems": [
           {
             "orderItemId": 0,
             "quantity": 0,
             "inventoryVariantId": 0,
             "sku": "string",
             "cost": 0,
             "title": "string",
             "weightUnit": "pound",
             "weight": 0,
             "dimensionUnit": "inch",
             "length": 0,
             "width": 0,
             "height": 0,
             "upc": "string",
             "mpn": "string",
             "attributes": [
               {
                 "key": null,
                 "value": null
               }
             ],
             "bundleComponents": [
               {
                 "orderItemBundleComponentId": null
               }
             ]
           }
         ],
         "purchaseOrderAttributes": [
           {
             "key": "string",
             "value": "string"
           }
         ],
         "sourceShippingMethodId": 0,
         "shippingDistance": 0,
         "accountingSynced": true,
         "externalAccountingId": "string"
       }'
Example body · application/json
{
  "purchaseOrderNumber": "string",
  "purchaseOrderType": "PO",
  "purchaseOrderStatus": "unprocessed",
  "orderId": 0,
  "sourceId": 0,
  "shippingAddress": {
    "name": "Joe Smith",
    "firstName": "Joe",
    "lastName": "Smith",
    "addressLine1": "1000 1st Lane",
    "city": "Jacksonville",
    "postal": "12345",
    "addressLine2": "Suite 123",
    "state": "Florida",
    "country": "United States",
    "stateCode": "FL",
    "countryCode": "US",
    "email": "person@example.com",
    "phone": "1-555-123-4567",
    "companyName": "string"
  },
  "billingAddress": {
    "name": "Joe Smith",
    "firstName": "Joe",
    "lastName": "Smith",
    "addressLine1": "1000 1st Lane",
    "city": "Jacksonville",
    "postal": "12345",
    "addressLine2": "Suite 123",
    "state": "Florida",
    "country": "United States",
    "stateCode": "FL",
    "countryCode": "US",
    "email": "person@example.com",
    "phone": "1-555-123-4567",
    "companyName": "string"
  },
  "shippingText": "string",
  "note": "string",
  "totalCost": 0,
  "estimatedShippingCost": 0,
  "estimatedDropshipFee": 0,
  "suppressTracking": true,
  "fflInfoRequired": true,
  "holdUntil": "2026-04-20T00:00:00Z",
  "rateShoppedId": "string",
  "packageDimensionUnit": "inch",
  "packageLength": 0,
  "packageWidth": 0,
  "packageHeight": 0,
  "packageWeightUnit": "pound",
  "packageWeight": 0,
  "crossDockPurchaseOrderId": 0,
  "purchaseOrderItems": [
    {
      "orderItemId": 0,
      "quantity": 0,
      "inventoryVariantId": 0,
      "sku": "string",
      "cost": 0,
      "title": "string",
      "weightUnit": "pound",
      "weight": 0,
      "dimensionUnit": "inch",
      "length": 0,
      "width": 0,
      "height": 0,
      "upc": "string",
      "mpn": "string",
      "attributes": [
        {
          "key": null,
          "value": null
        }
      ],
      "bundleComponents": [
        {
          "orderItemBundleComponentId": null
        }
      ]
    }
  ],
  "purchaseOrderAttributes": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "sourceShippingMethodId": 0,
  "shippingDistance": 0,
  "accountingSynced": true,
  "externalAccountingId": "string"
}

Responses

201Createdapplication/json
idinteger
purchaseOrderNumberstring
orderIdinteger
sentAtstring (date-time)
sourceIdinteger
acknowledgedAtstring (date-time)
secondaryAcknowledgedAtstring (date-time)
canceledAtstring (date-time)
shippingAddressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
billingAddressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
shippingTextstringdeprecated
notestring
A note that can optionally be passed through all the way to the source
confirmationNumberstring
shippedStatusCompletionStatus
allowedNot StartedPartially CompletedCompleted
purchaseOrderStatusobject
namestring
`PO/FR # Exceeds Max Length` and `Duplicate PO/FR #` are now deprecated, and will be referred to as `Fulfillment Request # Exceeds Max Length` and `Duplicate Fulfillment Request #` respectively going forward.
allowedUnprocessedProcessedAcknowledgedCanceledVoidedProcessingAdditional Info RequiredTransferredPO/FR # Exceeds Max LengthDuplicate PO/FR #Processing ErrorFulfillment Request # Exceeds Max LengthDuplicate Fulfillment Request #Cross Docked
handlestring
allowedunprocessedprocessedacknowledgedcanceledvoidedprocessingadditional_info_requiredtransferredpo_number_exceeds_max_lengthduplicateprocessing_errorcross_docked
purchaseOrderFulfillmentStatusobject
namestring
allowedAwaiting ShipmentShippedPartially ShippedCanceled
handlestring
allowedawaiting_shipmentshippedpartially_shippedcanceled
generatedAtstring (date-time)
voidedAtstring (date-time)
accountIdinteger
totalItemsinteger
totalCostnumber
totalQuantityinteger
shippedQuantityinteger
estimatedShippingCostnumber
estimatedDropshipFeenumber
sourceShippingMethodobject
<b>NOTE</b>: The `shippingCarrier` and `shippingCarrierMethod` fields are now deprecated. To get the associated shipping carrier(s) and/or shipping carrier method(s), use the array versions named `shippingCarriers` and `shippingCarrierMethods` instead.
idinteger
sourceIdinteger
descriptionstring
carrierstring
methodstring
shippingCodestringdeprecated
Deprecated. Use `defaultMethodCode` instead.
shippingPolicyobject
idinteger
namestringrequired
deletedAtstring (date-time)
deletedAtstring (date-time)
shippingCarrierobject
idinteger
namestring
handlestring
shipEngineSupportedboolean
shippingCarrierMethodobject
idinteger
shippingCarrierobject
idinteger
namestring
handlestring
shipEngineSupportedboolean
namestring
handlestring
shippingLabelCodestring
It is used to specify the preferred Delivery Service during the purchase of a shipping label when a Fulfillment Request is not rate shopped
defaultCarrierCodestring
The code (text) that your source recognizes for this shipping carrier.
defaultMethodCodestring
Formally known as "Shipping Code". The code (text) that your source recognizes for this shipping method.
overrideDefaultCodesboolean
Use codes provided by ShipEngine to send to your source based on the carrier and method with the best shipping rate.
default false
filterCarriersAndMethodsboolean
Filter to include only some carriers and methods you've connected to ShipEngine.
default false
shippingCarriersarray[ShippingCarrier]
When filtering shipping carriers and methods (i.e. filterCarriersAndMethods = true), this is the list of eligible shipping carriers that may be used for shipping. <b>Note:</b> When filterCarriersAndMethods = false, this list will be empty, but <b>all</b> carriers will be considered for rate shopping.
idinteger
namestring
handlestring
shipEngineSupportedboolean
shippingCarrierMethodsarray[ShippingCarrierMethod]
When filtering shipping carriers and methods (i.e. filterCarriersAndMethods = true), this is the list of eligible methods that may be used for shipping. <b>Note:</b> When filterCarriersAndMethods = false, this list will be empty, but <b>all</b> methods for all carriers will be considered for rate shopping.
idinteger
shippingCarrierobject
idinteger
namestring
handlestring
shipEngineSupportedboolean
namestring
handlestring
useBestFitPackageboolean
Use Flxpoint's predefined package sizes to fit all PO/FR line items in a single package. The largest box possible will be used for oversized PO/FRs. When false, package sizes must be configured for eligibility during rate shopping. You may select any number of common packages and/or use your own custom packages.
default true
commonPackagesarray[CommonPackage]
This will contain the <b>standard</b> package selections enabled for use with this shipping method when configured to use specific packages for shipping, rather than Flxpoint's predefined "Best Fit" package sizes (i.e. useBestFitPackage = false). <b>Note:</b> When useBestFitPackage = true, this list will be empty, and Flxpoint's predefined list of packages will be considered instead.
idinteger
A unique, numerical identifier for the package.
lengthnumber
The length dimension of the package.
widthnumber
The width dimension of the package.
heightnumber
The height dimension of the package.
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
weightnumber
The weight of the package itself (excluding any contents).
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
customPackagesarray[CustomPackage]
This will contain the <b>unique</b> package selections enabled for use with this shipping method when configured to use specific packages for shipping, rather than Flxpoint's predefined "Best Fit" package sizes (i.e. useBestFitPackage = false). <b>Note:</b> When useBestFitPackage = true, this list will be empty, and Flxpoint's predefined list of packages will be considered instead.
idinteger
A unique, numerical identifier for the package.
namestring
Your name for the package.
lengthnumber
The length dimension of the package.
widthnumber
The width dimension of the package.
heightnumber
The height dimension of the package.
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
weightnumber
The weight of the package itself (excluding any contents).
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
createdAtstring (date-time)
The time that the package was created by an account user.
createdByUserEmailstring
The email address of the user who created the package.
updatedAtstring (date-time)
The last time the package details were modified (will be null if never changed).
suppressTrackingboolean
beingProcessedboolean
totalSourceInvoicesinteger
fflInfoRequiredboolean
lastModifiedAtstring (date-time)
accountingSyncedboolean
externalAccountingIdstring
holdUntilstring (date-time)
rateShoppedIdstring
packageDimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
packageLengthnumber
packageWidthnumber
packageHeightnumber
packageWeightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
packageWeightnumber
channelIdinteger
crossDockPurchaseOrderIdinteger
Establish this PO as part of a cross docking request by providing the cross dock PO ID
voidedReasonstring
processingErrorReasonstring
The reason this purchase order could not be processed
cancelReasonstring
purchaseOrderItemsarray[PurchaseOrderItem]
idinteger
skustring
quantityinteger
costnumber
itemReferenceIdstring
referenceIdstring
purchaseOrderIdinteger
shippedQuantityinteger
default 0
voidedQuantityinteger
default 0
acknowledgedQuantityinteger
default 0
secondaryAcknowledgedQuantityinteger
default 0
inventoryVariantIdinteger (int64)
orderItemIdinteger
titlestring
externalAccountingItemIdstring
canceledQuantityinteger
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
weightnumber
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
lengthnumber
widthnumber
heightnumber
upcstring
mpnstring
attributesarray[PurchaseOrderItemAttribute]
idinteger
purchaseOrderItemIdinteger
keystring
valuestring
bundleComponentsarray[PurchaseOrderItemBundleComponent]
purchaseOrderItemIdintegerrequired
orderItemBundleComponentIdintegerrequired
lineItemNumberinteger
binLocationstring
subtotalstring
shipmentsarray[Shipment]
idinteger
notestring
trackingUrlstring
trackingNumberstring
carrierstring
methodstring
shippedAtstring (date-time)
insertedAtstring (date-time)
shippingCostnumber
orderIdinteger
purchaseOrderIdinteger
fulfillmentRequestIdinteger
rmaIdinteger
sourceIdinteger
accountIdinteger
partialboolean
suppressedboolean
syncedToChannelboolean
syncErrorstring
crossDockPurchaseOrderIdinteger
shipmentItemsarray[ShipmentItem]
idinteger
skustring
quantityinteger
shipmentIdinteger
inventoryVariantIdinteger (int64)
partialboolean
orderItemIdinteger
purchaseOrderItemIdinteger
this field will soon be deprecated, please start using `fulfillmentRequestItemId` instead. there are basically the same thing, just there has been a terminology change.
fulfillmentRequestItemIdinteger
committedStockReleasedQuantityinteger
rmaItemIdinteger
customFieldsarray[ShipmentCustomField]
idinteger
namestring
valuestring
customFieldsarray[ShipmentCustomField]
idinteger
namestring
valuestring
updatedAtstring (date-time)
accountingSyncedboolean
invoicesarray[Invoice]
idinteger
invoiceStatusobject
namestring
allowedUnpaidPaidCreditedRefunded
handlestring
allowedunpaidpaidcreditedrefunded
insertedAtstring (date-time)
updatedAtstring (date-time)
purchaseOrderIdinteger
this field is deprecated, please use `fulfillmentRequestId`. The two fields are same.
fulfillmentRequestIdinteger
rmaIdinteger
sourceIdinteger
purchaseOrderNumberstring
this field is deprecated, please start using `fulfillmentRequestNumber`. The two fields are essentially same.
fulfillmentRequestNumberstring
invoiceNumberstring
invoiceDatestring (date-time)
totalCostnumber
totalProductCostnumber
totalShippingCostnumber
totalFeeCostnumber
totalTaxCostnumber
totalOtherCostnumber
totalQuantityinteger
accountingSyncedboolean
accountingSyncErrorstring
externalAccountingIdstring
invoiceItemsarray[InvoiceItem]
idinteger
invoiceIdinteger
invoiceItemTypeobjectrequired
namestring
allowedProductShippingFeeTaxOther
handlestring
allowedproductshippingfeetaxother
sourceVariantIdinteger (int64)
costnumber
skustringrequired
titlestring
quantityinteger
perUnitCostnumber
externalAccountingItemIdstring
customFieldsarray[Source Invoice Custom Field]
idinteger
namestring
valuestring
totalCreditCostnumber
customFieldsarray[Source Invoice Custom Field]
idinteger
namestring
valuestring
commissionnumberdeprecated
vendorPayoutIdinteger
purchaseOrderAttributesarray[PurchaseOrderAttribute]
idinteger
purchase_order_idinteger
keystring
valuestring
purchaseOrderTypeobject
"Fulfillment Request" name and "FR" abbreviation are now deprecated. Use "Fulfillment Order" name and "FO" abbreviation instead.
idinteger
allowed1234
namestring
allowedPurchase OrderFulfillment RequestTransfer OrderStocking Purchase OrderFulfillment Order
abbreviationstring
allowedPOFRTOSPOFO
handlestring
allowedpurchase_orderfulfillment_requesttransfer_orderstocking_purchase_order
shippingAddressIdinteger
billingAddressIdinteger
sourceShippingMethodIdinteger
shippingDistancenumber
purchaseOrderReceivedStatusobject
handlestring
allowedawaiting_to_receivepartially_receivedreceivedvoided
carrierCodestring
methodCodestring
purchaseOrderPackageobject
A Purchase Order Package contains all metadata needed to buy a shipping label.
idinteger
The ID of the Purchase Order Package.
purchaseOrderIdintegerrequired
The ID of the Purchase Order to buy a shipping label for.
rateIdstring
The Rate Shopping Provider's ID of the rate found that can be used to purchase the shipping label with.
shipFromAddressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
shipToAddressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
createShipmentPostProcessingboolean
This will enable the automatic creation of a shipment with the tracking information from the purchased shipping label. It will be created once the Purchase Order is processed or acknowledged.
updateShipmentOnPurchaseboolean
If true, we will update the order with shipment details immediately after purchasing the label.
shippingDatestring (date-time)
The date that the shipment should be sent.
lengthnumber
Length of the package to ship with this label.
widthnumber
Width of the package to ship with this label.
heightnumber
Height of the package to ship with this label.
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
totalWeightnumber
Total weight of the package with all of its items included to be shipped with this label.
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
shippingCarrierMethodobject
idinteger
shippingCarrierobject
idinteger
namestring
handlestring
shipEngineSupportedboolean
namestring
handlestring
rateShoppingProviderobject
idinteger
namestring
handlestring
supportsLabelGenerationboolean
rateShoppingProviderLabelSizestring
The preferred size of the shipping label.
allowed4x6letter
default "4x6"
commonPackageobject
This is a standard package in Flxpoint that can be associated to a Source Shipping Method for using to ship out orders in.
idinteger
A unique, numerical identifier for the package.
lengthnumber
The length dimension of the package.
widthnumber
The width dimension of the package.
heightnumber
The height dimension of the package.
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
weightnumber
The weight of the package itself (excluding any contents).
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
customPackageobject
This is a specific package created by an account user in Flxpoint that can be associated to a Source Shipping Method for using to ship out orders in.
idinteger
A unique, numerical identifier for the package.
namestring
Your name for the package.
lengthnumber
The length dimension of the package.
widthnumber
The width dimension of the package.
heightnumber
The height dimension of the package.
dimensionUnitobject
handlestring
allowedinchcentimeter
abbreviatedHandlestring
allowedincm
weightnumber
The weight of the package itself (excluding any contents).
weightUnitobject
handlestring
allowedpoundouncegramkilogram
abbreviatedHandlestring
allowedlbozgkg
createdAtstring (date-time)
The time that the package was created by an account user.
createdByUserEmailstring
The email address of the user who created the package.
updatedAtstring (date-time)
The last time the package details were modified (will be null if never changed).
itemsarray[PurchaseOrderPackageItem]
Metadata related to the items to be shipped in the package.
idinteger
purchaseOrderPackageIdinteger
purchaseOrderItemIdinteger
quantityinteger
buyShippingLabelboolean
default false
orderFFLobject
idintegerrequired
orderIdinteger
crossDockPurchaseOrderIdinteger
licenseNumberstringrequired
namestring
addressLine1stringrequired
addressLine2string
citystring
statestring
postalstring
phonestring
imageUrlstring
expiresAtstring (date-time)
companyNamestring
totalWeightnumber
attachmentLinksarray[string]
A list of URLs containing each file attached to this Purchase Order. These include both shipping labels and packing slips.
string
shippingLabelAttachmentLinkstring
URL for downloading the Shipping Label for this PO if one is attached. If more than one shipping label attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this PO (regardless of type).
packingSlipAttachmentLinkstring
URL for downloading the Packing Slip for this PO if one is attached. If more than one packing slip attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this PO (regardless of type).
tagsarray[string]
string
fullyReceivedAtstring (date-time)
The date and time when this Purchase Order was fully received.
Example response
{
  "id": 0,
  "purchaseOrderNumber": "string",
  "orderId": 0,
  "sentAt": "2026-04-20T00:00:00Z",
  "sourceId": 0,
  "acknowledgedAt": "2026-04-20T00:00:00Z",
  "secondaryAcknowledgedAt": "2026-04-20T00:00:00Z",
  "canceledAt": "2026-04-20T00:00:00Z",
  "shippingAddress": {
    "id": 0,
    "name": "Joe Smith",
    "addressLine1": "120 1st Lane",
    "addressLine2": "Suite 123",
    "city": "Jacksonville",
    "state": "Florida",
    "country": "United States",
    "stateCode": "FL",
    "countryCode": "US",
    "postal": "12345",
    "email": "person@example.com",
    "phone": "1-555-123-4567",
    "companyName": "string",
    "firstName": "Joe",
    "lastName": "Smith",
    "redacted": true,
    "hash": "string"
  },
  "billingAddress": {
    "id": 0,
    "name": "Joe Smith",
    "addressLine1": "120 1st Lane",
    "addressLine2": "Suite 123",
    "city": "Jacksonville",
    "state": "Florida",
    "country": "United States",
    "stateCode": "FL",
    "countryCode": "US",
    "postal": "12345",
    "email": "person@example.com",
    "phone": "1-555-123-4567",
    "companyName": "string",
    "firstName": "Joe",
    "lastName": "Smith",
    "redacted": true,
    "hash": "string"
  },
  "shippingText": "string",
  "note": "string",
  "confirmationNumber": "string",
  "shippedStatus": "Not Started",
  "purchaseOrderStatus": {
    "name": "Unprocessed",
    "handle": "unprocessed"
  },
  "purchaseOrderFulfillmentStatus": {
    "name": "Awaiting Shipment",
    "handle": "awaiting_shipment"
  },
  "generatedAt": "2026-04-20T00:00:00Z",
  "voidedAt": "2026-04-20T00:00:00Z",
  "accountId": 0,
  "totalItems": 0,
  "totalCost": 0,
  "totalQuantity": 0,
  "shippedQuantity": 0,
  "estimatedShippingCost": 0,
  "estimatedDropshipFee": 0,
  "sourceShippingMethod": {
    "id": 0,
    "sourceId": 0,
    "description": "string",
    "carrier": "string",
    "method": "string",
    "shippingCode": "string",
    "shippingPolicy": {
      "id": 0,
      "name": "string",
      "deletedAt": "2026-04-20T00:00:00Z"
    },
    "deletedAt": "2026-04-20T00:00:00Z",
    "shippingCarrier": {
      "id": 0,
      "name": "string",
      "handle": "string",
      "shipEngineSupported": true
    },
    "shippingCarrierMethod": {
      "id": 0,
      "shippingCarrier": {
        "id": 0,
        "name": "string",
        "handle": "string",
        "shipEngineSupported": true
      },
      "name": "string",
      "handle": "string"
    },
    "shippingLabelCode": "string",
    "defaultCarrierCode": "string",
    "defaultMethodCode": "string",
    "overrideDefaultCodes": true,
    "filterCarriersAndMethods": true,
    "shippingCarriers": [
      {
        "id": 0,
        "name": "string",
        "handle": "string",
        "shipEngineSupported": true
      }
    ],
    "shippingCarrierMethods": [
      {
        "id": 0,
        "shippingCarrier": {
          "id": null,
          "name": null,
          "handle": null,
          "shipEngineSupported": null
        },
        "name": "string",
        "handle": "string"
      }
    ],
    "useBestFitPackage": true,
    "commonPackages": [
      {
        "id": 0,
        "length": 0,
        "width": 0,
        "height": 0,
        "dimensionUnit": {
          "handle": null,
          "abbreviatedHandle": null
        },
        "weight": 0,
        "weightUnit": {
          "handle": null,
          "abbreviatedHandle": null
        }
      }
    ],
    "customPackages": [
      {
        "id": 0,
        "name": "string",
        "length": 0,
        "width": 0,
        "height": 0,
        "dimensionUnit": {
          "handle": null,
          "abbreviatedHandle": null
        },
        "weight": 0,
        "weightUnit": {
          "handle": null,
          "abbreviatedHandle": null
        },
        "createdAt": "2026-04-20T00:00:00Z",
        "createdByUserEmail": "string",
        "updatedAt": "2026-04-20T00:00:00Z"
      }
    ]
  },
  "suppressTracking": true,
  "beingProcessed": true,
  "totalSourceInvoices": 0,
  "fflInfoRequired": true,
  "lastModifiedAt": "2026-04-20T00:00:00Z",
  "accountingSynced": true,
  "externalAccountingId": "string",
  "holdUntil": "2026-04-20T00:00:00Z",
  "rateShoppedId": "string",
  "packageDimensionUnit": {
    "handle": "inch",
    "abbreviatedHandle": "in"
  },
  "packageLength": 0,
  "packageWidth": 0,
  "packageHeight": 0,
  "packageWeightUnit": {
    "handle": "pound",
    "abbreviatedHandle": "lb"
  },
  "packageWeight": 0,
  "channelId": 0,
  "crossDockPurchaseOrderId": 0,
  "voidedReason": "string",
  "processingErrorReason": "string",
  "cancelReason": "string",
  "purchaseOrderItems": [
    {
      "id": 0,
      "sku": "string",
      "quantity": 0,
      "cost": 0,
      "itemReferenceId": "string",
      "referenceId": "string",
      "purchaseOrderId": 0,
      "shippedQuantity": 0,
      "voidedQuantity": 0,
      "acknowledgedQuantity": 0,
      "secondaryAcknowledgedQuantity": 0,
      "inventoryVariantId": 0,
      "orderItemId": 0,
      "title": "string",
      "externalAccountingItemId": "string",
      "canceledQuantity": 0,
      "weightUnit": {
        "handle": "pound",
        "abbreviatedHandle": "lb"
      },
      "weight": 0,
      "dimensionUnit": {
        "handle": "inch",
        "abbreviatedHandle": "in"
      },
      "length": 0,
      "width": 0,
      "height": 0,
      "upc": "string",
      "mpn": "string",
      "attributes": [
        {
          "id": null,
          "purchaseOrderItemId": null,
          "key": null,
          "value": null
        }
      ],
      "bundleComponents": [
        {
          "purchaseOrderItemId": null,
          "orderItemBundleComponentId": null
        }
      ],
      "lineItemNumber": 0,
      "binLocation": "string",
      "subtotal": "string"
    }
  ],
  "shipments": [
    {
      "id": 0,
      "note": "string",
      "trackingUrl": "string",
      "trackingNumber": "string",
      "carrier": "string",
      "method": "string",
      "shippedAt": "2026-04-20T00:00:00Z",
      "insertedAt": "2026-04-20T00:00:00Z",
      "shippingCost": 0,
      "orderId": 0,
      "purchaseOrderId": 0,
      "fulfillmentRequestId": 0,
      "rmaId": 0,
      "sourceId": 0,
      "accountId": 0,
      "partial": true,
      "suppressed": true,
      "syncedToChannel": true,
      "syncError": "string",
      "crossDockPurchaseOrderId": 0,
      "shipmentItems": [
        {
          "id": null,
          "sku": null,
          "quantity": null,
          "shipmentId": null,
          "inventoryVariantId": null,
          "partial": null,
          "orderItemId": null,
          "purchaseOrderItemId": null,
          "fulfillmentRequestItemId": null,
          "committedStockReleasedQuantity": null,
          "rmaItemId": null,
          "customFields": null
        }
      ],
      "customFields": [
        {
          "id": null,
          "name": null,
          "value": null
        }
      ],
      "updatedAt": "2026-04-20T00:00:00Z",
      "accountingSynced": true
    }
  ],
  "invoices": [
    {
      "id": 0,
      "invoiceStatus": {
        "name": "Unpaid",
        "handle": "unpaid"
      },
      "insertedAt": "2026-04-20T00:00:00Z",
      "updatedAt": "2026-04-20T00:00:00Z",
      "purchaseOrderId": 0,
      "fulfillmentRequestId": 0,
      "rmaId": 0,
      "sourceId": 0,
      "purchaseOrderNumber": "string",
      "fulfillmentRequestNumber": "string",
      "invoiceNumber": "string",
      "invoiceDate": "2026-04-20T00:00:00Z",
      "totalCost": 0,
      "totalProductCost": 0,
      "totalShippingCost": 0,
      "totalFeeCost": 0,
      "totalTaxCost": 0,
      "totalOtherCost": 0,
      "totalQuantity": 0,
      "accountingSynced": true,
      "accountingSyncError": "string",
      "externalAccountingId": "string",
      "invoiceItems": [
        {
          "id": null,
          "invoiceId": null,
          "invoiceItemType": null,
          "sourceVariantId": null,
          "cost": null,
          "sku": null,
          "title": null,
          "quantity": null,
          "perUnitCost": null,
          "externalAccountingItemId": null,
          "customFields": null
        }
      ],
      "totalCreditCost": 0,
      "customFields": [
        {
          "id": null,
          "name": null,
          "value": null
        }
      ],
      "commission": 0,
      "vendorPayoutId": 0
    }
  ],
  "purchaseOrderAttributes": [
    {
      "id": 0,
      "purchase_order_id": 0,
      "key": "string",
      "value": "string"
    }
  ],
  "purchaseOrderType": {
    "id": 1,
    "name": "Purchase Order",
    "abbreviation": "PO",
    "handle": "purchase_order"
  },
  "shippingAddressId": 0,
  "billingAddressId": 0,
  "sourceShippingMethodId": 0,
  "shippingDistance": 0,
  "purchaseOrderReceivedStatus": {
    "handle": "awaiting_to_receive"
  },
  "carrierCode": "string",
  "methodCode": "string",
  "purchaseOrderPackage": {
    "id": 0,
    "purchaseOrderId": 0,
    "rateId": "string",
    "shipFromAddress": {
      "id": 0,
      "name": "Joe Smith",
      "addressLine1": "120 1st Lane",
      "addressLine2": "Suite 123",
      "city": "Jacksonville",
      "state": "Florida",
      "country": "United States",
      "stateCode": "FL",
      "countryCode": "US",
      "postal": "12345",
      "email": "person@example.com",
      "phone": "1-555-123-4567",
      "companyName": "string",
      "firstName": "Joe",
      "lastName": "Smith",
      "redacted": true,
      "hash": "string"
    },
    "shipToAddress": {
      "id": 0,
      "name": "Joe Smith",
      "addressLine1": "120 1st Lane",
      "addressLine2": "Suite 123",
      "city": "Jacksonville",
      "state": "Florida",
      "country": "United States",
      "stateCode": "FL",
      "countryCode": "US",
      "postal": "12345",
      "email": "person@example.com",
      "phone": "1-555-123-4567",
      "companyName": "string",
      "firstName": "Joe",
      "lastName": "Smith",
      "redacted": true,
      "hash": "string"
    },
    "createShipmentPostProcessing": true,
    "updateShipmentOnPurchase": true,
    "shippingDate": "2026-04-20T00:00:00Z",
    "length": 0,
    "width": 0,
    "height": 0,
    "dimensionUnit": {
      "handle": "inch",
      "abbreviatedHandle": "in"
    },
    "totalWeight": 0,
    "weightUnit": {
      "handle": "pound",
      "abbreviatedHandle": "lb"
    },
    "shippingCarrierMethod": {
      "id": 0,
      "shippingCarrier": {
        "id": 0,
        "name": "string",
        "handle": "string",
        "shipEngineSupported": true
      },
      "name": "string",
      "handle": "string"
    },
    "rateShoppingProvider": {
      "id": 0,
      "name": "string",
      "handle": "string",
      "supportsLabelGeneration": true
    },
    "rateShoppingProviderLabelSize": "4x6",
    "commonPackage": {
      "id": 0,
      "length": 0,
      "width": 0,
      "height": 0,
      "dimensionUnit": {
        "handle": "inch",
        "abbreviatedHandle": "in"
      },
      "weight": 0,
      "weightUnit": {
        "handle": "pound",
        "abbreviatedHandle": "lb"
      }
    },
    "customPackage": {
      "id": 0,
      "name": "string",
      "length": 0,
      "width": 0,
      "height": 0,
      "dimensionUnit": {
        "handle": "inch",
        "abbreviatedHandle": "in"
      },
      "weight": 0,
      "weightUnit": {
        "handle": "pound",
        "abbreviatedHandle": "lb"
      },
      "createdAt": "2026-04-20T00:00:00Z",
      "createdByUserEmail": "string",
      "updatedAt": "2026-04-20T00:00:00Z"
    },
    "items": [
      {
        "id": 0,
        "purchaseOrderPackageId": 0,
        "purchaseOrderItemId": 0,
        "quantity": 0
      }
    ]
  },
  "buyShippingLabel": true,
  "orderFFL": {
    "id": 0,
    "orderId": 0,
    "crossDockPurchaseOrderId": 0,
    "licenseNumber": "string",
    "name": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "state": "string",
    "postal": "string",
    "phone": "string",
    "imageUrl": "string",
    "expiresAt": "2026-04-20T00:00:00Z",
    "companyName": "string"
  },
  "totalWeight": 0,
  "attachmentLinks": [
    "string"
  ],
  "shippingLabelAttachmentLink": "string",
  "packingSlipAttachmentLink": "string",
  "tags": [
    "string"
  ],
  "fullyReceivedAt": "2026-04-20T00:00:00Z"
}
400Bad Request

No schema documented for this status.

401Unauthorized

No schema documented for this status.

409PO Number is already in use.

No schema documented for this status.

OpenAPI fragment
{
  "post": {
    "summary": "[Deprecated] Create Purchase Order",
    "description": "Deprecated, please use POST /fulfillment-requests\n\nThis endpoint creates a Purchase Order (PO)!\n\nPurchase Orders can be created by using an Account token. A `sourceId` is required to create a Purchase Order.\n\nPO Items are associated to `Order Items` by `orderItemId`.\n\nPO Items are associated to `Inventory` by `sku` or `inventoryVariantId`.\n\nFor more information, see the `item` request details below.\n\nWhen an Purchase Order is created, it will : \n- Estimate Shipping Costs (via Workflow or Rate Shopping)\n- Estimate Dropship Fees (via Workflow)\n- Run `PO/FR Strategy` settings (Auto Processing, PO Workflow, PO # Utilities, etc.)\n\nFor more information about Purchase Orders, see our docs : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests\n",
    "parameters": [],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CreatePurchaseOrderRequest"
          }
        }
      }
    },
    "responses": {
      "201": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PurchaseOrder"
            }
          }
        }
      },
      "400": {
        "description": "Bad Request"
      },
      "401": {
        "description": "Unauthorized"
      },
      "409": {
        "description": "PO Number is already in use."
      }
    }
  }
}
Ready to run it? Send the curl from your terminal or Postman, or use the interactive tester in Stoplight.Open in Stoplight