# TaxSessionsPublicController_Create

Creates a tax session for the specified company.

`POST /api/v1/TaxSessions/Create`

**API:** Excise Platform API
**Tag:** Tax Sessions
**API Version:** v1
**Base URL:** https://excise.avalara.com
**Content-Type:** `application/json`
**Accepts:** `application/json`
**Authentication:** Basic (username + license key)

Source: https://developer.avalara.com/products/excise/api/methods/Tax%20Sessions/TaxSessionsPublicController_Create/

## Description

Creates a new tax session using the provided tax session identifiers. The company must be
licensed for the specified return and properly configured. The API returns the created tax session
including the assigned HeaderId and Sequence (initially 0). This does not generate the return output.

## Parameters

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `x-company-id` | integer | header | Yes | Company ID that owns the data. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API. For more information on the client header, see Client Headers. |

## Request Body

**Schema:** `Avalara.Excise.Common.Contracts.Services.RestTaxSessionCreateRequest`

Request body for POST /api/v1/TaxSessions/Create.

| Property | Type | Required | Description |
|---|---|---|---|
| `Country` | string | No | Country associated with the tax return. Example: `USA`. |
| `Jurisdiction` | string | No | Jurisdiction associated with the tax return. Example: `US`. |
| `TaxpayerType` | string | No | TaxpayerType code associated with the tax return. Example: `TOR`. |
| `TerminalCode` | string | No | TerminalCode associated with the tax return (supported for specific returns only). Example: `T99SC9999`. |
| `LocationID` | integer | No | LocationID associated with the tax return (supported for specific returns only). Example: `0`. |
| `StartDate` | string | No | First day of the reporting period for the tax session. Example: `2025-01-01T00:00:00`. |
| `EndDate` | string | No | Last day of the reporting period. Required for variable-length frequencies
(VariableLength, VariableLengthCalendarYear, VariableCalendarMonth, VariableNinetyDays, VariableDueDates, OnDemand).
Ignored for fixed frequencies (Monthly, Quarterly, Annually, etc.) where the system computes EndDate automatically. Example: `2025-03-31T00:00:00`. |

## Responses

| Status | Description | Schema |
|---|---|---|
| 200 | Returns the newly created tax session details. | `Avalara.Excise.Common.Contracts.Services.RestTaxSessionResponse` |
| 400 | The request is invalid, the company is not licensed for the return, or configuration is missing. |  |
| 401 | Authentication credentials are incorrect. |  |

### 200 Response: `Avalara.Excise.Common.Contracts.Services.RestTaxSessionResponse`

Response returned by Tax Session Create, GetByHeader, and Amend endpoints.

