---
title: "Create a fee schedule"
method: POST
path: "/v1/fee-schedules"
tags: ["Configuration Fee Schedules"]
---

# Create a fee schedule

`POST /v1/fee-schedules`

Use this endpoint to create a new fee schedule. Fee schedules define the fee structure applied to transactions during reconciliation.

## Headers

- `X-Request-Id` string
- `X-Idempotency-Key` string

## Request body

- CreateFeeScheduleRequest — Payload for creating a fee schedule
  - `name` string, required — Display name for the fee schedule
  - `currency` string, required — Currency code (ISO 4217)
  - `applicationOrder` 'PARALLEL' | 'CASCADING', required — Determines how multiple fee items compose within a schedule
  - `roundingScale` integer — Number of decimal places for rounding
  - `roundingMode` 'HALF_UP' | 'BANKERS' | 'FLOOR' | 'CEIL' | 'TRUNCATE' — Determines how intermediate fee calculations are rounded
  - `items` CreateFeeScheduleItemRequest[], required — Fee items to include in this schedule
    - `name` string, required — Display name for the fee item
    - `priority` integer — Execution priority (lower numbers run first)
    - `structureType` 'FLAT' | 'PERCENTAGE' | 'TIERED', required — Type of fee structure for a fee schedule item
    - `structure` object, required — Fee structure definition (varies by structureType)

## Response `201`

Successfully created fee schedule.

The response includes the `X-Idempotency-Replayed` header.

If the value is false, the request was just processed. If the value is true, the response is a replay of a previously processed request.

See [Retries and idempotency](/en/reference/retries-idempotency) for more details.

- FeeScheduleResponse — Fee schedule with its fee items
  - `id` string, uuid — Unique identifier for the fee schedule
  - `tenantId` string, uuid — Tenant that owns this fee schedule
  - `name` string — Display name for the fee schedule
  - `currency` string — Currency code (ISO 4217)
  - `applicationOrder` 'PARALLEL' | 'CASCADING' — Determines how multiple fee items compose within a schedule
  - `roundingScale` integer — Number of decimal places for rounding
  - `roundingMode` 'HALF_UP' | 'BANKERS' | 'FLOOR' | 'CEIL' | 'TRUNCATE' — Determines how intermediate fee calculations are rounded
  - `items` FeeScheduleItemResponse[] — Fee items in this schedule
    - `id` string, uuid — Unique identifier for the fee item
    - `name` string — Display name for the fee item
    - `priority` integer — Execution priority (lower numbers run first)
    - `structureType` 'FLAT' | 'PERCENTAGE' | 'TIERED' — Type of fee structure for a fee schedule item
    - `structure` object — Fee structure definition (varies by structureType)
    - `createdAt` string, date-time — Creation timestamp in RFC 3339 format
    - `updatedAt` string, date-time — Last update timestamp in RFC 3339 format
  - `createdAt` string, date-time — Creation timestamp in RFC 3339 format
  - `updatedAt` string, date-time — Last update timestamp in RFC 3339 format

## Other responses

- `400` — Invalid request payload
- `401` — The request lacks valid authentication credentials.
- `403` — You do not have permission to access this resource.
- `409` — Idempotency conflict: request with same key in progress
- `500` — An unexpected error occurred on the server.

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/versions/25daba385532/schema)
