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

# Uso e configuração

> Adicione o nó do PayPal ao seu fluxo no Canvas, configure seus inputs e teste pagamentos em Sandbox.

Uma vez conectada a integração, o nó do **PayPal** fica disponível no Canvas e permite criar experiências de cobrança com **WebView incorporado** dentro do fluxo conversacional.

<Tip>
  Se você ainda não instalou a integração, siga primeiro [Conectar no Brain Studio](/pt/guias/integracoes/pagamentos/provedores/paypal/conectar-no-brain-studio).
</Tip>

***

## Adicionar o nó ao Canvas

<Steps>
  <Step title="Abrir o seu fluxo no Canvas">
    Abra no Brain Studio o fluxo onde você quer incorporar a cobrança com PayPal.
  </Step>

  <Step title="Adicionar o nó PayPal">
    Adicione o **PayPal** pela barra de ferramentas do **Canvas**, pelo nó **Pagamentos** ou pelos provedores de pagamento disponíveis uma vez instalada a integração.

    O ponto exato pode variar conforme você iniciou a instalação pelo Marketplace, Jelou Agent, nó de pagamentos no Canvas ou template.
  </Step>

  <Step title="Conectar o nó ao ponto de cobrança">
    Conecte o nó do PayPal depois que o fluxo já tiver o valor, os dados do comprador e a confirmação da compra.
  </Step>

  <Step title="Abrir o painel de configuração">
    Selecione o nó para abrir o painel lateral direito, preencher os **inputs** e revisar as **saídas** disponíveis.

    <Frame caption="Nó PayPal com o painel lateral de configuração aberto">
      <img src="https://mintcdn.com/jelouai/qfuCOV36dV96m5-d/assets/images/integraciones/pagos/paypal-nodo-canvas-configuracion.jpg?fit=max&auto=format&n=qfuCOV36dV96m5-d&q=85&s=347c26f00d95434435c14059731cd5ac" alt="Nó PayPal no Canvas com o painel lateral de configuração aberto" width="1024" height="843" data-path="assets/images/integraciones/pagos/paypal-nodo-canvas-configuracion.jpg" />
    </Frame>
  </Step>
</Steps>

***

## Configurar o nó

