POS + General Ledger + Inventory + Payroll — All Included on Every Plan | Free Updates Forever

The Customer Approval Gate

The Customer Approval Gate

The customer approval gate is a safeguard in AccuArk's order status workflow that prevents an invoice from advancing to certain statuses until the customer has formally approved the invoice. This ensures that work does not begin, materials are not ordered, and resources are not committed until the customer has explicitly agreed to the scope and price. This guide explains how the approval gate works, how to configure it, and how to design workflows that use it effectively.

How the Approval Gate Works

Order statuses in AccuArk can be configured with a RequiresCustomerApproval flag. When this flag is set to true on a status, AccuArk's status engine checks the invoice's Customer Approval Status before allowing the transition. If the customer has not approved the invoice, the transition is blocked and the user sees an error message.

The specific error message displayed is: "Cannot advance to [Status Name]: customer approval is required. Request customer approval before changing to this status."

This check runs automatically whenever a user attempts to change the invoice status, whether through the status dropdown on the invoice form, through a programmatic status change, or through any other mechanism that calls AccuArk's status engine. There is no way to bypass the gate — it is enforced at the service level.

Approval Statuses Explained

The Customer Approval Status field on an invoice can have one of four values:

not_required

This is the default status for every new invoice. It means that no approval request has been made yet. The customer has not been asked to approve and has not taken any action. An invoice in this state will be blocked by any approval-gated status because the customer has not given their consent.

pending

This status indicates that an approval request has been initiated — the the Customer Approval dialog dialog was opened — but the customer has not yet clicked Approve or Reject. The invoice is waiting for the customer's decision. An invoice in "pending" state will also be blocked by approval-gated statuses because the customer has not yet given a definitive answer.

approved

The customer has reviewed and approved the invoice. This is the only status that allows an invoice to pass through an approval-gated status. Once approved, the invoice can advance through any status in the workflow, including those that require customer approval.

rejected

The customer has explicitly declined the invoice. A rejected invoice is blocked from advancing through approval-gated statuses, just like "not_required" and "pending." The rejection typically means the customer wants changes before they will agree. After making the requested changes, staff can re-request approval to collect a new decision from the customer.

Important: Only "approved" allows advancement through approval-gated statuses. All other values — "not_required," "pending," and "rejected" — will cause the gate to block the transition.

Configuring the Approval Gate

To configure which statuses require customer approval:

  1. Navigate to Business > Order Status Settings.
  2. Select the status that should require customer approval before entry.
  3. Check the Requires Customer Approval checkbox.
  4. Save the status configuration.

You can enable this flag on any status in your workflow. It is most commonly applied to statuses that represent the beginning of active work, such as "In Production," "Scheduled," or "Materials Ordered." The idea is to place the approval gate at the point where your business starts incurring costs, so that no money is spent until the customer has agreed.

You can also apply the flag to multiple statuses if your workflow has multiple stages where customer consent is important. However, once an invoice is approved, it stays approved for all subsequent statuses. The customer does not need to re-approve at each gated status — a single approval unlocks the entire downstream workflow.

Example Workflow

Here is a typical workflow that uses the approval gate effectively:

  1. Quote — The invoice is created as a quote with all line items and pricing. No approval gate on this status.
  2. Pending Approval — The invoice is sent to the customer for review. No approval gate on this status either, since the customer is still reviewing.
  3. In Production — This status has RequiresCustomerApproval set to true. The invoice cannot enter this status until the customer has approved.
  4. Quality Check — No approval gate. By the time the invoice reaches this point, it has already passed through the gate at "In Production."
  5. Ready for Delivery — No approval gate.
  6. Delivered — No approval gate.

In this workflow, the approval gate is placed at "In Production" because that is where the business begins committing resources. The customer can review the quote at their leisure, and only when they formally approve does the invoice become eligible to move into production.

If the customer rejects the invoice while it is in "Pending Approval," staff can adjust the quote, re-request approval, and try again — all without any production resources being wasted.

Interaction with Other Gates

The customer approval gate works alongside other gates in AccuArk's status workflow:

  • Deposit gate: Some statuses require a minimum deposit before entry. If a status requires both a deposit and customer approval, both conditions must be met before the transition is allowed.
  • Inventory actions: Status-driven inventory actions (such as deducting stock) execute after the status transition succeeds. Since the approval gate prevents the transition, inventory actions will not execute on unapproved invoices.
  • Auto-advance: If a status is configured with an Auto-Advance Status and the target status requires customer approval, the auto-advance will also be blocked until approval is obtained.

All gates are checked by AccuArk's status engine before any transition is committed. If any gate blocks the transition, the entire change is rejected and the invoice remains at its current status.

Use Cases

The approval gate is valuable in several business scenarios:

  • Custom manufacturing: Ensure the customer agrees to specifications and pricing before raw materials are cut or ordered. Changes after production begins are expensive.
  • Service contracts: Require customer sign-off on the scope of work before scheduling technicians or purchasing parts.
  • Large orders: For high-value orders, formal approval protects both the business and the customer from misunderstandings about what was ordered and at what price.
  • Regulated industries: In industries where documented customer consent is legally required, the approval gate provides an auditable record of when the customer agreed and what they agreed to.

Troubleshooting

If you encounter the "Cannot advance to [Status]: customer approval is required" message:

  1. Check the invoice's current Customer Approval Status. It must be "approved."
  2. If the status is "not_required," request approval from the customer using the Request Approval button.
  3. If the status is "pending," the customer has not yet responded. Follow up with the customer.
  4. If the status is "rejected," review the rejection notes, make changes to the invoice, and re-request approval.
  5. If you believe the status should not require approval, check the Order Status Settings and uncheck the RequiresCustomerApproval flag on the target status.

What to Read Next

  • Requesting Customer Approval — Learn the step-by-step process for collecting customer approval using the the Customer Approval dialog dialog.
  • Confirming Delivery or Service Completion — Understand the delivery confirmation process that typically follows the approved workflow.
  • Auto-Advance After Delivery Confirmation — See how delivery confirmation can trigger automatic status advancement.
Was this article helpful?
Back to Complex Invoicing Contact Support
Please note: This article is intended as a general guide. AccuArk© is continuously improved through regular software updates, so some screens, labels, or features described here may appear slightly different in your version. If something doesn't match or you need further assistance, please don't hesitate to contact our support team.
Still need help?

Our support team is ready to assist you.

Submit a Ticket