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

# Creación de un Paquete de Tarifas

> Cree un nuevo Paquete de Tarifas en el Midaz Module para definir cómo se calculan y aplican las tarifas a las Transacciones.

Un Paquete de Tarifas agrupa reglas de tarifa y define cuándo aplican a las Transacciones.

## Antes de empezar

***

* El plugin **Fees Engine** debe estar habilitado en la [configuración del Midaz Module](/es/lerian-console/midaz-console/plugin-settings).
* Necesita un Ledger existente y al menos una Cuenta que pueda recibir montos de tarifa.
* Si el paquete debe aplicar solo a una route o segmento específico, cree esos registros primero.

## Crear el Paquete de Tarifas

***

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

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

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

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

      <Step>
        Configure la sección **Amount Range**.

        <Note>
          Las Transacciones fuera de este rango no recibirán tarifas de este paquete.
        </Note>
      </Step>

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

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

        * `Flat Fee` - Monto fijo independientemente del valor de la transacción.
        * `Percentage` - Porcentaje del monto de la transacción.
        * `Max Between Types` - El valor mayor entre la tarifa fija y la porcentual.
      </Step>

      <Step>
        Agregue la información de la tarifa.
      </Step>

      <Step>
        (Opcional) Puede agregar otra regla de tarifa si lo necesita. Para hacerlo, seleccione un nuevo tipo de tarifa y complete la información.
      </Step>

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

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

        * Agregue los alias de las cuentas que deben quedar exentas de las tarifas de este paquete.
        * Haga clic en **Add** para agregar cada cuenta exenta.
      </Step>

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

      <Step>
        Revise la información y confirme que todo esté correcto.
      </Step>

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

Si todo va bien, verá un mensaje de confirmación y será redirigido a la lista de Paquetes de Tarifas.

## Guía de campos

***

### Basic Information

| Campo             | Descripción                                                                    | Ejemplo                            |
| ----------------- | ------------------------------------------------------------------------------ | ---------------------------------- |
| Fee Package Name  | Nombre obligatorio del paquete. Use un nombre que describa el modelo de cobro. | `Standard Transfer Fee`            |
| Description       | Una explicación de cuándo y por qué aplica el paquete.                         | `Fixed fee for standard transfers` |
| Transaction Route | Filtro opcional por route para el paquete.                                     | `Pix Transfer Route`               |
| Segment           | Filtro opcional por segmento para tarifas focalizadas.                         | `Retail Customers`                 |
| Minimum Amount    | Monto mínimo de transacción elegible para el paquete.                          | `10.00`                            |
| Maximum Amount    | Monto máximo de transacción elegible para el paquete.                          | `500.00`                           |

### Fee Rules

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

#### Flat Fee

Un monto fijo aplicado a la Transacción independientemente de su valor.

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

<Note>
  Cuando **Deductible from transaction?** está activado, **Reference Amount** se fuerza a `Original Amount` (la opción `After Fees Amount` queda deshabilitada en el formulario).
</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 de esta tarifa, usado como clave de objeto JSON. Debe comenzar con una letra o guion bajo y contener solo letras, números o `_`. | `processingFee`   |
| Reference Amount             | `Original Amount` para cobrar sobre el valor enviado de la transacción, o `After Fees Amount` para cobrar sobre el valor después de tarifas previas. | `Original Amount` |
| Credit Account ID            | Alias de la cuenta que recibe el monto de la tarifa.                                                                                                 | `@fees_revenue`   |
| Route From                   | Opcional. Nombre o UUID de la route de origen de esta operación de tarifa.                                                                           | `payments_in`     |
| Route To                     | Opcional. Nombre o UUID de la route de destino de esta operación de tarifa.                                                                          | `fees_revenue`    |
| Deductible from transaction? | Actívelo para que la tarifa se descuente del monto de la transacción; desactívelo para sumar la tarifa encima.                                       | `Disabled`        |

#### Max Between Types

Calcula un monto fijo **y** un porcentaje, y luego aplica el resultado mayor. Ambos cálculos son obligatorios.

| 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 de esta tarifa, usado como clave de objeto JSON. Debe comenzar con una letra o guion bajo y contener solo letras, números o `_`. | `guaranteeFee`    |
| Reference Amount              | Base utilizada para calcular el candidato porcentual antes de la comparación.                                                                        | `Original Amount` |
| Credit Account                | Alias de la cuenta que recibe el monto resultante (el mayor) de la tarifa.                                                                           | `@fees_guarantee` |
| Route From                    | Opcional. Nombre o UUID de la route de origen de esta operación de tarifa.                                                                           | `payments_in`     |
| Route To                      | Opcional. Nombre o UUID de la route de destino de esta operación de tarifa.                                                                          | `fees_revenue`    |
| Deductible from transaction?  | Cuando está activado, el mayor de los dos resultados se descuenta del monto de la transacción; cuando está desactivado, se suma encima.              | `Disabled`        |

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

### Account Waivers

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

## Notas importantes

***

### Orden de prioridad de tarifas

Cuando un paquete contiene varias tarifas, se aplican en orden de prioridad (primero el número más bajo). Esto importa al usar `After Fees Amount` como referencia, ya que las tarifas anteriores afectan la base de cálculo de las posteriores.

**Ejemplo**:

* Tarifa A (Priority 1): 1% sobre el monto original
* Tarifa B (Priority 2): 0.5% sobre el monto después de tarifas

En una transacción de \$100:

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

### Consideraciones sobre el rango de monto

* Los rangos no deben superponerse entre paquetes para la misma transaction route.
* Use `0.01` como mínimo para paquetes que deban aplicar a todas las transacciones.
* Use un máximo alto (por ejemplo, `999999999.99`) para no tener límite superior.
* Las transacciones exactamente en los valores mínimo o máximo se incluyen en el rango.

### Comportamiento de las cuentas exentas

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

## Qué hacer a continuación

***

Después de crear el Paquete de Tarifas, ejecute un cálculo de prueba en [Ejecución de una Estimación de Tarifas](/es/lerian-console/midaz-console/fe-fee-simulation) antes de usarlo con Transacciones reales.

<Card title="Equivalente en API" type="info" horizontal>
  [Endpoint Create Package](/es/reference/midaz/plugins/fees-engine/create-package)
</Card>