| Property | Type | Required | Description |
|---|---|---|---|
| `CompanyName` | string | No | The company name. Example: `Acme Fuel Co`. |
| `CompanyId` | integer | No | The company context under which the session was created. Example: `100`. |
| `HeaderId` | integer | No | The unique header identifier. Example: `12345`. |
| `Country` | string | No | The ISO 3166-1 alpha-3 country code. Example: `USA`. |
| `Jurisdiction` | string | No | The jurisdiction or state code. Example: `AL`. |
| `TaxpayerType` | string | No | The taxpayer type code. Example: `DIST`. |
| `TaxpayerDescription` | string | No | The human-readable taxpayer type description. Example: `Distributor`. |
| `TerminalCode` | string | No | The terminal or facility code. Example: `T01ME1000`. |
| `TrackingNumber` | string | No | The tracking number. Example: `TRK-2024-001`. |
| `LocationID` | integer | No | The location identifier. Example: `501`. |
| `ReturnCode` | string | No | The return code. Example: `RET-001`. |
| `ReturnEffectiveDate` | string | No | The effective date used for determining applicable return rules and rates. Example: `2024-01-01T00:00:00`. |
| `StartDate` | string | No | The first day of the reporting period. Example: `2024-01-01T00:00:00`. |
| `Sequence` | integer | No | The sequence number (0 = original, 1+ = amendments). Example: `0`. |
| `EndDate` | string | No | The last day of the reporting period. Example: `2024-01-31T00:00:00`. |
| `DueDate` | string | No | The due date for filing the return. Example: `2024-02-28T00:00:00`. |
| `FiledDate` | string | No | The date the return was filed, or null if not yet filed. Example: `2024-02-15T00:00:00`. |
| `PurgedDate` | string | No | The date the session was purged, or null if not purged. Example: `2026-05-22T04:06:19.0187470Z`. |
| `CriticalScheduleErrors` | integer | No | The count of critical schedule-level errors. Example: `0`. |
| `ReturnGenerationNeeded` | boolean | No | Whether the return needs to be regenerated. Example: `false`. |
| `ReturnStatus` | string | No | The calculation status of the return. Example: `Calculated`. |
| `FrequencyType` | string | No | The filing frequency description (e.g. Monthly, Quarterly, Annual). Example: `M - Monthly`. |
| `FrequencyTypeInd` | string | No | The filing frequency indicator character. Example: `M`. |
| `SessionSourceInd` | string | No | The session source indicator character. Example: `M`. |
| `SessionSource` | string | No | The human-readable session source description. Example: `Manual`. |
| `SessionLocked` | boolean | No | Whether the session is locked from editing. Example: `false`. |
| `PurgeExcludeInd` | boolean | No | The purge-exclude indicator. Example: `false`. |
| `PreventArchiveandPurge` | boolean | No | Whether archive and purge is prevented. Example: `false`. |
| `ReturnPdfSegmentCount` | integer | No | The number of PDF segments generated for the return. Example: `0`. |
| `GLReconGenerationNeeded` | boolean | No | Whether GL reconciliation data needs to be generated. Example: `false`. |
| `LocationCountry` | string | No | The ISO 3166-1 alpha-3 country code for the associated location. Example: `USA`. |
| `LocationJurisdiction` | string | No | The jurisdiction or state code for the associated location. Example: `AL`. |
| `LocationCounty` | string | No | The county name for the associated location. Example: `Montgomery`. |
| `LocationCountyCode` | string | No | The county code for the associated location. Example: `MONT`. |
| `LocationCity` | string | No | The city name for the associated location. Example: `Montgomery`. |
| `LocationTerminalCode` | string | No | The terminal code associated with the location. Example: `T01ME1000`. |
| `LocationDescription` | string | No | A human-readable description of the associated location. Example: `Main Distribution Terminal`. |
| `LocationCustomIdCode` | string | No | A client-defined identifier for the associated location. Example: `CUST-001`. |
| `LocationAddressLine1` | string | No | The first line of the street address for the associated location. Example: `123 Main Street`. |
| `LocationAddressLine2` | string | No | The second line of the street address for the associated location. Example: `Suite 200`. |
| `LocationPostalCode` | string | No | The postal or ZIP code for the associated location. Example: `36104`. |
| `LocationAirportCode` | string | No | The airport code for the associated location, if applicable. Example: `MGM`. |
| `LocationAlternateJurisdiction` | string | No | An alternate jurisdiction designation for the associated location, when applicable. Example: `AL-ALT`. |
| `FiledBy` | string | No | The user who filed the return. Example: `jsmith`. |
| `PreparedBy` | string | No | The user who prepared the return. Example: `jsmith`. |
| `ReviewedBy` | string | No | The user who reviewed the return. Example: `jdoe`. |
| `ApprovedBy` | string | No | The user who approved the return. Example: `admin`. |
| `LastGeneratedDate` | string | No | The date the return was last generated. Example: `2024-01-15T09:30:00`. |
| `PostedDate` | string | No | The date the return was posted to GL or downstream systems. Example: `2024-01-20T14:22:00`. |
| `WorkflowTask` | string | No | The current workflow task code. Example: `REVIEW`. |
| `WorkflowTaskDescription` | string | No | The human-readable description of the current workflow task. Example: `Pending Review`. |
| `WorkflowName` | string | No | The assigned workflow name. Example: `Standard Filing Workflow`. |
| `TotalTax` | number | No | The total calculated tax amount for the return. Example: `184`. |
| `CollectionAllowance` | number | No | The collection allowance amount credited on the return. Example: `0`. |
| `TotalAmountDue` | number | No | The total amount due after taxes and allowances. Example: `184`. |
| `TaxpayerGroup` | string | No | The taxpayer group classification. Example: `Group A`. |
| `LicenseNumber` | string | No | The license or registration number. Example: `LIC-AL-2024-001`. |
| `SubmissionType` | string | No | The submission type indicator character. Example: `P`. |
| `SubmissionTypeDisplay` | string | No | The human-readable display name for the submission type. Example: `Paper`. |
| `ThresholdAmount` | number | No | The amount-due threshold for the return. Example: `0`. |
| `ReturnCalculationDate` | string | No | The date the return calculation was last performed. Example: `2024-01-15T09:30:00`. |
| `LastDataFileUploadDate` | string | No | The date of the last data file upload. Example: `2024-01-10T08:00:00`. |
| `LasteFileUploadDate` | string | No | The date of the last eFile upload. Example: `2024-01-12T10:15:00`. |
| `IncludeSchedules` | boolean | No | Whether schedules are included in the return. Example: `true`. |
| `CalculationViewInd` | string | No | The calculation view description. Example: `Current`. |
| `BackEndInd` | boolean | No | Whether this is a back-end session. Example: `false`. |
| `AmmendmentType` | string | No | The amendment type (ORIGINAL or AMENDED). Example: `ORIGINAL`. |
| `EFileHeaderId` | integer | No | The associated eFile header identifier, if an eFile has been created. Example: `6789`. |
| `CreatedBy` | string | No | The user who created the record. Example: `jsmith`. |
| `CreatedDate` | string | No | The date and time the record was created. Example: `2024-01-15T09:30:00`. |
| `UpdatedBy` | string | No | The user who last updated the record. Example: `jdoe`. |
| `UpdatedDate` | string | No | The date and time the record was last updated. Example: `2024-06-15T14:22:00`. |

## Example Request

```bash
curl -X POST "https://excise.avalara.com/api/v1/TaxSessions/Create" \
  -H "Authorization: Basic <credentials>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
  "Country": "USA",
  "Jurisdiction": "US",
  "TaxpayerType": "TOR",
  "TerminalCode": "T99SC9999",
  "LocationID": 0,
  "StartDate": "2025-01-01T00:00:00",
  "EndDate": "2025-03-31T00:00:00"
}'
```