AP-01 EBS R12.x Accounts Payable Tier 2 Data Fix

AP Invoice Validation
Diagnostic Script

Exhaustive diagnosis of every condition that causes Oracle EBS AP Invoice Validation to fail. Runs 47+ checks across header integrity, distributions, PO matching, tax, holds, currency, and accounting — then guides you to the fix.

PlatformOracle EBS R12.x
Input RequiredInvoice ID or Number
Tables Examined12
Diagnostic Checks47+
Fix Options5 Guided Fixes
Backup CreatedYes — Automatic

Why Invoice Validation Holds Stop Your Business

When the Oracle EBS Accounts Payable team reports that invoices are "stuck in validation" or that holds "won't release," the situation is almost always more complex than it appears on the surface. The Invoice Validation concurrent program — submitted either online from the Invoice Workbench or in batch via the Payables Invoice Validation Program — evaluates every invoice against dozens of conditions simultaneously. When it finds an exception, it writes a record to AP_HOLDS_ALL and sets the invoice's VALIDATION_STATUS to NEEDS REVALIDATION. The invoice cannot be paid, cannot be posted to General Ledger, and cannot be included in the period-close reconciliation until every blocking hold is resolved. In a high-volume AP environment, a single COA cleanup event or a batch of mismatched purchase orders can generate hundreds of holds overnight.

What makes this operationally difficult — and what standard Oracle documentation does not clearly address — is that not all holds are the same kind of problem, and each kind requires a fundamentally different resolution path. An ACCOUNT INVALID hold fires because a distribution's code combination has been disabled or end-dated in GL_CODE_COMBINATIONS, most commonly after a Finance team runs a Chart of Accounts cleanup without cross-referencing open AP transactions. A QTY ORD or QUANTITY RECEIVED hold fires because the billed quantity exceeds what was ordered or received on the matched purchase order, requiring either a receiving transaction or a PO amendment before the hold can be released. A PRICE hold fires when the invoice unit price breaches the tolerance defined in AP_PO_MATCHING_CONTROLS. A workflow approval hold, placed by the Invoice Approval Workflow in WF_ITEM_ACTIVITY_STATUSES, has its own release path through the workflow engine — not through the validation program at all. When an AP manager says "I released the hold but it came back," it is usually because the underlying condition was not actually corrected, or because two different hold types are interacting in a way the standard UI does not make visible.

The business impact extends well beyond the AP team. Invoices in NEEDS REVALIDATION status block the Payables Accounting Process from creating subledger accounting entries in XLA_EVENTS. Without those entries, the invoices cannot transfer to General Ledger. Without the GL transfer, the AP-to-GL reconciliation is out of balance. Without that reconciliation, the period cannot close — and every downstream module that depends on a closed AP period is affected: Fixed Assets mass additions, Project billing, Purchasing accrual reporting, and the corporate consolidation. A cluster of unresolved invoice holds that appears to be an AP team operational issue is frequently the direct cause of a missed period-close deadline at the controller level.

AP-01 was built specifically for this scenario. It runs a structured investigation across all 47+ validation conditions, categorizes every hold by type and root cause, identifies which holds are system-applied versus user-placed versus workflow-generated, detects repeat hold patterns that signal recurring data quality problems, and produces a prioritized action list. More importantly, it identifies which conditions require a guided data fix, which can be resolved through Oracle's standard front-end forms, and which require an Oracle Support service request — before any action is taken. The diagnostic output becomes the foundation for both the immediate resolution and the knowledge base article that prevents the same condition from being treated as a new incident next quarter.

What This Script Diagnoses

AP-01 runs a systematic investigation of every condition the Oracle AP Validation engine checks — and many conditions it does not surface clearly. Here is what it covers.

