Input Goods and Services Tax Declaration Vietnam
Vietnam's input VAT declaration — recoverable input GST/VAT on purchases by supplier, invoice, and rate, formatted for the Vietnamese VAT return.
Run note · Data latency Several tax reports read the Tax Reporting Ledger extract rather than live transaction tables — run the extract first or the report returns stale or empty results.
Sample build of the Input Goods and Services Tax Declaration Vietnam — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Supplier | Invoice | Tax Rate | Taxable Amount | Input Vat | Recoverable |
|---|---|---|---|---|---|
| Acme Industrial | Sample | Sample | $1,240,500.00 | Sample | Sample |
| Northwind Trading | — | — | $842,150.75 | — | — |
| Globex Holdings | Sample | Sample | $96,400.00 | Sample | Sample |
| Initech LLC | — | — | $1,005,233.10 | — | — |
| Umbrella Corp | Sample | Sample | $58,720.40 | Sample | Sample |
| Acme Industrial | Sample | Sample | $1,240,500.00 | Sample | Sample |
The report reads AP invoice VAT lines split recoverable and non-recoverable for the Vietnam input-VAT declaration.
$28K of input VAT sits on invoices with no valid supplier tax-invoice number, which Vietnam requires before the VAT is claimable.
Capture the supplier tax-invoice number on those invoices; without it the input VAT cannot be reclaimed.
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
- AP_INVOICES_ALL
- AP_INVOICE_LINES_ALL
- ZX_LINES
- ZX_REC_NREC_DIST
- POZ_SUPPLIERS_V
Show / hide SQL
select
AIA.INVOICE_NUM,
ROW_NUMBER() OVER (ORDER BY AILA.ACCOUNTING_DATE) SR_NO,
TO_CHAR(SYSDATE, 'DD/MM/YYYY') RUN_DATE,
'Q' || TO_CHAR (AIA.INVOICE_DATE, 'Q')|| '.' || TO_CHAR (AIA.INVOICE_DATE, 'YYYY') PERIOD,
--AIA.TOTAL_TAX_AMOUNT,
ZL.TAX_AMT TOTAL_TAX_AMOUNT,
AIA.INVOICE_CURRENCY_CODE INVOICE_CURRENCY,
AIA.INVOICE_DATE,
AIA.GL_DATE,
AIA.ATTRIBUTE1 VIETNAM_INVOICE_FORM,
AIA.ATTRIBUTE2 SERIAL_NO,
AILA.ITEM_DESCRIPTION,
AILA.DESCRIPTION,
AILA.PERIOD_NAME,
AILA.ACCOUNTING_DATE,
ZL.LINE_AMT AMOUNT,
--ZL.UNIT_PRICE,
NULL UNIT_PRICE ,
ZL.TAX_RATE,
ZL.TAX,
--AIDA.QUANTITY_INVOICED
NULL QUANTITY_INVOICED ,
--AIDA.MATCHED_UOM_LOOKUP_CODE
NULL MATCHED_UOM_LOOKUP_CODE,
PSV.VENDOR_NAME,
ZPTP.REP_REGISTRATION_NUMBER,
XEP.NAME LEGAL_ENTITY,
HOU.NAME BU_NAME ,
ZRB.TAX_RATE_CODE
FROM
AP_INVOICES_ALL AIA
,AP_INVOICE_LINES_ALL AILA
,AP_INVOICE_DISTRIBUTIONS_ALL AIDA
,POZ_SUPPLIERS_V PSV
,POZ_SUPPLIERS_PII PSP
,ZX_PARTY_TAX_PROFILE ZPTP
,POZ_SUPPLIER_SITES_ALL_M PSSAM
,HR_OPERATING_UNITS HOU
,XLE_ENTITY_PROFILES XEP
,ZX_LINES ZL
,zx_rates_b ZRB
WHERE
1 = 1
--AND AIA.INVOICE_NUM='TEST_VN_002'
AND AILA.LINE_TYPE_LOOKUP_CODE='ITEM'
AND AIDA.LINE_TYPE_LOOKUP_CODE='ITEM'
AND AIA.INVOICE_ID = AILA.INVOICE_ID
AND AILA.INVOICE_ID = AIDA.INVOICE_ID
AND AILA.LINE_NUMBER = AIDA.INVOICE_LINE_NUMBER
AND AIDA.CANCELLATION_FLAG='N'
AND PSV.VENDOR_ID = AIA.VENDOR_ID
AND PSP.VENDOR_ID = PSV.VENDOR_ID
AND PSV.vendor_id = PSSAM.vendor_id
AND ZPTP.PARTY_ID= PSSAM.PARTY_SITE_ID
AND HOU.ORGANIZATION_ID= AIA.ORG_ID
AND AIA.LEGAL_ENTITY_ID = XEP.LEGAL_ENTITY_ID
AND AIA.INVOICE_ID=ZL.TRX_ID
AND AILA.LINE_NUMBER = ZL.TRX_LINE_ID
AND zl.entity_code ='AP_INVOICES'
AND ZRB.TAX_RATE_ID=ZL.TAX_RATE_ID
/*************************PARAMETERS**************************************************/
AND (HOU.ORGANIZATION_ID IN (:P_BU) OR ('ALL' IN (:P_BU || 'ALL')))
--AND (ZRB.TAX_RATE_CODE IN (:P_VAT_CODE) OR ('ALL' IN (:P_VAT_CODE || 'ALL')))
AND (AILA.PERIOD_NAME IN (:P_GL_PERIOD) OR ('ALL' IN (:P_GL_PERIOD || 'ALL')))
--AND (XEP.LEGAL_ENTITY_ID IN (:P_LE) OR ('ALL' IN (:P_LE || 'ALL')))
AND (AIA.INVOICE_CURRENCY_CODE IN (:P_CURRENCY) OR ('ALL' IN (:P_CURRENCY || 'ALL')))
ORDER BY
AILA.ACCOUNTING_DATEThe 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.
| Element | Type | Definition |
|---|---|---|
| AP_INVOICE_LINES_ALL | dimension | dimension |
| ZX_LINES | dimension | dimension |
| ZX_REC_NREC_DIST | dimension | dimension |
| POZ_SUPPLIERS_V | dimension | dimension |
| Taxable Amount | measure | measure |
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.
| Table | Reporting columns | Subject areas |
|---|---|---|
| AP_INVOICES_ALL | 63 | 15 |
| AP_INVOICE_LINES_ALL | 58 | 19 |
| ZX_LINES | Setup / configuration table — joined for reference, not exposed for analytics | |
| ZX_REC_NREC_DIST | Setup / configuration table — joined for reference, not exposed for analytics | |
| POZ_SUPPLIERS_V | 2 | 24 |