> This page is for APIs, version Calculations.
> For other versions, use one of these documentation indexes:
> - Overview (default): https://avalara.ferndocs.com/api-reference/overview/llms.txt
> - Calculations: https://avalara.ferndocs.com/api-reference/calculations/llms.txt
> - E-invoicing: https://avalara.ferndocs.com/api-reference/e-invoicing/llms.txt
> - Brazil: https://avalara.ferndocs.com/api-reference/brazil/llms.txt
> - Returns: https://avalara.ferndocs.com/api-reference/returns/llms.txt
> - Shared service: https://avalara.ferndocs.com/api-reference/shared-service/llms.txt
> - 1099 & W-9: https://avalara.ferndocs.com/api-reference/1099-w9/llms.txt
> - Tax registrations & business licenses: https://avalara.ferndocs.com/api-reference/tax-registrations/llms.txt
> - ECM: https://avalara.ferndocs.com/api-reference/ecm/llms.txt
> - Cross-Border: https://avalara.ferndocs.com/api-reference/cross-border/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://avalara.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://avalara.ferndocs.com/_mcp/server.

# List Tax Forms

GET https://rest.avatax.com/api/v2/definitions/taxforms

> **Access control:** this endpoint is available to users with the `everyone` role.

Returns the full list of Avalara-supported Tax Forms
This API is intended to be useful to identify all the different Tax Forms

Reference: https://avalara.ferndocs.com/api-reference/calculations/ava-tax/public-reference/list-tax-forms

## Authentication

- `Authorization` header (required) — API Key authentication via header

## Request

### Query parameters

- `$filter` (string, optional) — A filter statement to identify specific records to retrieve. For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).
- `$top` (integer, optional) — If nonzero, return no more than this number of results. Used with `$skip` to provide pagination for large datasets. Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records.
- `$skip` (integer, optional) — If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
- `$orderBy` (string, optional) — A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.

### Headers

- `X-Avalara-Client` (string, optional, default: Swagger UI; 26.7.0; Custom; 1.0) — Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) .

## Response

### 200

Success

- `@recordsetCount` (integer, optional)
- `value` (list of FormMasterModel, optional)
- `@nextLink` (string, optional)
- `pageKey` (string, optional)

## Types

### FormMasterModel

Represents information about a tax form known to Avalara

