Skip to main content

POST /api/v1/internal/projects/:projectUuid/apps/:projectAppUuid/tax-rates

Creates a new tax rates resource.

This endpoint documentation is generated from the current Fastify route implementation and should be treated as the implementation-level contract for this version of the API.

Source route file: src/api/routes/internal/private/bearer/projects/apps/taxRates/post.ts

Request Method

POST

Base URL

https://api.userdocks.local:5000

Endpoint

/api/v1/internal/projects/:projectUuid/apps/:projectAppUuid/tax-rates

Path Variables

VariableTypeRequiredDescription
projectUuidstringtruePath variable from route pattern.
projectAppUuidstringtruePath variable from route pattern.

Query Parameters

No query parameters.

HTTP Headers

VariableTypeRequiredDescription
AuthorizationstringtrueBearer token in the form Bearer <jwt>.
Content-TypestringtrueUse application/json for JSON request bodies.

Request Body

Schema reference: createTaxRateSchema

{
"name": "EU VAT 19%",
"description": "Default VAT for Germany",
"percentage": 19,
"inclusive": false,
"countryUuid": "11111111-1111-1111-1111-111111111111",
"state": "BE",
"jurisdiction": "Berlin"
}

Successful Response

Success status code(s): 201.

{
"kind": "taxRates",
"totalItems": 1,
"itemsLength": 1,
"items": [
{
"uuid": "e009e8a1-9999-4a2d-9f1a-999999999999",
"name": "VAT",
"percentage": 20,
"isInclusive": false,
"countryCode": "DE",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}

Error Responses

HTTP StatusExample Error
401{"errors":[{"validation":"error","code":"[E4010]","message":"Unauthorized Token"}]}
403{"errors":[{"validation":"error","code":"[E4030]","message":"App Is Disabled"}]}
400{"errors":[{"validation":"error","code":"[E4000]","message":"Bad Request / validation error"}]}
500{"errors":[{"validation":"error","code":"[E0000]","message":"Internal Server Error"}]}

Example

const url = `https://api.userdocks.local:5000/api/v1/internal/projects/projectUuid-value/apps/projectAppUuid-value/tax-rates`;

const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: 'Bearer <jwt>',
'Content-Type': 'application/json',
},
body: '{"name":"EU VAT 19%","description":"Default VAT for Germany","percentage":19,"inclusive":false,"countryUuid":"11111111-1111-1111-1111-111111111111","state":"BE","jurisdiction":"Berlin"}',
});
const data = await response.json();
console.log(response.status, data);