# Create a fee entry

Creates a fee entry.
> **Important:** This operation is experimental and may not be backward compatible.

Endpoint: POST /fees
Version: latest
Security: SecretApiKey, JWT

## Request fields (application/json):

  - `type` (string, required)
    Type of fee.
    Enum: "buy", "sell"

  - `name` (string, required)
    Name of the fee.
    Example: A gateway fee

  - `filter` (string | null)
    Filter that is based on the properties of the transaction and used to determine when to apply the fee.
    Example: type:sale,capture;result:approved

  - `formula` (object, required)
    Formula that is used to calculate the fee.

  - `formula.type` (string, required)
    Type of fee.
    Enum: "fixed-fee"

  - `formula.currency` (string, required)
    Currency code in ISO 4217 format.
    Example: USD

  - `formula.amount` (number, required)
    Amount of the fee.
    Example: 10

  - `formula.bips` (number, required)
    Basis points.
Example: 100 bips = 1%, 1 bip = 0.01%.
    Example: 100

  - `formula.minAmount` (number)
    Minimum fee amount.
This value is applied when the calculated fee is less than the required minimum.
    Example: 10

  - `settlementSettings` (any)
    Fee settlement settings.
This value overrides the gateway account financial settings of the transaction.

  - `settlementSettings.settlementPeriod` (object, required)
    Instruction for calculating the settlement time.
The settlement time and settlement period anchor are used
in conjunction with the transaction processed time,
to calculate the time in which the amount settles.

  - `settlementSettings.settlementPeriod.method` (string, required)
    Enum: "date-interval"

  - `settlementSettings.settlementPeriod.duration` (integer, required)
    Number of time units.

  - `settlementSettings.settlementPeriod.unit` (any, required)
    Unit of time.

  - `settlementSettings.settlementPeriod.anchor` (object)
    Instruction for calculating the period anchor.

  - `settlementSettings.settlementPeriod.anchor.method` (string, required)
    Enum: "day-of-month"

  - `settlementSettings.settlementPeriod.anchor.day` (integer, required)
    Day of the month in which the event occurs.
If the month has less days, the last day of the month is selected.

  - `settlementSettings.settlementPeriod.anchor.time` (string)
    Extended ISO-8601 format of time.

  - `settlementSettings.settlementPeriod.anchor.day` (string, required)
    Day of the week when the event occurs.
    Enum: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"

  - `settlementSettings.settlementPeriod.anchor.week` (string, required)
    Enum: "next", "first-in-month", "last-in-month"

  - `settlementSettings.advancedSettings` (array)
    Advanced settlement settings.
Use these settings to override either default settlement currency,
period, or both for the transactions matched a filter.

  - `settlementSettings.advancedSettings.filter` (string, required)
    Filter that is based on transaction properties and is used to determine when to apply the settings.
    Example: currency:EUR,GBP

## Response 201 fields (application/json):

  - `id` (string)
    ID of the fee.
    Example: fee_01GQT145JX3XBRJ8K812Y3GRE9

  - `type` (string, required)
    Type of fee.
    Enum: "buy", "sell"

  - `name` (string, required)
    Name of the fee.
    Example: A gateway fee

  - `filter` (string | null)
    Filter that is based on the properties of the transaction and used to determine when to apply the fee.
    Example: type:sale,capture;result:approved

  - `formula` (object, required)
    Formula that is used to calculate the fee.

  - `formula.type` (string, required)
    Type of fee.
    Enum: "fixed-fee"

  - `formula.currency` (string, required)
    Currency code in ISO 4217 format.
    Example: USD

  - `formula.amount` (number, required)
    Amount of the fee.
    Example: 10

  - `formula.bips` (number, required)
    Basis points.
Example: 100 bips = 1%, 1 bip = 0.01%.
    Example: 100

  - `formula.minAmount` (number)
    Minimum fee amount.
This value is applied when the calculated fee is less than the required minimum.
    Example: 10

  - `settlementSettings` (any)
    Fee settlement settings.
This value overrides the gateway account financial settings of the transaction.

  - `settlementSettings.settlementPeriod` (object, required)
    Instruction for calculating the settlement time.
The settlement time and settlement period anchor are used
in conjunction with the transaction processed time,
to calculate the time in which the amount settles.

  - `settlementSettings.settlementPeriod.method` (string, required)
    Enum: "date-interval"

  - `settlementSettings.settlementPeriod.duration` (integer, required)
    Number of time units.

  - `settlementSettings.settlementPeriod.unit` (any, required)
    Unit of time.

  - `settlementSettings.settlementPeriod.anchor` (object)
    Instruction for calculating the period anchor.

  - `settlementSettings.settlementPeriod.anchor.method` (string, required)
    Enum: "day-of-month"

  - `settlementSettings.settlementPeriod.anchor.day` (integer, required)
    Day of the month in which the event occurs.
If the month has less days, the last day of the month is selected.

  - `settlementSettings.settlementPeriod.anchor.time` (string)
    Extended ISO-8601 format of time.

  - `settlementSettings.settlementPeriod.anchor.day` (string, required)
    Day of the week when the event occurs.
    Enum: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"

  - `settlementSettings.settlementPeriod.anchor.week` (string, required)
    Enum: "next", "first-in-month", "last-in-month"

  - `settlementSettings.advancedSettings` (array)
    Advanced settlement settings.
Use these settings to override either default settlement currency,
period, or both for the transactions matched a filter.

  - `settlementSettings.advancedSettings.filter` (string, required)
    Filter that is based on transaction properties and is used to determine when to apply the settings.
    Example: currency:EUR,GBP

  - `createdTime` (string)
    Date and time when the resource is created.
This value is set automatically when the resource is created.

  - `updatedTime` (string)
    Date and time when the resource is updated.
This value is set automatically when the resource is updated.

  - `_links` (array)
    Related links.

  - `_links.href` (string)
    Link URL.

  - `_links.rel` (string)
    Type of link.
    Enum: "self"

## Response 401 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 403 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 422 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

  - `invalidFields` (array)
    Invalid field details.
    Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]

  - `invalidFields.field` (string)
    Name of the field.
Dot notation is used for nested object field names.

  - `invalidFields.message` (string)
    Message field.

## Response 429 fields (application/json):

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".
    Example: about:blank

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
    Example: Rate Limit Exceeded

  - `status` (integer)
    HTTP status code.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.
    Example: A request cannot be executed because the user has sent too many requests within a certain period of time

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

