fulfillmenttools
API documentationIncident ManagementFeedback
Developer Docs
Developer Docs
  • Developer docs
  • Getting Started
    • Quickstart
    • Integration tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
    • Free trial
  • Technical Basics
    • Access to fulfillmenttools
    • Feature status
    • Available regions
    • Backup policies
  • Connecting to fulfillmenttools
    • Client SDKs
    • commercetools connect
    • OpenID connect
      • Configure Microsoft Entra ID / Azure Active Directory
      • Configure Keycloak
  • API
    • Core concepts
      • Authentication & authorization
      • API Versioning & lifecycle
      • Assign user to jobs
      • Localization
      • Resource timestamps
      • Custom attributes
      • Article attributes
      • Recordable attributes
      • Data update guarantees
      • Rate limits & scaling
      • Retries
      • Performance on test vs. production systems
      • Load testing
    • API calls
      • Postman
      • cURL
      • GraphQL Explorer
    • GraphQL API
    • RESTful API
      • Pagination interface
      • RapiDoc
      • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an event
      • Available events
        • Event flows
      • Eventing example
      • Event export
  • Integration Guides
    • Basics
      • Article categories
      • Audits
      • Facilities
      • Facility groups
      • GDPR configuration
      • Listings
      • Remote configuration
      • Receipts
      • Search
      • Subscribe to events
      • Sticker
      • Stocks
      • Storage locations
      • Tags
      • Users
    • Channel inventory
    • Inbound process
    • Outbound stocks
    • Purchase order
    • Receipt
    • Routing strategy (context-based multi-config DOMS)
    • Show sticker to clients
    • Stow jobs
  • More Integration Guides
    • Carrier management
      • Introduction to carrier configuration
      • Required data when operating carriers
      • Adding & connecting carriers to facilities
      • Custom carrier
    • Configurations for order fulfillment
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing and document configuration
      • Packing container types
      • Parcel tag configuration
      • Headless order fulfillment
      • Short-pick reasons
      • External documents in order fulfillment
      • Service jobs
      • Load units
      • Running sequence
    • DOMS - distributed order management system (routing)
    • External actions
    • Interfacility transfer
    • Notifications
    • Orders
      • Place your first order
      • Ship-from-store orders
      • Click-and-collect orders
      • Locked orders
      • Order with custom services
      • Bundled items in an order
      • Order process status
    • Availability & promising
    • Returns
Powered by GitBook
On this page
Edit on GitHub
  1. Integration Guides

Purchase order

Last updated 1 month ago

More purchase order API information can be found here:

Create a purchase order

The purchaseOrder is a sub-entity of the inboundProcess which maps all processes around incoming goods in a store or warehouse. Whenever a purchaseOrder is created, a corresponding inboundProcess is automatically created.

Create a purchaseOrder by executing the following POST call with the JSON body:

POST https://{YOUR-TENANT-NAME}.fulfillmenttools.com/api/purchaseorders
{
  "facilityRef": "CGN-01",
  "orderDate": "2025-03-12T14:15:39.683Z",
  "requestedDate": {
    "type": "TIME_POINT",
    "value": "2025-03-16T14:15:39.683Z"
  },
  "requestedItems": [
    {
      "quantity": {
        "unit": "pieces",
        "value": 100
      },
      "tenantArticleId": "22222"
    }
  ],
  "status": "OPEN",
  "supplier": {
    "name": "fulfillmenttools"
  }
}

If the request is successful, we receive a 201 CREATED response with a body like this:

{
    "status": "OPEN",
    "cancelled": false,
    "orderDate": "2025-03-12T14:15:39.683Z",
    "requestedDate": {
        "type": "TIME_POINT",
        "value": "2025-03-16T14:15:39.683Z"
    },
    "requestedItems": [
        {
            "tenantArticleId": "22222",
            "quantity": {
                "unit": "pieces",
                "value": 100
            }
        }
    ],
    "supplier": {
        "name": "fulfillmenttools"
    },
    "id": "38378d4e-585c-49e1-883f-1ac4faf289ad",
    "created": "2025-03-12T14:56:56.381Z",
    "lastModified": "2025-03-12T14:56:56.381Z",
    "version": 1,
    "facilityRef": "CGN-01",
    "inboundProcessRef": "2d965d89-0ef9-49a0-8380-53c2fde06134"
}

Alternatively, a purchaseOrder can be created simultaneously when creating the respective inboundProcess via POST https://{YOUR-TENANT-NAME}.fulfillmenttools.com/api/inboundprocesses or can be added to an existing inboundProcess via PUT https://{YOUR-TENANT-NAME}.fulfillmenttools.com/api/inboundprocesses/{inboundProcessId}/purchaseorder.

REST API documentation - Purchase orders