# Third-party fulfillment

**Third-party logistics (3PL) fulfillment** allows your organization to work with external logistics providers to handle receiving, shipping, and returns. When enabled, you can send orders directly to your 3PL provider and receive automatic status updates as orders are processed.

{% hint style="info" %}
Third-party fulfillment is an optional feature that must be enabled for your organization. [Contact your Hardfin representative](mailto:support@hardfin.com) to enable third-party fulfillment.
{% endhint %}

## How third-party fulfillment works

When third-party fulfillment is enabled, certain locations in your organization can be designated as 3PL locations. These are locations managed by your third-party logistics provider rather than your own warehouse.

When you create orders that involve a 3PL location, you can send the order directly to your 3PL provider using the "Send to 3PL" button. Once sent, the order status updates automatically as your 3PL provider processes the inbound or outbound shipment.

### Identifying 3PL locations

Locations that are managed by a third-party fulfillment provider display a "3PL" indicator when you search for or select locations throughout the application. This helps you identify which locations are handled by your 3PL provider and ensures orders are routed correctly.

## Supported order types

Third-party fulfillment supports each of the order types in Hardfin:

### Purchase orders

[Purchase orders](/source-and-build/purchase-orders.md) track inbound inventory from suppliers. When the "To" location is a 3PL location, you can send the purchase order directly to your 3PL provider to receive the shipment on your behalf.

For detailed instructions on sending purchase orders to your 3PL provider, see [Sending POs to 3PLs](/source-and-build/purchase-orders.md#sending-pos-to-3pls) in the purchase orders documentation.

### Fulfillment orders

[Fulfillment orders](/fulfill-and-deploy/fulfillment-orders.md) track outbound shipments to customers. When the "From" location is a 3PL location, you can send the fulfillment order directly to your 3PL provider to handle the shipment.

For detailed instructions on sending fulfillment orders to your 3PL provider, see [Third-party fulfillment (3PL)](/fulfill-and-deploy/fulfillment-orders.md#third-party-fulfillment-3pl) in the fulfillment orders documentation.

### Return orders

[Return orders](/fulfill-and-deploy/return-orders.md) track customer returns. When the return location is a 3PL location, you can send the return order to your 3PL provider to receive and process the returned items.

For detailed instructions on sending return orders to your 3PL provider, see [Third-party fulfillment (3PL)](/fulfill-and-deploy/return-orders.md#third-party-fulfillment-3pl) in the return orders documentation.

## Sending orders to your 3PL provider

When an order involves a 3PL location, a "Send to 3PL" button appears on the order details page:

<figure><img src="/files/0UvN7h0OawNWSPz7TayU" alt=""><figcaption><p>"Send to 3PL" button on fulfillment order</p></figcaption></figure>

Clicking this button opens a confirmation window where you can review the order before sending it to your 3PL provider:

<figure><img src="/files/ackiYfmw4cYArT5s210H" alt="" width="375"><figcaption><p>"Send to 3PL" window</p></figcaption></figure>

Once you confirm, the order is sent to your 3PL provider and the status changes to "Awaiting 3PL." As your 3PL provider processes the order, the status updates automatically to reflect the current state of any inbound or outbound shipments.

## Automatic status updates

After sending an order to your 3PL provider, Hardfin automatically receives status updates as the order is processed. You cannot manually update order statuses for shipments associated with an order that has been sent to a 3PL. The order will progress through its lifecycle (such as from "Awaiting 3PL" to "Shipping" to "Received" or "Filled") based on updates from your 3PL.

## Prerequisites

Before sending an order to your 3PL provider, ensure the following:

* **Complete address information.** The destination location must have complete address data. If address information is missing, you will see an error message with a link to update the location.
* **3PL-enabled location.** The relevant location (origin for fulfillment orders, destination for purchase orders, return location for return orders) must be configured as a 3PL location.
* **Draft status.** Orders must be in draft status before they can be sent to a 3PL provider.

{% hint style="warning" %}
Once an order is sent to your 3PL provider, it cannot be edited. Make sure all order details are correct before sending. Once the order is sent, you can only take action on the order by receiving the inbound or outbound shipment from your 3PL provider. To cancel an order that has been sent to a 3PL, you must cancel the order directly with your 3PL provider.
{% endhint %}

## Notes on 3PL orders

Notes on orders that have been sent to a 3PL provider are **read-only**. This means you can view any notes that were added before the order was sent, but you cannot add or modify notes after the order has been submitted to your 3PL. This ensures that the order information remains consistent between Hardfin and your 3PL provider's system.

If you need to communicate additional information about an order after it has been sent to your 3PL, contact your 3PL provider directly through their preferred communication channel.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.hardfin.com/advanced-options/third-party-fulfillment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
