Tax Details

The TaxDetail Object

A Rutter Tax Detail represents a specific tax configuration pairing, capturing the effective rate and calculation rules that apply for a given combination of tax area and tax group.

Platform Differences

Dynamics 365:

  • Each tax detail corresponds to a row in the VAT Posting Setup table, identified by the combination of VAT Bus. Posting Group and VAT Prod. Posting Group.
  • The additional_fields object exposes the VAT-specific fields: vat_business_group, vat_product_group, vat_percent, and vat_calculation_type.

Properties

idstring

The Rutter generated unique ID of the tax detail.

platform_idstring

The platform specific ID of the tax detail.

codestringnullable

The tax code of the tax detail.

effective_tax_ratenumbernullable

Where there are multiple components of a tax, each component may be calculated on the original amount and added together. Alternatively, one tax may be calculated on the sub-total of the original amount plus another tax, which is referred to as compounding. When there is compounding, the effective tax rate is the rate that, if applied to the original amount, would result in the total amount of tax with compounding.

descriptionstringnullableOptional

Human-readable label for this tax detail, combining the tax area and tax group descriptions.

componentsobjectnullableOptional

The breakdown of the tax detail including the tax area, tax group, and jurisdiction-level rates. Supported for Dynamics 365 Business Central.

Show components attributes
additional_fieldsobjectOptional

Additional fields required only for a narrow set of use cases.

Show additional_fields attributes
created_atstringfilterablenullable

The ISO 8601 timestamp that the tax detail object was created.

updated_atstringfilterablenullable

The ISO 8601 timestamp that the tax detail object was last updated.

last_synced_atstringfilterable

The ISO 8601 timestamp when the tax details was last synced by Rutter.

platform_dataobjectOptional

The raw platform data corresponding to the Rutter object.

Endpoints
GET
/accounting/tax_details
GET
/accounting/tax_details/:id

List Tax Details

GEThttps://production.rutterapi.com/versioned/accounting/tax_details

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

    cursorstringqueryOptional

    Used to paginate to the next batch of objects. Should be a copy of the next_cursor value from the previous response.

    limitintegerqueryOptional

    Used to limit the number of returned objects. Defaults to 50.

    filterstringqueryOptional

    Not currently supported on Sage Intacct or Sage Business Cloud. Used to specify a filtering criteria for response objects. Refer to Filtering Objects to understand the syntax for the filtering criteria. The filtering syntax only supports fields decorated with a filterable tag in the response object.

    Filterable fields: updated_at, created_at, last_synced_at.

    sortstringqueryOptional

    Used to sort the response objects, e.g. last_synced_at ASC. If a value is provided but ASC or DESC is not, defaults to ASC. If omitted, defaults to updated_at DESC. Supports only fields decorated with a filterable tag in the response object except on Sage Intacct and Sage Business Cloud. For those platforms, only updated_at_min, updated_at_max and last_synced_at_min fields are supported and not deprecated.

    Sortable fields: updated_at, created_at, last_synced_at.

    expandenumqueryOptional

    Include platform specific data (includes additional fields not provided by the Rutter object).

    Must beplatform_data.
    last_synced_at_minintegerqueryOptional

    Deprecated - use filter instead. Used to filter objects with a last_synced_at value greater than or equal to the supplied value. Should be a Unix time in milliseconds.

    updated_at_maxintegerqueryOptional

    Deprecated - use filter instead. Used to filter objects with a updated_at value less than or equal to the supplied value. Should be a Unix time in milliseconds.

    updated_at_minintegerqueryOptional

    Deprecated - use filter instead. Used to filter objects with a updated_at value greater than or equal to the supplied value. Should be a Unix time in milliseconds.

    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.

Response Body

