Analytics Catalog/Oracle Fusion ERP/Receivables/Receipt History Report
Explore the catalogReportsModulesEnterprise modelOTBI subject areasBICC PVOs
Oracle Fusion · Receivables

Receipt History Report

Receivables

The full life of each receipt — applied, unapplied, on-account, reversed, and cleared — with the transactions it was applied to, so cash-application and collections can trace exactly how customer cash was handled.

Sample build of the Receipt History Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.

Receipt History Report
Sample build · illustrative
Filters
Date From
2026-02-28
Date To
2026-02-28
Entity
Globex Holdings
Receipt Date From
2026-02-28
Receipt Date To
2026-02-28
P Cust Num
1003
2,310
Receipts
$17.90M
Cash received
$420K
Unapplied
ReceiptCustomerReceipt DateAmountAppliedUnappliedStatus
SampleAcme Industrial2026-04-30$1,240,500.00SampleSampleOpen
Northwind Trading2026-03-31$842,150.75Posted
SampleGlobex Holdings2026-02-28$96,400.00SampleSampleValidated
Initech LLC2026-01-31$1,005,233.10Open
SampleUmbrella Corp2025-12-31$58,720.40SampleSamplePaid
SampleAcme Industrial2026-04-30$1,240,500.00SampleSampleOpen
AI Analyst · active
reading

The report reads AR_CASH_RECEIPTS_ALL with its history and applications, showing how each receipt was applied or left on account.

flag

$420K sits unapplied across 140 receipts — cash the company holds but hasn't matched to an invoice, which overstates open AR and understates available cash.

root cause & next step

Work the unapplied queue (most match on customer and amount); persistent unapplied cash usually means remittance detail isn't arriving with the payment.

Illustrative data. The live interactive version — drill-through, filters, export, and the AI Analyst — runs on your warehouse. See it live →

This is the report's BI Publisher data model — the SQL data set BI Publisher runs against Oracle tables to produce the output. The same SQL becomes a dbt model in your warehouse, so one definition drives both the formatted report and the analytics layer.

Data sources

How it interconnects: this data set reads the physical tables above. Those same tables surface in OTBI as subject areas and in BICC as PVOs — three lenses on one source. Open any table to trace its subject areas and View Objects.
SQL data set · genericized · parameterized · no hardcoded segments
Show / hide SQL
SELECT /*+ parallel(12) */
    acra.receipt_number,
    acra.amount AS receipt_amount,
    rb.unapplied_balance AS unapplied_onaccount_balance,
    acra.CURRENCY_CODE AS entered_currency,
    hou.name AS business_unit,
    cc.segment1 AS Legal_Entity,
    le_name.description AS Legal_Entity_Name,
    hca.account_number AS customer_number,
    hp.party_name AS customer_name,
    hcsua.location AS Bill_to_location,
    arm.name AS Receipt_method,
    TO_CHAR(acrha.GL_DATE, 'MM/DD/YYYY') AS GL_DATE,
    TO_CHAR(acra.receipt_date, 'MM/DD/YYYY') AS receipt_date,
    araa.application_ref_reason,
    (CASE WHEN rcta.customer_trx_id IS NULL OR rcta.customer_trx_id = -1 
          THEN araa.customer_reference 
          ELSE rcta.customer_reference 
     END) AS Customer_Reference
    ,TO_CHAR(araa.apply_date, 'MM/DD/YYYY') AS apply_date
	,nvl( (select CLASS from ar_payment_schedules_all 
                    where  TRX_NUMBER not in ('Claim Investigation','Receipt Write-off','On Account','Refund')
                     and payment_schedule_id =araa.applied_payment_schedule_id )
    ,apsa1.trx_number) Application_Type   -- Transaction/Application Type

--,nvl(araa.APPLICATION_REF_NUM, apsa1.trx_number) Application_Reference 
-- applicaiton reference logic is if Application type = application Reference then display receivable activity

