{
  "test_id": "ORCL.P2P.AP.INV.CREATE.POMATCH",
  "scenario_name": "Create PO-Matched Invoice",
  "application": "Oracle Fusion Cloud",
  "product": "Financials",
  "module": "Accounts Payable",
  "process": "Invoice Processing",
  "business_flow": "Procure-to-Pay",
  "scenario_type": "Positive / Functional",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/financials/accounts-payable/invoice-processing/create-po-matched-invoice/",
  "objective": {
    "intro": "Validate creation of a supplier invoice matched against an eligible Oracle Procurement purchase order and confirm that the invoice, PO information, quantities, amounts and resulting distributions are processed according to the configured matching rules.",
    "confirms": [
      "Invoice header captures the correct supplier, PO number, and match type reflecting the PO schedule's configured Match Approval Level (2-way, 3-way, or 4-way)",
      "Invoice line(s) correctly reference the matched PO number, PO line, and PO schedule/distribution",
      "Quantity invoiced does not exceed PO quantity ordered (or receipt/acceptance quantity for 3-way/4-way) beyond the configured Quantity Ordered Tolerance %",
      "Unit price on the invoice line matches the PO price within the configured Price Tolerance %",
      "Invoice distributions inherit charge accounts from the matched PO distribution(s), splitting or prorating correctly when a PO schedule has multiple distributions",
      "Invoice amount reconciles to the matched PO line/distribution amount for the quantity being invoiced",
      "Match results populate correctly in the Payables invoice workbench, including Matched Amount and remaining PO Quantity/Amount Available",
      "Partial-quantity matches leave the correct remaining open quantity and amount on the PO for future invoicing",
      "Matching status feeds correctly into downstream Payables Validation so match-related holds trigger only when tolerances are genuinely exceeded"
    ],
    "scope_note": "This test does not cover Payables Validation hold resolution workflow, invoice approval routing, invoice accounting distribution posting, or payment processing \u2014 those are validated in separate scenarios in this cluster."
  },
  "preconditions": [
    "An approved PO exists in Oracle Procurement with status Open and is not fully invoiced or closed for invoicing",
    "PO schedule Match Approval Level is configured as 2-Way, 3-Way, or 4-Way per the scenario under test",
    "For 3-way/4-way matching, a receipt (and inspection/acceptance transaction for 4-way) exists with sufficient received/accepted quantity",
    "Invoice Tolerance template is configured in Manage Invoice Options for the Business Unit, including Quantity Ordered Tolerance % and Price Tolerance %",
    "Supplier and supplier site entered on the invoice match the supplier/site on the PO",
    "Invoice Business Unit, ledger, and currency align with the PO's procurement Business Unit",
    "User has the Accounts Payable Invoice Entry and Match Purchase Order Fusion privileges",
    "PO distributions reference valid, active (non-end-dated) charge accounts",
    "Test data is prepared for full-quantity, partial-quantity, multi-line, and multi-distribution PO scenarios"
  ],
  "test_data": [
    {
      "field": "PO Number",
      "example": "PO-100482"
    },
    {
      "field": "PO Line Number",
      "example": "1"
    },
    {
      "field": "PO Schedule Number",
      "example": "1"
    },
    {
      "field": "Match Approval Level",
      "example": "3-Way"
    },
    {
      "field": "Supplier",
      "example": "Apex Industrial Supply Co."
    },
    {
      "field": "Supplier Site",
      "example": "APEX-US-001"
    },
    {
      "field": "Business Unit",
      "example": "US1 Business Unit"
    },
    {
      "field": "Quantity Ordered (PO)",
      "example": "500 EA"
    },
    {
      "field": "Quantity Invoiced",
      "example": "500 EA"
    },
    {
      "field": "Unit Price (PO)",
      "example": "$42.50"
    },
    {
      "field": "Invoice Amount",
      "example": "$21,250.00"
    },
    {
      "field": "Price Tolerance %",
      "example": "5%"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Create invoice header",
      "action": "Create a new standard invoice record for the supplier, selecting the Business Unit and supplier site tied to the target PO",
      "test_data": "Supplier: Apex Industrial Supply Co.; Site: APEX-US-001",
      "expected_result": "Invoice header is created in Incomplete status with supplier defaults populated",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Enter invoice number, date, and PO reference",
      "action": "Enter the supplier invoice number, invoice date, and specify the PO number to match against",
      "test_data": "Invoice Number: INV-30219; PO Number: PO-100482",
      "expected_result": "System confirms the referenced PO exists, is Open, and is approved for matching",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Enter expected invoice amount",
      "action": "Enter the total invoice amount expected from the matched PO line(s)",
      "test_data": "Invoice Amount: $21,250.00",
      "expected_result": "Header amount is recorded and available for reconciliation against matched lines",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Invoke Match to PO action",
      "action": "From the invoice Lines tab, select Match and search for the PO to be matched",
      "test_data": "PO Number: PO-100482",
      "expected_result": "Match to Purchase Order window opens and displays the eligible PO schedules and lines",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Select PO line and schedule to match",
      "action": "Select the specific PO line and schedule to match the invoice against",
      "test_data": "PO Line 1, Schedule 1",
      "expected_result": "Item description, unit of measure, and PO unit price pre-populate from the selected PO line",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Enter quantity to invoice",
      "action": "Enter the quantity being invoiced against the selected PO line",
      "test_data": "Quantity Invoiced: 500 EA",
      "expected_result": "System calculates line amount as quantity multiplied by PO unit price",
      "validation_type": "action"
    },
    {
      "step_number": 7,
      "step_name": "Review invoice unit price against PO price",
      "action": "Review the invoice unit price defaulted from the PO and confirm no unauthorized override outside tolerance",
      "test_data": "Unit Price: $42.50",
      "expected_result": "Price is accepted as equal to, or within tolerance of, the PO price",
      "validation_type": "action",
      "note": "Any manual price change is re-checked against Price Tolerance % at validation"
    },
    {
      "step_number": 8,
      "step_name": "Apply match and generate invoice line",
      "action": "Confirm the match to generate the invoice distribution line tied to the PO",
      "test_data": "",
      "expected_result": "Invoice line is created referencing the PO number, line, schedule, and distribution",
      "validation_type": "action"
    },
    {
      "step_number": 9,
      "step_name": "Review auto-populated distributions",
      "action": "Navigate to the Distributions tab and review the charge accounts inherited from the PO distribution(s)",
      "test_data": "",
      "expected_result": "Distribution lines mirror the matched PO distribution accounts and split percentages",
      "validation_type": "action"
    },
    {
      "step_number": 10,
      "step_name": "Match additional PO lines where applicable",
      "action": "For multi-line PO invoices, repeat the match action selecting the next eligible PO line",
      "test_data": "PO Line 2",
      "expected_result": "A second invoice line is created and correctly linked to PO Line 2",
      "validation_type": "action"
    },
    {
      "step_number": 11,
      "step_name": "Save the invoice",
      "action": "Save the invoice record after all lines are matched",
      "test_data": "",
      "expected_result": "Invoice saves without error and match status is recorded on each line",
      "validation_type": "action"
    },
    {
      "step_number": 12,
      "step_name": "Submit invoice for validation",
      "action": "Run the Validate action on the invoice",
      "test_data": "",
      "expected_result": "Invoice validates successfully, or expected match-related holds are applied when a value falls outside tolerance",
      "validation_type": "action"
    },
    {
      "step_number": 13,
      "step_name": "Review updated PO balance",
      "action": "Navigate to the purchase order and review the updated Quantity Billed and Amount Billed fields",
      "test_data": "",
      "expected_result": "PO reflects reduced available quantity and amount corresponding to the matched invoice",
      "validation_type": "action"
    },
    {
      "step_number": 14,
      "step_name": "Confirm invoice reconciles to matched PO data",
      "action": "Verify that invoiced quantities, price, and distribution amounts tie out exactly to the matched PO line, schedule, and distribution values",
      "test_data": "",
      "expected_result": "Invoice quantity, price, and distribution amounts reconcile to PO data within configured tolerance, with correct remaining PO balance and no unexplained variance",
      "validation_type": "business_assertion"
    }
  ],
  "expected_results": [
    "Invoice line captures the PO number, line, and schedule/distribution reference correctly",
    "Quantity invoiced does not exceed available PO quantity beyond the configured tolerance",
    "Unit price on the invoice reconciles to the PO price within the configured Price Tolerance %",
    "Invoice distributions inherit the correct charge accounts from the matched PO distribution(s)",
    "Multi-line and multi-distribution PO invoices split amounts accurately across all matched lines",
    "PO remaining open quantity and amount update correctly after the invoice match",
    "Invoice amount equals quantity invoiced multiplied by the matched PO unit price",
    "Payables Validation correctly applies match-related holds only when tolerance is genuinely exceeded",
    "Closed or fully invoiced POs are correctly rejected from further matching",
    "Configured Match Approval Level (2-way, 3-way, or 4-way) is enforced per PO during the match action"
  ],
  "validation_checkpoints": [
    "PO status is Open and not Closed for Invoicing prior to the match attempt",
    "Match window displays the correct eligible PO schedules for the entered PO number",
    "Selected PO line/schedule pre-populates item description, UOM, and PO unit price on the invoice line",
    "Quantity Invoiced field accepts the entered value and recalculates line amount automatically",
    "Distributions tab shows one invoice distribution line per matched PO distribution",
    "Distribution accounts match the PO distribution accounts exactly with no unexplained manual override",
    "For 3-way/4-way matches, received/accepted quantity is checked before the match is allowed to proceed",
    "Quantity Ordered Tolerance % from the invoice tolerance template is applied during validation",
    "Price Tolerance % from the invoice tolerance template is applied during validation",
    "PO's Quantity Billed and Amount Billed fields update immediately after invoice save",
    "Multiple PO lines matched on one invoice each generate distinct, correctly linked invoice lines",
    "Attempting to match against a closed or cancelled PO returns a controlled validation message, not a system exception"
  ]
}