> ## Documentation Index
> Fetch the complete documentation index at: https://developer.zamp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mapping Product Tax Codes

> Review the recommended workflow to fetch and map product tax codes.

# Overview

To support the complex taxability logic needed to accurately calculate tax for Zamp’s customers, we depend on Product Taxability Codes (PTCs), found [here](/api-reference/tax-codes).

## Endpoints Used

```text theme={null}
GET /tax-codes
```

## Recommended Workflow

One of the most important workflows for an integration to handle is mapping a list of products or services, to Zamp’s Product Tax Codes. Customers should have the ability to map single products individually, or map their entire inventories in bulk. Additionally, customers should be able to refresh product tax codes when needed.

### **Mapping Single Product Codes**

<Tip>
  Wherever customers manage their products and services, a field within an individual product or service record exists to assign a Zamp Product Code. 
</Tip>

<Steps>
  <Step title="Assign a Single Tax Code">
    A customer can select a product tax code from a dropdown, OR by searching for a Product Tax Code description.

    Zamp’s `GET tax-codes` endpoint returns a code name and description that can be searchable.
  </Step>

  <Step title="Line Item Uses Tax Code in Calculation">
    When an order is created using the products in a customer’s inventory, the mapped Zamp Product Tax Code is populated in the `line.Items.productTaxCode` during Transaction Object generation.
  </Step>

  <Step title="Accurate Tax is Returned">
    Order is submitted to `/calculations` and Zamp returns a `taxDue` breakdown using the address information and the product tax codes. 
  </Step>
</Steps>

### **Mapping Product Codes in Bulk**

<Tip>
  A customer has a large inventory, and does not want to manually edit dozens of line items to map tax codes.
</Tip>

<Steps>
  <Step title="Export an Inventory">
    The platform features a tool that allows customers to export their entire inventory and any corresponding information within their record as a CSV.
  </Step>

  <Step title="Assign Tax Codes in Bulk">
    A customer can map the recommended (or self-selected) Zamp Product Tax Codes in the downloaded CSV file easily.
  </Step>

  <Step title="Upload the Mapped Codes">
    The CSV file can be uploaded back into the tool to map all items.
  </Step>

  <Step title="Line Items use Mapped Tax Codes">
    When an order is created using the products in a customer’s inventory, the mapped Zamp Product Tax Code is populated in the `line.Items.productTaxCode` during Transaction Object generation.
  </Step>

  <Step title="Accurate Tax is Returned">
    Order is submitted to `/calculations `and Zamp returns a `taxDue` breakdown using the address information and the product tax codes. 
  </Step>
</Steps>

###  **Fetching Product Tax Codes**

When customers are mapping codes for their inventories, they will need access to the updated list of codes. While Zamp does not remove codes often, periodically fetching the latest product tax codes from Zamp’s APIs will be a core functionality.
