Oracle ERP Testing Tool > Test Library > Financials > Accounts Payable > Invoice Processing
Syntra Standard Oracle Test Library

Oracle Fusion Invoice Hold Test Cases

Validate that Oracle Fusion Payables correctly applies invoice holds for matching, distribution, supplier, and budgetary exceptions, and that every hold clears only after its triggering condition is genuinely resolved.

Test IDORCL.P2P.AP.INV.HOLD
ApplicationOracle Fusion Cloud
ProductFinancials
ModuleAccounts Payable
ProcessInvoice Processing
Business FlowProcure-to-Pay
Scenario TypePositive / Functional
Test UsageFunctional Testing / Regression Testing / UAT
PriorityHigh
AutomationSyntraFlow Ready
LibrarySyntra Standard

Note on test design: SyntraFlow executes the detailed Oracle Fusion UI interactions automatically while presenting the scenario as business-readable test steps for documentation, review and reporting. This scenario is presented as 16 business-readable test steps; SyntraFlow's automation executes approximately 45 underlying Oracle Fusion UI actions to complete it.

Test Objective

Validate that Oracle Fusion applies, maintains, and releases invoice holds according to configured matching tolerances, account validation rules, supplier controls, and budgetary conditions, without allowing held invoices to reach accounting or payment prematurely.

The scenario should confirm that:

  • Manual holds applied by an AP user are correctly recorded against the invoice header and block scheduled payment where configured.
  • Matching holds (Qty Ord, Qty Rec, Price, Tax, Rate Variance) are raised when PO-matched invoice lines exceed configured matching tolerances.
  • Distribution and accounting holds (Distribution Variance, Invalid Account) are raised when distributions fail to sum to the invoice amount or reference an invalid or inactive account combination.
  • Supplier-level controls (Hold All Payments, Hold Unvalidated Invoices, Hold Unmatched Invoices) configured at the supplier site are honored during invoice Validation.
  • Duplicate Invoice holds are raised when supplier invoice number, invoice date, and invoice amount match an existing invoice for the same supplier.
  • Budgetary control holds are raised when the funds check fails against available budget for one or more invoice distributions.
  • Held invoices are correctly excluded from Create Accounting and Create Payment Process Request selection until released.
  • Holds are released automatically on revalidation for system-releasable conditions, and only via explicit action for manual or non-releasable holds.
  • Invoice status, hold name, hold reason, and hold-applied/hold-released dates are accurately reflected in Manage Invoices after each Validate action.

Scope includes both the hold-application and hold-release paths; a test that intentionally creates a hold passes when the expected hold is correctly applied, and a resolution test passes when Correct Exception then Revalidate results in the expected hold being released.

When to Use This Test

  • AP shared services validates PO-matched invoices with quantity and price variances to confirm holds correctly block premature payment.
  • Finance controls team certifies that invalid or inactive GL account combinations on invoice distributions are caught before posting.
  • AP operations verifies that duplicate invoice submissions from suppliers are flagged before duplicate payment risk materializes.
  • Budget owners confirm invoices exceeding available budget are held pending funds availability or an authorized override.
  • Procurement and AP jointly test supplier-level payment holds triggered by supplier risk, compliance, or onboarding status.
  • Regression testing after Oracle quarterly updates confirms hold tolerance configuration and hold-release logic remain unchanged.

Where This Test Fits in the Procure-to-Pay Process

Invoice
Validation
Exception
Hold
Correct Condition / Release
Revalidate
Continue Processing

Holds are Oracle Fusion's control mechanism for pausing an invoice mid-lifecycle without rejecting it outright — each hold traces back to a specific validation, matching, distribution, or configuration exception that must be resolved before the invoice can progress to accounting and payment.

Preconditions

  1. Supplier and supplier site are active in Oracle Fusion Payables with defined payment terms and a matching option (2-way, 3-way, or 4-way).
  2. An approved, open purchase order with receipted lines exists to drive matching-hold scenarios.
  3. Matching tolerance templates (Qty Ord %, Price %, Amount tolerances) are configured at the required matching tolerance level.
  4. Invoice Options at the supplier site enable Hold Unmatched Invoices and Hold Unvalidated Invoices where those scenarios are tested.
  5. The chart of accounts includes at least one intentionally invalid or inactive account combination reserved for negative testing.
  6. Budgetary control is enabled on the business unit and ledger with a defined budget and a known available-funds boundary.
  7. AP Manager or AP Specialist role includes the Invoice Hold and Release Management duty role for manual hold actions.
  8. DataVault seed data for standard invoice header, line, and distribution fields is available and reusable across hold scenarios.
  9. The test business unit, ledger, and GL period are configured Open for the invoice date used in test data.