, nvl((case when  ( nvl( (select CLASS from ar_payment_schedules_all  where  TRX_NUMBER not in ('Claim Investigation','Receipt Write-off','On Account')
                     and payment_schedule_id =araa.applied_payment_schedule_id )
              ,apsa1.trx_number) = nvl(araa.APPLICATION_REF_NUM, apsa1.trx_number) )
	    then nvl((select NAME	from AR_RECEIVABLES_TRX_ALL	where RECEIVABLES_TRX_ID =araa.RECEIVABLES_TRX_ID and org_id=araa.org_id ),araa.APPLICATION_REF_NUM)
		else
		        nvl((select araa.APPLICATION_REF_NUM from dual where araa.RECEIVABLES_TRX_ID is not null) , apsa1.trx_number)
		end )
      ,apsa1.trx_number )Application_Reference
	  
    ,araa.amount_applied
    ,to_char(rcta.trx_date,'MM/DD/YYYY') Transaction_Date
	,(case when rcta.customer_trx_id is not null 
      then to_char(apsa1.due_date,'MM/DD/YYYY') END  ) Transaction_due_date
	,(select sum (AMOUNT_DUE_ORIGINAL) from ar_payment_schedules_all where CUSTOMER_TRX_ID=rcta.customer_trx_id ) Transaction_Original_Amount  
    ,NVL(araa.earned_discount_taken, 0) AS earned_discount_taken
	,nvl(apsa1.amount_adjusted,0)amount_adjusted
    ,NVL(apsa1.amount_due_remaining, 0) AS amount_due_remaining
	,araa.application_ref_type
	,rcta.ct_reference application_ref_num_trx
   ,rcta.customer_trx_id
,cc.segment1 company_segment
,acra.cash_receipt_id
,cc.code_combination_id
,acrha.account_code_combination_id
FROM 
    AR_RECEIVABLE_APPLICATIONS_ALL araa
    INNER JOIN ar_cash_receipts_all acra ON araa.cash_receipt_id = acra.cash_receipt_id
    INNER JOIN ar_cash_receipt_history_all acrha ON acra.cash_receipt_id = acrha.cash_receipt_id 
         AND acrha.current_record_flag = 'Y'
    INNER JOIN ar_receipt_methods arm ON arm.receipt_method_id = acra.receipt_method_id
    INNER JOIN hr_operating_units hou ON hou.organization_id = acra.org_id
    INNER JOIN hz_cust_accounts hca ON acra.pay_from_customer = hca.cust_account_id
    INNER JOIN hz_parties hp ON hca.party_id = hp.party_id
    INNER JOIN gl_code_combinations cc ON araa.code_combination_id = cc.code_combination_id
    LEFT JOIN RA_CUSTOMER_TRX_ALL rcta ON araa.applied_customer_trx_id = rcta.customer_trx_id
    LEFT JOIN AR_PAYMENT_SCHEDULES_ALL apsa1 ON araa.applied_payment_schedule_id = apsa1.payment_schedule_id
    LEFT JOIN HZ_CUST_SITE_USES_ALL hcsua ON acra.CUSTOMER_SITE_USE_ID = hcsua.site_use_id
    -- Optimized: Pre-calculate unapplied sums
    LEFT JOIN (
        SELECT cash_receipt_id, SUM(Amount_Applied) AS unapplied_balance
        FROM Ar_Receivable_Applications_All 
        WHERE STATUS IN ('UNAPP','UNID','ACC')
        GROUP BY cash_receipt_id
    ) rb ON acra.cash_receipt_id = rb.cash_receipt_id
    -- Optimized: Use LATERAL for complex description lookups to keep it in the parallel stream
    OUTER APPLY (
        SELECT ffv.description 
        FROM FND_ID_FLEX_SEGMENTS_VL ffs
        JOIN fnd_flex_values_vl ffv ON ffs.FLEX_VALUE_SET_ID = ffv.FLEX_VALUE_SET_ID
        JOIN gl_ledgers gl ON gl.chart_of_accounts_id = ffs.ID_FLEX_NUM
        JOIN GL_LEDGER_NORM_SEG_VALS leseg ON leseg.ledger_id = gl.ledger_id AND leseg.SEGMENT_VALUE = ffv.flex_value
        WHERE ffs.segment_name = 'Entity' 
          AND hou.SET_OF_BOOKS_ID = gl.LEDGER_ID 
          AND ffv.flex_value = cc.segment1 
          AND ROWNUM = 1
    ) le_name
