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

# Checkout templates

> Escolha a estrutura visual da página hospedada.

Checkout templates mudam a estrutura do painel esquerdo da página hospedada. O
painel de pagamento, os métodos disponíveis, o parcelamento, o branding e a
confirmação continuam sendo controlados pela Chargefy.

Use o campo `template` em uma [checkout session](/api-reference/checkout-sessions/create)
quando uma sessão específica precisar de uma apresentação diferente do padrão da
organização.

<CardGroup cols={3}>
  <Card title="minimal" icon="square" href="https://pay.chargefy.io/preview/minimal">
    <img src="https://mintcdn.com/scaleup-28315a31/oU8B8kPbmC19xOC_/assets/checkout-template-minimal.jpg?fit=max&auto=format&n=oU8B8kPbmC19xOC_&q=85&s=eb14fae53618ea43855b1ca0c1e4c8cf" alt="Miniatura do template minimal com resumo de produto e formulário de pagamento" width="1280" height="800" data-path="assets/checkout-template-minimal.jpg" />

    Produto/preço, resumo e formulário de pagamento. É o padrão geral.
  </Card>

  <Card title="booking" icon="calendar-days" href="https://pay.chargefy.io/preview/booking">
    <img src="https://mintcdn.com/scaleup-28315a31/JkjvjdzrXEcQicBB/assets/checkout-template-booking.jpg?fit=max&auto=format&n=JkjvjdzrXEcQicBB&q=85&s=563b122cd34ff72a8e69cba6f65c1c7f" alt="Miniatura do template booking com estadia, noites, adicionais e formulário de pagamento" width="1280" height="800" data-path="assets/checkout-template-booking.jpg" />

    Reservas de hospedagem: acomodação principal, quantidade de noites e
    adicionais/taxas.
  </Card>

  <Card title="subscription" icon="arrows-rotate" href="https://pay.chargefy.io/preview/subscription">
    <img src="https://mintcdn.com/scaleup-28315a31/kSlvsTruhKR3KP8Z/assets/checkout-template-subscription.jpg?fit=max&auto=format&n=kSlvsTruhKR3KP8Z&q=85&s=0f1ba4b30ca5e6f529ea9cc5caeb88af" alt="Miniatura do template subscription com trial, ciclo de cobrança e valor por mês" width="1280" height="800" data-path="assets/checkout-template-subscription.jpg" />

    Assinaturas: trial em destaque, ciclo de cobrança e valor por mês
    equivalente.
  </Card>
</CardGroup>

## Templates disponíveis

| Template       | Uso                                                                                    |
| -------------- | -------------------------------------------------------------------------------------- |
| `minimal`      | Produto/preço, resumo e formulário de pagamento. É o padrão geral.                     |
| `booking`      | Reservas de hospedagem: acomodação principal, quantidade de noites e adicionais/taxas. |
| `subscription` | Assinaturas: trial em destaque, ciclo de cobrança e valor por mês equivalente.         |

O template só muda a apresentação do painel esquerdo. Os mesmos `line_items`
podem ser usados em qualquer template — escolha o que melhor descreve a compra
para o cliente final.

## Minimal

<Frame caption="Resumo do produto à esquerda, formulário de pagamento à direita.">
  <img src="https://mintcdn.com/scaleup-28315a31/oU8B8kPbmC19xOC_/assets/checkout-template-minimal.jpg?fit=max&auto=format&n=oU8B8kPbmC19xOC_&q=85&s=eb14fae53618ea43855b1ca0c1e4c8cf" alt="Template minimal com resumo de produto e formulário de pagamento" width="1280" height="800" data-path="assets/checkout-template-minimal.jpg" />
</Frame>

É o template padrão. Mostra o produto, o resumo de valores e o formulário de
pagamento lado a lado, sem elementos extras — o caminho mais curto até o
pagamento.

**Quando usar**

* Produtos digitais, infoprodutos e cursos.
* Serviços avulsos, mentorias e consultorias.
* Qualquer venda de pagamento único em que o produto é "uma coisa só".

Funciona tanto para pagamento único quanto recorrente: o ciclo é definido pelos
preços enviados em `line_items`.

<RequestExample>
  ```bash cURL theme={}
  curl -X POST "https://api.chargefy.io/v1/checkout-sessions" \
    -H "Authorization: Bearer {{API_KEY}}" \
    -H "Content-Type: application/json" \
    -d '{
      "customer_email": "nome@email.com",
      "line_items": [
        {
          "price_id": "id_123",
          "quantity": 1
        }
      ],
      "success_url": "https://meusite.com/sucesso"
    }'
  ```
</RequestExample>

<Tip>
  `minimal` é o padrão quando `template` é omitido. Não precisa enviar o campo
  para esse layout, a menos que a organização tenha outro template como padrão.
</Tip>

## Booking