Invoice Header Integrity
Vendor and vendor site active status. Operating unit validity. Invoice currency. Invoice date in an open or future-enterable period in GL_PERIOD_STATUSES. GL date validity. Payment terms and pay group. Invoice type. Days in NEEDS REVALIDATION status.
Amount Reconciliation
Invoice header amount vs. sum of line amounts in AP_INVOICE_LINES_ALL. Line amounts vs. sum of distributions in AP_INVOICE_DISTRIBUTIONS_ALL. Lines without any distributions. Distributions with NULL CCID. Rounding differences exceeding tolerance.
Distribution Account Validation
Every distribution CCID checked against GL_CODE_COMBINATIONS: enabled flag, effective date range, detail vs. summary account type, posting allowed flag, all segments populated. Disabled accounts flagged with the date they were disabled and the best available replacement.
Tax Validation
Tax lines present where required. Tax code existence and active status in ZX_RATES_B. Tax regime validity. Self-assessed tax balance. Withholding tax applicability and group active status. Tax amount calculation reasonableness.
PO Matching Validation
Referenced PO exists and is approved. PO line and shipment open status. Match type: 2-way, 3-way, or 4-way. Quantity billed vs. quantity received vs. quantity ordered with tolerance analysis. Receipt existence for 3-way/4-way. AP_PO_MATCHING_CONTROLS tolerance breach detection.
Holds Analysis
All holds in AP_HOLDS_ALL — system, user, and workflow holds. Each hold: type, reason, who placed it, when placed, released status. Root cause for each hold type with resolution path. Repeat hold detection — same hold placed and released multiple times on the same invoice.
Currency & Exchange Rate
For foreign currency invoices: exchange rate presence, type validity, date completeness, and rate variance vs. GL_DAILY_RATES within tolerance. Functional currency invoices — confirms no unnecessary rate fields populated.
Accounting Pre-Check
SLA accounting status — whether Create Accounting has been run, is in error, or has not been attempted. XLA event existence and status in XLA_EVENTS. XLA header status in XLA_AE_HEADERS. Orphaned event records blocking accounting creation.

What the Report Looks Like

Representative output for an invoice with two issues — a disabled CCID on a distribution and a 3-way match quantity shortfall. The script identifies both, explains the root cause, and generates the fix.

AP-01 — Invoice Validation Diagnostic Report
══════════════════════════════════════════════════════════════
  ORACLE EBS R12 — AP INVOICE VALIDATION DIAGNOSTIC
