# Advanced features

Source: https://developer.avalara.com/ecommerce-integration-guide/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/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Refunds integration](javascript:void\(0\);)

Requirement

Use case

Endpoints/Models

Type

[Return order/return invoices workflow](/ecommerce-integration-guide/transactions/certification-requirements/return-order-invoice-workflow)  

Merchants need to ensure that returns they commit/post documents appropriately for reporting. Ensure that this workflow matches your AvaTax sales transaction workflow.  

N/A  

Required

[Send the original invoice date as the tax calculation date for refunds](/ecommerce-integration-guide/transactions/certification-requirements/send-original-invoice-date-for-return)  

Merchants need to provide a method for including the original invoice date as the tax calculation date when refunding tax.  

[CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/)  

[RefundTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/RefundTransaction/)  

Required

[Send the current transaction date as the document date for refunds](/ecommerce-integration-guide/transactions/certification-requirements/send-current-transaction-date)  

Merchants must allow users to specify the current date as the transaction date for the refund.  

[CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/)  

[RefundTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/RefundTransaction/)  

Required

[Send a negative line item amount with a positive quantity](/ecommerce-integration-guide/transactions/certification-requirements/send-negative-amount-with-positive-quantity)  

`ReturnInvoice` transactions must specify a negative amount value and a positive quantity.

[CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/)  

Required

[Support tax-only adjustments](/ecommerce-integration-guide/transactions/certification-requirements/support-tax-only-adjustments)  

If your platform allows refunds for calculated tax, then you should include this in your AvaTax implementation.  

[RefundTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/RefundTransaction/)  

Suggested

[Support tax amount tax overrides](/ecommerce-integration-guide/transactions/certification-requirements/support-tax-amount-tax-overrides)  

Merchants should allow users to override the tax amount in a transaction.  

[CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/)  

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)POS integration](javascript:void\(0\);)

Requirement

Use case

Endpoints/Models

Type

[Use the correct address type for your POS](/ecommerce-integration-guide/transactions/certification-requirements/use-the-correct-address-type-for-your-pos)  

For cash-and-carry sales, ensure that the transaction either uses a single location address or that the transaction has the same ship-to and ship-from address.

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

Required

[Reporting location code](/ecommerce-integration-guide/transactions/certification-requirements/reporting-location-code)  

Provide an option for users to specify a reporting location code in the determination request. This code represents the location/store identifier from the source system being sent in the request.

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

Required