Create Tariff Template
POST
/web/v1/transfer-tariff-templates/command/create JWTCreates a new transfer tariff template for the tenant. Templates define fee calculation rules that can be assigned to wallets.
Authentication
Requires a valid JWT token and Turnstile verification.
Request Parameters
| Name | Type | Required | In | Description |
|---|---|---|---|---|
templateCode | string | Required | body | Unique template code max 64 characters |
templateName | string | Required | body | Template display name max 128 characters |
description | string | Optional | body | Template description max 512 characters |
tariffModel | string | Required | body | Fee calculation model |
fixedAmount | number | Optional | body | Fixed fee amount (for FIXED model) |
rate | number | Optional | body | Fee rate as decimal (for PERCENTAGE model, e.g. 0.025 = 2.5%) |
floorAmount | number | Optional | body | Minimum fee amount |
ceilingAmount | number | Optional | body | Maximum fee amount |
amountScale | integer | Optional | body | Decimal precision for amounts. Default: 2 |
roundingMode | string | Optional | body | Rounding mode. Default: "HALF_UP" |
bandsConfig | string | Optional | body | Tiered band configuration as JSON string |
isDefault | boolean | Required | body | Whether this is the default template for the tenant |
Success Response
Created 201
{
"code": "2000",
"message": "SUCCESS",
"data": {
"bizId": "TTL20260321000001",
"templateCode": "STANDARD_FEE",
"templateName": "Standard Fee",
"description": "Default transfer fee template",
"tariffModel": "PERCENTAGE",
"fixedAmount": null,
"rate": 0.025,
"floorAmount": 1,
"ceilingAmount": 100,
"amountScale": 2,
"roundingMode": "HALF_UP",
"bandsConfig": null,
"isDefault": true,
"enabled": true,
"createdAt": "2026-03-21T10:00:00Z",
"updatedAt": "2026-03-21T10:00:00Z"
}
}Error Responses
| HTTP Status | Code | Description |
|---|---|---|
| 400 | 4000 | Validation error |
| 401 | 4010 | Unauthorized |
| 409 | 4090 | Template code already exists |
Notes
- Only one default template can exist per tenant. Setting
isDefault: truemay unset the previous default.