# Customer Hold Status

Shows whether the currently selected customer is on hold and (optionally) lets a manager override the hold via PIN. When the hold is active and unoverridden, the order's Submit Button is blocked from completing.

The hold check can be a fixed field on the customer record, an automatic credit-formula evaluation (e.g. balance > credit limit), or always-on / always-off for testing.

## Available in

* Order Form modules
* Page modules
* Catalog modules

## When to use

* Order Form pages where you need to enforce credit holds before allowing a transaction.
* Customer detail pages where AR holds should be visible at-a-glance.
* POS workflows where the cashier needs a clear visual cue plus the ability to escalate to a manager.

For visibility-only hold display (no override), the same block configured with `allowPinOverride: false` works.

## Settings

| Setting           | Description                                                                                      |
| ----------------- | ------------------------------------------------------------------------------------------------ |
| **Configuration** | Opens the configuration modal — all hold-evaluation, PIN-override, and label settings live here. |

The configuration modal supports:

* **Hold field** — the NetSuite field name on the customer that flags hold status (default: `creditholdoverride`).
* **Hold mode** — *On* (always on hold), *Off* (never on hold), or *Auto* (evaluate the formula).
* **Formula** — JavaScript-style expression evaluated against the customer record (default: `parseFloat(customer.balance || 0) > parseFloat(customer.creditlimit || 0)`).
* **Allow PIN override** — Yes / No. When Yes, a PIN modal opens to clear the hold.
* **PIN code field** — the NetSuite field where the manager's PIN is stored (default: `custentity_brm_pincode`).
* **PIN entity type** — what entity holds the PIN: typically *employee*.
* **Show label** — display the on-hold or approved label.
* **Label on hold / Label approved** — the text shown for each state.

## How it works

1. Reads the selected customer from session state.
2. Evaluates hold status using the configured Hold mode and Formula.
3. Renders the configured label (with appropriate styling for on-hold vs approved).
4. If on hold and **Allow PIN override** is enabled, an override button is shown.
5. Clicking the override prompts for a manager PIN via the PIN Pad.
6. PIN is validated against the configured PIN field on an employee record.
7. Successful overrides are logged in `customrecord_brm_pin_log` with entity ID and action.
8. While the hold is active and not overridden, Submit Button refuses to complete the order.

In edit mode the block shows previews of all three states (on hold, approved, no customer) so you can style with confidence.

{% hint style="warning" %}
The block depends on the selected customer being present in session state — it shows an empty state otherwise. Place **Customer/Vendor Selection** above it on the page.
{% endhint %}

## Examples

**Standard credit-hold enforcement.** Customer Hold Status with Hold mode = *Auto* and the default credit-vs-balance formula. PIN override enabled — managers can authorise sales to over-limit customers.

**Always-block flag.** Hold mode = *On* for testing or for a specific workflow that should never accept transactions.

**Display-only.** Hold mode = *Auto*, *Allow PIN override* = No. The hold status shows but can't be overridden — useful on a customer detail page.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>PIN Pad</strong></td><td>The PIN entry block used in override flows.</td><td><a href="/pages/gDdGC4CKyI44d6fINGo5">/pages/gDdGC4CKyI44d6fINGo5</a></td></tr><tr><td><strong>PIN Override</strong></td><td>The full PIN-protection setup across the workflow.</td><td><a href="/pages/ZB1p1C3xoZi8Tr9w4b1S">/pages/ZB1p1C3xoZi8Tr9w4b1S</a></td></tr><tr><td><strong>Customer/Vendor Selection</strong></td><td>Selects the customer whose hold status is read.</td><td><a href="/pages/km19hjFIFOFjRK0yQAJp">/pages/km19hjFIFOFjRK0yQAJp</a></td></tr></tbody></table>


---

# 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://docs.in8sync.com/client-admin-guide/active-workflows/getting-started/entity-components/customer-hold-status.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.
