# VAT transactions in AvaTax

Source: https://developer.avalara.com/vat-erp/transactions/vat-transactions-in-avatax/

At its core, AvaTax is designed to help you calculate taxes on a sales transaction between two parties. The options in the [CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/) API call help you ensure that your tax calculation is correct. Specifically, the Avalara tax engine determines the following key questions when calculating Tax.

-   What is the place of supply? In other words, in which country is the VAT obligation?

-   Which party has the liability to pay?

-   Are there any applicable product exemptions?

With this understanding of how AvaTax reads transactions, the rest of this section describes all the information you need to gather to produce accurate, fast, reliable VAT calculations. It shows you how to create basic transactions, the information required in each transaction, and the differences between the available document types. Transaction responses are also important. When creating transactions, be sure to store the VAT code and any EU invoice messages returned by the AvaTax engine so that they can be used in VAT Reporting.

Creating transactions is the basis of the AvaTax service, so it’s important to have a solid understanding of the basics.

**Note:**   

As you make your way through the Certification Requirements in this section, keep in mind that these requirements don’t include any additional fields. These requirements ensure that you populate those required fields in AvaTax. You must have these elements so that AvaTax can perform VAT calculations.

**Note:**  
You'll notice that some parameters are considered optional by the API documentation; however we still require these parameters for certification. For example if a user omits a `code` in the CreateTransaction request, AvaTax will generate a UUID. However for certification, we expect your integration to pass this transaction identifier field.