vsmsconnect — API — sage-tax-mappings

← all endpoints

GET/api/v1/accounting/sage/tax-mappings auth: jwt (administrator)

List all Sage tax-type to V-SDC tax-label mappings for the business (`Provider='sage'`). Mirrors `/accounting/xero/tax-mappings`.

handlers: SageAccountingTaxMappingsController.list

Inputs

No parameters.

Outputs

200
APIResponseDataList<TaxRateMappingDTO>
Sage mappings (active and inactive, active first).
POST/api/v1/accounting/sage/tax-mappings/auto-map auth: jwt (administrator)

Pull Sage tax-rates + V-SDC `/status` and return match suggestions. Does NOT persist. Rate-limited (10/min open bucket).

handlers: SageAccountingTaxMappingsController.autoMap

Inputs

No parameters.

Outputs

200
APIResponseDataObject<SageTaxMappingAutoMapResponse>
Suggestions array.
401
APIError
REAUTH_REQUIRED — Sage refresh token rejected.
PUT/api/v1/accounting/sage/tax-mappings auth: jwt (administrator)

Create or update one Sage tax-mapping. Re-activates an inactive row on match. Fires `SAGE_TAX_MAPPING_UPDATED` audit (resource type `SAGE_CONNECTION`).

handlers: SageAccountingTaxMappingsController.upsert

Inputs

namerequireddefaultdescription
providerTaxType body
string
yes—Sage tax-type code.
providerTaxName body
string | null
no—Human-readable Sage tax name.
providerRate body
number | null
no—Sage tax rate.
vsdcTaxLabel body
string
yes—V-SDC label — one of `F/N/P/E/T/A/B/C/D`.
vsdcRate body
number | null
no—V-SDC rate percent.

Outputs

200
APIResponseDataObject<TaxRateMappingDTO>
Upserted mapping.
422
APIError
SAGE_TAX_MAPPING_INVALID_LABEL — invalid `vsdcTaxLabel`.
DELETE/api/v1/accounting/sage/tax-mappings/:providerTaxType auth: jwt (administrator)

Soft-delete a Sage tax-mapping (`IsActive=0`). Idempotent.

handlers: SageAccountingTaxMappingsController.remove

Inputs

namerequireddefaultdescription
providerTaxType path
string
yes—Sage tax-type code to deactivate.

Outputs

204
empty
No content.
PATCH/api/v1/accounting/sage/tax-mappings/:providerTaxType/restore auth: jwt (administrator)

Re-activate a deactivated Sage tax-mapping (`IsActive=1`). Idempotent.

handlers: SageAccountingTaxMappingsController.restore

Inputs

namerequireddefaultdescription
providerTaxType path
string
yes—Sage tax-type code to re-activate.

Outputs

204
empty
No content.