# Chapter 4.1 - Client Profiles

Source: https://developer.avalara.com/products/communications/integration-guides/dev-guide_rest_v2/customizing-transactions/client-profiles/

-   [Previous](/communications/dev-guide_rest_v2/customizing-transactions/)
-   [Next](/communications/dev-guide_rest_v2/customizing-transactions/account-customizations/)

### What is a client profile?

A client profile allows you to customize how the AFC tax engine interprets a request and returns tax results. [Customizations](/communications/dev-guide_rest_v2/customizing-transactions/account-customizations/) include:

-   Bundle
-   Exclusion
-   Tax Override
-   AFC Tax Engine configuration

### Why use a client profile?

Reasons to use a client profile include:

-   Profiles are cached - this speeds up response times
-   Using a client profile eliminates including the same customization, such as a [tax override](/communications/dev-guide_rest_v2/customizing-transactions/sample-transactions/tax-override/), in each [CalcTaxes request](/communications/dev-guide_rest_v2/reference/calc-taxes-request/)

1.  [Request](#request) a client profile containing [customization file(s) and configurations](/communications/dev-guide_rest_v2/customizing-transactions/account-customizations/) be added to your client
2.  Specify the `client_profile_id` in the [header](/communications/dev-guide_rest_v2/getting-started/authentication/) to apply the client profile to all requests run using that header

-   Multiple profiles can be applied to your client ID. Examples uses for multiple profiles include:
    -   Separate configurations for different different types of transactions
    -   Separate configurations for child companies
    -   Testing new configurations

### How to apply a client profile to a session

When [authenticating](/communications/dev-guide_rest_v2/getting-started/authentication/) to Communications REST v2, pass the client profile ID in the header using `client_profile_id`.  

#### Postman example

Add these [headers](/communications/dev-guide_rest_v2/getting-started/authentication/) to your request:

-   `Authorization` using basic HTTP authenticNoteation
-   `client_id`
-   `Content-Type: application/json`
-   `client_profile_id`

![](/public/images/comms/dev-guide_rest_v2/postman_headers_profile.png)  

### How to run transactions without a profile

REST v2 uses the system default profile when a profile is not specified.  

To send a transaction without a client profile, modify the [header](/communications/dev-guide_rest_v2/getting-started/authentication/) using one of these options:

-   Do not include `client_profile_id`
-   Set `client_profile_id` to "0"

#### Note

The system default profile is "0".  

-   [Previous](/communications/dev-guide_rest_v2/customizing-transactions/)
-   [Next](/communications/dev-guide_rest_v2/customizing-transactions/account-customizations/)