> ## 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>