<Tabs>
  <Tab title="Inputs">
    ### Dados do pagamento

    <AccordionGroup>
      <Accordion title="Personalizar textos do botão de pagamento" icon="message">
        <ParamField body="Personalizar textos do botão de pagamento" type="boolean" default="false">
          Permite definir a mensagem que acompanha o botão de pagamento na conversa.

          Se ativado, habilita **Header**, **Body** e **Footer** quando estiverem disponíveis na sua versão do nó.
        </ParamField>
      </Accordion>

      <Accordion title="Header" icon="heading">
        <ParamField body="Header" type="string">
          Título da mensagem do botão de pagamento.

          Aparece quando **Personalizar textos do botão de pagamento** está ativo e o campo está disponível na sua versão do nó.
        </ParamField>
      </Accordion>

      <Accordion title="Body" icon="align-left">
        <ParamField body="Body" type="string">
          Texto principal da mensagem do botão de pagamento.

          Aparece quando **Personalizar textos do botão de pagamento** está ativo e o campo está disponível na sua versão do nó.
        </ParamField>
      </Accordion>

      <Accordion title="Footer" icon="minus">
        <ParamField body="Footer" type="string">
          Texto de fechamento da mensagem do botão de pagamento.

          Aparece quando **Personalizar textos do botão de pagamento** está ativo e o campo está disponível na sua versão do nó.
        </ParamField>
      </Accordion>

      <Accordion title="Contém produto tangível" icon="box">
        <ParamField body="Contém produto tangível" type="string">
          Define se a compra inclui um produto físico que exige dados de envio.

          Se estiver em **Sim**, o nó exige preencher os campos de envio.
          Se estiver em **Não**, esses campos não são obrigatórios.

          Use **Sim** apenas quando a compra incluir um produto físico que deva ser enviado.
        </ParamField>

        <Note>
          Se você vende serviços, produtos digitais ou cobranças sem envio físico, selecione **Não**.
        </Note>
      </Accordion>

      <Accordion title="País de envio" icon="globe">
        <ParamField body="País de envio" type="string">
          Necessário quando **Contém produto tangível** está em **Sim**.
          Indica o país de envio do produto conforme o endereço do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Estado de envio" icon="map">
        <ParamField body="Estado de envio" type="string">
          Necessário quando **Contém produto tangível** está em **Sim**.
          Indica o estado ou província de envio conforme o endereço do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Cidade de envio" icon="city">
        <ParamField body="Cidade de envio" type="string">
          Necessário quando **Contém produto tangível** está em **Sim**.
          Indica a cidade de envio conforme o endereço do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Endereço de envio" icon="location-dot">
        <ParamField body="Endereço de envio" type="string">
          Necessário quando **Contém produto tangível** está em **Sim**.
          Indica o endereço de envio do produto.
        </ParamField>
      </Accordion>

      <Accordion title="Código postal de envio" icon="mailbox">
        <ParamField body="Código postal de envio" type="string">
          Necessário quando **Contém produto tangível** está em **Sim**.
          Indica o código postal de envio conforme o endereço do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Motivo do pagamento" icon="file-lines">
        <ParamField body="Motivo do pagamento" type="string" required>
          Descreve o motivo da cobrança (por exemplo, pedido, serviço ou referência interna).
        </ParamField>
      </Accordion>

      <Accordion title="Valor sujeito a impostos" icon="receipt">
        <ParamField body="Valor sujeito a impostos" type="number" required>
          Valor sobre o qual incide o imposto.
        </ParamField>
      </Accordion>

      <Accordion title="Valor livre de impostos" icon="dollar-sign">
        <ParamField body="Valor livre de impostos" type="number" required>
          Valor isento de impostos.

          Se não se aplicar, use `0`.
        </ParamField>
      </Accordion>

      <Accordion title="Nome(s) do comprador" icon="user">
        <ParamField body="Nome(s) do comprador" type="string" required>
          Nome ou nomes do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Sobrenome(s) do comprador" icon="user">
        <ParamField body="Sobrenome(s) do comprador" type="string" required>
          Sobrenome ou sobrenomes do comprador.
        </ParamField>
      </Accordion>

      <Accordion title="Email do comprador" icon="at">
        <ParamField body="Email do comprador" type="string" required>
          Email do comprador que usará o checkout.

          Em **Sandbox**, deve ser o email de uma conta **Sandbox Personal** do PayPal.
          Em **produção**, use o email real do comprador.
        </ParamField>
      </Accordion>
    </AccordionGroup>

    ### Avançado

    <AccordionGroup>
      <Accordion title="Ambiente" icon="server">
        O bloco **Ambiente** mostra se o PayPal opera em **Desenvolvimento** ou **Produção**.

        Se a integração estiver em **Desenvolvimento**, a partir daqui você pode iniciar o fluxo para **Passar para produção**.

        Se a integração estiver em **Produção**, o bloco reflete que o PayPal já opera com credenciais produtivas.

        <Warning>
          Não passe para produção sem ter credenciais **Live** e webhook **Live** configurados no PayPal.
        </Warning>
      </Accordion>

      <Accordion title="Experiência de pagamento" icon="window">
        <ParamField body="Experiência de pagamento" type="string" default="WebView">
          Indica que o checkout do PayPal é aberto como **WebView incorporado** dentro da experiência conversacional.
        </ParamField>
      </Accordion>

      <Accordion title="Expiração do botão de pagamento [minutos]" icon="clock">
        <ParamField body="Expiração do botão de pagamento [minutos]" type="number">
          Define quanto tempo o botão de pagamento permanece válido depois de enviado.

          Os valores disponíveis dependem da configuração visível no Brain Studio.
        </ParamField>
      </Accordion>

      <Accordion title="Moeda" icon="coins">
        <ParamField body="Moeda" type="string" required>
          Define a moeda da cobrança.

          Deve ser compatível com a configuração da integração.
        </ParamField>
      </Accordion>

      <Accordion title="Porcentagem de IVA" icon="percent">
        <ParamField body="Porcentagem de IVA" type="number" required>
          Insira a porcentagem de IVA que será aplicada no cálculo do pagamento.
        </ParamField>
      </Accordion>

      <Accordion title="Metadata do pagamento" icon="tag">
        <ParamField body="Metadata do pagamento" type="string">
          Campo opcional para salvar uma referência interna (por exemplo, ID do pedido ou sequencial da operação).
        </ParamField>
      </Accordion>

      <Accordion title="Salvar resultado como" icon="database">
        <ParamField body="Salvar resultado como" type="string">
          Define o nome da variável onde o Brain Studio salvará o **JSON completo** de resposta do nó.
        </ParamField>

        <Tip>
          Use para rastreabilidade, validações posteriores ou decisões do fluxo.
        </Tip>
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Outputs">
    <AccordionGroup>
      <Accordion title="Pagamento bem-sucedido" icon="circle-check">
        É acionado quando o PayPal confirma que o pagamento/captura foi concluído corretamente.

        Recomendações:

        * confirmar o pedido
        * emitir comprovante ou notificação
        * atualizar o status da compra nos seus sistemas
      </Accordion>

      <Accordion title="Pagamento pendente" icon="clock">
        É acionado quando a transação fica em status pendente.

        Recomendações:

        * informar o usuário que o pagamento está em revisão/processo
        * evitar criar uma segunda cobrança enquanto o status é resolvido
      </Accordion>

      <Accordion title="Mensagem de pagamento enviada" icon="paper-plane">
        É acionado quando a mensagem com o botão de pagamento é enviada corretamente na conversa.

        Esta saída **não** confirma o pagamento. Apenas indica que a mensagem com o botão de pagamento foi enviada corretamente na conversa.

        Você pode conectar esta saída a um **AI Agent de suporte pós-envio da mensagem de pagamento** para auxiliar o usuário enquanto ele decide abrir o checkout ou se tiver dúvidas antes de pagar.

        **Recomendações:**

        * resolver dúvidas sobre como abrir o botão de pagamento
        * ajudar se o WebView não carregar ou o usuário não entender o passo
        * evitar criar uma nova cobrança sem contexto
        * não confirmar pagamentos a partir desta saída

        **Exemplo de prompt (referencial):**

        ```txt theme={null}
        Atue como "Suporte de Pagamento", um assistente breve para ajudar o usuário depois de receber uma mensagem com botão de pagamento dentro do WhatsApp.

        Contexto:
        O usuário acabou de receber uma mensagem com botão de pagamento para abrir um checkout em WebView. Seu papel é responder dúvidas simples antes que o usuário complete o pagamento.

        ────────────────────
        INTERRUPÇÃO IMEDIATA
        ────────────────────
        Se a última mensagem ou evento recebido contiver sinais de resultado de pagamento, NÃO responda.

        Sinais de resultado de pagamento:
        - pagamento bem-sucedido, pagamento aprovado, pagamento concluído
        - pagamento pendente
        - pagamento falhou, rejeitado, recusado ou negado
        - erro de pagamento
        - confirmação automática do provedor
        - recibo, comprovante, número de operação, transaction ID, payment ID
        - mensagens com estrutura de comprovante, valores, método de pagamento ou status final

        Quando detectar qualquer um desses sinais, interrompa sua execução imediatamente. O resultado do pagamento deve ser tratado pelas saídas oficiais do nó de pagamento, não por este agente.

        ────────────────────
        COMPORTAMENTO
        ────────────────────
        - Se o usuário não fez uma pergunta nem relatou um problema, não responda.
        - Se o usuário tiver uma dúvida, responda de forma breve, clara e útil.
        - Não confirme pagamentos.
        - Não invente status de pagamento.
        - Não recalcule valores.
        - Não prometa estornos, aprovações, reembolsos nem prazos de liquidação.
        - Não gere novos links nem novas cobranças.
        - Se o usuário precisar de ajuda humana, indique que pode aguardar o suporte ou continuar pelo canal definido pelo fluxo.

        ────────────────────
        O QUE VOCÊ PODE RESPONDER
        ────────────────────
        Você pode ajudar com:
        - como abrir o botão de pagamento
        - o que fazer se o WebView não carregar
        - o que fazer se o usuário fechou o checkout
        - dúvidas básicas sobre preencher o formulário de pagamento
        - orientação geral se o pagamento aparecer pendente ou rejeitado, sem confirmar o status

        ────────────────────
        RESPOSTAS SUGERIDAS
        ────────────────────
        Se o usuário perguntar como pagar:
        "Abra o botão de pagamento e siga as instruções do checkout. Quando terminar, volte a esta conversa."

        Se o WebView não carregar:
        "Tente abrir o botão novamente e verifique sua conexão. Se o problema continuar, tente mais tarde ou peça ajuda neste mesmo chat."

        Se o usuário disser que o pagamento foi rejeitado:
        "Você pode revisar os dados inseridos e tentar novamente. Se o problema continuar, use outro método de pagamento ou solicite ajuda por este canal."

        Se o usuário disser que já pagou:
        Não confirme o pagamento. Não responda se a mensagem parecer um resultado automático ou comprovante. Se for apenas uma frase do usuário, responda:
        "Obrigado. Vamos aguardar a confirmação do pagamento para continuar."

        ────────────────────
        ENCERRAMENTO
        ────────────────────
        Se o usuário disser que não precisa mais de ajuda, responda breve:
        "Perfeito. Se precisar de algo mais, estarei por aqui."
        ```
      </Accordion>

      <Accordion title="Pagamento falhou" icon="circle-xmark">
        É acionado quando o pagamento falha, é rejeitado, negado ou não é concluído.

        Recomendações:

        * permitir nova tentativa controlada
        * oferecer rota de suporte ou um caminho alternativo
      </Accordion>

      <Accordion title="Erro" icon="triangle-exclamation">
        É acionado em caso de erros técnicos, erros do provedor ou falhas de comunicação durante a criação ou o processamento do pagamento.

        Recomendações:

        * registrar o erro
        * exibir mensagem de contingência
        * tentar novamente de forma controlada e escalar caso persista
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

