Criar sessão de checkout
Sessão de checkout para integração servidor a servidor. Com o checkout do comprador liberado, checkout_available é true e checkout_url é o link da página Mainum para onde você envia o comprador: ele informa só o e-mail e paga por Pix. Enquanto o checkout do comprador não estiver liberado, ou depois que a sessão expirar, checkout_available é false e checkout_url é null. OPEN indica apenas uma sessão ainda não expirada, nunca pagamento confirmado: confirme pelo evento charge.paid (metadata.checkout_session_id) ou consultando a cobrança, nunca pelo redirecionamento. Não envie sua chave de API ao navegador. A criação não reserva saldo/estoque nem congela tarifa financeira; preços e limites da conta são validados quando o comprador inicia o Pix. Operações de loja ainda não são aceitas. A mesma Idempotency-Key e corpo recuperam a sessão original (inclusive expirada), sem renovar prazo; outro corpo ou external_id reutilizado com nova chave retorna 409.
Cabeçalhos
Bearer seguido da sua chave: gw_test_ em teste, gw_live_ em produção.
Identificador único da tentativa, entre 8 e 128 caracteres ASCII visíveis.
Corpo da requisição
Identificador único do pedido na conta. Não reutilizar com outra chave.
Soma exata dos itens; para produtos, use o preço atual do catálogo.
exemplo 2000 = R$ 20,00Produto do catálogo (nome/preço copiados pelo servidor) OU item avulso. Somente produtos ativos e avulsos da própria conta.
HTTPS sem usuário/senha. O comprador volta para cá alguns segundos após o pagamento confirmado; o redirecionamento não comprova pagamento.
HTTPS sem usuário/senha. Aparece para o comprador como "Voltar para a loja".
Loja (painel → Lojas) cuja identidade a página de pagamento mostra: nome, cor, contato e mensagem de agradecimento. Precisa ser uma loja ativa desta conta. Não muda a tarifa.
Dados do merchant, até 20 chaves e 2 KB; sem dados pessoais. Não publicados ao comprador nem enviados em evento nesta etapa.
Resposta 201
Sessão criada ou recuperada por idempotência, ainda sem checkout de pagamento disponível.
Identificador da sessão. Não é credencial de acesso do comprador.
Estado da validade da sessão; não é estado de pagamento.
4 campos
Pares chave-valor seus, até 20 chaves e 2 KB. Gravados uma vez na criação e devolvidos em toda consulta e webhook. Não guarde dados pessoais aqui.
Loja cuja identidade a página de pagamento mostra, ou null.
true quando checkout_url pode ser enviado ao comprador.
Link da página de pagamento Mainum desta sessão; null enquanto indisponível ou após expirar. Trate como segredo do pedido: envie só ao comprador.
Códigos de resposta
| HTTP | Quando acontece |
|---|---|
| 201 | Sessão criada ou recuperada por idempotência, ainda sem checkout de pagamento disponível. |
| 400 | Requisição ou cursor inválido |
| 401 | Chave ausente, inválida ou sem o escopo exigido |
| 409 | Conflito de identificador externo, idempotência ou operação em andamento |
| 422 | checkout_amount_mismatch (total divergente), product_unavailable (produto de outra conta, ausente ou inativo) ou store_unavailable (loja de outra conta, pausada ou arquivada). |
| 429 | Limite de requisições excedido |
| 503 | Serviço temporariamente indisponível |
Cada código de erro está explicado em Erros.