WHERE 
    araa.display = 'Y'
    -- Data Security Join
    AND EXISTS (
        SELECT 1 FROM fusion.fun_all_business_units_v bu
        JOIN fusion.fun_user_role_data_asgnmnts role ON role.org_id = bu.bu_id
        JOIN fusion.per_users pu ON pu.user_guid = role.user_guid
		JOIN fusion.per_roles_dn_vl pr ON pr.role_common_name = role.ROLE_NAME
        JOIN fusion.per_roles_dn_tl prtl ON pr.role_id=prtl.role_id  and prtl.LANGUAGE='US'
        WHERE bu.bu_id = acra.org_id
          AND role.active_flag = 'Y' 
          AND pu.username = fnd_global.user_name
		  and prtl.ROLE_NAME  in  ('XXC Accounts Receivable Analyst'
						,'XXC Accounts Receivable Manager'
						,'XXC Receivables Inquiry'
						,'XXC Billing Manager'
						,'XXC Billing Analyst'
						)
    )
    -- Parameter Joins
    AND (acra.org_id IN (:p_org_id) OR 'All' IN (:p_org_id || 'All'))
    AND (cc.segment1 IN (:P_ENTITY) OR 'All' IN (:P_ENTITY || 'All'))
    AND (hca.account_number IN (:p_cust_num) OR 'All' IN (:p_cust_num || 'All'))
    AND araa.apply_date BETWEEN NVL(:P_DATE_FROM, araa.apply_date) AND NVL(:P_DATE_TO, araa.apply_date)
    AND acra.receipt_date BETWEEN NVL(:P_RECEIPT_DATE_FROM, acra.receipt_date) AND NVL(:P_RECEIPT_DATE_TO, acra.receipt_date)
    AND (arm.name IN (:p_receipt_method) OR 'All' IN (:p_receipt_method || 'All'))
    AND acra.receipt_number = NVL(:p_receipt_number, acra.receipt_number)
ORDER BY hou.name, cc.segment1, hp.party_name, acra.receipt_number, acra.receipt_date, araa.apply_date
:P_DATE_FROM :P_DATE_TO :P_ENTITY :P_RECEIPT_DATE_FROM :P_RECEIPT_DATE_TO :p_cust_num :p_org_id :p_receipt_method :p_receipt_number

The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per source transaction.

AR_RECEIVABLES_TRX_ALLdimensionAR_RECEIVABLE_APPLICATIO…dimensionAR_CASH_RECEIPTS_ALLdimensionAR_CASH_RECEIPT_HISTORY_…dimensionAR_PAYMENT_SCHEDULES_ALLfact · one row per source transactionAmount
●— fact → dimension join
ElementTypeDefinition
AR_RECEIVABLES_TRX_ALLdimensiondimension
AR_RECEIVABLE_APPLICATIONS_ALLdimensiondimension
AR_CASH_RECEIPTS_ALLdimensiondimension
AR_CASH_RECEIPT_HISTORY_ALLdimensiondimension
Amountmeasuremeasure
Runs on your cloud warehouse — Snowflake, BigQuery, Redshift, or Synapse on AWS, Google Cloud, Azure, or any provider. Reconciled to the source control total — 0% variance by design. You own the code, the model, and the data.
How the data gets here: a BICC bulk extract of the source tables above, on the same pattern for every report. See the extraction pattern & data flow →
See the complete model
How this report's fact and dimensions fit the full picture, via conformed keys.
Receivables data model →Enterprise model →

Every source object behind this report. Each linked table has its own page with full column descriptions, drawn from the Oracle BICC lineage and articulated for practitioners.

TableReporting columnsSubject areas
AR_PAYMENT_SCHEDULES_ALL326
AR_RECEIVABLES_TRX_ALL15
AR_RECEIVABLE_APPLICATIONS_ALL352
AR_CASH_RECEIPTS_ALL259
AR_CASH_RECEIPT_HISTORY_ALL172
AR_RECEIPT_METHODS15
HR_OPERATING_UNITSSetup / configuration table — joined for reference, not exposed for analytics
HZ_CUST_ACCOUNTS1443
HZ_PARTIES81144
GL_CODE_COMBINATIONS761
RA_CUSTOMER_TRX_ALL5816
HZ_CUST_SITE_USES_ALL932
Reporting columns = fields the report selects that are exposed as analytics attributes; subject areas = the OTBI subject areas the table appears in. Setup and configuration tables (master data, ledger and book setup, lookups) are referenced by the report's joins but aren't exposed as analytics columns or subject areas — that's expected, not a gap.