> ## Documentation Index
> Fetch the complete documentation index at: https://malga-develop.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Utilizando condicionais

Através do fluxo inteligente, é possível adicionar regras condicionais para o processamento das cobranças. Os condicionais podem utilizar **dados das cobranças**, como o valor, parcelas, bandeira do cartão selecionado, ou **metadados** enviados no campo `metadata` das `charges`.

Através do botão :heavy\_plus\_sign: nas ramificações do fluxo, é possível adicionar novos condicionais, utilizando do menu na lateral direita, conforme imagem:

#### Menu lateral para adição de condicionais

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/cond-menu.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=5f793be5aa94cba3879fc62ca8cd9389" alt="Menu lateral para adição de condicionais" width="1438" height="704" data-path="assets/images/flow-guide/conditional/cond-menu.png" />

Confira os parâmetros de condicional disponíveis para inserir no fluxo de pagamentos:

* **Balanceador de Distribuição de carga**
* **Bandeira do cartão**
* **Campo personalizado (parâmetro de metadata enviado na cobrança)**
* **Moeda**
* **Número do cartão**
* **Parcelas**
* **Valor**
* **Combinações (diferentes condicionais no mesmo card)**

<Warning>
  Após cada condicional inserida no fluxo, serão exibidas as **saídas Sim/Não
  para configuração do que deve acontecer após a aplicação do condicional na
  cobrança**, podendo ser outra condicional ou provedor de antifraude e
  cobrança.
</Warning>

## Como configurar cada tipo de condicional

### 1. Balanceador de Distribuição de carga

**Conceito**: Divide o processamento das transações de forma randômica entre duas ramificações, considerando os valores % estabelecidos na configuração (exemplo 40% ramificação 1, 60% ramificação 2);

**Como utilizar**:

* A soma dos valores deve somar 100% da carga
* Aceita até duas ramificações para divisão da carga
* Devem ser adicionados provedores após o condicional para processar cada carga estabelecida
* Podem ser adicionados condicionais após o balanceador
* Não podem ser inseridos valores negativos na distribuição da carga (exemplo - 10%)

#### Configuração do condicional de Balanceador, indicando a distribuição de carga

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/balancer.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=d54211b892c3b21fa4cb7118d679b464" alt="Configuração do condicional de Balanceador, indicando a distribuição de carga" width="1438" height="704" data-path="assets/images/flow-guide/conditional/balancer.png" />

#### Card de distribuição de carga

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/balancer-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=0552dd8150a2eb5747a6963e0a0352f5" alt="Card de distribuição de carga" width="1434" height="700" data-path="assets/images/flow-guide/conditional/balancer-card.png" />

### 2. Bandeira do cartão

**Conceito**: Utiliza a bandeira do cartão \[`brand`] como condicional para o processamento da transação.

**Como utilizar**:

* Operadores: Igual a / Diferente de
* Selecionar o operador e a bandeira da condicional

#### Menu lateral para adicionar condicional de Bandeira

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/brand.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=44299c57339ec6e4e5f232ddd91db203" alt="Menu lateral para adicionar condicional de Bandeira" width="1438" height="700" data-path="assets/images/flow-guide/conditional/brand.png" />

#### Visualização do condicional de bandeira no fluxo

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/brand-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=c5d283f979c39b704292d94f3b55b7c4" alt="Visualização do condicional de bandeira no fluxo" width="1437" height="700" data-path="assets/images/flow-guide/conditional/brand-card.png" />

<Info>
  Caso queira criar um condicional para um **conjunto de bandeiras**, realize a edição do card adicionando mais condicionais com cada bandeira e utilize o conector **OU** entre cada parâmetro.

  **Exemplo**: Para criar uma condicional para transações de VISA e MASTERCARD, utilize a configuração “Se bandeira = MASTERCARD **OU** Se bandeira = VISA”.
</Info>

### 3. Campo personalizado \[metadata]

**Conceito**: Utiliza a informação de metadata enviada na cobrança \[`paymentFlow.metadata.*`] para uso como condicional para o processamento da transação;

**Como utilizar**:

* Indicar o **nome do atributo** (exatamente igual a `paymentFlow.metadata.nome_do_atributo` enviada na cobrança);
* Indicar o **operador** que quer utilizar na condicional, conforme o tipo de atributo:
  * **Número** \[number] - operadores: menor/maior que, menor ou igual/maior ou igual a, igual a/diferente de;
  * **Booleano** \[boolean] - operadores: true/false;
  * **Texto** \[string] - operadores: igual a/diferente de.
