Analytics Catalog/Oracle Fusion ERP/Payables/India eTDS Data Report
Explore the catalogReportsModulesEnterprise modelOTBI subject areasBICC PVOs
Oracle Fusion · Payables

India eTDS Data Report

Payables

The India eTDS data set — tax deducted at source by section, deductee, and challan, formatted for the quarterly eTDS return (Form 26Q/27Q) filed with the Indian tax authority.

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

India eTDS Data Report
Sample build · illustrative
Filters
Gl Date From
2026-02-28
Gl Date To
2026-02-28
Invoice Type
Standard
Tds Num
1003
220
Deductees
$180K
TDS deducted
9
Missing PAN
DeducteePanTds SectionTaxable AmountTds DeductedChallan
SampleSampleSample$1,240,500.00SampleSample
$842,150.75
SampleSampleSample$96,400.00SampleSample
$1,005,233.10
SampleSampleSample$58,720.40SampleSample
SampleSampleSample$1,240,500.00SampleSample
AI Analyst · active
reading

The report assembles TDS by section and deductee with challan references for the eTDS return.

flag

Nine deductees have no PAN on file — the eTDS return rejects without it, and TDS deducted without a PAN attracts a higher statutory rate.

root cause & next step

Capture the deductee PANs before filing; a missing PAN is the most common eTDS reject and a penalty exposure.

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
with TDS as (

SELECT AIA.INVOICE_NUM  TDS_INVOICE_NUM
      ,AIA.INVOICE_DATE
      ,AILA.ACCOUNTING_DATE 
      ,AIA.INVOICE_AMOUNT TAX_AMOUNT 
      ,ROUND(AIA.INVOICE_AMOUNT,0) TAX_INVOICE_AMOUNT 
      ,AIA.INVOICE_TYPE_LOOKUP_CODE INVOICE_TYPE,
AILA.DESCRIPTION
      ,SUBSTR(AILA.DESCRIPTION,INSTR(AILA.DESCRIPTION,'-',3,2)+2 ,LENGTH(SUBSTR(AILA.DESCRIPTION,INSTR(AILA.DESCRIPTION,'-',3,2)+2))-3) SUPPLIER_INVOICE_NUM
FROM AP_INVOICES_ALL AIA
     ,AP_INVOICE_LINES_ALL AILA 
WHERE 1=1
  --AND AIA.INVOICE_NUM IN ('Withholding tax-300000010052923-2')
  AND AIA.INVOICE_ID = AILA.INVOICE_ID  
  AND AIA.INVOICE_TYPE_LOOKUP_CODE = 'AWT')

SELECT DISTINCT 
       AIA.INVOICE_ID
      ,TDS.TDS_INVOICE_NUM
      ,AIA.INVOICE_DATE
      ,TDS.INVOICE_TYPE
      ,AILA.ACCOUNTING_DATE
      ,TDS.SUPPLIER_INVOICE_NUM
      ,AILA.LINE_TYPE_LOOKUP_CODE
      ,PSV.VENDOR_NAME 
      ,PSV.SEGMENT1 SUPPLIER_NUM 
      ,HL.ADDRESS1 
      ,HL.ADDRESS2 
      ,HL.ADDRESS3 
      ,HL.ADDRESS4 
      ,HL.POSTAL_CODE ZIP
      ,PSSM.VENDOR_SITE_CODE 
      ,PSP.INCOME_TAX_ID TAXPAYER_ID
      ,AILA.TAX TAX_NAME
      ,ZRCB.REPORTING_CODE_CHAR_VALUE 
      ,ZRCT.REPORTING_CODE_NAME
      ,(SELECT AITV.AMOUNT
          FROM AP_INVOICE_TOTALS_VIEW AITV
         WHERE AITV.INVOICE_ID = AIA.INVOICE_ID 
           AND AITV.TYPE= 'Items'
           AND ROWNUM < 2) BASE_AMOUNT 
      ,TDS.TAX_AMOUNT 
      ,TDS.TAX_INVOICE_AMOUNT
	  ,AILA.TAX_RATE
   
 FROM TDS
     ,AP_INVOICES_ALL AIA
     ,AP_INVOICE_LINES_ALL AILA 
     ,AP_INVOICE_DISTRIBUTIONS_ALL AIDA 
     ,POZ_SUPPLIERS_V PSV
     ,POZ_SUPPLIERS_PII PSP 
     ,HZ_PARTY_SITES HPS 
     ,POZ_SUPPLIER_SITES_ALL_M PSSM
     ,HZ_LOCATIONS HL
     ,ZX_LINES ZL
     ,ZX_RATES_B ZRB  
     ,ZX_REPORT_CODES_ASSOC ZRCA 
     ,ZX_REPORTING_CODES_B ZRCB
     ,ZX_REPORTING_CODES_TL ZRCT
     ,HR_ORGANIZATION_UNITS_F_TL HOUF

