# Advanced features

Source: https://developer.avalara.com/vat-erp/about-this-guide/advanced-features/

The table below includes functionality that we suggest building into your integration in addition to the core requirements. The requirements apply only to the advanced features, and “required” components aren’t mandatory to achieve your badge.

[![Closed](https://avalara-devdocs-prod.mcoutput.com/vat-erp/Skins/Default/Stylesheets/Images/transparent.gif)Input VAT](javascript:void\(0\);)

Requirement

Use case

Endpoints/Models

Type

[Purchase orders/purchase invoices](/vat-erp/transactions/certification-requirements/purchase-orders-and-invoices)  

Users must be able to create quotes or estimates using purchase orders and purchase invoice document types.

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Required

[Point-of-order acceptance address (header and line levels)](/vat-erp/transactions/certification-requirements/poa-address)  

Your implementation must be able to store at the header or line levels the address from where the order was accepted by your supplier, such as a call center, business office where purchase orders are accepted, and server locations where orders are processed and accepted.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required

[Goods place or service address (header and line levels)](/vat-erp/transactions/certification-requirements/gpos-address)  

Users must be able to specify at the header or line levels, the address where the goods are located when there is no transport.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required

[Import address (header and line levels)](/vat-erp/transactions/certification-requirements/import-address)  

Users must be able to specify at the header or line levels, the address where goods are imported into.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required

[Option to defer import VAT](/vat-erp/certification-requirements/option-to-defer-import-vat)  

Users should be able to specify whether a customer can defer import VAT until the return is filed.

[TransactionParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionParameterModel/),

[TransactionLineParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionLineParameterModel/)  

Required

[Comparison of vendor tax and self-assessed tax](/vat-erp/certification-requirements/comparison-vendor-and-self-assessed-tax)  

ERP systems must allow users to compare what AvaTax calculates as the tax versus what was actually received on the invoice.

N/A

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/vat-erp/Skins/Default/Stylesheets/Images/transparent.gif)Triangulation](javascript:void\(0\);)

Requirement

Use case

Endpoints/Models

Type

[Enable triangulation](/vat-erp/certification-requirements/enable-triangulation)

Users should be able to specify whether the transaction is related to a prior or subsequent supply of goods.

[TransactionParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionParameterModel/),

[TransactionLineParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionLineParameterModel/)  

Required

[Middleman VAT ID](/vat-erp/certification-requirements/middleman-vat-id)  

Users should be able to specify the VAT ID of the middleman in triangulation scenarios.

[TransactionParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionParameterModel/),

[TransactionLineParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionLineParameterModel/)  

Required

[Goods place or service address (header and line levels)](/vat-erp/transactions/certification-requirements/gpos-address)  

Users must be able to specify at the header or line levels, the address where the goods are located when there is no transport in triangulation scenarios.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required

[Party A VAT ID country](/vat-erp/certification-requirements/party-a-vat-id-country)  

The `PartyAVATIDCountry` parameter is used in triangulation transactions to verify that Party A has provided a VAT ID for the country the goods originated from.

[TransactionLineParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionLineParameterModel/)  

Suggested

[Party C VAT ID country](/vat-erp/certification-requirements/party-c-vat-id-country)  

The `PartyCVATIDCountry` parameter is used in triangulation transactions to verify that Party C has provided a VAT ID for the country the goods are shipped to.

[TransactionLineParameterModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/TransactionLineParameterModel/)  

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/vat-erp/Skins/Default/Stylesheets/Images/transparent.gif)Credit memos](javascript:void\(0\);)

Requirements for achieving the credit memo advanced feature are coming soon.