---
title: "Criar Checkout"
method: POST
path: "/checkouts"
---

# Criar Checkout

`POST /checkouts`

## Headers

- `Authorization` string
- `Content-type` string

## Request body

- object
  - `reference_id` string — Identificador único atribuído para o pedido. Utilizado internamente pelo vendedor em seu sistema (Max 64 caracteres).
  - `expiration_date` string, date-time — Data de expiração do checkout (ISO-8601). Caso não seja informado, a data de expiração será a data e hora do momento da criação do checkout + 2 horas.
  - `customer` object — Objeto contendo os dados pessoais do comprador. ⚠️ ** Deve ser informado caso `customer_modifiable` seja `false`. Nesse caso todos os parâmetros deste objeto são obrigatórios.** ⚠️
    - `name` string — Nome do cliente, devendo conter nome e sobrenome. Caracteres especiais são permitidos, porém eles serão removidos. Apóstrofo e números são aceitos e não serão removidos.
    - `email` string — E-mail do cliente.
    - `tax_id` string — Documento de identificação pessoal do cliente. <br> - CPF (11 caracteres). <br> - CNPJ (14 caracteres).
    - `phone` object — Objeto com os dados do telefone do cliente.
      - `country` string — Código do país (DDI) do telefone do cliente (2-3 caracteres). Somente o caracter especias `+` é aceito. Somente o código do Brasil (55) é aceito.
      - `area` string — Código de área (DDD) do telefone do cliente (2 caracteres).
      - `number` string — Número do telefone do cliente contendo 9 caracteres. Deve sempre iniciar com o número 9.
  - `customer_modifiable` boolean — Indicador da imutabilidade dos dados pessoais na criação do checkout, possibilitando pular o step de dados pessoais. Caso não informado, o valor padrão é `true`. ⚠️ **O objeto `customer` torna-se obrigatório caso o valor informado seja `false** ⚠️
  - `items` object[] — Lista de produtos associados ao pedido. ⚠️ **Obrigatório** ⚠️
    - `reference_id` string — Referência do produto informado vendedor (Max 100 caracteres).
    - `name` string — Nome do produto informado pelo vendedor (Max 100 caracteres).
    - `description` string — Descrição do produto informado pelo vendedor (Max 255 caracteres).
    - `quantity` integer — Quantidade do produto associado ao pedido. ⚠️ **Obrigatório** ⚠️
    - `unit_amount` integer — Valor unitário do produto. Informado em centavos (Max 999999900). ⚠️ **Obrigatório** ⚠️
    - `image_url` string — URL da imagem do produto. Essa imagem será utilizada ao apresentar a lista de items na página do checkout. A imagem precisa atender aos seguintes requisitos: <br/>- Extensões aceitas: `.png`, `.jpg`, `.jpeg` <br/>- Formato: Imagem JPG/PNG <br/>- Tamanho máximo do arquivo: 15Mb.
  - `additional_amount` integer — Valor adicional a ser cobrado definido em centavos (Max 999999900). Esse é um valor complementar ao valor total resultande da soma dos items pertencentes ao pedido.
  - `discount_amount` integer — Valor a ser descontado do valor total da compra (Max 999999900). O valor do desconto é informado em centavos. O valor informado não deve superar a soma do valor total dos itens somado ao valor adicional (`additional_amount).
  - `shipping` object — Dados de entrega do produto. Caso não informado é considerado que não existe a necessidade de realizar a entrega. Caso seja informado, é necessário definir se o valor da entrega é fixo, grátis ou calculado.
    - `type` 'FIXED' | 'FREE' | 'CALCULATE' — Tipo de entrega associada ao pedido.
    - `service_type` 'SEDEX' | 'PAC' — Tipo de serviço de entrega utilizado para calcular o frete. Caso não seja informado, o cliente poderá escolher entre as opções na tela do checkout.
    - `address_modifiable` boolean — Indica se o endereço pode ser alterado na tela de endereço de entrega do checkout. Caso não informado, o valor padrão é `true`. Caso você selecione a opção `false`, o objeto `shipping.address` torna-se obrigatório.
    - `amount` integer — Valor do custo da entrega em centavos (Max 2147483647). ⚠️ **Obrigatório caso `shipping.type` seja `FIXED`** ⚠️
    - `address` object — Endereço de entrega. ⚠️ **Obrigatório caso `address_modifiable` seja `false` ** ⚠️
      - `street` string — Logradouro do endereço de entrega (Max 160 caracteres). ⚠️ **Obrigatório.** ⚠️
      - `number` string — Número do endereço de entrega (Max 20 caracteres). ⚠️ **Obrigatório.** ⚠️
      - `complement` string — Complemento do endereço de entrega.
      - `locality` string — Bairro do endereço de entrega (Max 60 caracteres). ⚠️ **Obrigatório.** ⚠️
      - `city` string — Cidade do endereço de entrega (Max 90 caracteres). ⚠️ **Obrigatório.** ⚠️
      - `region_code` string — Estado do endereço de entrega (ISO 3166-1 alfa-3). ⚠️ **Obrigatório.** ⚠️
      - `country` string — País do endereço de entrega (ISO 3166-1 alfa-3). ⚠️ **Obrigatório.** ⚠️
      - `postal_code` string — CEP do endereço de entrega (8 caracteres). ⚠️ **Obrigatório.** ⚠️
    - `box` object — Define o tamanho e peso da caixa de entrega. ⚠️ **Obrigatório caso `shipping.type` seja `CALCULATE` ** ⚠️
      - `weight` string — Define o tamanho e peso da caixa de entrega. ⚠️ **Obrigatório** ⚠️
      - `dimensions` object — Define a dimensão da caixa. ⚠️ **Obrigatório** ⚠️
        - `length` integer — Comprimento da caixa em centímetros (15-100). ⚠️ **Obrigatório** ⚠️
        - `width` integer — Largura da caixa em centímetros (10-100). ⚠️ **Obrigatório** ⚠️
        - `height` integer — Altura da caixa em centímetros (1-100). ⚠️ **Obrigatório** ⚠️
  - `payment_methods` object[] — Define quais meios de pagamento você deseja que sejam aceitos no checkout. **Atenção**: O método de pagamento débito requer aprovação interna prévia.
    - `type` 'CREDIT_CARD' | 'DEBIT_CARD' | 'BOLETO' | 'PIX' — Meio de pagamento escolhido pelo vendedor:
  - `payment_methods_configs` object[] — Configuração dos meios de pagamento. As configurações são aplicáveis apenas para `CREDIT_CARD` e `DEBIT_CARD`.
    - `type` 'CREDIT_CARD' | 'DEBIT_CARD' — Meio de pagamento a ser configurado.
    - `config_options` object[] — Lista de opções de configuração.
      - `option` 'INSTALLMENTS_LIMIT' | 'INTEREST_FREE_INSTALLMENTS' — Opção de configuração dada a um meio de pagamento: <br />- `INSTALLMENTS_LIMIT`: define o número máximo de parcelas para o pagamento. <br />- `INTEREST_FREE_INSTALLMENTS`: especifica o número de parcelas cujo juros serão assumidos pelo vendedor.
      - `value` string — Valor da configuração dada a um meio de pagamento.
  - `soft_descriptor` string — Texto adicional que será apresentado junto ao nome do estabelecimento na fatura do cartão de crédito do comprador (Max 17 caracteres).
  - `redirect_url` string — URL para redirecionamento do comprador após a finalização do pagamento (Max 255 caracteres).
  - `redirect_waiting_time` integer — Define, em segundos, o tempo de espera antes do redirecionamento automático do comprador para a URL de retorno configurada (Máximo 120).
  - `notification_urls` string[] — Lista de URLs para as quais o PagBank enviará notificações sobre atualizações do status do checkout (Max 100 caracteres cada).
  - `payment_notification_urls` string[] — Lista de URLs para as quais o PagBank enviará notificações sobre a atualização do status do pagamento associado ao checkout (Min 5/Max 100 caracteres cada).
  - `recurrence_plan` object — Objeto com as informações das configurações do plano de cobrança recorrente.
    - `name` string — Nome do plano na sua aplicação (Max 100 caracteres). ⚠️ Obrigatório ⚠️
    - `billing_cycles` integer — Número de ciclos (faturas) da assinatura antes da expiração. Informe a quantidade de ciclos desejada para limitar a duração da assinatura. Deixe este campo em branco para que a assinatura não expire automaticamente.
    - `interval` object — Objeto contendo os detalhes de intervalo de tempo das cobranças.
      - `unit` 'MONTH' | 'YEAR' — Define a frequência com que a cobrança será realizada. Opções disponíveis: <br/>- `MONTH` (mensal) <br/>- `YEAR` (anual)<br/>Valor padrão: `MONTH`.
      - `length` integer — Define a quantidade de unidades (`unit`), em meses ou anos, entre cada cobrança da assinatura. Por exemplo, `3` com `unit = MONTH` resultará em uma cobrança a cada 3 meses.
  - `return_url` string — URL para redirecionamento do comprador após concluir ou cancelar o pagamento no Checkout PagBank. Essa URL deve apontar para a sua loja, permitindo que o cliente retorne facilmente após a finalização da transação (Max 255 caracteres).