WHERE 1=1
  AND TDS.SUPPLIER_INVOICE_NUM=AIA.INVOICE_NUM
  --AND AIA.INVOICE_NUM IN ('Withholding tax-300000010052923-2','TEST_TDS_5')
  AND AIA.INVOICE_ID = AILA.INVOICE_ID  
  AND AIA.INVOICE_ID = AIDA.INVOICE_ID 
  AND AILA.LINE_NUMBER = AIDA.INVOICE_LINE_NUMBER 
  AND AIA.VENDOR_ID = PSV.VENDOR_ID 
  AND PSP.VENDOR_ID = PSV.VENDOR_ID 
  AND AIA.PARTY_SITE_ID = HPS.PARTY_SITE_ID
  AND AIA.VENDOR_SITE_ID = PSSM.VENDOR_SITE_ID
  AND HPS.LOCATION_ID = HL.LOCATION_ID(+)
  AND ZL.TRX_ID(+) = AILA.INVOICE_ID
  AND ZL.TRX_LINE_ID(+) = AILA.LINE_NUMBER
  AND ZL.ENTITY_CODE(+) ='AP_INVOICES'
  AND AIDA.AWT_TAX_RATE_ID = ZRB.TAX_RATE_ID(+)        
  AND ZRCA.ENTITY_ID(+)   =  ZRB.TAX_RATE_ID
  AND ZRCA.REPORTING_CODE_ID = ZRCB.REPORTING_CODE_ID(+)
  AND ZRCT.REPORTING_CODE_ID(+) = ZRCB.REPORTING_CODE_ID
  AND AIA.ORG_ID = HOUF.ORGANIZATION_ID
  AND HOUF.LANGUAGE = USERENV('LANG')
  AND ZRCT.LANGUAGE(+) = USERENV('LANG')
  AND TRUNC(SYSDATE) BETWEEN TRUNC(HOUF.EFFECTIVE_START_DATE) AND TRUNC(HOUF.EFFECTIVE_END_DATE)

  /********************FILTERS*****************************************/
  --AND AIA.INVOICE_TYPE_LOOKUP_CODE = 'AWT'
  AND HOUF.NAME = 'IN BU INR'
  AND AILA.LINE_TYPE_LOOKUP_CODE='AWT'

  /********************PARAMETERS**************************************/
  AND TRUNC(TDS.ACCOUNTING_DATE) BETWEEN TRUNC(:P_GL_DATE_FROM) AND TRUNC(:P_GL_DATE_TO)
  AND (TDS.INVOICE_TYPE IN (:P_INVOICE_TYPE) OR ('ALL' IN (:P_INVOICE_TYPE || 'ALL')))
  AND (TDS.TDS_INVOICE_NUM IN (:P_TDS_NUM) OR ('ALL' IN (:P_TDS_NUM || 'ALL')))

ORDER BY AIA.INVOICE_DATE
:P_GL_DATE_FROM :P_GL_DATE_TO :P_INVOICE_TYPE :P_TDS_NUM

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.

AP_INVOICE_DISTRIBUTIONS…dimensionAP_AWT_TEMP_DISTRIBUTION…dimensionPOZ_SUPPLIERS_VdimensionZX_RATES_BdimensionAP_INVOICES_ALLfact · one row per source transactionTaxable Amount
●— fact → dimension join
ElementTypeDefinition
AP_INVOICE_DISTRIBUTIONS_ALLdimensiondimension
AP_AWT_TEMP_DISTRIBUTIONS_ALLdimensiondimension
POZ_SUPPLIERS_Vdimensiondimension
ZX_RATES_Bdimensiondimension
Taxable 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.
Payables 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
AP_INVOICES_ALL6315
AP_INVOICE_DISTRIBUTIONS_ALL5911
AP_AWT_TEMP_DISTRIBUTIONS_ALLSetup / configuration table — joined for reference, not exposed for analytics
POZ_SUPPLIERS_V224
ZX_RATES_BSetup / configuration table — joined for reference, not exposed for analytics
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.