Skip to content
Resource · Accounting

Account coding rules

An account coding rule codes the bank transactions that match its conditions.

account-coding-rules:readaccount-coding-rules:write
MethodPathSummary
GET…/account-coding-rulesList account coding rules in the workspace
POST…/account-coding-rulesCreate a new account coding rule
PATCH…/account-coding-rules/{ruleId}Update an existing account coding rule
DELETE…/account-coding-rules/{ruleId}Delete an account coding rule
POST…/account-coding-rules/reorderReorder account coding rules to change their evaluation priority
POST…/account-coding-rules/{ruleId}/conditionsAdd a condition to an account coding rule
DELETE…/account-coding-rules/{ruleId}/conditions/{conditionId}Delete a condition from an account coding rule
PATCH…/account-coding-rules/{ruleId}/conditions/{conditionId}Edit a condition on an account coding rule
POST…/account-coding-rules/{ruleId}/actionsAdd an action to an account coding rule
DELETE…/account-coding-rules/{ruleId}/actions/{actionId}Delete an action from an account coding rule
PATCH…/account-coding-rules/{ruleId}/actions/{actionId}Edit an action on an account coding rule

Paths start with /workspaces/{workspaceId}. GET endpoints need account-coding-rules:read, the others account-coding-rules:write.

The AccountCodingRule object

firestoreIdstringrequired

ID of the account coding rule.

workspaceIdstringrequired

ID of the workspace.

namestringrequired
descriptionstring
bankAccountIdstring

ID of the bank account.

conditionsOperatorstringrequired

ValuesANDOR

conditionsobject[]required
field: TEXT
idstringrequired
fieldstringrequired

ValuesTEXT

operatorstringrequired

ValuesCONTAINSNOT_CONTAINS

valuestringrequired
field: MILLI_AMOUNT
idstringrequired
fieldstringrequired

ValuesMILLI_AMOUNT

operatorstringrequired

ValuesLTGTLTEGTEEQNEQ

valuenumberrequired
field: CURRENCY
idstringrequired
fieldstringrequired

ValuesCURRENCY

operatorstringrequired

ValuesEQNEQ

valuestringrequired

ISO 4217 currency code

Show all 11 fields
actionsobject[]required
Show 3 child fields
idstringrequired
typestringrequired

ValuesASSIGN_ACCOUNTASSIGN_TAX_TYPESET_ENTRY_DESCRIPTION

valuestringrequired
ordernumberrequired
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.

activationobjectrequired

Whether the resource is enabled, and when and by whom it was last enabled or disabled.

Show 3 child fields
enabledbooleanrequired

Whether the resource is enabled.

updateDateTimestringdate-timerequired

Date and time when enabled was last set.

updatedBystring

ID of the user who last set enabled, when recorded.

The AccountCodingRule object
{
  "firestoreId": "Ru7bX2kQ9mWp4tLz6nHc",
  "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
  "name": "string",
  "description": "string",
  "bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
  "conditionsOperator": "AND",
  "conditions": [
    {
      "id": "string",
      "field": "TEXT",
      "operator": "CONTAINS",
      "value": "string"
    }
  ],
  "actions": [
    {
      "id": "string",
      "type": "ASSIGN_ACCOUNT",
      "value": "string"
    }
  ],
  "order": 0,
  "creation": {
    "creationDateTime": "2026-03-02T09:15:00.000Z",
    "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
  },
  "activation": {
    "enabled": true,
    "updateDateTime": "2026-03-02T09:15:00.000Z",
    "updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
  }
}
GET/workspaces/{workspaceId}/account-coding-rules

List account coding rules in the workspace

Scopeaccount-coding-rules: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

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/account-coding-rules' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "data": [
    {
      "firestoreId": "Ru7bX2kQ9mWp4tLz6nHc",
      "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
      "name": "string",
      "description": "string",
      "bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
      "conditionsOperator": "AND",
      "conditions": […],
      "actions": […],
      "order": 0,
      "creation": {
        "creationDateTime": "2026-03-02T09:15:00.000Z",
        "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
      },
      "activation": {
        "enabled": true,
        "updateDateTime": "2026-03-02T09:15:00.000Z",
        "updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
      }
    }
  ],
  "limit": 0,
  "nextCursor": "string"
}
POST/workspaces/{workspaceId}/account-coding-rules

Create a new account coding rule

Scopeaccount-coding-rules: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
bankAccountIdstring

ID of the bank account.

conditionsOperatorstringrequired

ValuesANDOR

conditionsobject[]required
field: TEXT
fieldstringrequired

ValuesTEXT

operatorstringrequired

ValuesCONTAINSNOT_CONTAINS

valuestringrequired
field: MILLI_AMOUNT
fieldstringrequired

ValuesMILLI_AMOUNT

operatorstringrequired

ValuesLTGTLTEGTEEQNEQ

valuenumberrequired
field: CURRENCY
fieldstringrequired

ValuesCURRENCY

operatorstringrequired

ValuesEQNEQ

valuestringrequired

ISO 4217 currency code

actionsobject[]required
Show 2 child fields
typestringrequired

ValuesASSIGN_ACCOUNTASSIGN_TAX_TYPESET_ENTRY_DESCRIPTION

valuestringrequired
encodeDaysOfHistoricalDatainteger

Returns

200

Successful response