* Indicar em **qual ramificação** o fluxo deve seguir **caso a informação de metadata não seja enviada na cobrança**, se o fluxo seguirá o caminho do condicional "Verdadeiro” ou "Falso"

#### **Como configurar um condicional de campo personalizado:**

#### Campo personalizado - \*\*Tipo número \*\*

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/metadata.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=1cf1c2bcbe81987bd2eaf507debc7176" alt="Configuração de condicional de campo personalizado do tipo &#x22;Número”" width="1434" height="700" data-path="assets/images/flow-guide/conditional/metadata.png" />

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/metadata-card.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=c55e99aa0534ffe0865863d13ecc7c94" alt="Visualização do card condicional de campo personalizado tipo &#x22;Número”" width="1433" height="700" data-path="assets/images/flow-guide/conditional/metadata-card.png" />

#### Campo personalizado - Tipo **texto**

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/metadata-string.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=746f345eb5780e31b88707a866111e7d" alt="Configuração de condicional de campo personalizado do tipo &#x22;Texto&#x22;" width="1433" height="700" data-path="assets/images/flow-guide/conditional/metadata-string.png" />

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/metadata-string-card.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=a9e37cc028759fa4a6abfd3a7ce17ea4" alt="Visualização do card condicional de campo personalizado tipo &#x22;Texto" width="1433" height="700" data-path="assets/images/flow-guide/conditional/metadata-string-card.png" />

#### Campo personalizado - Tipo **booleano**

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/metadata-boolean.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=13cc313d2424c6ccda0158e184e4fc64" alt="Configuração de condicional de campo personalizado do tipo &#x22;Booleano&#x22;" width="1433" height="700" data-path="assets/images/flow-guide/conditional/metadata-boolean.png" />

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/metadata-boolean-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=c1e4f5ea4c2e9a4d2036700d8bbaf21c" alt="Visualização do card condicional de campo personalizado tipo &#x22;Booleano&#x22;" width="1433" height="700" data-path="assets/images/flow-guide/conditional/metadata-boolean-card.png" />

### 4. Moeda

**Conceito**: Utilizar a moeda da cobrança \[`currency`] como condicional para o processamento da transação.

**Como utilizar**:

* Operadores: Igual a / Diferente de
* Selecionar moeda na listagem

#### Configuração de condicional de Moeda

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/currency.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=39d35ddc51894b013735a740945f9354" alt="Configuração de condicional de Moeda" width="1433" height="700" data-path="assets/images/flow-guide/conditional/currency.png" />

#### Configuração de condicional de Moeda

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/currency-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=d44b0e1b8954264a9abc2b5f1c42ee1b" alt="Card condicional de Moeda" width="1433" height="700" data-path="assets/images/flow-guide/conditional/currency-card.png" />

### 5. Número do cartão

**Conceito**: Utilizar o número do cartão \[`cardBin`] como condicional para o processamento da transação;

**Como utilizar**:

* Operadores: Igual a / Diferente de
* Preencher dado com os seis primeiros dígitos do cartão.

#### Configuração de condicional de Moeda

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/bin.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=58b0d7f39fa68214741b4d4eff06d892" alt="Configuração de condicional de Número de cartão" width="1433" height="700" data-path="assets/images/flow-guide/conditional/bin.png" />

#### Card condicional de Moeda

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/bin-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=74755c3782183f2717d780df2a465aae" alt="Card condicional de Número de cartão" width="1433" height="700" data-path="assets/images/flow-guide/conditional/bin-card.png" />

### 6. Parcelas

**Conceito**: Utilizar o número da parcelas da cobrança \[`installments`] como condicional para o processamento da transação.

**Como utilizar**:

* Operadores: menor/maior que, menor ou igual/maior ou igual a, igual a/diferente de;
* Selecionar quantidade de parcelas até 12 vezes

#### Configuração de condicional de Parcelas

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/installments.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=a619224e5db074d05b8b58e8d78df1a9" alt="Configuração de condicional de Parcelas" width="1433" height="700" data-path="assets/images/flow-guide/conditional/installments.png" />

#### Card condicional de Parcelas

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/installments-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=a55802319c0196967d81efd24788695a" alt="Card condicional de Parcelas" width="1433" height="700" data-path="assets/images/flow-guide/conditional/installments-card.png" />

### 7. Valor

**Conceito**: Utilizar o valor da cobrança \[`amount`] como condicional para o processamento da transação;

**Como utilizar**:

* Operadores: menor/maior que, menor ou igual/maior ou igual a, igual a/diferente de;
* Preencher o valor estabelecido como condicional.