Exact setup and field availability may vary by Oracle Fusion implementation and security configuration.

Sample Test Data

SupplierGlobal Office Supplies Inc.
Supplier SiteNYC-HQ
Invoice NumberHOLD-INV-2001
Invoice Amount12,450.00 USD
PO NumberPO-88214
Matching Type3-Way (PO, Receipt, Invoice)
Quantity Ordered / Invoiced100 / 115 units
Price Tolerance±3% (PO Price $50.00)
Distribution Account01-000-7420-0000-000 (invalid segment)
Hold TypePrice
Budget Available$8,000.00 (FY26, Period 08)
Duplicate Check FieldsInvoice Number + Supplier + Invoice Date

Sample values are illustrative. Replace them with valid data from the target Oracle Fusion environment.

Test Steps

16 business-readable steps. SyntraFlow's automation executes ~45 underlying UI actions to complete these steps — see How SyntraFlow Automates This Test.

#User ActionExpected Result
1
Create PO-matched invoice
Create an invoice header and lines referencing an approved purchase order, with an invoiced quantity that exceeds the receipted quantity beyond tolerance.
PO-88214; Ordered 100 / Invoiced 115 units
Invoice is created and saved in Incomplete status pending validation.
2
Enter invoice distributions
Enter distribution lines for the invoice, including one line coded to an intentionally invalid or inactive account combination.
Distribution Account: 01-000-7420-0000-000 (invalid)
Distributions are saved and total matches the invoice amount, pending account validation.
3
Submit invoice for Validation
Run the Validate action on the invoice to trigger matching, account, duplicate, and budgetary control checks.
Oracle Fusion evaluates all configured validation, matching, and budgetary rules against the invoice.
4
System applies quantity matching hold
System detects invoiced quantity exceeds the ordered/receipted quantity beyond the configured tolerance and applies a matching hold.
Tolerance: ±5%; Variance: 15%

System-detected exception, not a manual user action.

Invoice status shows Needs Revalidation with hold "Qty Ord" recorded on the invoice.
5
System applies invalid account hold
System detects the distribution references an invalid or inactive account combination and applies an accounting hold.
Account: 01-000-7420-0000-000
Hold "Invalid Account" is recorded and the invoice is blocked from Create Accounting.
6
System applies duplicate invoice hold
System compares invoice number, invoice date, and amount against existing invoices for the same supplier and detects a match.
Duplicate of Invoice HOLD-INV-2000
Hold "Duplicate Invoice" is recorded on the invoice.
7
System applies budgetary control hold
System performs a funds check against the available budget for the invoice distribution and finds insufficient funds.
Available Budget: $3,200; Distribution: $5,000
Hold "Insufficient Funds" is recorded and the invoice cannot be accounted until funds are available or overridden.
8
AP specialist applies manual hold
AP specialist places a manual hold on the invoice header pending internal review, independent of any system-detected exception.
Hold Name: Hold for Investigation
Manual hold is recorded with reason and applied-by user captured.
9
Verify held invoice excluded from payment
Attempt to include the held invoice in a Create Payment Process Request selection batch.
Invoice is correctly excluded from the payment selection while any hold remains active.
10
Correct matching exception
Receiving updates the receipt to reflect the actual delivered quantity, bringing the invoice within matching tolerance.
Corrected Receipt Quantity: 110 units
Quantity variance is now within the configured ±5% tolerance.
11
Correct distribution account
Finance updates the distribution line to a valid, active account combination.
Corrected Account: 01-000-7420-1000-000
Distribution now references a valid account combination.
12
Resolve duplicate invoice condition
AP specialist confirms the invoice is not a true duplicate and corrects the invoice number, or cancels the true duplicate.
Corrected Invoice Number: HOLD-INV-2001-A
Invoice no longer matches an existing invoice on number, date, and amount.
13
Resolve budgetary shortfall
Budget owner increases available funds or records an authorized budgetary override for the distribution.
Override Approved: Budget Manager
Funds check condition for the distribution is satisfied.
14
Manually release non-system-releasable hold
AP specialist releases the manual "Hold for Investigation" hold via Manage Holds after completing internal review.
Release Reason: Review complete, no exception found
Manual hold is released with release reason, user, and date captured.
15
Revalidate invoice
Resubmit the invoice for Validation after all triggering conditions have been corrected.
Qty Ord, Invalid Account, Duplicate Invoice, and Insufficient Funds holds are automatically released; invoice status becomes Validated.
16
Confirm invoice fully released and eligible for downstream processingBusiness assertion
Verify the invoice carries no active holds and is eligible for Create Accounting and payment selection, with a complete hold history retained.
Invoice status is Validated with zero active holds; hold-applied and hold-released events are fully recorded in the audit trail.

