---
schema_version: "1"
id: c4f82d94d8bd8def5927bfcafde0ae52fc6c13b8af1886409775a4a01db04d74
title: Extend Your Revenue Standard Tax Engine
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/billing_extend_revenue_standard_tax_engine.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.billing_extend_revenue_standard_tax_engine.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 0e71dde56d8b9c59cd1c1d7d107337cb1ed09c1d29b307e8f2408e1ed90ebe9e
description: Apply tax rates based on custom attributes, such as product category, customer attributes, or exemption criteria, without writing Apex code. Use a custom metadata type to map billing transaction fields to a cloned Revenue Standard Tax Entries decision table, and persist matched values on invoice and credit memo tax lines.
products:
  - Revenue Cloud
release: "264"
---
# Extend Your Revenue Standard Tax Engine

Apply tax rates based on custom attributes, such as product category, customer attributes, or exemption criteria, without writing Apex code. Use a custom metadata type to map billing transaction fields to a cloned Revenue Standard Tax Entries decision table, and persist matched values on invoice and credit memo tax lines.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions with <a href="https://help.salesforce.com/s/articleView?id=ind.revenue_licenses_areas_and_features.htm&amp;release=264.0.0&amp;type=5">the Revenue Cloud Advanced license or the Revenue Cloud Billing license</a></td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d87850e72">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d87850e72 ">To create a custom metadata type and custom fields:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d87850e72 ">Tax Admin permission set</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d87850e72 ">To change the decision table:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d87850e72 ">Rule Engine Designer permission set</td>

          </tr>
        </tbody>
      </table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-revenue-264-0-0-production-enus/91ca99c6-d5c8-4986-b961-c6b7801e0d0d/images/icon_note.png)

Note The Standard User profile includes the View Developer Name system permission. Users need this permission to use the Revenue Standard Tax Engine. When you clone the Standard User profile, keep View Developer Name on the cloned profile, or add it to a permission set assigned to the user.

## Configure Custom Metadata Types

Create a custom metadata type that maps billing transaction fields to decision table columns for the Revenue Standard Tax Engine.

Before you begin, create the custom fields on the Tax Rate object that you want to use as matching criteria or as outputs on tax lines. Also create any custom fields you need on invoice line tax and credit memo line tax. See [Create a Custom Field](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&type=5&language=en_US).

1. Create a [custom metadata type](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_ui_create.htm&language=en_US).
2. Click **New** in the Custom Fields section of the created custom metadata and create these fields exactly as shown here.
    
       
    | Field Label | API Name | Field Type | Description |
    | --- | --- | --- | --- |
    | Entity Field Name | Entity\_Field\_Name\_\_c | Metadata Relationship (Field Definition) | The field on that object whose value is used when calculating tax. |
    | Entity Name | Entity\_Name\_\_c | Metadata Relationship (Entity Definition) | The billing object that this mapping applies to. This field controls Entity Field Name. |
    | Request/Response | Request\_Response\_\_c | Picklist. Add these values: Request, Response. | The Request value used as a decision table input. The Response value used to store the matched value on the tax line. |
    | Tax Field Name | Tax\_Field\_Name\_\_c | Text | The name that links the billing field to the decision table column. |
    | Tax Rate Entity Name | Tax\_Rate\_Entity\_Name\_\_c | Metadata Relationship (Entity Definition) | The Tax Rate entity used in the mapping. This field controls Tax Rate Input Field Name and Tax Rate Output Field Name. |
    | Tax Rate Input Field Name | Tax\_Rate\_Input\_Field\_Name\_\_c | Metadata Relationship (Field Definition) | The Tax Rate field used as a decision table input when matching a tax rate. |
    | Tax Rate Output Field Name | Tax\_Rate\_Output\_Field\_Name\_\_c | Metadata Relationship (Field Definition) | The Tax Rate field used as a decision table output. Fill this field when Request/Response is Response. |
3. Save the changes. Here’s how a configured custom metadata type appears.
    
    ![Custom metadata type with tax rate mapping fields](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-revenue-264-0-0-production-enus/91ca99c6-d5c8-4986-b961-c6b7801e0d0d/revenue/images/billing/billing_standard_tax_custommetadata.png)
4. To define records, click **Manage \[Your Custom Metadata Type Label\]**.
5. To add your custom field mappings, click **New**.
6. For each field mapping, provide the entity name, entity field name, tax field name, request/response, tax rate entity name, and tax rate input or output field values.
7. Save the changes. Here’s how a configured tax mapping appears.
    
    ![Tax rate field mapping record](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-revenue-264-0-0-production-enus/91ca99c6-d5c8-4986-b961-c6b7801e0d0d/revenue/images/billing/billing_standard_tax_custommetadata_mapping.png)

## Clone the Decision Table

Clone the Revenue Standard Tax Entries decision table and add the custom columns that you use to match tax rates.

1. From the App Launcher, find and select **Lookup Tables**.
2. Open Revenue Standard Tax Entries.
3. From the Show menu, click **Clone**, enter a name and API name, and save.
4. Add custom input or output columns from the Tax Rate object to the cloned decision table.
5. Configure the required setting and operator for each custom input column. See [Create a Decision Table](https://help.salesforce.com/s/articleView?id=ind.create_a_decision_table.htm&type=5&language=en_US) and [How Null Values Work in Decision Tables](https://help.salesforce.com/s/articleView?id=ind.bre_null_values_dt.htm&type=5&language=en_US).
6. Activate and refresh the cloned decision table. See [Activate a Decision Table](https://help.salesforce.com/s/articleView?id=ind.activate_decision_table.htm&type=5&language=en_US) and [Refresh a Decision Table](https://help.salesforce.com/s/articleView?id=ind.bre_refresh_decision_table.htm&type=5&language=en_US).

After you configure the custom metadata type and activate the cloned decision table, associate both with a tax engine. Set Type to Revenue Standard Tax Engine, enter the Custom Metadata Type API Name, and select the Decision Table. See [Create a Tax Engine](https://help.salesforce.com/s/articleView?id=ind.billing_tax_engine_create.htm&release=264.0.0&type=5 "Create a tax engine record that Billing uses to calculate tax. Set the type to Revenue Standard Tax Engine. When you extend the Revenue Standard Tax Engine, associate a custom metadata type and a decision table.").

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-revenue-264-0-0-production-enus/91ca99c6-d5c8-4986-b961-c6b7801e0d0d/images/icon_note.png)

Note After you add or change a tax rate, refresh the cloned decision table so Billing uses the latest rates. See [Refresh a Decision Table](https://help.salesforce.com/s/articleView?id=ind.bre_refresh_decision_table.htm&type=5&language=en_US).