> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryoto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pre-fulfillment checks

> The checks that run after routing and before picking: automatic holds and tags, manual edits, and how to release an order that was put on hold.

> [!NOTE]
>
> **Where to find it:** Settings → Advanced → Blacklisted Customers — [Open in OTO ↗](https://app.tryoto.com/blacklisted-customers)

Routing has decided where an order will be fulfilled. Pre-fulfillment is the gate before anyone picks it: the checks that stop an order that shouldn't ship, the tags that tell the warehouse how to treat it, and the edits that fix it while fixing is still cheap.

> [!NOTE]
>
> **Why hold rather than fail**
>
> Every check here parks an order for a person to look at instead of rejecting it. An order on hold keeps its place, its data and its routing — nothing is lost while someone decides. Holds are also invisible to the customer: no notification is sent when an order is held.

## Where it sits

![Pre-fulfillment checks between routing and fulfillment](https://mintcdn.com/oto/i18iHWUj0UsU2Wev/images/diagram-prefulfillment-light.png?fit=max\&auto=format\&n=i18iHWUj0UsU2Wev\&q=85\&s=e18769bbeee27532927e4581acd8507d)

Holds divert an order out of the flow; tags travel with it. Both happen after routing, so a held order already knows where it was going when someone releases it.

## Automatic holds

Four checks run on arrival and park an order rather than letting it proceed. All four are switched on under **Settings → Advanced → Autocorrector**.

![Autocorrector Settings, upper half](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/correction-1-autocorrector-top.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=28c7bd331ad61dc25232b8c562f65c9e)

Fig. 1 — On Hold Product and Blacklist sit here, alongside the data-correction toggles documented under Address and data correction.

### Holds for pre-order SKUs

The **On Hold Product** toggle. Any order containing an item marked as pre-order-only is held automatically the moment it arrives, so a line you cannot yet ship never reaches a picker.

The marking lives on the product record, not the order — see [Product configuration](https://docs.tryoto.com/modules/inventory-management/product-configuration.md). That means one flag on one SKU protects every order containing it, retrospectively and going forward.

### Blacklisted customer screening

The **Blacklist** toggle holds orders from customers you have listed, on arrival, before anything is picked or paid for. Customers are identified by **Customer Name** and **Phone Number** with country code.

Manage the list at **Settings → Advanced → Blacklisted Customers**. **Add Blacklisted Customer** takes the name and number; removing someone from the list restores normal processing for their future orders. The list also shows a **Blocked Order Count** per customer — useful both for judging whether an entry is still earning its place, and for quantifying what serial refusers were costing you.

![The Blacklisted Customers list](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/prefulfill-1-blacklisted-list.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=0a18d308b0bb7858568ab5e101a39a1a)

Fig. 2 — All three columns are filterable, so on a long list you can search by name or number, or sort by how many orders an entry has actually blocked.

![Adding a blacklisted customer, with the toggle not yet enabled](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/prefulfill-2-blacklist-add.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=1f1c53dabef1b2607df1e195fb72213c)

Fig. 3 — The form takes only a name and a phone number. The notice on the right is the product refusing the entry: “To proceed, please enable the black list in Autocorrector Settings”, with a link straight to it.

> [!NOTE]
>
> **Two switches, and OTO enforces it**
>
> The list and the **Blacklist** toggle are separate. You cannot even add an entry while the toggle is off — OTO blocks it and offers a link to the setting. Customers are never told they have been listed; their orders are simply held.

### Payment method confirmation

The **Payment Method Confirmation** toggle compares an order's amount due against its payment method. Where those conflict — an order marked paid that still carries a balance, or a COD order with nothing to collect — the order is moved to **Need Confirmation** rather than shipped on bad financial data.

This is the check that stops a driver collecting cash that was already paid, or handing over goods without collecting at all.

### COD order confirmation

Cash on delivery is where fake and impulse orders concentrate, and where a failed delivery costs the most. The **COD Order Confirmation** toggle sends the customer a confirmation SMS and holds the order until it is confirmed — either by the customer replying, or by one of your own users confirming on their behalf.

**Order Confirmation SMS Delay Time (minutes)** sets how long OTO waits before sending. Zero sends immediately; a few minutes' delay gives a customer who ordered by mistake time to cancel before you have spent an SMS on them.

![Autocorrector Settings, lower half](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/correction-2-autocorrector-bottom.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=e80ccc2a2d6b7deefe98359591b21714)

Fig. 4 — Payment Method Confirmation and COD Order Confirmation, with the SMS delay field beneath. The delay applies only to the COD confirmation message.

## Automatic tagging

Tags don't stop an order. They attach information that later steps — warehouse, carrier selection, fleet assignment — read and act on.

### SKU-based order tagging

Orders can be labelled automatically according to the SKUs they contain, so a warehouse knows at a glance that an order holds something fragile, hazardous, oversized or gift-wrapped without opening it. Because tagging is driven by SKU rather than by rule-writing on each order, adding a product to a category tags every order that contains it from then on.

Tags are visible as a column on the Shipments list and can be filtered on.

### Delivery-area tagging

The **Area** toggle stamps each order with the delivery area its address falls inside. Areas are polygons you draw on a map at **Settings → Advanced → Areas**, under the **Area Settings** tab.

An area carries more than a shape. **Add Area** takes an **Area Name**, country and city, a **Capacity** — the number of shipments a driver will deliver there daily — a **Priority** that resolves which area wins when polygons overlap, and a list of **OTO Flex Drivers** who serve it. You pick the city on the form, draw the region on the map, and the coordinates are filled in on save.

![The Areas list under the Area Settings tab](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/prefulfill-3-areas-list.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=cc85ee67f1306157bf22fc75f62ea420)

Fig. 5 — Each area carries a capacity and an active flag, so a zone can be switched off — during a closure, or while a driver is unavailable — without deleting it and losing the polygon.

![Step 2 of the Area Form — drawing the polygon](https://mintcdn.com/oto/uaSjRNJNK2KdBBFe/images/prefulfill-4-area-polygon.png?fit=max\&auto=format\&n=uaSjRNJNK2KdBBFe\&q=85\&s=e23b28e8bec9ea34f2d16c84114a18be)

Fig. 6 — The form runs Area Info then Location. Draw the shape on the map and the Polygon field fills with its coordinates; the field is editable text, so a polygon defined elsewhere can be pasted in rather than traced by hand.

> [!TIP]
>
> **Where the tag goes next**
>
> Area is the join between an order and your own fleet. Once tagged, [OTO FLEX](https://docs.tryoto.com/modules/oto-flex/planning.md) can assign the order to a driver who covers that area, and routing's *If any driver is available in location* filter has something to check against.

### HS code correction

The **HS Code Corrector** toggle fills an order's HS code from the product record, so cross-border shipments carry correct customs codes without anyone retyping them per order. Like pre-order marking, the source of truth is the product — see [Product configuration](https://docs.tryoto.com/modules/inventory-management/product-configuration.md).

A missing or wrong HS code is one of the most common causes of a customs hold, and it is invisible until the shipment has already left the country.

## Manual intervention

### Holds for orders needing pre-processing

Some orders need work before fulfillment that no rule can detect — engraving, tuning, a bundle to assemble, a customer conversation to finish. Select the order on **Shipments → Pending Orders**, choose **Orders → Put on hold**, add a note explaining why, and confirm.

The dialog requires an **On Hold Reason** chosen from a list, and takes free-text **Comments** alongside it. The reason is what makes holds reportable later — a note alone would not be. Reasons are your own: maintain them under **Settings → Advanced → Reason Settings**.

There is no time limit. An order stays on hold until someone resumes it.

![The Put on hold dialog](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/prefulfill-6-put-on-hold.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=1f7cf4746c6e0bb02b0b19eb487806f2)

Fig. 8 — Status is set for you — here Shipment On Hold by Warehouse, which records who held it. On Hold Reason is required; Comments is where the specifics go.

![The Orders menu on the Shipments page](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/ordersync-7-orders-menu.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=ee5c0c54d29238831ed321fc642198e2)

Fig. 7 — Put on hold and Edit Order both sit here, alongside the routing and fulfillment actions documented on their own pages.

### Address editing before shipment

**Orders → Edit Order** opens the order for correction while it is still pending. Receiver details — first name, last name, phone, email — and the full address block can all be changed, including switching between a Short Address Code and manual entry.

This is the cheapest moment to fix an address. After pickup it costs a failed delivery attempt and a redelivery.

![The Edit Order dialog, Receiver Details tab](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/prefulfill-7-edit-order.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=30253d34f94c73971e4a48794a30867a)

Fig. 9 — Six tabs, not all of them editable. Receiver Details, Order Details and Shipping Details are where you change things; Packing Status History, Status History and Comments are the record of what has already happened to the order. Add Tag sits in the title bar.

> [!TIP]
>
> **Three tabs that aren't edits**
>
> Before changing an address, **Status History** usually tells you why it needs changing — a failed attempt, a carrier rejection, a correction that didn't stick. **Comments** is where your team's discussion of that order lives, and **Packing Status History** shows what the warehouse has already done to it.

### Item editing before fulfillment

The same dialog edits the order's contents: product descriptions and quantities under **Order Details**. Use it when a customer adds or drops a line after ordering, or when what was ordered doesn't match what can be sent.

> [!WARNING]
>
> **What you can't change**
>
> The delivery partner assignment cannot be changed through Edit Order — cancel the shipment and recreate it, or use [Update Sender Location](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md) to move the order to a different origin. Editing stops entirely once an order leaves Pending Orders or is picked up.

## Releasing a hold

Held orders collect on the **Shipment On Hold** tab, which carries a live count in the tab itself. Select one and use **send back to pending** from the Orders menu to return it to the flow. An order cannot be edited while it is on hold — resume it first, then edit.

![The Shipment On Hold tab](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/prefulfill-5-on-hold-tab.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=6b644c44b5ad94dee94ebe22ed2d2e1f)

Fig. 10 — On Hold Reason and On Hold Comment are columns, and the reason is filterable. That turns the hold queue into something you can actually manage: how many orders are waiting on pre-processing this week, and how that compares with last.

> [!TIP]
>
> **Worth watching**
>
> A hold queue that only grows is a process problem, not a data problem. Because reasons are structured rather than free text, the queue can be read by reason — which usually points straight at whichever upstream step keeps producing them.

## Limits and prerequisites

| Requirement | Detail |
| - | - |
| **Pending orders only** | Holds and edits apply only to orders in **Pending Orders**. Once an order is picked up, neither is available. |
| **Blacklist needs both halves** | The Autocorrector toggle and an entry on the Blacklisted Customers list. Either alone does nothing. |
| **Pre-order holds need product data** | SKUs must be marked pre-order-only on the product record. |
| **HS codes need product data** | The corrector copies from the product; it does not look codes up. |
| **Areas must be drawn** | The Area toggle tags nothing until polygons exist for the cities you serve. |
| **COD confirmation needs SMS** | Requires SMS configured under [Customer Notification](https://docs.tryoto.com/modules/customer-notification/sms.md). |
| **Admin rights** | Autocorrector and the Blacklisted Customers list are Settings screens and need administrator access. |
| **No customer notification** | Nothing is sent to the customer when an order is held — except the COD confirmation SMS, which is the point of that check. |

## Related

* [Order routing](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md) — runs before these checks and decides the location they protect.
* [Address and data correction](https://docs.tryoto.com/modules/omnichannel-oms/order-data-correction.md) — the other half of the Autocorrector screen.
* [Order fulfillment](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md) — what a released order goes on to.
* [Product configuration](https://docs.tryoto.com/modules/inventory-management/product-configuration.md) — where pre-order flags and HS codes are set.
* [OTO FLEX planning](https://docs.tryoto.com/modules/oto-flex/planning.md) — consumes the area tag to assign drivers.


## Related topics

- [Order fulfillment in warehouses and stores](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md)
- [Omnichannel OMS](https://docs.tryoto.com/modules/omnichannel-oms/overview.md)
- [Branded tracking and confirmation pages](https://docs.tryoto.com/modules/customer-notification/branded-pages.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.