# AFC transaction structure

Source: https://developer.avalara.com/products/communications/integration-guides/communications-integration/bll7304313444001/

Guide: Communications

# AFC transaction structure

Learn how to run AFC transactions using the CalculateTaxes API and required models.

AFC transactions are run using the [CalculateTaxes API](https://developer.avalara.com/api-reference/communications/v2/methods/Tax%20Calculation/CalculateTaxes/). For each request, the following are required in the header:

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

The following models are also required in each transaction.

-   [CompanyData](https://developer.avalara.com/api-reference/communications/v2/models/CompanyData/)
-   [Understand jurisdictions](/communications-integration/kvu8173486425980/)
-   [Invoice](https://developer.avalara.com/api-reference/communications/v2/models/Invoice/)
-   [LineItem](https://developer.avalara.com/api-reference/communications/v2/models/LineItem/)

    Line items must include a Transaction/Service pair along withe the appropriate input type for that pair. More information is available in the [Understand T/S pairs and input types](/communications-integration/wvl4246062540462/ "Learn about Transaction Types and Service Types (T/S pairs) and their input types for accurate tax calculations in AFC.") topic.

In addition to the required models listed above, you can also optionally specify models for exemptions, custom configurations, jurisdictions, and more.