200
Example Response Body
JSON
1
{
2
"tax_details": [
3
{
4
"id": "00000000-0000-0000-0000-000000000000",
5
"platform_id": "ATLANTA, GA | FURNITURE",
6
"code": "FURNITURE",
7
"effective_tax_rate": 7,
8
"description": "Atlanta, Georgia | FURNITURE",
9
"components": {
10
"tax_area_code": "ATLANTA, GA",
11
"tax_group_code": "FURNITURE",
12
"tax_jurisdictions": [
13
{
14
"tax_jurisdiction_code": "GA",
15
"tax_jurisdiction_rate": 5
16
},
17
{
18
"tax_jurisdiction_code": "GAATLANTA",
19
"tax_jurisdiction_rate": 1
20
},
21
{
22
"tax_jurisdiction_code": "GAFULTON",
23
"tax_jurisdiction_rate": 1
24
}
25
]
26
},
27
"created_at": "2023-01-02T02:34:56.000Z",
28
"updated_at": "2023-01-02T02:34:56.000Z",
29
"last_synced_at": "2023-01-02T02:34:56.000Z",
30
"platform_data": {
31
"taxArea": {
32
"Code": "ATLANTA, GA",
33
"Description": "ATLANTA, GA"
34
},
35
"taxDetails": [
36
{
37
"Tax_Jurisdiction_Code": "GA",
38
"Tax_Group_Code": "FURNITURE",
39
"Effective_Date": "2021-01-01",
40
"Tax_Type": "Sales and Use Tax",
41
"Tax_Below_Maximum": 5,
42
"Tax_Above_Maximum": 0,
43
"Maximum_Amount_Qty": 0
44
}
45
]
46
}
47
}
48
],
49
"next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU=",
50
"connection": {
51
"id": "00000000-0000-0000-0000-000000000000",
52
"orgId": "00000000-0000-0000-0000-000000000000",
53
"platform": "NETSUITE"
54
}
55
}

Fetch a Tax Detail

GEThttps://production.rutterapi.com/versioned/accounting/tax_details/:id

Request Parameters

    idstringpathRequired

    The unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

    id_typeenumqueryOptional

    Used to indicate the type of id that is supplied. Defaults to rutter. Not currently supported on Sage Intacct or Sage Business Cloud.

    One ofrutter or platform.
    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.

Response Body

200
Example Response Body
JSON
1
{
2
"tax_detail": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "ATLANTA, GA | FURNITURE",
5
"code": "FURNITURE",
6
"effective_tax_rate": 7,
7
"description": "Atlanta, Georgia | FURNITURE",
8
"components": {
9
"tax_area_code": "ATLANTA, GA",
10
"tax_group_code": "FURNITURE",
11
"tax_jurisdictions": [
12
{
13
"tax_jurisdiction_code": "GA",
14
"tax_jurisdiction_rate": 5
15
},
16
{
17
"tax_jurisdiction_code": "GAATLANTA",
18
"tax_jurisdiction_rate": 1
19
},
20
{
21
"tax_jurisdiction_code": "GAFULTON",
22
"tax_jurisdiction_rate": 1
23
}
24
]
25
},
26
"created_at": "2023-01-02T02:34:56.000Z",
27
"updated_at": "2023-01-02T02:34:56.000Z",
28
"last_synced_at": "2023-01-02T02:34:56.000Z",
29
"platform_data": {
30
"taxArea": {
31
"Code": "ATLANTA, GA",
32
"Description": "ATLANTA, GA"
33
},
34
"taxDetails": [
35
{
36
"Tax_Jurisdiction_Code": "GA",
37
"Tax_Group_Code": "FURNITURE",
38
"Effective_Date": "2021-01-01",
39
"Tax_Type": "Sales and Use Tax",
40
"Tax_Below_Maximum": 5,
41
"Tax_Above_Maximum": 0,
42
"Maximum_Amount_Qty": 0
43
}
44
]
45
}
46
},
47
"connection": {
48
"id": "00000000-0000-0000-0000-000000000000",
49
"orgId": "00000000-0000-0000-0000-000000000000",
50
"platform": "NETSUITE"
51
}
52
}

Have questions?

Contact support for personalized guidance.

Contact support