Export orders
Export orders from Propeller to an external system for fulfillment. Orders are typically created in Propeller through a webshop, the Sales Hub or the API and then sent to an ERP, WMS or third-party supplier that handles logistics and delivery.
The export flow
Exporting orders is a two-step process:
- Search for orders that have not been exported yet
- Update each order with export metadata after the receiving system confirms receipt
This pattern ensures every order is exported exactly once. The search filter excludes orders that already have an export status, and the update marks them as processed so they do not appear in the next export run.
Search for unexported orders
Use the orders search endpoint with the expands parameter to include order items and addresses in the response. See Expanding resources for more on the expands parameter.
POST /v2/orders/search?expands=ORDER_ITEMS,ADDRESSES
Filter by status and exportStatuses in the request body. An empty exportStatuses array matches orders where no export status has been set.
{
"status": ["NEW"],
"exportStatuses": []
}
This returns all orders in status NEW that have not been exported yet.
Response
{
"items": [
{
"shopId": 0,
"id": 36,
"channelId": 1,
"uuid": "019cb83f-0e75-746c-a834-a5b567d834b7",
"status": "NEW",
"type": "dropshipment",
"email": "noreply@propel.us",
"currency": "EUR",
"currencyRatio": 1,
"language": "NL",
"date": "2026-03-04T09:47:46.207Z",
"createdAt": "2026-03-04T09:47:46.207Z",
"postageData": {
"method": "",
"taxPercentage": 21,
"requestDate": null,
"gross": 10,
"net": 12.1,
"tax": 2.1,
"partialDeliveryAllowed": "Y",
"pickUpLocationId": null,
"overruled": "Y",
"carrier": null
},
"paymentData": {
"net": 0,
"gross": 0,
"tax": 0,
"taxPercentage": 21,
"method": "",
"status": "UNKNOWN",
"statusDate": null,
"overruled": "N",
"accountingId": null
},
"total": {
"orderId": 36,
"gross": 910,
"net": 1101.1,
"tax": 191.1,
"discountValue": 0,
"discountType": "N",
"taxPercentages": [],
"isFromRevision": false,
"sourceRevisionNumber": 3
},
"items": [
{
"uuid": "019cb83e-c6b4-7934-91aa-b0bff014ee2e",
"class": "product",
"productId": 799,
"parentOrderItemId": null,
"sku": "12345",
"quantity": 6,
"minimumQuantity": 1,
"notes": "",
"name": "skuname",
"supplier": "",
"supplierCode": "",
"manufacturer": "",
"manufacturerCode": "",
"eanCode": null,
"unit": 1,
"package": "",
"packageUnit": "",
"packageUnitQuantity": "1",
"purchaseUnit": 1,
"purchaseMinimumQuantity": 1,
"originalPrice": 150,
"customerPrice": 150,
"price": 150,
"priceTotal": 900,
"priceNet": 181.5,
"costPrice": 0,
"priceTotalNet": 1089,
"discount": 0,
"tax": 189,
"taxCode": "H",
"taxPercentage": 21,
"isBonus": "N",
"requestDate": null,
"priority": 1,
"id": 27594,
"orderId": 36
}
],
"lastModifiedAt": "2026-03-04T09:48:04.707Z",
"public": true,
"revisionNumber": 3,
"invalid": false,
"sources": [],
"userId": 14590,
"accountManagerId": null,
"cartId": null,
"externalId": null,
"debtorId": null,
"source": "Sales Portal",
"emailDate": null,
"remarks": null,
"reference": null,
"extra3": null,
"extra4": null,
"statusDate": "2026-03-04T09:48:02.480Z",
"addresses": [
{
"createdAt": "2026-03-04T09:47:46.224Z",
"lastModifiedAt": "2026-03-04T09:47:46.224Z",
"firstName": null,
"middleName": null,
"lastName": null,
"gender": "M",
"company": "Propeller test bedrijf",
"street": "Teststraat ",
"number": "12",
"numberExtension": null,
"postalCode": "1234ED",
"city": "Ede",
"region": null,
"country": "NL",
"phone": null,
"mobile": null,
"email": null,
"code": null,
"notes": null,
"icp": "N",
"type": "delivery",
"url": null,
"name": null,
"id": 22091,
"orderId": 36
},
{
"createdAt": "2026-03-04T09:47:46.224Z",
"lastModifiedAt": "2026-03-04T09:47:46.224Z",
"firstName": null,
"middleName": null,
"lastName": null,
"gender": "U",
"company": "Propeller test bedrijf",
"street": "Teststraat",
"number": "12",
"numberExtension": null,
"postalCode": "1234ED",
"city": "Ede",
"region": null,
"country": "NL",
"phone": null,
"mobile": null,
"email": null,
"code": null,
"notes": null,
"icp": "N",
"type": "invoice",
"url": null,
"name": null,
"id": 22092,
"orderId": 36
}
],
"invoiceUserId": 14590,
"validUntil": null,
"companyId": 167,
"originalOrderId": 0,
"exportedAt": null,
"exportStatus": "",
"exportMessage": null,
"publicVersionNumber": null,
"invalidationReason": null
}
],
"itemsFound": 2,
"offset": 12,
"page": 1,
"pages": 1,
"start": 1,
"end": 2
}
The key fields for mapping to an external system are:
items[]contains line items with SKU, quantity and pricingaddresses[]contains delivery and invoice addresses, identified by thetypefieldexportStatusandexportedAtare empty on orders that have not been exported yet
The response includes pagination metadata (itemsFound, page, pages). When exporting large numbers of orders, iterate through all pages. See Pagination for details.
Update the order after export
After the receiving system confirms it has processed the order, update the order in Propeller with export metadata. This prevents the order from appearing in the next export run because the exportStatuses: [] filter no longer matches.
PATCH /v2/orders/id/36
{
"exportedAt": "2026-03-04T10:12:19.000Z",
"exportMessage": "ERP order id = 12355",
"exportStatus": "exported"
}
The three export fields:
exportedAt: timestamp of when the export happenedexportMessage: free text field to store a reference from the receiving system (for example the order ID in the ERP)exportStatus: status string used by theexportStatusesfilter in the search endpoint
The exportStatus field accepts the following values: exported, finished or failed. The search filter in the orders search endpoint matches on exact values.
Supplier and purchase order scenarios
When the export target is a third-party supplier handling fulfillment (a purchase order), it can also make sense to change the order status (for example PURCHASED).
PATCH /v2/orders/id/36
{
"status": "PURCHASED"
}
See also
- Expanding resources for including related data in responses
- Pagination for iterating through large result sets
- Authentication and security for token management
- REST API Reference for the full endpoint specification