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

# Variáveis e placeholders

> Referência dos placeholders disponíveis para construir o corpo da solicitação, os cabeçalhos e a verificação de status de um gateway personalizado.

Ao montar a solicitação ao PSP —body, cabeçalhos e verificação de status— você pode usar placeholders `{{...}}`. O Jelou os substitui em tempo de execução pelos dados reais da cobrança.

## Placeholders disponíveis

| Placeholder                                                                                                                                                                          | Descrição                                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `{{credencial_key}}`                                                                                                                                                                 | Qualquer `key` que você tenha declarado na etapa **Credenciais** do assistente.                                                                                                                                      |
| `{{amount}}`                                                                                                                                                                         | Valor total simples da cobrança.                                                                                                                                                                                     |
| `{{currency}}`                                                                                                                                                                       | Moeda da cobrança (por exemplo `USD`).                                                                                                                                                                               |
| `{{description}}`                                                                                                                                                                    | Descrição da cobrança.                                                                                                                                                                                               |
| `{{order.id}}`                                                                                                                                                                       | Identificador interno do pedido gerado pelo Jelou.                                                                                                                                                                   |
| `{{order.reference_id}}`                                                                                                                                                             | Identificador de referência externo do pedido.                                                                                                                                                                       |
| `{{order.metadata}}`                                                                                                                                                                 | Objeto com metadados adicionais do pedido. É inserido sem aspas no JSON, como objeto.                                                                                                                                |
| `{{order.non_taxable_amount}}`                                                                                                                                                       | Valor não tributável (detalhamento de impostos).                                                                                                                                                                     |
| `{{order.taxable_amount}}`                                                                                                                                                           | Valor tributável (detalhamento de impostos).                                                                                                                                                                         |
| `{{order.tax}}`                                                                                                                                                                      | Valor do imposto aplicado.                                                                                                                                                                                           |
| `{{order.tax_percentage}}`                                                                                                                                                           | Percentual de imposto, derivado (`tax / taxable_amount * 100`).                                                                                                                                                      |
| `{{customer.reference_id}}`                                                                                                                                                          | Identificador interno do cliente.                                                                                                                                                                                    |
| `{{customer.phone}}`                                                                                                                                                                 | Telefone do cliente.                                                                                                                                                                                                 |
| `{{customer.email}}`                                                                                                                                                                 | E-mail do cliente.                                                                                                                                                                                                   |
| `{{customer.full_name}}` / `{{customer.middle_name}}` / `{{customer.surname}}`                                                                                                       | Nome do cliente.                                                                                                                                                                                                     |
| `{{customer.legal_id_type}}` / `{{customer.legal_id}}`                                                                                                                               | Documento de identidade (CPF, RUC, etc.).                                                                                                                                                                            |
| `{{customer.address}}`                                                                                                                                                               | Endereço do cliente.                                                                                                                                                                                                 |
| `{{customer.country}}`                                                                                                                                                               | País do cliente.                                                                                                                                                                                                     |
| `{{returnUrl}}`                                                                                                                                                                      | URL de retorno após o checkout. Resolve para o callback próprio do Jelou se você configurou **Verificar status com o PSP no retorno**; caso contrário, resolve para a URL de retorno enviada pelo consumidor da API. |
| `{{webhookUrl}}`                                                                                                                                                                     | URL própria do webhook do gateway — útil se seu PSP aceita configurar o callback dentro do mesmo payload de criação da cobrança.                                                                                     |
| `{{expiration.duration_seconds}}` / `{{expiration.duration_minutes}}` / `{{expiration.expires_at_unix}}` / `{{expiration.expires_at_unix_ms}}` / `{{expiration.expires_at_iso8601}}` | Vigência do checkout.                                                                                                                                                                                                |

<Note>
  A vigência do checkout é fixa em uma janela de **30 horas** a partir da criação — ainda não é configurável por gateway nem por solicitação.
</Note>

Dentro de **Verificar status com o PSP no retorno** (e somente ali) também existe `{{transaction_id}}`. Use-o na URL, nos cabeçalhos ou no body dessa consulta; sem ele, a verificação não distinguiria entre transações.

## Exemplo de `body_template`

```json title="body_template de exemplo" theme={null}
{
  "amount": {{amount}},
  "currency": "{{currency}}",
  "description": "{{description}}",
  "reference": "{{order.reference_id}}",
  "customer": {
    "name": "{{customer.full_name}}",
    "email": "{{customer.email}}",
    "phone": "{{customer.phone}}"
  },
  "api_key": "{{apiKey}}",
  "callback_url": "{{webhookUrl}}"
}
```

Neste exemplo, `{{apiKey}}` é uma credencial declarada na etapa **Credenciais** do assistente; o restante são placeholders do sistema listados acima.

## Seções condicionais

O body template também oferece inclusão condicional simples (sem aninhamento nem loops), útil para omitir campos sem valor:

* `{{#campo}}...{{/campo}}` — inclui o conteúdo se `campo` tiver um valor verdadeiro.
* `{{^campo}}...{{/campo}}` — inclui o conteúdo se `campo` for falso ou estiver vazio.

## Regras de validação

* Qualquer `{{...}}` que não esteja nesta página, não seja uma credencial declarada, ou (somente na verificação de status) `{{transaction_id}}`, é considerado um **placeholder desconhecido**.
* Um placeholder desconhecido bloqueia o salvamento no assistente e também no backend.

<Warning>
  Se o seu body usa `{{returnUrl}}` e você **não** ativou a verificação de status no retorno, cada solicitação de cobrança deve incluir a URL de retorno explicitamente, ou o Jelou a rejeita.
</Warning>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Criar um gateway personalizado" href="/pt/guias/integracoes/pagamentos/personalizados/criar-gateway" icon="wand-magic-sparkles">
    Volte ao assistente de 6 etapas para aplicar estes placeholders.
  </Card>

  <Card title="Testar o gateway" href="/pt/guias/integracoes/pagamentos/personalizados/testar-gateway" icon="vial">
    Verifique como seus placeholders são renderizados antes de publicar em produção.
  </Card>
</CardGroup>