- `id` (integer, optional) — Unique ID number of this form master object
- `formTypeId` (integer, optional) — The type of the form being submitted
- `taxFormCode` (string, optional) — Unique tax form code representing this tax form
- `legacyReturnName` (string, optional) — Legacy return name as known in the AvaFileForm table
- `taxFormName` (string, optional) — Human readable form summary name
- `description` (string, optional) — Description of this tax form
- `isEffective` (boolean, optional) — True if this form is available for use
- `country` (string, optional) — ISO 3166 code of the country that issued this tax form
- `region` (string, optional) — The region within which this form was issued
- `authorityName` (string, optional) — Tax authority that issued the form
- `shortCode` (string, optional) — DEPRECATED
- `dueDay` (integer, optional) — Day of the month when the form is due
- `delinquentDay` (integer, optional) — Day of the month on which the form is considered delinquent. Almost always the same as DueDay
- `fiscalYearStartMonth` (integer, optional) — Month of the year the state considers as the first fiscal month
- `hasMultiFrequencies` (boolean, optional) — Can form support multi frequencies
- `isPOARequired` (boolean, optional) — Does this tax authority require a power of attorney in order to speak to Avalara
- `isRegistrationRequired` (boolean, optional) — True if this form requires that the customer register with the authority
- `hasMultiRegistrationMethods` (boolean, optional) — Unused
- `hasSchedules` (boolean, optional) — Unused
- `hasMultiFilingMethods` (boolean, optional) — Unused
- `hasMultiPayMethods` (boolean, optional) — Unused
- `isEFTRequired` (boolean, optional) — Unused
- `isFilePayMethodLinked` (boolean, optional) — Unused
- `mailingReceivedRuleId` (integer, optional) — Unused
- `proofOfMailingId` (integer, optional) — Unused
- `isNegAmountAllowed` (boolean, optional) — True if you can report a negative amount in a single jurisdiction on the form
- `allowNegativeOverallTax` (boolean, optional) — True if the form overall can go negative
- `isNettingRequired` (boolean, optional) — Unused
- `roundingMethodId` (integer, optional) — Unused
- `vendorDiscountAnnualMax` (double, optional) — Total amount of discounts that can be received by a vendor each year
- `versionsRequireAuthorityApproval` (boolean, optional) — Unused
- `outletReportingMethodId` (integer, optional) — Type of outlet reporting for this form
- `hasReportingCodes` (boolean, optional) — Unused
- `hasPrepayments` (boolean, optional) — Not sure if used
- `grossIncludesInterstateSales` (boolean, optional) — Unused
- `grossIncludesTax` (string, optional) — Unused
- `hasEfileFee` (boolean, optional) — Unused
- `hasEpayFee` (boolean, optional) — Unused
- `hasDependencies` (boolean, optional) — Unused
- `requiredEfileTrigger` (string, optional) — Unused
- `requiredEftTrigger` (string, optional) — Unused
- `vendorDiscountEfile` (boolean, optional) — Unused
- `vendorDiscountPaper` (boolean, optional) — Unused
- `peerReviewed` (string, optional) — Unused
- `peerReviewedId` (string, optional) — Unused
- `peerReviewedDate` (string, optional) — Unused
- `createdUserId` (integer, optional) — ID of the Avalara user who created the form
- `createdDate` (datetime, optional) — Date when form was created
- `modifiedUserId` (integer, optional) — ID of the Avalara user who modified the form
- `modifiedDate` (datetime, optional) — Date when form was modified
- `dorAddressMailTo` (string, optional) — Mailing address of the department of revenue
- `dorAddress1` (string, optional) — Mailing address of the department of revenue
- `dorAddress2` (string, optional) — Mailing address of the department of revenue
- `dorAddressCity` (string, optional) — Mailing address of the department of revenue
- `dorAddressRegion` (string, optional) — Mailing address of the department of revenue
- `dorAddressPostalCode` (string, optional) — Mailing address of the department of revenue
- `dorAddressCountry` (string, optional) — Mailing address of the department of revenue
- `zeroAddressMailTo` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddress1` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddress2` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddressCity` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddressRegion` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddressPostalCode` (string, optional) — Mailing address to use when a zero dollar form is filed
- `zeroAddressCountry` (string, optional) — Mailing address to use when a zero dollar form is filed
- `amendedAddressMailTo` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddress1` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddress2` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddressCity` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddressRegion` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddressPostalCode` (string, optional) — Mailing address to use when filing an amended return
- `amendedAddressCountry` (string, optional) — Mailing address to use when filing an amended return
- `onlineBackFiling` (boolean, optional) — Unused
- `onlineAmendedReturns` (boolean, optional) — Unused
- `prepaymentFrequency` (string, optional) — --Need Further Clarification
- `outletLocationIdentifiersRequired` (boolean, optional) — Unused
- `listingSortOrder` (string, optional) — --Need Further Clarification
- `dorWebsite` (string, optional) — Link to the state department of revenue website, if available
- `fileForAllOutlets` (boolean, optional) — --Need Further Clarification
- `paperFormsDoNotHaveDiscounts` (boolean, optional) — --Need Further Clarification
- `stackAggregation` (boolean, optional) — Internal behavior
- `roundingPrecision` (string, optional) — --Need Further Clarification
- `inconsistencyTolerance` (string, optional) — --Need Further Clarification
- `effDate` (datetime, optional) — Date when this form became effective
- `endDate` (datetime, optional) — Date when this form expired
- `visibleToCustomers` (boolean, optional) — True if this form can be shown to customers
- `requiresOutletSetup` (boolean, optional) — True if this form requires that you set up outlets in the state
- `achCreditAllowed` (boolean, optional) — True if this state permits payment by ACH Credit
- `reportLevel` (string, optional) — Jurisdiction level of the state
- `postOfficeValidated` (boolean, optional) — True if this form is verified filed via email
- `stackAggregationOption` (string, optional) — Internal Avalara flag
- `sstBehavior` (string, optional) — Internal Avalara flag
- `nonSstBehavior` (string, optional) — Internal Avalara flag
- `dorPhoneNumber` (string, optional) — Phone number of the department of revenue
- `averageCheckClearDays` (string, optional) — Unused
- `filterZeroRatedLineDetails` (boolean, optional) — Unused
- `allowsBulkFilingAccounts` (boolean, optional) — Unused
- `bulkAccountInstructionLink` (string, optional) — Unused
- `registrationIdFormat` (string, optional) — Unused
- `thresholdTrigger` (string, optional) — Unused
- `transactionSortingOption` (string, optional) — Unused
- `contentReviewFrequencyId` (integer, optional) — Unused
- `aliasForFormMasterId` (string, optional) — Unused

## Examples

**Response**

