> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear un Fee Package

> Crea un nuevo Fee Package en el Módulo Midaz configurando la información básica, los rangos de montos, las reglas de comisión fija o porcentual, los waivers y las prioridades desde la interfaz de Console.

Un Fee Package agrupa reglas de comisión y define cuándo se aplican a las Transacciones.

## Antes de empezar

***

* Habilita el **Fees Engine** en la [configuración del módulo de Midaz](/es/platform/console/plugin-settings).
* Necesitas un Ledger existente y al menos una Cuenta que pueda recibir montos de comisión.
* Si el paquete debe aplicarse solo a una ruta o segmento específico, crea esos registros primero.

## Crear el Fee Package

***

<Steps>
  <Step>
    Ve a la página **Fee Packages** y haz clic en el botón **New Package**.
  </Step>

  <Step>
    Se abrirá el formulario **New Fee Package** con varias secciones para configurar.

    <Tip>
      Consulta la guía de campos para más información sobre los campos del formulario.
    </Tip>

    <Steps>
      <Step>
        Completa la sección **Basic Information**
      </Step>

      <Step>
        Configura la sección **Amount Range**

        <Note>
          Las Transacciones fuera de este rango no tendrán comisiones aplicadas desde este paquete.
        </Note>
      </Step>

      <Step>
        Haz clic en el botón **Next**.
      </Step>

      <Step>
        Selecciona una de las opciones en la sección **Add Fee**:

        * `Flat Fee` - Monto fijo sin importar el valor de la transacción.
        * `Percentage` - Porcentaje del monto de la transacción.
        * `Max Between Types` - El valor más alto entre el fijo y el porcentual.
      </Step>

      <Step>
        Agrega la información de la comisión.
      </Step>

      <Step>
        (Opcional) Puedes agregar otra regla de comisión si es necesario. Para hacerlo, selecciona un nuevo tipo de comisión y completa la información.
      </Step>

      <Step>
        Haz clic en el botón **Next**.
      </Step>

      <Step>
        (Opcional) Configura la sección **Account Waivers**:

        * Agrega los alias de cuenta que deben quedar exentos de comisiones en este paquete
        * Haz clic en **Add** para agregar cada cuenta exenta
      </Step>

      <Step>
        Haz clic en el botón **Next**.
      </Step>

      <Step>
        Revisa la información y confirma que todo sea correcto.
      </Step>

      <Step>
        Haz clic en el botón **Create Package**.
      </Step>
    </Steps>
  </Step>
</Steps>

Si la operación tiene éxito, la Console muestra un mensaje de confirmación y abre la lista de Fee Packages.

## Guía de campos

***

### Basic Information

| Campo             | Descripción                                                                    | Ejemplo                            |
| ----------------- | ------------------------------------------------------------------------------ | ---------------------------------- |
| Fee Package Name  | Nombre obligatorio del paquete. Usa un nombre que describa el modelo de cobro. | `Standard Transfer Fee`            |
| Description       | Una explicación de cuándo y por qué se aplica el paquete.                      | `Fixed fee for standard transfers` |
| Transaction Route | Filtro de ruta opcional para el paquete.                                       | `Pix Transfer Route`               |
| Segment           | Filtro de segmento opcional para comisiones dirigidas.                         | `Retail Customers`                 |
| Minimum Amount    | El monto de transacción más bajo elegible para el paquete.                     | `10.00`                            |
| Maximum Amount    | El monto de transacción más alto elegible para el paquete.                     | `500.00`                           |

### Reglas de comisión

Cada comisión dentro de un paquete tiene una **Priority** (1 = se aplica primero). La comisión con prioridad `1` debe usar `Original Amount` como Reference Amount.

#### Flat Fee

Un monto fijo aplicado a la Transacción sin importar su valor.

| Campo                        | Descripción                                                                                                                                                                  | Ejemplo           |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| Amount                       | El monto fijo cobrado por esta comisión. Debe ser un número positivo.                                                                                                        | `5.00`            |
| Fee Name                     | Identificador único para esta comisión, usado como clave del objeto JSON. **Debe empezar con una letra o un guion bajo** y contener solo letras, números o `_`.              | `taxaAdm`         |
| Reference Amount             | Base usada por el cálculo: `Original Amount` (el valor de la transacción tal como se envió) o `After Fees Amount` (el valor después de comisiones anteriores en el paquete). | `Original Amount` |
| Credit Account ID            | Alias de la cuenta que recibe el monto de la comisión.                                                                                                                       | `@fees_transfers` |
| Route From                   | Opcional. Nombre o UUID de la ruta de origen para esta operación de comisión.                                                                                                | `payments_in`     |
| Route To                     | Opcional. Nombre o UUID de la ruta de destino para esta operación de comisión.                                                                                               | `fees_revenue`    |
| Deductible from transaction? | Cuando está habilitado, la comisión se deduce del monto de la transacción (el receptor paga); cuando está deshabilitado, se agrega encima (el remitente paga).               | Off               |