Expected Results

  • Invoice remains in a held / Needs Revalidation status until every applicable hold is released.
  • Qty Ord hold is correctly applied when invoiced quantity exceeds ordered/receipted quantity beyond tolerance.
  • Invalid Account hold is correctly applied and blocks accounting until the account combination is corrected.
  • Duplicate Invoice hold is correctly applied for genuine duplicate invoice number, date, and amount matches.
  • Insufficient Funds (budgetary control) hold is correctly applied when budget is unavailable for a distribution.
  • Manual hold is correctly applied and enforced against payment selection independent of system checks.
  • Held invoices are excluded from Create Payment Process Request and Create Accounting until all holds clear.
  • Each hold is released only after its specific triggering condition is genuinely corrected, never prematurely.
  • Revalidation clears resolved holds without re-triggering unrelated exceptions on the same invoice.
  • Hold history (applied by, applied date, released by, released date, reason) is retained for audit.

Key Validation Checkpoints

  • Invoice header status transitions correctly: Incomplete -> Needs Revalidation -> Validated.
  • Hold name, hold type, and hold reason recorded match the specific triggering exception.
  • Manage Holds page lists all active holds with an accurate system-releasable versus manual-release-required indicator.
  • Held invoice cannot be selected in Create Payment Process Request while any hold is active.
  • Held invoice cannot be transferred to General Ledger via Create Accounting until released.
  • Matching holds clear automatically on revalidation after the underlying PO or receipt correction.
  • Invalid Account hold clears only after the distribution references a valid, active account combination.
  • Duplicate Invoice hold requires explicit resolution (correction or cancellation) and never auto-clears.
  • Budgetary control hold clears when the funds check passes or an authorized override is recorded.
  • Manual hold clears only via an explicit release action by an authorized user, never automatically on revalidation.
  • Hold audit trail (applied/released timestamps, user, reason) is complete and accurate for every hold.
  • Invoice line and distribution amounts remain unchanged by hold application or release.
Core Business Scenario
Invoice Holds
Business Steps
16
Test Variations
AI-Generated
Test Data
DataVault-Driven
Execution
On-Demand / Scheduled / Batch
Automation
SyntraFlow Ready
Jarvis AI

Go Beyond the Standard Test with Jarvis AI

The Syntra Standard Test Library defines the core business scenario. Jarvis AI can extend this scenario by generating additional positive and negative test variations using customer-specific test data and configuration available through Syntra DataVault.

Teams do not need to manually duplicate the same invoice holds test case dozens of times simply to cover different combinations of data and configuration. Jarvis uses the standard business scenario as the foundation and generates relevant variations for the customer's environment.

From Standard Test to Executed Regression Pack

01
Syntra Standard Test
Reusable business process and automation logic.
02
Customer DataVault
Provides approved customer-specific test data and configuration required for scenario generation — Business Units, Suppliers, Supplier Sites, Currencies, Payment Terms, Accounting combinations, Tax configurations, Dates, Amounts and other relevant test attributes.
03
Jarvis AI
Analyses the standard scenario together with available test data and generates relevant scenario variations.
04
Positive + Negative Test Variations
Positive, negative, boundary and configuration-specific scenarios.
05
Regression Pack
Selected variations can be grouped into an executable suite.
06
On-Demand / Scheduled / Batch Execution
Execute immediately or schedule the regression pack for unattended batch execution.
07
Results + Evidence + Exceptions
Capture execution results, business assertions, screenshots/evidence and exceptions.

Rather than maintaining dozens of near-duplicate copies of the same test, SyntraFlow maintains the core business scenario and allows Jarvis AI to generate relevant variations using the customer's available test data.