══════════════════════════════════════════════════════════════
  Invoice ID     : 1002345
  Invoice Number : INV-2026-00892
  Vendor         : Acme Corporation (Vendor #: 10045)
  Operating Unit : US Operations OU
  Case Number    : 784528
  Report Date    : 20-FEB-2026 14:32:07
══════════════════════════════════════════════════════════════

[ SECTION 1 — INVOICE HEADER ]           STATUS: ⚠ WARNING
────────────────────────────────────────────────────────────
  Vendor Active         : YES ✓
  Vendor Site Active    : YES ✓
  Invoice Date          : 15-FEB-2026 ✓
  GL Date               : 15-FEB-2026 ✓
  Period Status         : OPEN ✓
  Invoice Currency      : USD ✓
  Invoice Amount        : 15,250.00
  Payment Terms         : NET 30 ✓
  ⚠ WARNING: Invoice in NEEDS REVALIDATION for 14 days

[ SECTION 2 — AMOUNT RECONCILIATION ]    STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  Invoice Header Amount : 15,250.00 ✓
  Sum of Line Amounts   : 15,250.00 ✓  MATCH
  Sum of Dist Amounts   : 15,250.00 ✓  MATCH
  Lines Without Dists   : 0 ✓

[ SECTION 3 — DISTRIBUTIONS / ACCOUNTS ] STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  Total Distributions   : 3
  Distribution Line 1   : CCID 77210  01-500-6100-0000  ACTIVE ✓
  Distribution Line 2   : CCID 88432  01-500-7810-0000  DISABLED ✗
  Distribution Line 3   : CCID 77215  01-500-6200-0000  ACTIVE ✓
  ✗ FAIL: Distribution #2 — CCID 88432 DISABLED as of 01-JAN-2026
           Hold Placed: ACCOUNT INVALID (System Hold)
           Tier 2 Fix: Remap to active CCID — see Phase 4 below

[ SECTION 4 — TAX VALIDATION ]           STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  Tax Code              : CA-SALES-TAX — ACTIVE ✓
  Tax Amount            : 1,250.00 ✓

[ SECTION 5 — PO MATCHING ]              STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  Match Type            : 3-WAY
  PO Number             : PO-2026-04412
  PO Status             : APPROVED ✓
  Quantity Ordered      : 100.00
  Quantity Received     : 85.00
  Quantity Billed       : 100.00
  ✗ FAIL: Billed qty (100) exceeds received qty (85)
           Tolerance: 0%  |  Shortfall: 15 units
           Hold: QUANTITY RECEIVED (System Hold)
           Fix: Receive 15 units OR reduce invoice qty to 85

[ SECTION 6 — HOLDS ]                    STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  Total Active Holds    : 2 UNRESOLVED
  ACCOUNT INVALID    — System Hold — 20-FEB-2026 — NOT RELEASED
  QUANTITY RECEIVED  — System Hold — 20-FEB-2026 — NOT RELEASED

[ SECTION 7 — CURRENCY ]                 STATUS: ✓ PASS
[ SECTION 8 — ACCOUNTING PRE-CHECK ]    STATUS: ⚠ BLOCKED
────────────────────────────────────────────────────────────
  ⚠ Cannot account until all holds resolved and validation passes
[ SECTION 9 — DUPLICATES ]               STATUS: ✓ PASS

════════════════════════════════════════════════════════════
  DIAGNOSTIC SUMMARY
════════════════════════════════════════════════════════════
  Total Checks : 47  |  PASSED: 38  |  WARN: 3  |  FAILED: 6

  VALIDATION WILL FAIL — 2 blocking holds must be resolved

  RECOMMENDED ACTIONS (priority order):
  1. Update Distribution #2 CCID 88432 → active replacement
     (resolves: ACCOUNT INVALID hold)
  2. Receive 15 units on PO-2026-04412 Line 1, or reduce qty
     (resolves: QUANTITY RECEIVED hold)
  3. Re-run AP Invoice Validation after both fixes

════════════════════════════════════════════════════════════
  Backup Created  : CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_784528 ✓
  Registry ID     : 1042
  Rollback Script : Generated and stored ✓
  KB Article      : KB-AP-784528-001 generated ✓
════════════════════════════════════════════════════════════

The Four-Layer Architecture in AP-01

1
Diagnostic Engine
Runs all 47+ checks. Every condition the Oracle AP Validation engine checks — and many it doesn't surface clearly — is examined with a PASS, WARN, or FAIL result and root cause explanation.
2
Backup Created
Before any data is touched, CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_784528 and AP_HOLDS_ALL_784528 are created and row counts verified. Abort if backup fails.
3
Guided Data Fix
Tiered fix options with full before/after state display. DML includes safety guards — will not execute if already posted or an accounting event exists. Explicit COMMIT required from consultant.
4
KB Article Generated
Complete knowledge base article auto-generated from execution output — tags, tables, Oracle Doc IDs, prevention recommendations. Upload directly to your knowledge base. Zero manual documentation.

Backup & Rollback for AP-01

Every table touched by AP-01 data fixes is backed up before the first UPDATE fires. Backup is verified by row count. One script restores the original state if needed.

Tables Backed Up — AP-01

CONS_BACKUP.AP_INVOICES_ALL_<case#> CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_<case#> CONS_BACKUP.AP_HOLDS_ALL_<case#> CONS_BACKUP.AP_INVOICE_LINES_ALL_<case#>

Backup happens before any DML. Script aborts if backup creation fails.

Pre-Flight Safety Guards

POSTED_FLAG = 'N'Required ✓
ACCOUNTING_EVENT_ID IS NULLRequired ✓
No active session lockChecked ✓
CONS_BACKUP schema accessibleVerified ✓

FIX_BACKUP_REGISTRY Entry

REGISTRY_ID1042
CASE_NUMBER784528
SOURCE_TABLEAP_INVOICE_DISTRIBUTIONS_ALL
ROWS_BACKED_UP3
BACKUP_VERIFIEDYES ✓
ROLLBACK_SQLStored as CLOB
STATUSACTIVE
ENVIRONMENTPRODUCTION

Auto-Generated Knowledge Base Article

This article is produced automatically at the end of every AP-01 execution — written from actual run output. No manual documentation required.

KB-AP-784528-001 · Script: AP-01
ACCOUNT INVALID Hold — Disabled CCID on AP Invoice Distribution
AP Invoice stuck in NEEDS REVALIDATION status. System hold ACCOUNT INVALID visible in Invoice Workbench Holds tab. Invoice blocked from payment processing.
Account 01-500-7810-0000 (CCID 88432) was end-dated 01-JAN-2026 during a GL Chart of Accounts cleanup. AP Invoice Validation validates all distribution CCIDs against GL_CODE_COMBINATIONS.ENABLED_FLAG at validation time — not at entry time — so invoices entered before the cleanup fail on the next validation run.
AP_INVOICE_DISTRIBUTIONS_ALL — DIST_CODE_COMBINATION_ID (Dist ID: 556712)
AP_HOLDS_ALL — RELEASE_LOOKUP_CODE, RELEASE_REASON (Invoice ID: 1002345)
CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_784528 — 3 rows verified ✓
CONS_BACKUP.AP_HOLDS_ALL_784528 — 2 rows verified ✓ | Registry ID: 1042
CCID remapped from 88432 (disabled) to 99105 (01-500-7820-0000, active). ACCOUNT INVALID hold released. Invoice revalidated: APPROVED. Authorized by GL Controller.
Before disabling GL accounts in a COA cleanup, cross-reference against AP_INVOICE_DISTRIBUTIONS_ALL (unposted), PO_DISTRIBUTIONS_ALL (open), FA_DISTRIBUTION_HISTORY (active assets), and PA_EXPENDITURE_ITEMS_ALL (uncosted items) to surface open transactions still referencing target accounts.
APInvoice ValidationACCOUNT INVALIDCCIDGL_CODE_COMBINATIONSHoldsPeriod CloseEBS R12.2

Tables & Views Examined

Table / ViewSchemaPurpose in Diagnostic
AP_INVOICES_ALLAPInvoice header — status, amounts, dates, vendor, currency, payment terms
AP_INVOICE_LINES_ALLAPInvoice lines — amounts, tax lines, line types, PO references
AP_INVOICE_DISTRIBUTIONS_ALLAPDistributions — CCID, amounts, posted flags, accounting event IDs
AP_HOLDS_ALLAPAll holds — type, reason, placed by, placed date, release status
GL_CODE_COMBINATIONSGLCCID validation — enabled flag, effective dates, account type
GL_PERIOD_STATUSESGLPeriod open/closed status for invoice and GL dates
PO_HEADERS_ALLPOReferenced PO approval status and document type
PO_LINE_LOCATIONS_ALLPOShipment quantities, receipt required, match type, open status
RCV_TRANSACTIONSPOReceipt quantities for 3-way and 4-way match validation
ZX_RATES_BZXTax code active status and regime validity
XLA_EVENTSXLAAccounting event status — processed, error, unprocessed
AP_SUPPLIERS / AP_SUPPLIER_SITES_ALLAPVendor and site active status, payment method, holds

Most Common Issues Detected by AP-01

Hold Type

ACCOUNT INVALID

Distribution references a disabled, end-dated, or summary CCID. Most common after GL Chart of Accounts cleanup. AP-01 identifies the exact CCID, the disable date, and provides the remap fix with authorized replacement.

Hold Type

QUANTITY RECEIVED

Billed quantity exceeds received quantity on a 3-way or 4-way matched invoice. AP-01 shows exact quantities ordered, received, and billed with the shortfall amount and both resolution options.

Hold Type

PRICE

Unit price on the invoice exceeds the PO line price beyond tolerance. AP-01 calculates the exact variance, the tolerance threshold, and identifies whether a PO amendment or price correction is needed.

Period Issue

Invalid GL Date

Invoice GL date falls in a closed period. Common when invoices are entered after period close without updating the GL date. AP-01 identifies the next open period and generates the date correction fix.

Tax Issue

Missing Tax Lines

Invoice marked as taxable but no tax lines present, or tax lines exist but the tax code has been inactivated in ZX_RATES_B. AP-01 identifies the tax code status and the applicable active rate.

Amount Issue

Distribution Mismatch

Sum of distribution amounts does not equal the invoice line amount. Often caused by manual edits leaving a rounding difference. AP-01 identifies the exact discrepancy and the correcting entry.

Decision Framework

How Every Fix Decision Is Made

Before any data is modified in a production Oracle database, AP-01 walks through a four-stage decision process. Every condition identified by the diagnostic maps to exactly one resolution path.

1
First Option — Always
Can the front end fix this?

Oracle's own forms and concurrent programs are always the first option. Enabling a disabled code combination in the GL Accounting Flexfield, releasing a supplier hold through the Supplier form, correcting a PO quantity and rerunning validation — these are functional fixes that require no DML and carry no database risk. AP-01 identifies these conditions explicitly and states the exact front-end navigation path. If the fix can be made through Oracle's own UI, the script stops there.

✓ Functional Fix
2
When Front End Is Not Available
Is a direct data fix safe to apply?

When the front-end path is unavailable or would require an unacceptable volume of manual steps, a direct fix is evaluated against explicit criteria. All of the following must be true before proceeding:

The fix mirrors exactly what Oracle's own code would have done if the underlying condition were corrected
All dependent tables have been identified and will be updated in the same transaction
The fix is fully reversible — a single INSERT from the backup table restores the original state
The environment patch level has been confirmed against the fix logic version
⚡ Direct Fix
3
Hard Stops — No Exceptions
Does this require Oracle Support?

Certain table areas are never touched directly, regardless of how well the underlying structure is understood. AP-01 flags these conditions and generates the Service Request documentation:

XLA subledger tablesXLA_EVENTS, XLA_AE_HEADERS, XLA_AE_LINES — incorrect changes corrupt the subledger audit trail in ways that are undetectable until period close fails or an auditor requests a reconciliation
Workflow engine tablesWF_ITEMS, WF_ITEM_ACTIVITY_STATUSES — Oracle Support has specific recovery procedures; ad-hoc DML can corrupt the workflow engine state instance-wide
Recurring conditions after a fix — if the same condition recurs after being corrected, it indicates a code defect, not a data error. Documented and submitted as a Service Request with a reproducible test case.
⚠ Oracle Support
4
For All Approved Direct Fixes
Backup → Execute → Verify → Document

A timestamped backup table is created and row-count verified before the first UPDATE fires. Explicit parameter confirmation is required — the script will not self-execute. After execution, a verification query confirms the expected state. A complete change record — rows affected, before and after values, database username, timestamp — is written to the FIX_BACKUP_REGISTRY and becomes the primary artifact in the knowledge base entry for this incident.

📋 Documented
Condition Identified Resolution Path Notes
ACCOUNT INVALID — disabled or end-dated CCID on distribution Functional First Re-enable the account in GL → Accounting Flexfield if the account is valid and simply disabled. If permanently retired, AP-01 identifies the correct replacement CCID and applies a direct fix with full backup and explicit confirmation.
QUANTITY RECEIVED / QTY ORD — billed quantity exceeds ordered or received Functional First Receive the remaining quantity in Oracle Receiving, or amend the PO shipment. AP-01 shows exact quantities ordered, received, and billed with the shortfall and both resolution options.
PRICE hold — unit price exceeds PO price beyond tolerance Functional First Buyer amends the PO price, or AP creates a price correction invoice. AP-01 calculates the exact variance, the tolerance threshold from AP_PO_MATCHING_CONTROLS, and identifies the appropriate path.
Invalid GL date — falls in a closed period Direct Fix AP-01 identifies the next open period, generates the GL date update against AP_INVOICES_ALL with full backup, and releases the period-related hold. Pre-flight confirms invoice is unposted and no XLA event is active.
Distribution amount mismatch — sum of distributions ≠ line amount Direct Fix AP-01 calculates the exact rounding or entry difference, generates a correcting distribution entry with full backup. AP_INVOICE_DISTRIBUTIONS_ALL and AP_INVOICE_LINES_ALL updated in a single transaction.
Tax code inactive in ZX_RATES_B Functional First Tax administrator reactivates the rate in Oracle E-Business Tax, or updates the invoice to the current active rate via Invoice Workbench. AP-01 identifies the applicable active rate for the invoice date and regime.
XLA event in ERROR status — accounting blocked Oracle Support XLA tables are never modified directly. Error events are documented, reproduced on a test instance, and submitted as a Service Request. Direct DML on XLA tables can break the subledger audit trail in ways that are undetectable until an external audit.
Workflow approval hold — stuck in WF_ITEM_ACTIVITY_STATUSES Oracle Support Workflow engine state is never modified directly. Oracle Support has specific recovery procedures for stuck WF items. Ad-hoc DML on WF tables can corrupt the workflow engine for every workflow in the instance, not just the affected invoice.
Safeguards

Nothing Executes Without a Safety Net

Before any data fix runs, AP-01 verifies a set of pre-flight conditions and creates a complete, verified backup. If any check fails, the script aborts. There is no partial execution path.

Pre-Flight Checks — All Must Pass
POSTED_FLAG = 'N'
Will not modify a posted invoice under any circumstances
ACCOUNTING_EVENT_ID IS NULL
Will not modify rows with an active or pending XLA accounting event
No active database lock
Checks V$LOCK — will not proceed if another session holds a lock on target rows
CONS_BACKUP schema writable
Backup schema must be accessible before any DML is permitted
Explicit confirmation required
Script outputs a confirmation prompt — DML does not execute until consultant enters the case number as the execution parameter
Backup Methodology

Before the first UPDATE fires, AP-01 creates a complete copy of every row to be modified. Tables are named CONS_BACKUP.<TABLE>_<CASE#> and persist permanently after execution — they are never dropped.

CONS_BACKUP.AP_INVOICES_ALL_<case#>
CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_<case#>
CONS_BACKUP.AP_HOLDS_ALL_<case#>
CONS_BACKUP.AP_INVOICE_LINES_ALL_<case#>
Row count verified after backup creation. If backup fails for any reason — insufficient privileges, disk space, schema unavailable — the script aborts without executing any DML. Rollback is a single INSERT from the backup table. No reconstruction required.
AP-01 — Pre-Flight & Backup Verification
════════════════════════════════════════════════════════════
  PRE-FLIGHT SAFETY CHECK
════════════════════════════════════════════════════════════
  Invoice ID         : 1002345
  POSTED_FLAG        : N  ✓  Safe to proceed
  ACCOUNTING_EVENT_ID: NULL  ✓  No active event
  Session Lock Check : No locks detected  ✓
  CONS_BACKUP Schema : Accessible  ✓
────────────────────────────────────────────────────────────
  ALL PRE-FLIGHT CHECKS PASSED — Ready to create backup
════════════════════════════════════════════════════════════
  BACKUP CREATION
════════════════════════════════════════════════════════════
  Creating : CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_784528
  Rows     : 3 rows backed up  ✓  Verified
  Creating : CONS_BACKUP.AP_HOLDS_ALL_784528
  Rows     : 2 rows backed up  ✓  Verified
  Registry : FIX_BACKUP_REGISTRY — ID 1042 created  ✓
────────────────────────────────────────────────────────────
  BACKUP COMPLETE — Rollback available via single INSERT
════════════════════════════════════════════════════════════
  CONFIRMATION REQUIRED BEFORE DML EXECUTES
  Enter case number to confirm : 784528
  Confirmed. Executing fix...
════════════════════════════════════════════════════════════
Knowledge Base

Every Execution Produces a Record

The knowledge base article is generated automatically from AP-01's execution output. No manual documentation required. The article becomes the institutional record — for the team, for auditors, and for every future engagement in the same environment.

Zero Manual Effort
Every field — environment, tables, before/after values, backup reference, root cause, prevention — is generated from actual execution output. The consultant uploads the article. Nothing is written by hand.
Patterns Surface Over Time
The first engagement produces findings. The third produces patterns. A supplier generating repeated PRICE holds, a period-end spike in ACCOUNT INVALID conditions — these are invisible as individual incidents and obvious as knowledge base trends.
Survives Staff Turnover
The knowledge base is an institutional record of the Oracle environment — not personal knowledge held by an individual. A new AP manager, a new DBA, or an external auditor can read exactly what happened, what was done, and what prevents recurrence.
KB-AP-784528-001 · Script: AP-01
ACCOUNT INVALID Hold — Disabled CCID on AP Invoice Distribution
EBS R12.2.10 · Accounts Payable
● RESOLVED
Symptom
Invoice stuck in NEEDS REVALIDATION. System hold ACCOUNT INVALID visible in Invoice Workbench Holds tab. Invoice blocked from payment processing and GL transfer.
Root Cause
Account 01-500-7810-0000 (CCID 88432) end-dated 01-JAN-2026 during GL Chart of Accounts cleanup. AP Invoice Validation validates all distribution CCIDs against GL_CODE_COMBINATIONS.ENABLED_FLAG at validation time — not at entry time. Invoices entered before the cleanup fail on the next validation run.
Tables Affected
AP_INVOICE_DISTRIBUTIONS_ALL — DIST_CODE_COMBINATION_ID (Dist ID: 556712)
AP_HOLDS_ALL — RELEASE_LOOKUP_CODE, RELEASE_REASON (Invoice ID: 1002345)
Fix Applied
CCID remapped 88432 → 99105 (01-500-7820-0000, active). ACCOUNT INVALID hold released. Invoice revalidated: APPROVED. Authorized: GL Controller, 20-FEB-2026.
Backup Ref
CONS_BACKUP.AP_INVOICE_DISTRIBUTIONS_ALL_784528 — 3 rows ✓
CONS_BACKUP.AP_HOLDS_ALL_784528 — 2 rows ✓ · Registry ID: 1042
Prevention
Before disabling GL accounts, run GL-03 to cross-reference open transactions in AP_INVOICE_DISTRIBUTIONS_ALL, PO_DISTRIBUTIONS_ALL, FA_DISTRIBUTION_HISTORY, and PA_EXPENDITURE_ITEMS_ALL. 3 additional invoices reference CCID 88432 — identified and corrected in same session.
Tags
AP Invoice Validation ACCOUNT INVALID CCID GL_CODE_COMBINATIONS Holds EBS R12.2

Oracle Documentation References

References the Oracle public documentation for this diagnostic area. These links open directly on docs.oracle.com.

R12 Guide (PDF)Title & ChapterDetail
120apug.pdfOracle Payables User's Guide — Chapter 3: Invoices — ValidationCh. 3: Validation (pp. 3-168 to 3-187): Invoice Validation Program, holds applied by validation, and hold release procedures
120apug.pdfOracle Payables User's Guide — Appendix C: Oracle Payables HoldsAppendix C: Complete hold codes and release names reference for ACCOUNT INVALID, matching holds, tax holds
120apug.pdfOracle Payables User's Guide — Ch. 3: Payables Open Interface Importpp. 3-139 to 3-151: Open interface import troubleshooting and validation errors
120apug.pdfOracle Payables User's Guide — Ch. 8: AccountingCh. 8: Accounting entries created during validation and the Payables Accounting Process

Ready to Resolve This in Your Environment?

AP-01 is one of 65 diagnostic scripts covering every major Oracle EBS and Fusion module. William A. Green Consulting runs the script in your environment, applies guided data fixes, and builds the knowledge base that prevents the same issues from recurring.

Schedule a Discovery Call → ← View All 65 Scripts

See this script run autonomously — Oracle AI Platform →