***

## Testar pagamentos em Sandbox

Se o PayPal estiver conectado com credenciais de **desenvolvimento/Sandbox**, o checkout deve ser concluído com uma conta compradora de teste do PayPal.

A conta **Personal** representa o comprador e a conta **Business** representa o comércio em testes.

<Frame caption="PayPal Sandbox: usar uma conta Personal para testar pagamentos">
  <img src="https://mintcdn.com/jelouai/qfuCOV36dV96m5-d/assets/images/integraciones/pagos/paypal-sandbox-test-account.gif?s=365d664b13dc730d34fa0bec6b2c1ac0" alt="Animação no PayPal Developer mostrando Sandbox Accounts, seleção de uma conta Personal e revisão dos seus dados para usar como comprador de teste" width="1440" height="638" data-path="assets/images/integraciones/pagos/paypal-sandbox-test-account.gif" />
</Frame>

<Steps>
  <Step title="Abrir Sandbox Accounts">
    No PayPal Developer Dashboard, vá em **Testing Tools** → **Sandbox Accounts**.
  </Step>

  <Step title="Selecionar uma conta Personal">
    Escolha uma conta **Personal** de Sandbox e pegue o email.

    Esse email será o comprador de teste.
  </Step>

  <Step title="Revisar ou alterar a senha">
    Abra os detalhes da conta Personal e use **Change password** se precisar atualizá-la.

    Para facilitar testes internos, você pode definir uma senha temporária conhecida pelo seu time de QA.

    <Warning>
      Não use essa senha em contas reais nem em produção.
    </Warning>
  </Step>

  <Step title="Verificar o ambiente de desenvolvimento">
    Na aba **Avançado**, confirme se o PayPal está operando em Desenvolvimento antes de executar o teste.
  </Step>

  <Step title="Configurar o Email do comprador no nó">
    No nó do PayPal, use o email da conta Sandbox Personal em **Email do comprador** ou mapeie-o a partir de uma variável de teste.
  </Step>

  <Step title="Testar pelo WhatsApp">
    Dispare o fluxo pelo WhatsApp, abra o checkout WebView do PayPal e faça login com a conta Sandbox Personal.

    <Frame caption="Checkout do PayPal no WhatsApp usando uma conta Sandbox Personal">
      <img src="https://mintcdn.com/jelouai/qfuCOV36dV96m5-d/assets/images/integraciones/pagos/paypal-webview-whatsapp-sandbox.gif?s=05ff7bf5364c76d9a2915bc0a2f8cea7" alt="Animação do checkout WebView do PayPal aberto a partir do WhatsApp para concluir um pagamento de teste com uma conta Sandbox Personal" style={{ maxWidth: '280px', margin: '0 auto' }} width="540" height="1170" data-path="assets/images/integraciones/pagos/paypal-webview-whatsapp-sandbox.gif" />
    </Frame>
  </Step>

  <Step title="Validar a saída do fluxo">
    Verifique por qual saída o fluxo continua:

    * **Pagamento bem-sucedido**
    * **Pagamento pendente**
    * **Pagamento falhou**
    * **Erro**
  </Step>