<Frame caption="Estadia, noites e adicionais no painel esquerdo.">
  <img src="https://mintcdn.com/scaleup-28315a31/JkjvjdzrXEcQicBB/assets/checkout-template-booking.jpg?fit=max&auto=format&n=JkjvjdzrXEcQicBB&q=85&s=563b122cd34ff72a8e69cba6f65c1c7f" alt="Template booking com estadia, noites, adicionais e formulário de pagamento" width="1280" height="800" data-path="assets/checkout-template-booking.jpg" />
</Frame>

Pensado para reservas: destaca a foto da acomodação, o número de noites, a
diária e separa os adicionais e taxas em um bloco próprio.

**Quando usar**

* Hotéis, pousadas e aluguel por temporada.
* Day-use, passeios e experiências com adicionais.
* Locação de equipamento ou espaço por período.

**Como modelar**

* O primeiro `line_items[]` é a estadia. Use `price_data.product_id` para apontar
  para a acomodação e `quantity` para o número de noites.
* Os demais `line_items[]` são adicionais ou taxas, como limpeza, café da manhã,
  pet, estacionamento ou hóspede extra.
* Use `submit_type: "book"` para a página renderizar a chamada de ação de reserva.
* Se o hóspede já existe como customer, envie `customer_id`. Caso contrário, a
  sessão pode nascer com `customer_email`, `customer_name` e `customer_document`,
  e a Chargefy cria o customer no confirm.

<RequestExample>
  ```bash cURL theme={}
  curl -X POST "https://api.chargefy.io/v1/checkout-sessions" \
    -H "Authorization: Bearer {{API_KEY}}" \
    -H "Content-Type: application/json" \
    -d '{
      "customer_email": "nome@email.com",
      "line_items": [
        {
          "price_data": {
            "currency": "brl",
            "product_id": "id_123",
            "unit_amount": 45000
          },
          "quantity": 3
        },
        {
          "price_data": {
            "currency": "brl",
            "product_data": {
              "name": "Taxa de limpeza"
            },
            "unit_amount": 12000
          },
          "quantity": 1
        }
      ],
      "submit_type": "book",
      "success_url": "https://meusite.com/reservas/sucesso",
      "template": "booking"
    }'
  ```
</RequestExample>

<Tip>
  A diária pode ser totalmente dinâmica. Para reservas, normalmente faz mais
  sentido reaproveitar o `product` da acomodação e enviar `price_data` inline em
  cada sessão.
</Tip>

## Subscription

<Frame caption="Trial, ciclo de cobrança e valor mensal em destaque.">
  <img src="https://mintcdn.com/scaleup-28315a31/kSlvsTruhKR3KP8Z/assets/checkout-template-subscription.jpg?fit=max&auto=format&n=kSlvsTruhKR3KP8Z&q=85&s=0f1ba4b30ca5e6f529ea9cc5caeb88af" alt="Template subscription com trial, ciclo de cobrança e valor por mês" width="1280" height="800" data-path="assets/checkout-template-subscription.jpg" />
</Frame>

Para assinaturas: destaca o período de teste, o ciclo de cobrança e o valor
mensal equivalente. Os produtos aparecem como uma lista discreta no rodapé do
painel, com miniaturas pequenas.

**Quando usar**

* SaaS e ferramentas com cobrança mensal ou anual.
* Clubes de assinatura e áreas de membros.
* Academias, comunidades e planos com período de teste grátis.

**Como modelar**

* Use `line_items[]` com preços recorrentes (`recurring`). Pode combinar o plano
  com adicionais recorrentes (ex.: suporte prioritário).
* Para período de teste, envie `subscription_data.trial_period_days` ou
  `subscription_data.trial_end`. A página destaca o trial e mostra `R$ 0,00`
  como total devido hoje.
* Em planos anuais, a página calcula e mostra o valor mensal equivalente.
* Use `submit_type: "subscribe"` para o botão exibir a chamada de ação de
  assinatura.

<RequestExample>
  ```bash cURL theme={}
  curl -X POST "https://api.chargefy.io/v1/checkout-sessions" \
    -H "Authorization: Bearer {{API_KEY}}" \
    -H "Content-Type: application/json" \
    -d '{
      "customer_email": "nome@email.com",
      "line_items": [
        {
          "price_id": "id_123",
          "quantity": 1
        },
        {
          "price_id": "id_456",
          "quantity": 1
        }
      ],
      "submit_type": "subscribe",
      "subscription_data": {
        "trial_period_days": 7
      },
      "success_url": "https://meusite.com/assinatura/sucesso",
      "template": "subscription"
    }'
  ```
</RequestExample>

<Tip>
  Os preços determinam o ciclo de cobrança. Combine o trial com qualquer
  conjunto de preços recorrentes; a página resolve a apresentação do valor
  mensal automaticamente.
</Tip>
