Skip to content
Resource · Accounting

Tax types

A tax type sets a tax rate and the accounts that book the tax.

tax-types:readtax-types:write
MethodPathSummary
GET…/tax-typesList tax types in the workspace
POST…/tax-typesCreate a tax type
PATCH…/tax-types/{taxTypeId}Update a tax type
DELETE…/tax-types/{taxTypeId}Delete a tax type

Paths start with /workspaces/{workspaceId}. GET endpoints need tax-types:read, the others tax-types:write.

The TaxType object

firestoreIdstringrequired

ID of the tax type.

workspaceIdstringrequired

ID of the workspace.

namestringrequired
descriptionstring
ratenumberrequired
externalIdstringrequired
codestring
Show all 10 fields
ledgerAccountstring
milliRoundingFactornumber
creationobjectrequired

When and by whom the resource was created.

Show 2 child fields
creationDateTimestringdate-timerequired

Date and time when the resource was created.

createdBystring

ID of the user who created the resource, when recorded.

The TaxType object
{
  "firestoreId": "Tt9mC5rL2wQz7nVb4kHp",
  "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
  "name": "string",
  "description": "string",
  "rate": 0,
  "externalId": "string",
  "code": "string",
  "ledgerAccount": "string",
  "milliRoundingFactor": 0,
  "creation": {
    "creationDateTime": "2026-03-02T09:15:00.000Z",
    "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
  }
}
GET/workspaces/{workspaceId}/tax-types

List tax types in the workspace

Scopetax-types:read

Path parameters

workspaceIdstringrequired

ID of the workspace.

Query parameters

limitinteger

Maximum number of items to return, from 1 to 100. A missing, invalid or non-positive value falls back to 20, and a larger value to 100.

Default20

startAfterstring

Cursor of the page to return: the nextCursor of the previous page.

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

idsstring[]

Comma-separated IDs of the items to return, up to 30. When set, limit, startAfter and the filters are ignored.

Returns

200

List of items

dataTaxType[]required

Items of the page, in list order.

limitintegerrequired

Page size of the request, or the number of requested ids.

nextCursorstring

Cursor of the next page, to pass as startAfter. Absent when the page holds fewer items than limit; a full last page still has one, and the page it points to is empty.

curl 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/tax-types' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "data": [
    {
      "firestoreId": "Tt9mC5rL2wQz7nVb4kHp",
      "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
      "name": "string",
      "description": "string",
      "rate": 0,
      "externalId": "string",
      "code": "string",
      "ledgerAccount": "string",
      "milliRoundingFactor": 0,
      "creation": {
        "creationDateTime": "2026-03-02T09:15:00.000Z",
        "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
      }
    }
  ],
  "limit": 0,
  "nextCursor": "string"
}
POST/workspaces/{workspaceId}/tax-types

Create a tax type

Scopetax-types:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

Query parameters

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

Request body

namestringrequired
descriptionstring
ratenumberrequired
externalIdstringrequired
codestring
ledgerAccountstring
milliRoundingFactornumber

Returns

200

Successful response

dataTaxTyperequired
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/tax-types' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "rate": 0,
  "externalId": "string",
  "code": "string",
  "ledgerAccount": "string",
  "milliRoundingFactor": 0
}'
{
  "data": {
    "firestoreId": "Tt9mC5rL2wQz7nVb4kHp",
    "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
    "name": "string",
    "description": "string",
    "rate": 0,
    "externalId": "string",
    "code": "string",
    "ledgerAccount": "string",
    "milliRoundingFactor": 0,
    "creation": {
      "creationDateTime": "2026-03-02T09:15:00.000Z",
      "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
    }
  }
}
PATCH/workspaces/{workspaceId}/tax-types/{taxTypeId}

Update a tax type

Scopetax-types:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

taxTypeIdstringrequired

ID of the tax type.

Request body

namestring
descriptionstring | null
ratenumber
externalIdstring
codestring | null
ledgerAccountstring | null
milliRoundingFactornumber | null

Returns

204

No content

curl -X PATCH 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/tax-types/Tt9mC5rL2wQz7nVb4kHp' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "rate": 0,
  "externalId": "string",
  "code": "string",
  "ledgerAccount": "string",
  "milliRoundingFactor": 0
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
DELETE/workspaces/{workspaceId}/tax-types/{taxTypeId}

Delete a tax type

Scopetax-types:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

taxTypeIdstringrequired

ID of the tax type.

Returns

204

No content

curl -X DELETE 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/tax-types/Tt9mC5rL2wQz7nVb4kHp' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}

Start building on your own data.

Create an account, open Profile › Developer and create a key scoped to the resources you need. Questions about an integration? The team answers them on a call.