FlxpointAPI Help CenterBeta

Create Shipment

posthttps://api.flxpoint.com/shipments

Use this when you want to create shipment 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.

Create a new shipment for a Fulfillment Request / Purchase Order.

A source token or account token may be used.

Request

Bodyapplication/json

For the `shipment` data you must provide `trackingNumber` and there must be at least one `shipmentItem`. Within `shipmentItem` a `quantity` must be specified and one out of (`sku`, `sourceVariantId`, `orderItemId`, `purchaseOrderItemId`) must be provided.

purchaseOrderIdintegerdeprecated
Identify the purchase order to associate the shipment to by providing the Flxpoint generated internal purchase order ID.
purchaseOrderNumberstring
Identify the purchase order to associate the shipment to by providing the purchase order number. ACCOUNT tokens will also need to provide `sourceId` when identifying via this property.
sourceIdinteger
SOURCE tokens are not required to supply a value here, if using a SOURCE token and a value is provided and it does not match the source ID of the token a `400` response code will be returned. Only required when using a ACCOUNT token in conjunction with `purchaseOrderNumber`(not necessary to provide when using `purchaseOrderId`). If not provided when submitting with `purchaseOrderNumber` a `400` response code will be returned. If the `sourceId` cannot be found a `404` response code will be returned.
allowDuplicateTrackingNumbersboolean
Indicates that the tracking number should be allowed more than once for each purchase order
default false
shipmentobjectrequired
notestring
trackingUrlstring
an url to track current status of the shipment.
trackingNumberstringrequired
unique number identifying this package across a carrier.
carrierstring
The carrier responsible for delivering the shipment.
methodstring
the delivery method used to ship the package.
shippedAtstring (date-time)
date-time at which this was shipped.
shippingCostnumber
The cost of delivering the items to the destination.
suppressedboolean
When true, the shipment information will **not** be synced back to the channel.
shipmentItemsarray[CreateShipmentItem]
items in this shipment.
skustring
SKU (usually the same as the SKU on the corresponding PO)
quantityintegerrequired
The quantity of the item contained within the shipment
inventoryVariantIdinteger (int64)
The ID of the inventory variant this item corresponds to
orderItemIdinteger
The ID of the order item this shipment item corresponds to
purchaseOrderItemIdinteger
The ID of the purchase order item this shipment item corresponds to
rmaItemIdinteger
The ID of the rma item this shipment item corresponds to
customFieldsarray[CreateShipmentCustomField]
Custom fields in this shipment.
namestring
valuestring
customFieldsarray[CreateShipmentCustomField]
Custom fields in this shipment to save. Any Custom Field with an empty name or value will be ignored (won't be saved). Also, each Custom Field should have a unique name; duplicates will also be ignored.
namestring
valuestring
fulfillmentRequestIdinteger
The ID of the fulfillment request this shipment corresponds to. This is the same value as the `purchaseOrderId`, but with the latest terminology.

Example request

post/shipments
curl -X POST "https://api.flxpoint.com/shipments" \
  -H "Accept: application/json" \
  -H "X-API-TOKEN: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
         "purchaseOrderId": 0,
         "purchaseOrderNumber": "string",
         "sourceId": 0,
         "allowDuplicateTrackingNumbers": true,
         "shipment": {
           "note": "string",
           "trackingUrl": "string",
           "trackingNumber": "string",
           "carrier": "string",
           "method": "string",
           "shippedAt": "2026-04-20T00:00:00Z",
           "shippingCost": 0,
           "suppressed": true,
           "shipmentItems": [
             {
               "sku": "string",
               "quantity": 0,
               "inventoryVariantId": 0,
               "orderItemId": 0,
               "purchaseOrderItemId": 0,
               "rmaItemId": 0,
               "customFields": [
                 null
               ]
             }
           ],
           "customFields": [
             {
               "name": "string",
               "value": "string"
             }
           ]
         },
         "fulfillmentRequestId": 0
       }'