</Steps>

<Note>
  Em Sandbox, o pagamento é fictício e não move dinheiro real.
</Note>

***

## Passar para produção

Se o PayPal foi instalado com credenciais de **desenvolvimento/Sandbox**, você pode iniciar a passagem para produção pela aba **Avançado** do nó PayPal no **Canvas** ou pela página de **PayPal** no **Marketplace**.

Em ambos os casos, é aberto o mesmo modal para inserir credenciais produtivas e confirmar a configuração correspondente.

Antes de operar com pagamentos reais:

* Garanta que você tem credenciais **Live** e webhook **Live** corretamente configurados.
* Use o fluxo **Passar para produção** descrito em [Conectar no Brain Studio](/pt/guias/integracoes/pagamentos/provedores/paypal/conectar-no-brain-studio).
* Substitua no nó qualquer dado de teste por dados reais do fluxo.
* Em produção, use o email real do comprador.
* Execute um teste real de baixo valor antes de escalar.

***

## Considerações importantes

<AccordionGroup>
  <Accordion title="O ambiente depende da instalação">
    Se você instalou o PayPal com credenciais Sandbox/desenvolvimento, teste com uma conta compradora Sandbox.

    Se instalou o PayPal com credenciais Live/produção, use dados reais de comprador.
  </Accordion>

  <Accordion title="O Email do comprador é crítico em Sandbox">
    Em testes, o campo **Email do comprador** deve pertencer a uma conta **Sandbox Personal** do PayPal.

    Se usar um email real em Sandbox, o checkout pode falhar ou não continuar pela saída esperada.
  </Accordion>

  <Accordion title="Evite pagamentos duplicados">
    Em cenários pendentes ou de falha, informe com clareza o usuário antes de iniciar uma nova tentativa de cobrança.

    Mantenha uma lógica de nova tentativa controlada para evitar cobranças repetidas.
  </Accordion>

  <Accordion title="Webhooks e status do pagamento">
    O status final do pagamento depende dos webhooks do PayPal configurados no mesmo ambiente das credenciais usadas pelo nó.
  </Accordion>
</AccordionGroup>

***

## Próximo passo

<Card title="Cobertura e preços" href="/pt/guias/integracoes/pagamentos/provedores/paypal/cobertura-e-precos" icon="globe">
  Revise a disponibilidade, condições comerciais e considerações de operação por mercado.
</Card>
