VUZDevelopers

Re-run the AI tax/VAT classifier with the user's justification

POST
/expense-management/expenses/{id}/reclassify

Re-runs the shared Layer-2 classifier with description + userJustification + evidence context. If the accountant already ruled on this expense (reviewedLineItems set), the result is stored ONLY as a suggestion (requiresAccountantReview=true) — never overwrites the accountant's ruling.

X-Api-Key<token>

Business API key, e.g. vuz_ab12cdef... Created via Settings → Integrations → API Keys. Unlike partner keys, a public API key's STRING does not encode its environment — isolation instead comes from a completely separate sandbox database: a key minted on the Sandbox server (above) only ever reads/writes sandbox data and can never see or affect production, regardless of what the key looks like.

In: header

Path Parameters

id*string

Expense ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/expense-management/expenses/string/reclassify" \  -H "Content-Type: application/json" \  -d '{}'
{  "needsAccountantReview": true,  "requiresAccountantReview": true,  "vatRecognitionRate": 0,  "incomeTaxRecognitionRate": 0,  "reasoning": "string",  "lineItemsSummary": [    {      "description": "string",      "justificationApplied": true    }  ],  "suggestion": {    "suggestedAt": "string",    "suggestedVatRecognitionRate": 0,    "suggestedIncomeTaxRecognitionRate": 0,    "reasoning": "string"  }}