Example body · application/json
{
  "purchaseOrderId": 0,
  "purchaseOrderNumber": "string",
  "sourceId": 0,
  "allowDuplicateTrackingNumbers": true,
  "shipment": {
    "note": "string",
    "trackingUrl": "string",
    "trackingNumber": "string",
    "carrier": "string",
    "method": "string",
    "shippedAt": "2026-04-20T00:00:00Z",
    "shippingCost": 0,
    "suppressed": true,
    "shipmentItems": [
      {
        "sku": "string",
        "quantity": 0,
        "inventoryVariantId": 0,
        "orderItemId": 0,
        "purchaseOrderItemId": 0,
        "rmaItemId": 0,
        "customFields": [
          null
        ]
      }
    ],
    "customFields": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  },
  "fulfillmentRequestId": 0
}

Responses

201Createdapplication/json
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
Example response
{
  "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": 0,
      "sku": "string",
      "quantity": 0,
      "shipmentId": 0,
      "inventoryVariantId": 0,
      "partial": true,
      "orderItemId": 0,
      "purchaseOrderItemId": 0,
      "fulfillmentRequestItemId": 0,
      "committedStockReleasedQuantity": 0,
      "rmaItemId": 0,
      "customFields": [
        {
          "id": null,
          "name": null,
          "value": null
        }
      ]
    }
  ],
  "customFields": [
    {
      "id": 0,
      "name": "string",
      "value": "string"
    }
  ],
  "updatedAt": "2026-04-20T00:00:00Z",
  "accountingSynced": true
}
400Bad Request

No schema documented for this status.

401Unauthorized

No schema documented for this status.

404Not Found

No schema documented for this status.

409Conflict

No schema documented for this status.

412Precondition Failed

No schema documented for this status.

OpenAPI fragment
{
  "post": {
    "summary": "Create Shipment",
    "description": "Create a new shipment for a Fulfillment Request / Purchase Order.\n\nA source token or account token may be used.",
    "parameters": [],
    "requestBody": {
      "description": "For the `shipment` data you must provide `trackingNumber` and there must be at least one `shipmentItem`. Within `shipmentItem` a `quantity` must be specified and one out of (`sku`, `sourceVariantId`, `orderItemId`, `purchaseOrderItemId`) must be provided.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CreateShipmentRequest"
          },
          "examples": {
            "Example 1: Using \"purchaseOrderId\" to identify the PO & \"SKU\" to identify the PO Items (NOTE : the Shipment Item SKU must match the PO Item SKU)": {
              "value": {
                "purchaseOrderId": 1388412,
                "shipment": {
                  "trackingNumber": "1Z63R094545434534534534534",
                  "carrier": "ups",
                  "method": "ups_ground",
                  "shipmentItems": [
                    {
                      "sku": "HG12123123",
                      "quantity": 1
                    }
                  ]
                }
              }
            },
            "Example 2: Using \"purchaseOrderNumber\" to identify the PO & \"sku\" to identify the items (NOTE : the Shipment Item SKU must match the PO Item SKU)": {
              "value": {
                "purchaseOrderNumber": "ORDER_123-1",
                "shipment": {
                  "trackingNumber": "1Z63R094545434534534534534",
                  "carrier": "ups",
                  "method": "ups_ground",
                  "shipmentItems": [
                    {
                      "sku": "HG12123123",
                      "quantity": 1
                    }
                  ]
                }
              }
            },
            "Example 3: Using \"purchaseOrderNumber\" to identify the PO & \"purchaseOrderItemId\" to identify the items": {
              "value": {
                "purchaseOrderNumber": "ORDER_123-1",
                "shipment": {
                  "trackingNumber": "1Z63R094545434534534534534",
                  "carrier": "ups",
                  "method": "ups_ground",
                  "shipmentItems": [
                    {
                      "purchaseOrderItemId": 1884921,
                      "quantity": 1
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "201": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Shipment"
            }
          }
        }
      },
      "400": {
        "description": "Bad Request"
      },
      "401": {
        "description": "Unauthorized"
      },
      "404": {
        "description": "Not Found"
      },
      "409": {
        "description": "Conflict"
      },
      "412": {
        "description": "Precondition Failed"
      }
    }
  }
}
Ready to run it? Send the curl from your terminal or Postman, or use the interactive tester in Stoplight.Open in Stoplight