```json
{
  "@recordsetCount": 1,
  "value": [
    {
      "id": 2415,
      "formTypeId": 0,
      "taxFormCode": "string",
      "legacyReturnName": "CABOE401A2",
      "taxFormName": "CA BOE 401 A2",
      "description": "State, Local, and District Sales and Use Tax Return",
      "isEffective": true,
      "country": "US",
      "region": "CA",
      "authorityName": "string",
      "shortCode": "string",
      "dueDay": 20,
      "delinquentDay": 1,
      "fiscalYearStartMonth": 1,
      "hasMultiFrequencies": false,
      "isPOARequired": false,
      "isRegistrationRequired": false,
      "hasMultiRegistrationMethods": false,
      "hasSchedules": false,
      "hasMultiFilingMethods": false,
      "hasMultiPayMethods": false,
      "isEFTRequired": true,
      "isFilePayMethodLinked": false,
      "mailingReceivedRuleId": 0,
      "proofOfMailingId": 0,
      "isNegAmountAllowed": true,
      "allowNegativeOverallTax": false,
      "isNettingRequired": false,
      "roundingMethodId": 0,
      "vendorDiscountAnnualMax": 0,
      "versionsRequireAuthorityApproval": false,
      "outletReportingMethodId": 0,
      "hasReportingCodes": false,
      "hasPrepayments": false,
      "grossIncludesInterstateSales": false,
      "grossIncludesTax": "string",
      "hasEfileFee": false,
      "hasEpayFee": false,
      "hasDependencies": false,
      "requiredEfileTrigger": "string",
      "requiredEftTrigger": "string",
      "vendorDiscountEfile": false,
      "vendorDiscountPaper": false,
      "peerReviewed": "string",
      "peerReviewedId": "string",
      "peerReviewedDate": "string",
      "createdUserId": 0,
      "createdDate": "0001-01-01T00:00:00",
      "modifiedUserId": 0,
      "modifiedDate": "0001-01-01T00:00:00",
      "dorAddressMailTo": "string",
      "dorAddress1": "string",
      "dorAddress2": "string",
      "dorAddressCity": "string",
      "dorAddressRegion": "string",
      "dorAddressPostalCode": "string",
      "dorAddressCountry": "string",
      "zeroAddressMailTo": "string",
      "zeroAddress1": "string",
      "zeroAddress2": "string",
      "zeroAddressCity": "string",
      "zeroAddressRegion": "string",
      "zeroAddressPostalCode": "string",
      "zeroAddressCountry": "string",
      "amendedAddressMailTo": "string",
      "amendedAddress1": "string",
      "amendedAddress2": "string",
      "amendedAddressCity": "string",
      "amendedAddressRegion": "string",
      "amendedAddressPostalCode": "string",
      "amendedAddressCountry": "string",
      "onlineBackFiling": false,
      "onlineAmendedReturns": false,
      "prepaymentFrequency": "string",
      "outletLocationIdentifiersRequired": true,
      "listingSortOrder": "string",
      "dorWebsite": "string",
      "fileForAllOutlets": false,
      "paperFormsDoNotHaveDiscounts": false,
      "stackAggregation": false,
      "roundingPrecision": "string",
      "inconsistencyTolerance": "string",
      "effDate": "2005-04-01T00:00:00",
      "endDate": "9999-12-31T00:00:00",
      "visibleToCustomers": false,
      "requiresOutletSetup": false,
      "achCreditAllowed": false,
      "reportLevel": "string",
      "postOfficeValidated": false,
      "stackAggregationOption": "string",
      "sstBehavior": "string",
      "nonSstBehavior": "string",
      "dorPhoneNumber": "string",
      "averageCheckClearDays": "string",
      "filterZeroRatedLineDetails": false,
      "allowsBulkFilingAccounts": false,
      "bulkAccountInstructionLink": "string",
      "registrationIdFormat": "string",
      "thresholdTrigger": "string",
      "transactionSortingOption": "string",
      "contentReviewFrequencyId": 1,
      "aliasForFormMasterId": "string"
    }
  ],
  "@nextLink": "string",
  "pageKey": "string"
}
```

**SDK Code**

```python
import requests

url = "https://rest.avatax.com/api/v2/definitions/taxforms"

headers = {"Authorization": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://rest.avatax.com/api/v2/definitions/taxforms';
const options = {method: 'GET', headers: {Authorization: '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://rest.avatax.com/api/v2/definitions/taxforms"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://rest.avatax.com/api/v2/definitions/taxforms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://rest.avatax.com/api/v2/definitions/taxforms")
  .header("Authorization", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://rest.avatax.com/api/v2/definitions/taxforms', [
  'headers' => [
    'Authorization' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://rest.avatax.com/api/v2/definitions/taxforms");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://rest.avatax.com/api/v2/definitions/taxforms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```