{
  "test_id": "ORCL.HCM.PAYROLL.PREPAY",
  "scenario_name": "Prepayments",
  "application": "Oracle Fusion Cloud",
  "product": "HCM",
  "module": "Payroll",
  "process": "Prepayments",
  "business_flow": "Hire-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/hcm/payroll/prepayments/",
  "objective": {
    "intro": "This test validates prepayment processing after payroll calculation and confirms that payment allocation reflects each worker's configured payment method(s) and any applicable payment rules.",
    "confirms": [
      "prepayment processing is only initiated against a payroll result that has already been successfully calculated",
      "net pay for each worker is allocated to the correct personal and/or organization payment method(s)",
      "the payment method used reflects the worker's payment method configuration and any configured split-payment rules",
      "for split-payment workers, the sum of allocated payment amounts across all payment methods equals the calculated net pay exactly",
      "the prepayment result carries the correct status once processing completes",
      "relevant exceptions, such as missing or inactive payment methods, are surfaced rather than silently processed"
    ],
    "scope_note": "This scenario validates prepayment allocation itself — assigning calculated net pay to configured payment methods. The subsequent generation of actual payment output (for example EFT/bank transfer files) is covered by the separate Payment Processing scenario within the same Hire-to-Pay flow."
  },
  "preconditions": [
    "Payroll has already been calculated for the relevant period, either through a standard Payroll Calculation run or QuickPay, and a payroll result is available.",
    "The worker has an active assignment included in the calculated payroll result.",
    "A personal payment method is configured for the worker, or an applicable organization payment method (such as a default bank transfer) applies.",
    "Where a split-payment method is used, payment method percentages or amounts are configured and total the expected amount.",
    "Valid organization payment method and banking configuration exist for the legal employer and currency involved.",
    "The test user has an appropriate Payroll role with access to run and review prepayments."
  ],
  "test_data": [
    {
      "field": "Payroll",
      "example": "${PAYROLL}"
    },
    {
      "field": "Payroll Result",
      "example": "${PAYROLL_RESULT}"
    },
    {
      "field": "Worker",
      "example": "${WORKER}"
    },
    {
      "field": "Net Pay",
      "example": "${NET_PAY}"
    },
    {
      "field": "Personal Payment Method",
      "example": "${PERSONAL_PAYMENT_METHOD}"
    },
    {
      "field": "Organization Payment Method",
      "example": "${ORGANIZATION_PAYMENT_METHOD}"
    },
    {
      "field": "Bank Details",
      "example": "${BANK_DETAILS}"
    },
    {
      "field": "Currency",
      "example": "${CURRENCY}"
    },
    {
      "field": "Payment Percentage",
      "example": "${PAYMENT_PERCENTAGE}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion Payroll",
      "action": "Sign in to Oracle Fusion Cloud with a user account that has Payroll prepayment access.",
      "test_data": "",
      "expected_result": "The Oracle Fusion Cloud home page loads successfully for the authenticated user.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to Payroll",
      "action": "Navigate to the Payroll work area used to review and process payroll results.",
      "test_data": "",
      "expected_result": "The Payroll work area opens successfully.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Locate the Calculated Payroll Result",
      "action": "Locate the calculated payroll flow or result that is ready for prepayment processing.",
      "test_data": "${PAYROLL} / ${PAYROLL_RESULT}",
      "expected_result": "The correct calculated payroll result is found and available for prepayment.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Initiate Prepayment Processing",
      "action": "Start prepayment processing against the selected, already-calculated payroll result.",
      "test_data": "",
      "expected_result": "Prepayment processing is initiated without errors.",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Review Worker Payment Method Configuration",
      "action": "Review the worker's configured personal and organization payment method(s) used for allocation.",
      "test_data": "${WORKER} / ${PERSONAL_PAYMENT_METHOD} / ${ORGANIZATION_PAYMENT_METHOD}",
      "expected_result": "The reviewed configuration matches the worker's expected payment method setup.",
      "validation_type": "action",
      "note": "This step reviews masked, placeholder payment method configuration only; SyntraFlow never displays real banking data."
    },
    {
      "step_number": 6,
      "step_name": "Confirm Payment Allocation",
      "action": "Confirm the prepayment allocates net pay across the worker's configured payment method(s), including any split percentage where applicable.",
      "test_data": "${PAYMENT_PERCENTAGE}",
      "expected_result": "Prepayment lines are created for each applicable payment method, consistent with the worker's configuration.",
      "validation_type": "action"
    },
    {
      "step_number": 7,
      "step_name": "Verify Amounts Reconcile to Net Pay",
      "action": "Sum the allocated payment amounts across all payment methods used for the worker, including split methods where applicable, and compare the total to the calculated net pay.",
      "test_data": "${NET_PAY}",
      "expected_result": "The sum of allocated payment amounts equals the calculated net pay exactly, with no discrepancy.",
      "validation_type": "business_assertion",
      "note": "This is the central business assertion for this scenario — a prepayment is only correct if the total allocated across payment methods reconciles exactly to net pay."
    },
    {
      "step_number": 8,
      "step_name": "Confirm Prepayment Status",
      "action": "Review the resulting prepayment status for the payroll result.",
      "test_data": "",
      "expected_result": "The prepayment status correctly reflects completed processing, and any exceptions are visible where applicable.",
      "validation_type": "action"
    }
  ],
  "expected_results": [
    "Prepayment processing completes successfully for a payroll result that has already been calculated.",
    "Net pay is allocated correctly to the worker's configured personal and/or organization payment method(s).",
    "The payment method used reflects the worker's configuration and any applicable split-payment rules.",
    "The sum of allocated payment amounts across payment methods equals the calculated net pay exactly.",
    "The prepayment result carries the correct completed status.",
    "Exceptions such as missing or inactive payment methods are surfaced rather than silently processed."
  ],
  "validation_checkpoints": [
    "Prepayment created correctly.",
    "Net pay allocated correctly across payment method(s).",
    "Payment method selected correctly per configuration.",
    "Payment amounts reconcile exactly to net pay.",
    "Prepayment status correct.",
    "Exceptions surfaced where applicable."
  ]
}