<Note>
  Cuando habilitas **Deductible from transaction?**, el formulario fuerza **Reference Amount** a `Original Amount` y deshabilita la opción `After Fees Amount`.
</Note>

#### Percentage Fee

Un porcentaje del monto de la Transacción.

| Campo                        | Descripción                                                                                                                                                                        | Ejemplo           |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| Percentage                   | Tasa porcentual aplicada al monto de referencia. Debe ser mayor que `0` y menor o igual a `100`.                                                                                   | `2.5`             |
| Fee Name                     | Identificador único para esta comisión, usado como clave del objeto JSON. Debe empezar con una letra o un guion bajo y contener solo letras, números o `_`.                        | `processingFee`   |
| Reference Amount             | `Original Amount` para cobrar sobre el valor de la transacción tal como se envió, o `After Fees Amount` para cobrar sobre el valor después de comisiones anteriores en el paquete. | `Original Amount` |
| Credit Account ID            | Alias de la cuenta que recibe el monto de la comisión.                                                                                                                             | `@fees_revenue`   |
| Route From                   | Opcional. Nombre o UUID de la ruta de origen para esta operación de comisión.                                                                                                      | `payments_in`     |
| Route To                     | Opcional. Nombre o UUID de la ruta de destino para esta operación de comisión.                                                                                                     | `fees_revenue`    |
| Deductible from transaction? | Habilítalo para que la comisión se deduzca del monto de la transacción; deshabilítalo para agregar la comisión encima de la transacción.                                           | `Disabled`        |

#### Max Between Types

Calcula un monto fijo **y** un porcentaje, y luego aplica el resultado más alto. El formulario requiere ambos cálculos.

| Campo                         | Descripción                                                                                                                                                 | Ejemplo           |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| Flat Fee (Calculations)       | Primera fila de cálculo. Candidato de monto fijo. Debe ser un número positivo.                                                                              | `1.00`            |
| Percentage Fee (Calculations) | Segunda fila de cálculo. Candidato porcentual; debe ser mayor que `0` y menor o igual a `100`.                                                              | `2.0`             |
| Fee Name                      | Identificador único para esta comisión, usado como clave del objeto JSON. Debe empezar con una letra o un guion bajo y contener solo letras, números o `_`. | `guaranteeFee`    |
| Reference Amount              | Base usada para calcular el candidato porcentual antes de la comparación.                                                                                   | `Original Amount` |
| Credit Account                | Alias de la cuenta que recibe el monto de comisión resultante (el más alto).                                                                                | `@fees_guarantee` |
| Route From                    | Opcional. Nombre o UUID de la ruta de origen para esta operación de comisión.                                                                               | `payments_in`     |
| Route To                      | Opcional. Nombre o UUID de la ruta de destino para esta operación de comisión.                                                                              | `fees_revenue`    |
| Deductible from transaction?  | Cuando está habilitado, se deduce del monto de la transacción el más alto de los dos resultados; cuando está deshabilitado, se agrega encima.               | `Disabled`        |

<Note>
  El formulario **Max Between Types** siempre requiere exactamente dos cálculos: uno de tipo `Flat Fee` y otro de tipo `Percentage Fee`. La Console calcula ambos y aplica el más alto.
</Note>

### Account Waivers

| Campo         | Descripción                               | Ejemplo                   |
| ------------- | ----------------------------------------- | ------------------------- |
| Account Alias | El alias de la cuenta que quedará exenta. | `@customer_john_checking` |

## Notas importantes

***

### Orden de prioridad de comisiones

Cuando un paquete contiene varias comisiones, la Console las aplica en orden de prioridad (el número más bajo primero). Esto es relevante cuando usas `After Fees Amount` como referencia, ya que las comisiones anteriores afectan la base de cálculo de las comisiones posteriores.

**Ejemplo**:

* Comisión A (Priority 1): 1% sobre el monto original
* Comisión B (Priority 2): 0.5% sobre el monto después de comisiones

En una transacción de \$100:

* Comisión A = \$1.00 (1% de \$100)
* Comisión B = \$0.495 (0.5% de \$99)

### Consideraciones sobre el rango de montos

* Los rangos no deben superponerse entre paquetes para la misma ruta de transacción
* Usa `0.01` como mínimo para paquetes que deben aplicarse a todas las transacciones
* Usa un máximo alto (por ejemplo, `999999999.99`) para no tener límite superior
* El rango incluye las Transacciones que están exactamente en los valores mínimo o máximo

### Comportamiento de las cuentas exentas

* Las cuentas exentas omiten todas las comisiones del paquete, no solo comisiones específicas
* Usa alias de cuenta (no IDs) al agregar cuentas exentas
* Las exenciones se aplican cuando la cuenta exenta es el **origen** de la transacción

## Qué hacer después

***

Después de crear el Fee Package, ejecuta un cálculo de prueba en [Ejecutar una Fee Estimation](/es/products/midaz/fees/console/fe-fee-simulation) antes de usarlo con Transacciones reales.

<Card title="Equivalente en la API" type="tip" horizontal>
  [Endpoint de Create Package](/es/reference/products/midaz/v2/create-package)
</Card>
