API Documentation

API Endpoint

TaxRates

TaxRates

The Tax rate object represents tax data in the invoicing system.

You can find out more about tax rates in our Help documentation: Setting up and Managing Tax Rates in Invoicing.

Following diagram shows tax rates in our data hierarchy:

Tax rate diagram

Supported filter params

  • id

  • name

  • primary_component_name

  • primary_component_value

  • secondary_component_name

  • secondary_component_value

  • subsidiary.id

  • status (1: active, 2: archived)

Supported sort params

  • name

  • subsidiary_name

Filter operations are supported on this endpoint.

GET /api/v2/tax_rates
Requestsreturns tax ratesreturns error when tax rates feature not available

GET  /api/v2/tax_rates

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "29",
      "type": "tax_rates",
      "attributes": {
        "name": "Testing Tax Rate",
        "primary_component_name": "Tax1",
        "primary_component_value": "25.0",
        "secondary_component_name": null,
        "secondary_component_value": null,
        "archived_at": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2025"
          }
        },
        "subsidiary": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/tax_rates?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/tax_rates?page%5Bnumber%5D=1&page%5Bsize%5D=30"
  },
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1,
    "page_size": 30,
    "max_page_size": 200
  }
}

GET  /api/v2/tax_rates

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

Get tax rates
GET/api/v2/tax_rates


GET /api/v2/tax_rates/1
Requestsreturns tax ratereturns error when tax rates feature not available

GET  /api/v2/tax_rates/31

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "31",
    "type": "tax_rates",
    "attributes": {
      "name": "Testing Tax Rate",
      "primary_component_name": "Tax1",
      "primary_component_value": "25.0",
      "secondary_component_name": null,
      "secondary_component_value": null,
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2027"
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

GET  /api/v2/tax_rates/32

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

Gets a tax rate
GET/api/v2/tax_rates/{id}

URI Parameters
HideShow
id
number (required) Example: 1

tax rate id


POST /api/v2/tax_rates
Requestsreturns error when tax rates feature not availablecreates tax ratereturns error

POST  /api/v2/tax_rates

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

POST  /api/v2/tax_rates

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "tax_rate",
    "attributes": {
      "name": "Another Testing Tax Rate",
      "primary_component_name": "Tax1",
      "primary_component_value": 25,
      "secondary_component_name": "Tax2",
      "secondary_component_value": 5,
      "subsidiary_id": 2445
    },
    "relationships": {
      "subsidiary": {
        "data": {
          "type": "subsidiaries",
          "id": "2445"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "35",
    "type": "tax_rates",
    "attributes": {
      "name": "Another Testing Tax Rate",
      "primary_component_name": "Tax1",
      "primary_component_value": "25.0",
      "secondary_component_name": "Tax2",
      "secondary_component_value": "5.0",
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2030"
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/tax_rates

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "tax_rates",
    "attributes": {
      "name": null,
      "primary_component_name": null,
      "primary_component_value": null,
      "secondary_component_value": null,
      "subsidiary_id": null
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/name"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/subsidiary"
      }
    }
  ]
}

Create a tax rate
POST/api/v2/tax_rates

URI Parameters
HideShow
subsidiary_id
number (required) Example: 1

subsidiary id

name
string (required) Example: TaxRate

name

primary_component_name
string (optional) Example: Primary+Component

name of primary tax

primary_component_value
decimal (optional) Example: 25.0

value of primary tax

secondary_component_name
string (optional) Example: Secondary+Component

name of secondary tax

secondary_component_value
decimal (optional) Example: 5.7

value of secondary tax


PATCH /api/v2/tax_rates/
Requestsreturns error when tax rates feature not availableupdates namereturns error

PATCH  /api/v2/tax_rates/37

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

PATCH  /api/v2/tax_rates/38

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "tax_rates",
    "attributes": {
      "name": "Testing Tax Rate Updated"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "38",
    "type": "tax_rates",
    "attributes": {
      "name": "Testing Tax Rate Updated",
      "primary_component_name": "Tax1",
      "primary_component_value": "25.0",
      "secondary_component_name": null,
      "secondary_component_value": null,
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2033"
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/tax_rates/39

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "tax_rates",
    "attributes": {
      "secondary_component_name": "Tax2 Updated"
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/secondary_component_value"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "is not a number",
      "source": {
        "pointer": "data/attributes/secondary_component_value"
      }
    }
  ]
}

Update a tax rate
PATCH/api/v2/tax_rates/

URI Parameters
HideShow
subsidiary_id
number (required) Example: 1

subsidiary id

name
string (required) Example: TaxRate

name

primary_component_name
string (optional) Example: Primary+Component

name of primary tax

primary_component_value
decimal (optional) Example: 25.0

value of primary tax

secondary_component_name
string (optional) Example: Secondary+Component

name of secondary tax

secondary_component_value
decimal (optional) Example: 5.7

value of secondary tax


PATCH /api/v2/tax_rates/1/archive
Requestsarchives tax ratereturns error when tax rates feature not available

PATCH  /api/v2/tax_rates/40/archive

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "40",
    "type": "tax_rates",
    "attributes": {
      "name": "Testing Tax Rate",
      "primary_component_name": "Tax1",
      "primary_component_value": "25.0",
      "secondary_component_name": null,
      "secondary_component_value": null,
      "archived_at": "2025-08-02T02:20:10.000+02:00"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2035"
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/tax_rates/41/archive

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

Archives a tax rate
PATCH/api/v2/tax_rates/{id}/archive

URI Parameters
HideShow
id
number (required) Example: 1

tax rate id


PATCH /api/v2/tax_rates/1/restore
Requestsrestores tax ratereturns error when tax rates feature not available

PATCH  /api/v2/tax_rates/43/restore

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "43",
    "type": "tax_rates",
    "attributes": {
      "name": "TaxRate29",
      "primary_component_name": "Tax1",
      "primary_component_value": "25.0",
      "secondary_component_name": null,
      "secondary_component_value": null,
      "archived_at": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2037"
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/tax_rates/45/restore

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses403
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "403",
      "code": "financials_unavailable",
      "title": "Access Denied",
      "detail": "Feature financials unavailable",
      "source": {}
    }
  ]
}

Restores an archived tax rate
PATCH/api/v2/tax_rates/{id}/restore

URI Parameters
HideShow
id
number (required) Example: 1

tax rate id


Generated by aglio on 02 Aug 2025