Invoicing VAT in PeopleSoft Billing

The Pre-Process and Finalization process (BIIVC000) does not call any VAT code determination algorithms. The process assumes that any values for VAT code, VAT transaction type, and VAT applicability that are on the lines that are being invoiced are correct. However, it recalculates all VAT amounts at invoice time. The recalculation overlays any amounts that are determined online or during pro forma processing.

The Pre-Process and Finalization process has logic for some preliminary VAT processing and then calls the FS_VATCALC process for VAT calculation during invoicing.

Tax Calculations in BIIVC000

The Application Engine section PSORVAT:

  • Sets the VAT distribution account type:

    If the declaration point is invoice, accounting date, or delivery, then the distribution account type is set to VO (VAT Output) except in these cases: the credit or negative adjustment lines are set to VOC (VAT output for credits); the deposit-related lines (DEP, DAPP, and DREF) are set to VOAP (VAT Output Advance Payments); and the Asset Management lines are set to VORE (VAT Output Asset Reinstatement).

    If the declaration point is payment, then the distribution account is set to VOI (VAT Output Intermediate) except in these cases: the positive deposit lines (DEP) are set to VO; the credit and negative adjustment deposit lines (DEP) and all deposit refund lines (DREF) are set to VOC (VAT Output for Credits).

    If VAT applicability is exempt or outside of scope, then the VAT distribution account is set to VONT (VAT Output Non-Taxable) regardless of declaration point or line type.

  • Sets the VAT document ID to zero, ensuring that no previous numbers are used.

  • Calls section BIPVAT05 to obtain the discount percent and timing ID for all of the invoices that are being processed.

  • Calls section VATPROC for each unique VAT Billing business unit that is being invoiced. This section performs the main VAT processing.

The Application Engine section VATPROC:

  • Sets the appropriate SetID for the current loop.

  • Sets the TAX_VAT_FLG for each invoice.

    This flag determines whether a tax-on-tax situation exists.

  • Deletes any records from VAT_CALC_TAO that may result from previous runs.

  • Inserts records into temporary table VAT_CALC_TAO for each line that is being processed and also for each group of lines with the same VAT code and customer VAT code combination per invoice.

    For example, if a given invoice has three lines, two with VAT Code A and one with VAT Code B, this process inserts five entries into VAT_CALC_TAO: one for each of the three lines and two group entries, one for VAT Code A, and one for VAT Code B. The net extended amounts and VAT basis amounts for the group entry lines are added together.

    If an invoice has 4 lines, two with VAT code A and no customer VAT, one with VAT code A with customer VAT, and one with VAT code B, this process inserts seven entries into VAT_CALC_TAO: one for each of the 4 lines, and three group entries - one for VAT code A with no customer VAT, one for VAT code A with customer VAT, and one for VAT code B. The net extended amounts and VAT basis amounts for the group entry lines are added together.

  • If the VAT on advance payment flag for the Billing Business Unit is yes (Y) and the line type is Deposit (DEP), Deposit Applied (DAPP), or Deposit Refunded (DREF), sets the VAT calculation type (VAT_CALC_TYPE) to Inclusive (I).

  • If the line type is Deposit Refund Fee (DRFF), sets the VAT Calculation Type (VAT_CALC_TYPE) to Inclusive (I).

  • Deselects the RETURN_CD field in the application engine cache record.

  • Calls process FS_VATCALC to perform the actual VAT calculations.

    For lines with calculation type of inclusive, the line's extended amount is reduced by the calculated VAT amount.

    The RETURN_CD field is set by the program, based on the outcome of the tax calculation. If no errors occur, the program sets the field to 0; otherwise, it sets the field to 1. FS_VATCALC also calculates the VAT base currency amounts for noncredit lines.

  • Checks the RETURN_CD field to determine whether it is set to 1.

    If the field is set to 1, the process sets the ERROR_TYPE field in the cache record to ERR, which causes the process to terminate abnormally. This error occurs only if a problem exists with the table VAT_CALC_TAO, the tax tables TAX_CD, or TAX_AUTHORITY. These three tables are the only tables accessed by the VAT calculation modules.

  • Calls process BIPVAT10 to adjust the calculated amounts that are in VAT_CALC_TAO (to ensure no rounding errors affect the amounts of the lines) and to distribute the amounts from VAT_CALC_TAO back to BI_LINE.

    Within section BIPVAT10, adjustments of the totals on BI_HDR occur to reflect the new amounts for total VAT and total VAT basis. VAT base currency amounts are also distributed back into their respective lines.

  • Calculates any sales and use taxes for the business unit that is being processed.

    If the TAX_VAT_FLG is set to Y, then the process calculates sales and use taxes on the total of the net extended amount plus any VAT amount. If the flag is set to N, then the process calculates sales and use taxes on the net extended amount only. These calculations occur in application engine step TXTBL10.

Note: Fully paid invoices and invoices paid with corporate vouchers are not processed for VAT.