Skip to main content

Fulfillment Request API

Create fulfillment requests for third-party logistics (3PL) or warehouse management systems.


Endpoints​

MethodEndpointDescription
GET/record/v1/fulfillmentRequestList fulfillment requests
GET/record/v1/fulfillmentRequest/{id}Get specific request
POST/record/v1/fulfillmentRequestCreate request
PATCH/record/v1/fulfillmentRequest/{id}Update request
DELETE/record/v1/fulfillmentRequest/{id}Delete request

Key Fields​

FieldTypeDescriptionRequired
createdFromobjectSales order or transfer order referenceYes
requestDatestringRequest date (YYYY-MM-DD)Yes
shipDatestringRequested ship date (YYYY-MM-DD)No
statusobjectRequest status (system managed)Read-only
shipMethodobjectRequested shipping methodNo
memostringSpecial instructions or notesNo
subsidiaryobjectSubsidiary referenceYes (OneWorld)
locationobjectFulfillment locationNo
shippingAddressobjectShip to addressNo
itemcollectionItems to fulfillYes

Example: Create Fulfillment Request​

Request​

POST /record/v1/fulfillmentRequest
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"createdFrom": {
"id": "1001"
},
"requestDate": "2025-12-25",
"shipDate": "2025-12-26",
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"shipMethod": {
"id": "123"
},
"memo": "Rush order - ship express. Customer requires delivery by Dec 27.",
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 10,
"itemIsFulfilled": true
},
{
"item": { "id": "790" },
"quantity": 5,
"itemIsFulfilled": true
}
]
}
}

Response​

{
"id": "6001",
"tranId": "FR-10001",
"createdFrom": {
"id": "1001",
"refName": "SO-5001"
},
"requestDate": "2025-12-25",
"shipDate": "2025-12-26",
"status": {
"id": "PENDING",
"refName": "Pending"
},
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"shipMethod": {
"id": "123",
"refName": "UPS Next Day Air"
},
"memo": "Rush order - ship express. Customer requires delivery by Dec 27.",
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/fulfillmentRequest/6001"
}
]
}

Example: Update Fulfillment Request​

Request​

PATCH /record/v1/fulfillmentRequest/6001
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"shipDate": "2025-12-27",
"memo": "Ship date updated per customer request. No longer rush."
}

Response​

{
"id": "6001",
"tranId": "FR-10001",
"shipDate": "2025-12-27",
"memo": "Ship date updated per customer request. No longer rush.",
"status": {
"id": "PENDING",
"refName": "Pending"
},
"lastModifiedDate": "2025-12-25T15:45:00Z",
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/fulfillmentRequest/6001"
}
]
}

Sublists​

Item Sublist​

FieldTypeDescriptionRequired
itemobjectItem referenceYes
quantitynumberQuantity requestedYes
itemIsFulfilledbooleanMark for fulfillmentYes
locationobjectFulfillment locationNo
descriptionstringItem descriptionRead-only
onHandnumberQuantity on handRead-only

Query Filters​

Find by Sales Order​

GET /record/v1/fulfillmentRequest?q=createdFrom='1001'

Find by Request Date Range​

GET /record/v1/fulfillmentRequest?q=requestDate BETWEEN '2025-12-01' AND '2025-12-31'

Find Pending Requests​

GET /record/v1/fulfillmentRequest?q=status='PENDING'

Find by Ship Date​

GET /record/v1/fulfillmentRequest?q=shipDate='2025-12-26'

Find by Location​

GET /record/v1/fulfillmentRequest?q=location='1'
GET /record/v1/fulfillmentRequest/6001?expandSubResources=true

Important Notes​

Fulfillment Request Statuses​

StatusDescriptionTypical Use
PENDINGAwaiting fulfillmentInitial state when created
IN_PROGRESSBeing processed3PL has started picking/packing
FULFILLEDCompletedItem fulfillment created
CANCELLEDCancelledRequest cancelled

Workflow Integration​

Standard Fulfillment Request Flow:

  1. Sales order or transfer order is approved
  2. Create fulfillment request via API
  3. 3PL/WMS system retrieves pending requests
  4. 3PL processes the request (picks, packs items)
  5. 3PL creates item fulfillment via API when shipped
  6. Fulfillment request status updates to "Fulfilled"

API Integration Pattern:

NetSuite → Fulfillment Request → 3PL System
3PL System → Item Fulfillment → NetSuite

Use Cases​

Third-Party Logistics (3PL)

  • Send fulfillment requests to external warehouses
  • 3PL systems monitor for new requests
  • 3PL creates fulfillments when items ship

Warehouse Management Systems (WMS)

  • Push pick/pack instructions to WMS
  • WMS uses request details for picking
  • WMS confirms shipment via item fulfillment

Multi-Location Fulfillment

  • Route orders to appropriate fulfillment centers
  • Specify location in the request
  • 3PL at each location processes their requests

Creating from Different Source Documents​

From Sales Order:

{
"createdFrom": {
"id": "1001",
"type": "salesOrder"
}
}

From Transfer Order:

{
"createdFrom": {
"id": "2001",
"type": "transferOrder"
}
}

Shipping Instructions​

Use the memo field for special instructions:

{
"memo": "SPECIAL HANDLING: Fragile items - use extra padding. Signature required on delivery."
}

Status Management​

  • Status is typically system-managed based on fulfillment state
  • Status automatically updates when item fulfillment is created
  • Cannot manually set status in most cases (read-only)
  • Status changes trigger workflow events for integration

Permissions Required​

  • Create: Fulfillment Request > Create permission
  • Edit: Fulfillment Request > Edit permission
  • View: Fulfillment Request > View permission
  • Delete: Fulfillment Request > Delete permission

Integration Best Practices​

  1. Poll for New Requests: 3PL systems should regularly poll for pending requests
  2. Update Status: Update request status as processing progresses
  3. Error Handling: Handle cases where items are out of stock
  4. Tracking Updates: Include tracking info when creating item fulfillment
  5. Batch Processing: Retrieve and process multiple requests in batches

Limitations​

  • Cannot create fulfillment request from partially fulfilled orders (use remaining quantities)
  • Must have sufficient permissions on source transaction
  • Items must be available at specified location
  • Some fields may be locked based on source document settings

See Also​