AI-Generated Test Variations

The same Create Standard Supplier Invoice business scenario can produce many test variations without creating separate public library pages. Below is a real slice of SyntraFlow's Build Scripts library, filtered to Accounts Payable Invoice Processing.

Positive Scenarios
  • Manual Hold Applied & Released
  • Qty Ord Matching Hold Released
  • Price Variance Hold Released
  • Receipt Variance Hold Released
  • Invalid Account Hold Released
  • Distribution Variance Hold Released
  • Duplicate Invoice Hold Resolved
  • Budgetary Control Hold Released via Funds
  • Supplier Hold Released after Compliance Clear
Negative Scenarios
  • Quantity Variance Beyond Tolerance
  • Price Variance Beyond Tolerance
  • Receipt Variance (Insufficient Received Qty)
  • Acceptance / Inspection Variance
  • Invalid Account Combination
  • Distribution Total Mismatch
  • Duplicate Invoice Number/Date/Amount
  • Budgetary Control Insufficient Funds
  • Supplier Hold All Payments Flag
  • Unmatched Invoice Against Hold Policy

These are representative examples only. Expected behavior can depend on the customer's Oracle Fusion configuration, controls and security — not every Oracle configuration behaves identically.

Generated Using Your DataVault Test Data

Jarvis reads the supplier's matching tolerance configuration, budgetary control setup, and chart-of-accounts validity rules from DataVault, then generates invoice, PO, receipt, and distribution combinations expected to land on either side of each hold threshold.

Standard Library Definition

HOLD_TEST_DEF:
  Invoice = PO-Matched
  Match = 3-Way (PO, Receipt, Invoice)
  Qty_Tolerance = ±5%
  Price_Tolerance = ±3%
  Account = Valid, Active
  Budget = Sufficient
  Duplicate = None

DataVault

DataVault.AP.HoldConditions:
  QtyVariancePool: [+2%, +5%, +8%, +15%]
  PriceVariancePool: [+1%, +3%, +6%]
  AccountPool: [Valid, Inactive, Invalid-Segment, Missing-Segment]
  BudgetPool: [Sufficient, Insufficient-Soft, Insufficient-Hard]
  DuplicateSeedPool: [Unique, Exact-Duplicate, Near-Duplicate]
  SupplierControlPool: [None, HoldAllPayments, HoldUnvalidated, HoldUnmatched]

Jarvis AI Generates

HOLD-GEN-001: Qty=108 (Ordered=100, Tolerance=5%) -> Expected Hold: Qty Ord
HOLD-GEN-002: Price=$52.75 (PO Price=$50.00, Tolerance=3%) -> Expected Hold: Price
HOLD-GEN-003: Distribution Account=01-120-9999-0000-000 (Inactive) -> Expected Hold: Invalid Account
HOLD-GEN-004: Budget Available=$3,200 vs Distribution=$5,000 -> Expected Hold: Insufficient Funds
HOLD-GEN-005: Invoice Number=HOLD-INV-2001 resubmitted, same Supplier/Date/Amount -> Expected Hold: Duplicate Invoice
HOLD-GEN-006: Qty=101 (Ordered=100, Tolerance=5%) -> Expected: No Hold (within tolerance)

Customer-specific test data and AI-generated variations are not published to the Syntra Standard Test Library. They remain within the customer's controlled SyntraFlow environment and access model.

Example Test Variations

Each generated hold scenario is tagged by hold category so QA can slice the regression pack by matching, distribution, supplier, or release behavior, and confirm both the hold-application and hold-release paths are Syntra Ready.