#### Configuração de condicional de Valor

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/amount.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=6c19adf7a0b89adac0baf1e64e079e77" alt="Configuração de condicional de Valor" width="1433" height="700" data-path="assets/images/flow-guide/conditional/amount.png" />

#### Card condicional de Valor

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/amount-card.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=1ce435a532f30fd081e87a1f0eaf76d3" alt="Card condicional de Valor" width="1433" height="700" data-path="assets/images/flow-guide/conditional/amount-card.png" />

### 8. Combinações

Através do condicional de Combinações, é possível adicionar mais de uma regra condicional em um card do fluxo inteligente, utilizando o conector E/OU para combinar condicionais.

**Conceito**: Utilizar duas ou mais condicionais no mesmo card do fluxo, como regra para processamento da transação;

**Exemplo de combinação de condicionais**: Se a Bandeira do Cartão é "Mastercard” E Parcelas “Maior que 7 vezes” > processar no provedor x;

**Como utilizar**: Podem ser combinados condicionais de diferentes tipos, com limitação de dois condicionais por operação;

**Não podem ser combinados:**

* Balanceador de distribuição de carga não pode ser combinado com outro condicional no mesmo card;
* Provedores de cobrança e antifraude não podem ser combinados, estando sempre em cards independentes;
* Condicionais utilizando o operador = (igual a) e o conector E com a mesma propriedade;
  * **Exemplo**: bandeira do cartão é igual a (=) MASTERCARD E bandeira do cartão é igual a (=) VISA;
* Condicionais numéricos com operador > (maior) e \< (menor) conflitantes;
  **Exemplo**: valor da cobrança é maior > que 500 E valor da cobrança é menor \< que 100;

#### Configuração do condicional de Combinações - Operador lógico E

<img src="https://mintcdn.com/malga-develop/ykhDb0_GUvxS5LEk/assets/images/flow-guide/conditional/and-operator.png?fit=max&auto=format&n=ykhDb0_GUvxS5LEk&q=85&s=821360cb3008f759c532bbce108fb494" alt="Configuração do condicional de Combinações - Operador lógico E" width="1433" height="700" data-path="assets/images/flow-guide/conditional/and-operator.png" />

#### Configuração do condicional de Combinações - Operador lógico OU

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/or-operator.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=2127881a7d3878bcdbb6d242faf26853" alt="Configuração do condicional de Combinações - Operador lógico OU" width="1433" height="700" data-path="assets/images/flow-guide/conditional/or-operator.png" />

#### Exibição do card combinações no fluxo

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/or-operator-card.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=976c2fba431e3da3157bd22af74414f9" alt="Exibição do card combinações no fluxo" width="1433" height="700" data-path="assets/images/flow-guide/conditional/or-operator-card.png" />

#### Feedback em caso de inserção inválida - Condicionais iguais

<img src="https://mintcdn.com/malga-develop/kN-6S-4zQ_uG4PGR/assets/images/flow-guide/conditional/operator-error.png?fit=max&auto=format&n=kN-6S-4zQ_uG4PGR&q=85&s=4f2f00c1ad5990d499e4ae5b0804bf9e" alt="Feedback em caso de inserção inválida - Condicionais iguais" width="1433" height="700" data-path="assets/images/flow-guide/conditional/operator-error.png" />

#### Combinando condicionais de campo personalizado

Você pode realizar a **combinação de mais de um campo personalizado** e nesse cenário, deve se atentar que, caso o metadata não seja enviado na transação, o caminho que o fluxo seguirá é o resultado dos valores default que foram combinados.

**Utilizando o operador lógico** `OU`, o valor que será predominante é o **verdadeiro**. As combinações possíveis são:

| Primeiro valor default | Segundo valor default | Resultado  |
| ---------------------- | --------------------- | ---------- |
| falso                  | falso                 | falso      |
| falso                  | verdadeiro            | verdadeiro |
| verdadeiro             | falso                 | verdadeiro |
| verdadeiro             | verdadeiro            | verdadeiro |

**Utilizando o operador lógico** `E`, o valor que será predominante é o falso. As combinações possíveis são:

| Primeiro valor default | Segundo valor default | Resultado  |
| ---------------------- | --------------------- | ---------- |
| falso                  | falso                 | falso      |
| falso                  | verdadeiro            | falso      |
| verdadeiro             | falso                 | falso      |
| verdadeiro             | verdadeiro            | verdadeiro |

<Info>
  O **valor default** indica qual caminho o fluxo deve seguir caso o `metadata`
  (campo personalizado) não seja enviado na transação, podendo ser verdadeiro ou
  falso.
</Info>