dataAccountCodingRulerequired
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "description": "string",
  "bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
  "conditionsOperator": "AND",
  "conditions": [
    {
      "field": "TEXT",
      "operator": "CONTAINS",
      "value": "string"
    }
  ],
  "actions": [
    {
      "type": "ASSIGN_ACCOUNT",
      "value": "string"
    }
  ],
  "encodeDaysOfHistoricalData": 0
}'
{
  "data": {
    "firestoreId": "Ru7bX2kQ9mWp4tLz6nHc",
    "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
    "name": "string",
    "description": "string",
    "bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
    "conditionsOperator": "AND",
    "conditions": […],
    "actions": […],
    "order": 0,
    "creation": {
      "creationDateTime": "2026-03-02T09:15:00.000Z",
      "createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
    },
    "activation": {
      "enabled": true,
      "updateDateTime": "2026-03-02T09:15:00.000Z",
      "updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
    }
  }
}
PATCH/workspaces/{workspaceId}/account-coding-rules/{ruleId}

Update an existing account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

Request body

namestring
descriptionstring | null
bankAccountIdstring | null

ID of the bank account.

conditionsOperatorstring

ValuesANDOR

activeboolean
encodeDaysOfHistoricalDatainteger

Returns

204

No content

curl -X PATCH 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
  "conditionsOperator": "AND"
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
DELETE/workspaces/{workspaceId}/account-coding-rules/{ruleId}

Delete an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

Returns

204

No content

curl -X DELETE 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
POST/workspaces/{workspaceId}/account-coding-rules/reorder

Reorder account coding rules to change their evaluation priority

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

Request body

ruleIdstringrequired

ID of the account coding rule.

newOrderintegerrequired

Returns

204

No content

curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/reorder' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "ruleId": "Ru7bX2kQ9mWp4tLz6nHc",
  "newOrder": 0
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
POST/workspaces/{workspaceId}/account-coding-rules/{ruleId}/conditions

Add a condition to an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

Request body

conditionobjectrequired
field: TEXT
fieldstringrequired

ValuesTEXT

operatorstringrequired

ValuesCONTAINSNOT_CONTAINS

valuestringrequired
field: MILLI_AMOUNT
fieldstringrequired

ValuesMILLI_AMOUNT

operatorstringrequired

ValuesLTGTLTEGTEEQNEQ

valuenumberrequired
field: CURRENCY
fieldstringrequired

ValuesCURRENCY

operatorstringrequired

ValuesEQNEQ

valuestringrequired

ISO 4217 currency code

Returns

204

No content

curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/conditions' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "condition": {
    "field": "TEXT",
    "operator": "CONTAINS",
    "value": "string"
  }
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
DELETE/workspaces/{workspaceId}/account-coding-rules/{ruleId}/conditions/{conditionId}

Delete a condition from an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

conditionIdstringrequired

ID of the condition in the account coding rule.

Returns

204

No content

curl -X DELETE 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/conditions/k3j9x2m7q1p' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
PATCH/workspaces/{workspaceId}/account-coding-rules/{ruleId}/conditions/{conditionId}

Edit a condition on an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

conditionIdstringrequired

ID of the condition in the account coding rule.

Request body

conditionobjectrequired
field: TEXT
fieldstringrequired

ValuesTEXT

operatorstringrequired

ValuesCONTAINSNOT_CONTAINS

valuestringrequired
field: MILLI_AMOUNT
fieldstringrequired

ValuesMILLI_AMOUNT

operatorstringrequired

ValuesLTGTLTEGTEEQNEQ

valuenumberrequired
field: CURRENCY
fieldstringrequired

ValuesCURRENCY

operatorstringrequired

ValuesEQNEQ

valuestringrequired

ISO 4217 currency code

Returns

204

No content

curl -X PATCH 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/conditions/k3j9x2m7q1p' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "condition": {
    "field": "TEXT",
    "operator": "CONTAINS",
    "value": "string"
  }
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
POST/workspaces/{workspaceId}/account-coding-rules/{ruleId}/actions

Add an action to an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

Request body

actionobjectrequired
Show 2 child fields
typestringrequired

ValuesASSIGN_ACCOUNTASSIGN_TAX_TYPESET_ENTRY_DESCRIPTION

valuestringrequired

Returns

204

No content

curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/actions' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "action": {
    "type": "ASSIGN_ACCOUNT",
    "value": "string"
  }
}'
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
DELETE/workspaces/{workspaceId}/account-coding-rules/{ruleId}/actions/{actionId}

Delete an action from an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

actionIdstringrequired

ID of the action in the account coding rule.

Returns

204

No content

curl -X DELETE 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/actions/w8f4n1c6z5t' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
PATCH/workspaces/{workspaceId}/account-coding-rules/{ruleId}/actions/{actionId}

Edit an action on an account coding rule

Scopeaccount-coding-rules:write

Path parameters

workspaceIdstringrequired

ID of the workspace.

ruleIdstringrequired

ID of the account coding rule.

actionIdstringrequired

ID of the action in the account coding rule.

Request body

actionobjectrequired
Show 2 child fields
typestringrequired

ValuesASSIGN_ACCOUNTASSIGN_TAX_TYPESET_ENTRY_DESCRIPTION

valuestringrequired

Returns

204

No content

curl -X PATCH 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/account-coding-rules/Ru7bX2kQ9mWp4tLz6nHc/actions/w8f4n1c6z5t' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "action": {
    "type": "ASSIGN_ACCOUNT",
    "value": "string"
  }
}'
{
  "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.