## Response `200`

200

- object
  - `id` string
  - `reference_id` string
  - `expiration_date` string
  - `created_at` string
  - `status` string
  - `customer` object
    - `name` string
    - `email` string
    - `tax_id` string
    - `phone` object
      - `country` string
      - `area` string
      - `number` string
  - `customer_modifiable` boolean
  - `items` object[]
    - `reference_id` string
    - `name` string
    - `quantity` integer
    - `unit_amount` integer
    - `image_url` string
  - `additional_amount` integer
  - `discount_amount` integer
  - `shipping` object
    - `type` string
    - `amount` integer
    - `address` object
      - `country` string
      - `region_code` string
      - `city` string
      - `postal_code` string
      - `street` string
      - `number` string
      - `locality` string
      - `complement` string
    - `address_modifiable` boolean
  - `payment_methods` object[]
    - `type` string
    - `brands` string[]
  - `payment_methods_configs` object[]
    - `type` string
    - `config_options` object[]
      - `option` string
      - `value` string
  - `soft_descriptor` string
  - `redirect_url` string
  - `redirect_waiting_time` integer
  - `return_url` string
  - `notification_urls` string[]
  - `payment_notification_urls` string[]
  - `links` object[]
    - `rel` string
    - `href` string
    - `method` string

## Other responses

- `400` — 400

---

[API](https://skmtc.net/pagbank/apis/nova-plataforma-sandbox.md) · [All operations](https://skmtc.net/pagbank/apis/nova-plataforma-sandbox/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pagbank/nova-plataforma-sandbox/revisions/05e64f3006ab/schema)
