# Visão geral das Smart Transfers

Sem ambiente Sandbox
Smart Transfers não está disponível no Sandbox no momento. Para testar sua integração, use o ambiente de Produção com contas reais.

Com as Smart Transfers da Belvo, seu usuário fornece uma **única autorização** no banco, e você pode então realizar **múltiplas transferências Pix** da conta dele para **outra conta que ele possua**. Você aciona cada transferência sempre que precisar, sem enviar o usuário de volta ao banco, desde que permaneça dentro dos limites aprovados pelo usuário.

As Smart Transfers são baseadas na jornada de *Transferências Inteligentes* do Open Finance Brasil (varredura de contas). Na API da Belvo, é o método de pagamento `PIX_OF_SMART_TRANSFERS`.

Os fundos só podem ser movidos entre contas do próprio usuário
As Smart Transfers movem dinheiro apenas entre contas pertencentes à **mesma pessoa ou empresa**:

- **Pagador individual (CPF):** a conta beneficiária deve ser de um CPF igual ao do pagador.
- **Pagador empresarial (CNPJ):** a conta beneficiária deve ser de um CNPJ com a mesma raiz (os primeiros oito dígitos) do pagador.


Esta é uma regra do Open Finance Brasil para Transferências Inteligentes. Se o beneficiário não atender a essa regra, a Autorização de Pagamento não pode ser criada.

## Como funciona

Smart Transfers utiliza dois objetos:

| Objeto | O que é |
|  --- | --- |
| **Payment Authorization** | O consentimento permanente do usuário, aprovado no banco dele. Define a conta beneficiária e os limites que você deve respeitar: um total geral, um máximo por transferência e limites opcionais diários, semanais, mensais ou anuais. Também pode fixar a conta exata a debitar, se você já a conhece. Uma autorização cobre muitas transferências. |
| **Charge** | Uma única transferência que você aciona contra uma `AUTHORIZED` Payment Authorization. Cada Charge tem seu próprio valor, data e descrição no extrato. |



```mermaid
sequenceDiagram
    participant App as Your application
    participant Belvo as Belvo
    participant Bank as User's bank

    App->>Belvo: Create a Payment Authorization
    Belvo-->>App: authorization_url
    App->>Bank: Redirect the user
    Note over Bank: User approves the limits once
    Belvo-->>App: Webhook: PAYMENT_AUTHORIZATION
    App->>Belvo: Get the authorization
    Belvo-->>App: status: AUTHORIZED

    loop Whenever you need to move funds
        App->>Belvo: Create a Charge
        Belvo->>Bank: Pix transfer request
        Belvo-->>App: Webhook: CHARGE
        App->>Belvo: Get the Charge
        Belvo-->>App: status: SETTLED (or FAILED)
    end
```

## Opções de integração

Para Smart Transfers, oferecemos uma opção de integração:

### API Direta

Use nossa API de Pagamentos (`Payments-BR.V2`) para criar Autorizações de Pagamento e Cobranças, e construa as telas que seu usuário verá antes de ser redirecionado para o banco. Confira nosso guia dedicado API Direta (Transferências Inteligentes) para instruções passo a passo.

## Smart Transfers e Smart Collections

Smart Transfers funciona de forma independente: você decide quando acionar cada Charge.

Se preferir que a Belvo monitore o saldo do usuário e avise quando houver fundos suficientes para coletar, veja **[Smart Collections](/pt-br/products/smart_collections_brazil/smart-collections-overview)**, que combina o monitoramento de saldo do nosso produto de Agregação com as Charges do Smart Transfers.