Four-Eyes Approval

Four-Eyes Approval is the primary, header-level approval workflow. It ensures that purchase documents are reviewed by one or two independent approvers before they can be released for posting. The name refers to the “four-eyes principle” — the practice of requiring a second person to verify a financial transaction.

How it works

When a purchase document enters the approval workflow, the system determines how many approvers are required based on the document amount and the configured threshold.

  1. The document is evaluated against the Four Eyes Approval Threshold.
  2. If the amount is below the threshold, only the first approver is notified.
  3. If the amount is at or above the threshold, both the first and second approver must approve.
  4. The document cannot be released until all required approvals are complete.

Standard mode vs Group mode

The Four-Eyes workflow operates differently depending on which approval mode is active.

AspectStandard (User-based)User Group
First approvalOriginal Approval UserWorkflow User Group (any member)
Second approvalSecond Approver4Eyes Workflow User Group (any member)
BC Workflow codeFOUREYESAPPROVALSFOUREYESAPPRGROUPS
AssignmentNamed individualsGroup membership

Standard mode

In Standard mode, each document is assigned to a specific Approval User (first approver) and an optional Second Approver. These are resolved from the approver assignment priority chain (see Approver Assignment).

Group mode

In Group mode, approval requests go to a Workflow User Group. Any member of the group can act on the request. The second approval goes to the 4Eyes Workflow User Group. This mode provides natural absence coverage since any group member can approve.

Four-Eyes Threshold

The threshold determines when the second approver is required.

SettingLocationPurpose
Four Eyes Approval ThresholdPurchases & Payables SetupGlobal amount threshold (LCY)
Default Four Eyes ApproverPurchases & Payables SetupGlobal fallback second approver (Standard mode)
Default Four Eyes Approval User GroupPurchases & Payables SetupGlobal fallback second group (Group mode)

The default second approver can be overridden per vendor in Vendor Posting Setup. This allows you to assign different second approvers for different suppliers.

Threshold examples

Document AmountThreshold SettingApprovers Required
4,000 EUR5,000 EURFirst approver only
5,000 EUR5,000 EURFirst + Second approver
12,000 EUR5,000 EURFirst + Second approver
Any amount0 (disabled)First approver only (threshold not applied)

Document status flow

Purchase documents move through the following statuses during the approval process:

flowchart LR
    Open --> Pending[Pending Approval]
    Pending --> Released[Released ✓]
    Pending --> Rejected[Rejected ✗]
    Rejected -.->|reopen| Open

Status definitions

StatusMeaning
OpenDocument is editable. Not yet submitted to approval.
Pending ApprovalDocument has been submitted and is waiting for one or more approvers.
Released / Ready for PostingAll required approvals have been granted. Document can be posted.
RSMSTA RejectedOne or more approvers have rejected the document.

Status transitions

FromToTrigger
OpenPending ApprovalDocument is submitted to approval (automatic or manual)
Pending ApprovalReleasedAll required approvals are granted
Pending ApprovalRSMSTA RejectedAny approver rejects the document
RSMSTA RejectedOpenDocument is reopened for correction

Rejection cascade

When a header-level rejection occurs, the system applies a cascade:

  • Rejecting the header automatically sets all lines with Pending Approval status to Rejected.
  • This prevents partially approved lines from proceeding while the header is rejected.

Reopening a rejected document

When a rejected document is reopened:

  1. All line approval requests are cancelled.
  2. All line statuses are reset to Open.
  3. The document returns to Open status and can be edited.
  4. The document must be resubmitted to approval after corrections.

Rejection codes

When rejecting a document, the approver must select a reason from the configurable Approval Rejection Codes table. Each code consists of a Code and a Description.

Rejection codes are mandatory for both header and line rejections. They are cleared automatically when the document transitions to a new status (for example, when a rejected document is reopened).

See Approval Setup Reference for how to configure rejection codes.