IDVariationTypeKey DifferenceExecution
VAR-001Manual Hold Applied & ReleasedManual/ReleaseAP specialist applies and later releases a manual hold reason independent of system exceptions.Syntra Ready
VAR-002Quantity Variance Hold (Qty Ord)Matching/NegativeInvoiced quantity exceeds ordered/receipted quantity beyond the ±5% tolerance.Syntra Ready
VAR-003Price Variance HoldMatching/NegativeInvoice unit price exceeds PO price beyond the ±3% tolerance.Syntra Ready
VAR-004Receipt Variance HoldMatching/NegativeQuantity received is insufficient to support the invoiced quantity.Syntra Ready
VAR-005Invalid Account HoldDistribution/NegativeDistribution references an inactive or invalid account combination.Syntra Ready
VAR-006Distribution Variance HoldDistribution/NegativeSum of distribution lines does not equal the invoice header amount.Syntra Ready
VAR-007Duplicate Invoice HoldOther/NegativeInvoice number, date, and amount match an existing invoice for the same supplier.Syntra Ready
VAR-008Budgetary Control HoldOther/NegativeFunds check fails due to insufficient available budget on the distribution.Syntra Ready
VAR-009Supplier Hold All PaymentsOther/NegativeSupplier site flag Hold All Payments is active at invoice submission.Syntra Ready
VAR-010Matching Hold Released After Receipt CorrectionMatching/ReleaseReceipt is corrected to bring quantity within tolerance and invoice is revalidated.Syntra Ready

Automatically Expand Positive and Negative Test Coverage

Positive Testing

Jarvis generates scenarios using combinations expected to successfully complete the business process.

Valid data → Invoice Holds completes successfully

Negative Testing

Jarvis can generate scenarios designed to exercise validations, business rules and exception handling.

  • Quantity Variance Beyond Tolerance → Expected Oracle validation
  • Price Variance Beyond Tolerance → Expected Oracle validation
  • Receipt Variance (Insufficient Received Qty) → Expected Oracle validation

A negative test should not be marked as failed simply because Oracle rejects the transaction. If the expected Oracle validation occurs, the negative test has passed.

ScenarioOracle OutcomeTest Result
Invoice with 15% quantity variance submitted for validationQty Ord hold correctly applied; invoice held pending receipt correctionPASS
Distribution coded to inactive GL account combinationInvalid Account hold correctly applied; invoice blocked from accountingPASS
Manual hold released after internal review completedHold released; invoice proceeds to Validated statusPASS
Duplicate invoice number, date, and amount resubmitted for same supplierDuplicate Invoice hold correctly appliedPASS
Funds check service timeout during budgetary control validationValidation failed with an unhandled system error instead of the expected Insufficient Funds holdFAIL

Turn AI-Generated Variations into a Regression Pack

Users can select generated scenarios and group them into reusable execution packs.

AP Invoice Holds Regression Pack

  • Manual Hold Apply & Release
  • Quantity Variance (Qty Ord) Hold
  • Price Variance Hold
  • Receipt Variance Hold
  • Invalid Account Hold
  • Distribution Variance Hold
  • Duplicate Invoice Hold
  • Budgetary Control (Insufficient Funds) Hold
  • Supplier Hold All Payments
  • Held Invoice Excluded from Payment Selection
Add Selected to Regression Pack(coming soon)Run Now(coming soon)Schedule(coming soon)

Run On-Demand or Schedule Automated Batch Execution

SyntraFlow can execute selected scenarios individually or as a batch. Users can schedule regression packs according to their testing cycle.

Once scheduled, SyntraFlow executes the selected scenarios unattended and records the outcome of each test and business assertion.

Run immediatelyNightly regressionWeekly regressionBefore releaseAfter configuration changesAfter environment refreshQuarterly Oracle update testingPre-UAT validation
PackAP Invoice Holds Regression Pack
ScheduleWeekly Regression
Tests20 scenarios
ExecutionBatch Mode
Start10:00 PM
EnvironmentOracle Fusion TEST
StatusScheduled

Illustrative example — not a live schedule.

Review Results Across the Entire Test Pack

Users can drill from the regression pack into a scenario, its business steps, the underlying automation actions, and the evidence captured for each.

Illustrative example data — not actual production metrics.

42
Total Scenarios
39
Passed
1
Failed
2
Exceptions
22
Positive Tests
20
Negative Tests
42
Business Assertions

Regression Pack → Scenario → Business Step → Automation Action → Evidence

From Business Scenario to Execution Evidence

Business teams get readable test documentation; automation teams retain detailed execution traceability.

Standard Business Scenario
AI-Generated Variation
Regression Pack
Business Test Step
Automation Actions
Business Assertion
Screenshot / Evidence
Execution Result

Meet Jarvis — SyntraFlow's AI Testing Engine

Jarvis extends the Syntra Standard Test Library by analysing the business scenario, available DataVault test data and expected business outcomes to generate additional test coverage for the customer's environment.

