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

# Introdução

> Uma visão geral sobre tudo!

## O que fazemos?

Somos o hub entre empresas e seus fornecedores de benefícios, automatizando concessões, revogações, recargas e descontos em folha em escala.

```mermaid theme={null}
flowchart LR
    subgraph empresas["Empresas"]
        c1["🏢 Empresa A"]
        c2["🏢 Empresa B"]
        c3["🏢 Empresa C"]
    end

    benup(("⚙️ Benup"))

    subgraph beneficios["Benefícios"]
        b1["VA/VR"]
        b2["Vale Transporte"]
        b3["Plano de Saúde"]
        b4["⭐ Seu benefício"]
    end

    c1 & c2 & c3 --> benup
    benup --> b1 & b2 & b3 & b4
```

Cada fornecedor nessa rede é integrado por um módulo independente, chamado benApp. O benSDK é o framework que permite criar e publicar esses módulos no Integrador.

## O que é o benSDK?

O benSDK é um SDK para criar integrações com fornecedores de benefícios. Ele fornece toda a estrutura necessária para modelar, desenvolver e publicar um benApp: desde a definição das ações que o módulo suporta até a organização dos fluxos de execução.

A ideia central é simples: você implementa apenas a lógica específica do benefício. Como autenticar na API do fornecedor, quais endpoints chamar, o que fazer com cada resposta. O motor de integração cuida do resto.

```mermaid theme={null}
flowchart LR
    empresa["🏢 Empresa"]
    dev["👨‍💻 você desenvolve com o benSDK"]

    subgraph motor["Motor de Integração"]
        benup(("⚙️ Benup"))
        benapp["📦 seu benApp"]
        benup --> benapp
    end

    dev -.-> benapp
    empresa --> benup
    benapp --> api["⭐ API do Benefício"]
```

## O que é o Integrador?

O Integrador é o motor responsável por executar todos os benApps cadastrados para as empresas na Benup. Ele fornece os dados necessários para cada execução e garante consistência no processamento das ações.

```mermaid theme={null}
flowchart LR
    empresa["🏢 Empresa"]

    subgraph motor["Integrador"]
        benup(("⚙️ Benup"))
        benup --> b1["📦 benApp A"]
        benup --> b2["📦 benApp B"]
        benup --> b3["📦 seu benApp"]
    end

    empresa --> benup
    b1 --> api1["API Benefício A"]
    b2 --> api2["API Benefício B"]
    b3 --> api3["⭐ API do Benefício"]
```

## O que são as Actions?

O benApp realiza suas operações com base em um grupo de ações, chamadas de Actions. Cada uma tem características próprias e pode ter seu próprio fluxo de execução dentro do seu benApp.

| Action        | Descrição                                                                                        |
| ------------- | ------------------------------------------------------------------------------------------------ |
| **GRANT**     | Concessão de um benefício. Disparado quando um colaborador passa a ter direito ao benefício.     |
| **REVOKE**    | Revogação de um benefício. Disparado quando um colaborador é desligado ou perde a elegibilidade. |
| **RECHARGE**  | Recarga de créditos. Específica para benefícios como VA, VR, Vale Transporte, Multibenefícios.   |
| **DEDUCTION** | Desconto em folha, para descontar valores do benefício diretamente na folha do colaborador.      |

**Observações**:

* **Hooks**: são ações especiais que permitem executar lógica antes ou depois de um ciclo. Falaremos mais sobre elas nas próximas seções.
* Para benefícios que suportam dependentes, o GRANT e o REVOKE também possuem versões específicas: `GRANT_DEPENDENT` e `REVOKE_DEPENDENT`.
