Chapter 1: Core Concepts for Custom Integrations

A fulfillment connector mostly works with Shipping Requests going out of Pipe17 and Fulfillments, Inventory and Locations coming in. The records below are the ones you will touch.

Record API path What it is Typical 3PL direction
Order /orders The original sales order from a selling channel, with prices and customer details Usually not touched by a 3PL
Shipping Request (also called Shipment) /shipping_requests The instruction to ship some or all of an order's line items from one location. Pipe17 creates it after routing the order Out of Pipe17, into your system
Fulfillment /fulfillments Proof that items shipped: quantities, tracking numbers, carrier. Immutable once created Into Pipe17
Inventory /inventory Stock levels per SKU per location (on hand, committed, available) Into Pipe17
Product /products The catalog: SKUs, names, dimensions, barcodes Out of Pipe17, into your system
Location /locations A warehouse or other place stock is held and orders ship from Into Pipe17
Integration /integrations Your connector's record in Pipe17: its flows, settings and status Read by your connector
Exception /exceptions A problem flagged on a record, shown to users in the app Written by your connector when something fails
Arrival /arrivals Advance notice of stock on its way to a location (a purchase order or transfer, often called an ASN) Out of Pipe17, into your system
Receipt /receipts What was actually received against an arrival Into Pipe17
Return /returns Items a customer is sending back, and what was received Out of Pipe17, then receipts back in

Directions. Pipe17 describes every flow from Pipe17's side. An in flow means your connector writes into Pipe17 (for example fulfillments.in). An out flow means your connector reads from Pipe17 (for example shipments.out). Each flow has an on/off setting in the app, and your connector must respect it.

One record, three names. A Shipping Request is the entity shipments (in settings like shipments.out, webhook topics and exceptions), the API path /shipping_requests, and the ID field shipmentId. All three mean the same record.

IDs on both sides. Every Pipe17 record has a Pipe17 ID (shipmentId, fulfillmentId, locationId…). Most records also carry fields for your system's ID, such as extShipmentId, extReferenceId, extFulfillmentId and extOrderId. Write your ID into these fields whenever you create or update a record, and keep your own mapping as well (Chapter 4).

Shipping Request status is the field your connector reads and moves forward most often:

Status Meaning for your connector
readyForFulfillment Ready to be sent to your system. Pick these up
sentToFulfillment Your system has accepted it. Set this after you create it on your side
partialFulfillment Some line items have shipped
fulfilled All line items have shipped
onHold, reviewRequired, pendingInventory, pendingShippingLabel Not ready yet. Do not ship
canceled, canceledRestock Canceled. Stop work in your system if you still can
failed Could not be fulfilled

The full list of statuses and fields for every record is in the API reference.


Need Help?

If you need additional assistance:

  • Use Ask Pippen, our AI agent, located at the top of the app page.
  • Submit a support request with as much relevant detail as possible. Learn how to submit a request.

We're here to help you succeed with your operations.

Refer to this guide on how to integrate using API base connection.

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.

Have more questions?
Submit a request
Share it, if you like it.