Generate
Positive and negative variations.
Parameterize
Use relevant test data from DataVault.
Assemble
Build reusable regression packs.
Execute
Run scenarios autonomously.
Schedule
Execute unattended test batches.
Validate
Evaluate expected business outcomes.

How SyntraFlow Automates This Test

The Standard Test defines the scenario; DataVault, Jarvis AI and SyntraFlow's execution engine take it from a single reusable business definition to executed, evidenced regression coverage.

Standard Library — Invoice Holds, 16 Business Steps
DataVault — Customer-Specific Test Data
Jarvis AI — Generate Positive + Negative Variations
Regression Pack — Select Relevant Coverage
SyntraFlow Execution — Each Variation
Detailed UI Actions
Business Assertions
Evidence
PASS / FAIL

Business Step → Underlying UI Actions

Business Step
Apply manual hold on invoice header pending internal review
May internally include
Open Manage Invoices -> Search Invoice HOLD-INV-2001 -> Click Actions > Hold -> Select Hold Name 'Hold for Investigation' -> Enter Hold Reason -> Save and Close
Business Step
Correct invalid distribution account and revalidate invoice
May internally include
Open Invoice -> Navigate to Distributions tab -> Update Account field to valid combination 01-000-7420-1000-000 -> Save -> Click Actions > Validate -> Confirm holds cleared

What SyntraFlow Captures Per Run

Parameterised input valuesReusable navigationAutomation action traceScreenshots / evidence captureExecution timingPass / fail statusBusiness assertionsEnvironment-independent test data

Action Status vs. Business Validation

A successful UI interaction does not automatically prove the business outcome — this is illustrative of how SyntraFlow separates action success from business validation; it does not reflect a specific live execution.

StepAction StatusBusiness Validation
Apply manual hold on invoice headerPassPass
Submit invoice with 15% quantity variance for validationPassPass
Attempt payment selection while invoice is heldPassPass
Correct invalid account and revalidate invoicePassPass
Funds check service call during budgetary control validationFail

Related Oracle Fusion AP Invoice Test Cases

Part of the same Procure-to-Pay invoice lifecycle. Linked cards are live; the rest are on the Syntra Standard Test Library roadmap.

Turn This Standard Test into Your Oracle Regression Suite

Start with the Syntra Standard Invoice Holds test, use DataVault to provide environment-specific test data, let Jarvis generate additional positive and negative variations, and execute the resulting regression pack automatically with SyntraFlow.

Use This Oracle Fusion Test Case

Download Test Case

Full objective, preconditions, test data and steps.

Add to Test Library

Save to your SyntraFlow regression suite.

Coming soon

Automate with SyntraFlow

Run this script against your own tenant today.

Frequently Asked Questions

What triggers an invoice hold in Oracle Fusion Payables?
Holds are triggered either manually by an AP user, or automatically during the Validate action when matching tolerances are exceeded, a distribution references an invalid account, a duplicate invoice is detected, budgetary control funds are insufficient, or a supplier-level control is active.
What's the difference between a manual hold and a system-applied hold?
A manual hold is placed by an authorized user for a business reason unrelated to system checks, such as pending internal review, and must be released manually. A system-applied hold results from a specific validation, matching, or budgetary exception and, for many hold types, releases automatically once the underlying condition is corrected and the invoice is revalidated.
How are matching holds resolved in Oracle Fusion?
Matching holds such as Qty Ord, Price, and Rate Variance are resolved by correcting the source of the discrepancy, typically the purchase order, receipt, or invoice line, then rerunning the Validate action. The hold clears automatically if the corrected values fall within configured tolerance.
What is a duplicate invoice hold and how is it resolved?
Oracle Fusion applies a Duplicate Invoice hold when a supplier invoice number, invoice date, and invoice amount match an existing invoice for that supplier. It never clears automatically; AP must confirm the invoice is genuinely distinct and correct the identifying data, or cancel the true duplicate.
Does a held invoice block accounting and payment?
Yes. An invoice with any active hold is excluded from Create Accounting and from Create Payment Process Request selection until every hold on the invoice has been released.
How does Syntra test hold resolution, not just hold application?
Every hold scenario in this test pack pairs a hold-creation step with a matching resolution step: correcting the account, receipt, budget, or duplicate condition and revalidating the invoice. The business assertion passes only when the expected hold is applied correctly and, separately, when it releases correctly after the exception is resolved.
Download Test Case