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

# Criar um gateway personalizado

> Configure passo a passo o assistente de 6 etapas para cadastrar um provedor de pagamento personalizado em Pagamentos.

Em **Pagamentos → Integrações**, o botão **Adicionar gateway** abre o assistente de cadastro. Ao criar um gateway novo, as etapas são **lineares**: você precisa concluir cada uma antes de avançar. Quando o gateway já existe, você pode se mover livremente entre as etapas para editá-lo.

<Tip>
  Antes de preencher o assistente, use o [prompt de compatibilidade](/pt/guias/integracoes/pagamentos/personalizados/prompt-compatibilidade) com o seu LLM e a documentação do PSP. Você sai com o mapeamento pronto para cada etapa.
</Tip>

## Assistente de cadastro

<Steps>
  <Step title="Geral">
    Defina o **Nome**, o **Slug**, a **Descrição** (opcional), a **URL do ícone** (opcional) e o **Ambiente** (**Sandbox** ou **Produção**).

    * **Nome** e **Slug** são obrigatórios.

    <Frame caption="Etapa 1 do assistente: informações gerais do gateway">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-1-general.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=4d436c2f904e4cb4dcfee817e90964e5" alt="Etapa Geral do assistente de gateway personalizado, com os campos Nome, Slug, Ambiente e Descrição" width="832" height="1027" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-1-general.png" />
    </Frame>

    <Tip>
      Comece em **Sandbox**. O ambiente não pode ser alterado depois: para produção você criará outro gateway (ou um cadastro aparte) com as chaves reais.
    </Tip>

    <Warning>
      O **Slug** e o **Ambiente** não podem ser editados depois de criar o gateway.
    </Warning>
  </Step>

  <Step title="Credenciais">
    Declare cada segredo ou API key que seu PSP precisa. Em cada linha você define:

    * **Key** — nome interno do placeholder (por exemplo `apiKey`)
    * **Label** — texto visível na interface
    * **Tipo** — **Texto** ou **Segredo**

    Você deve declarar pelo menos uma credencial. Use **Segredo** para API keys e tokens: o valor fica mascarado.

    <Frame caption="Etapa 2 do assistente: credenciais que seu PSP precisa">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-2-credenciales.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=98b7d8fdfc0e23943df0fcdf024f46cf" alt="Etapa Credenciais do assistente de gateway personalizado, com uma linha de credencial do tipo Segredo" width="802" height="481" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-2-credenciales.png" />
    </Frame>

    <Tip>
      Aqui você só **declara** quais chaves existem (como os campos de um BYOK). Os valores reais você cola depois, em **Conectar**.
    </Tip>

    <Note>
      Nesta tela você não pode marcar uma credencial como obrigatória. Se precisar desse comportamento, alinhe com sua equipe técnica.
    </Note>
  </Step>

  <Step title="Requisição (inclui Retorno)">
    Aqui você define como o Jelou chama o PSP para criar uma cobrança e, de forma opcional, como tratar o retorno do cliente.

    **Requisição**

    * **Método** (GET, POST, PUT ou PATCH) e **URL** do endpoint de criação de cobrança
    * **Cabeçalhos** — por exemplo `Authorization: Bearer {{minhaCredencial}}`
    * **Body template** — JSON da solicitação com placeholders `{{...}}` (veja [Variáveis e placeholders](/pt/guias/integracoes/pagamentos/personalizados/variaveis-e-placeholders))
    * **Path do link de pagamento** e **Path do transaction id** — caminho no JSON de resposta onde ficam a URL de checkout e o id de transação (por exemplo `data.checkout_url`)

    <Frame caption="Etapa 3 do assistente: endpoint, headers e body template da requisição">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-3-peticion.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=f123887b84eb0f2df55a878e41014011" alt="Etapa Requisição do assistente de gateway personalizado, com o endpoint, os headers e o body template de exemplo" width="807" height="1007" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-3-peticion.png" />
    </Frame>

    A **URL** e o **Body template** são obrigatórios. Cada `{{...}}` deve corresponder a uma credencial declarada ou a um placeholder reconhecido.

    **Retorno (opcional)**

    * **Parâmetro de transaction id** — query param que o PSP adiciona ao redirecionar após o checkout
    * **Verificar status com o PSP no retorno** — consulta ativa de status (método, URL, cabeçalhos, paths e mapeamento para **Sucesso / Falha / Nenhum**)

    <Frame caption="Bloco de retorno: habilitar o retorno do navegador e a verificação de status com o PSP">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-3-retorno-navegador.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=09a9d2b44c7f34ee489bc0d4145edf86" alt="Bloco de retorno do assistente, com os interruptores de retorno do navegador e verificação de status com o PSP ativados" width="770" height="772" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-3-retorno-navegador.png" />
    </Frame>

    <Frame caption="Mapeamento de cada valor de status do PSP para Sucesso, Falha ou Nenhum">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-3-mapeo-estados.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=f3195235153242f23ed1c95b907a62b6" alt="Tabela de mapeamento de status do PSP para Sucesso ou Falha dentro do bloco de retorno" width="790" height="527" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-3-mapeo-estados.png" />
    </Frame>

    <Warning>
      Ao confirmar esta etapa, o gateway é criado ou atualizado. O **Slug** e o **Ambiente** ficam fixos. Se a criação falhar, o assistente bloqueia o avanço.
    </Warning>

    <Accordion title="Notas sobre o método HTTP">
      O seletor pode mostrar **DELETE**, mas só são aceitos GET, POST, PUT ou PATCH. Escolher DELETE faz o salvamento falhar.
    </Accordion>
  </Step>

  <Step title="Conectar">
    Disponível depois de salvar a etapa anterior. Aqui você informa os **valores reais** de cada credencial declarada — os segredos do seu PSP, não os nomes deles.

    <Frame caption="Etapa 4 do assistente: valores reais das credenciais declaradas">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-4-conectar.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=495d74f7e37fdd577e7cc1417b4f0c6a" alt="Etapa Conectar do assistente de gateway personalizado, com o campo Api key e o botão Atualizar chaves" width="811" height="547" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-4-conectar.png" />
    </Frame>

    <Tip>
      Em **Sandbox**, cole as chaves de teste do PSP. Em **Produção**, as chaves reais. Sem esta etapa, o gateway não consegue se autenticar no provedor.
    </Tip>
  </Step>

  <Step title="Webhook">
    Configure como interpretar as notificações recebidas do PSP:

    * Ative ou desative o webhook com **Habilitado**. Se desativar, o assistente pula para Finalizar.
    * **Cabeçalho de assinatura** (opcional) — header onde o PSP envia a assinatura HMAC
    * **Path do nome do evento** e **Path do transaction id** — caminhos dentro do payload
    * **Tabela de eventos** — mapeia cada evento do PSP para **Sucesso**, **Falha** ou **Nenhum**

    <Frame caption="Etapa 5 do assistente: configuração do webhook de confirmação">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-5-webhook.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=6793f9bf50949476ed728f2b3e515ea1" alt="Etapa Webhook do assistente de gateway personalizado, com o header de assinatura, os paths do payload e o formato JSON esperado" width="772" height="922" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-5-webhook.png" />
    </Frame>

    <Note>
      O campo **Formato JSON esperado** é só uma referência visual: não é enviado ao backend.
    </Note>
  </Step>

  <Step title="Webhook secret">
    Só aparece se o webhook estiver habilitado. Copie a **URL de webhook** gerada pelo assistente, configure-a no painel do seu PSP e gere ou rotacione o **segredo HMAC**.

    * Algoritmos disponíveis: **SHA256**, **SHA384** ou **SHA512**
    * Um segredo personalizado deve ter pelo menos **16 caracteres**

    <Frame caption="Etapa 6 do assistente: URL de webhook e segredo de assinatura">
      <img src="https://mintcdn.com/jelouai/5kQz7Vl-QmvhNoPW/assets/images/integraciones/pagos/personalizadas/wizard-paso-6-webhook-secret.png?fit=max&auto=format&n=5kQz7Vl-QmvhNoPW&q=85&s=89e48c2d2f66e7aa0a2b5494551cacda" alt="Etapa Webhook secret do assistente de gateway personalizado, com a URL do webhook, o segredo ativo e o seletor de algoritmo de assinatura" width="810" height="762" data-path="assets/images/integraciones/pagos/personalizadas/wizard-paso-6-webhook-secret.png" />
    </Frame>

    Ao concluir esta etapa, o assistente é fechado.
  </Step>
</Steps>

<Tip>
  Antes de usar o gateway em produção, use **Testar** na lista de Integrações. Veja [Testar o gateway](/pt/guias/integracoes/pagamentos/personalizados/testar-gateway).
</Tip>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Variáveis e placeholders" href="/pt/guias/integracoes/pagamentos/personalizados/variaveis-e-placeholders" icon="brackets-curly">
    Placeholders disponíveis para o body, cabeçalhos e verificação de status.
  </Card>

  <Card title="Testar o gateway" href="/pt/guias/integracoes/pagamentos/personalizados/testar-gateway" icon="vial">
    Gere um paylink de teste antes de ir para produção.
  </Card>
</CardGroup>
