Skip to main content
O serviço de Sessões permite criar pedidos e links de pagamento processados pela Malga. Ele também pode ser combinado com o Malga Checkout para aumentar a segurança da implementação no front-end, usando uma publicKey de escopo restrito por sessão. Existem dois modos principais:
  • Sessão 1:1 (legado): quando maxPayments não é enviado na criação, a sessão segue o fluxo de um único pagamento.
  • Sessão 1:N: quando maxPayments é enviado na criação, a sessão permite múltiplos pagamentos no mesmo link, com limite finito (1 a 99999) ou ilimitado (-1).
Você pode criar sessões com Pix, boleto, cartão de crédito e demais métodos aceitos pelo endpoint de criação. Para consultar o contrato completo, veja Criar nova sessão.
Pix e boleto não são aceitos em links 1:N com limite finito maior que 1. Ao criar uma sessão com paymentMethods contendo pix ou boleto e maxPayments finito > 1, a API responde 422 com businessCode: "pix_boleto_multiple_payments_not_allowed". Para pix/boleto, use maxPayments omitido, 1 ou -1 (ilimitado). Cartão de crédito continua aceito em qualquer valor de maxPayments suportado.A mesma restrição vale na atualização (PATCH /v1/sessions/{id} com isActive: true): elevar maxPayments para um valor finito > 1 em uma sessão pix ou boleto retorna 422 com businessCode: "pix_boleto_multiple_payments_not_allowed". A reativação de uma sessão pix ou boleto 1:1 já paga também é bloqueada com 422 e businessCode: "pix_boleto_one_to_one_reactivation_blocked".

Utilizando as sessões

Para utilizar o serviço de Sessões, crie uma sessão definindo itens, valor, métodos de pagamento e, quando necessário, maxPayments. Depois, use a publicKey retornada na criação para chamar o endpoint de pagamento da sessão com uma chave de escopo restrito.
O fluxo conceitual desta seção se aplica a sessões 1:1 e 1:N. Em sessões 1:N, cada chamada de pagamento aceita representa uma tentativa individual dentro da capacidade configurada em maxPayments.

Criando uma sessão

Realize a criação usando POST /v1/sessions. A resposta completa retorna a sessão, a publicKey de escopo restrito e, quando aplicável, o objeto multiplePayments com a disponibilidade agregada do link.
Veja todos os campos aceitos em Criar nova sessão.

Pagando uma sessão

Pague uma sessão usando POST /v1/sessions/{id}/charge. Use a publicKey retornada na criação da sessão no cabeçalho X-Api-Key. Em sessões 1:N, a resposta deste endpoint representa a cobrança criada para uma tentativa de pagamento. Para acompanhar a disponibilidade agregada do link após o pagamento, consulte Recuperar detalhes de uma sessão.
Veja todos os campos aceitos em Pagar uma sessão.

Fluxo 1:N e acompanhamento de status

Em sessões 1:N, o status agregado do link não deve ser inferido apenas pela resposta de uma cobrança individual. Acompanhe a sessão completa por GET /v1/sessions/{id} e use o histórico apenas como trilha de eventos.
Um pagamento individual não encerra necessariamente uma sessão 1:N. Consulte Recuperar detalhes de uma sessão para obter o estado agregado atualizado e Recuperar o histórico da sessão para auditar eventos.

Histórico da sessão

O endpoint GET /v1/sessions/{id}/history expõe a trilha de auditoria da sessão, com os eventos mais recentes primeiro: criação, alterações de campos, tentativas de pagamento, confirmações assíncronas (Pix e boleto) e expirações por dueDate ou limite 1:N. Cada item da resposta traz action, actions e um objeto diff com o detalhe da mudança. O campo status em cada linha segue a semântica de produto — expirações automáticas podem aparecer como disabled, enquanto cancelamento manual permanece canceled.
Não use o histórico como fonte do estado atual do link. Para multiplePayments e contadores atualizados, use GET /v1/sessions/{id}.
Consulte Recuperar o histórico da sessão para o catálogo completo de ações, exemplos de diff e diagrama do fluxo.

Integrando o MalgaCheckout com sessões

Para utilizar o Malga Checkout com o serviço de Sessões de uma maneira mais segura, crie uma sessão pelo seu back-end e use a publicKey de escopo restrito na aplicação front-end. Assim, você configura o checkout sem expor a publicKey de escopo mais amplo usada normalmente.
O fluxo com Malga Checkout vale para sessões 1:1 e 1:N. Em sessões 1:N, a mesma sessão pode continuar disponível após uma tentativa aprovada, conforme o limite configurado em maxPayments e o estado retornado em multiplePayments.

Usando o MalgaCheckout com sessões

Depois de criar a sessão, use o id dela e a publicKey retornada para configurar o Malga Checkout. Para manter a integração segura, recomendamos que o front-end tenha acesso apenas à chave pública da sessão.