curl --request PATCH \
--url https://api.malga.io/v1/sessions/{id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--header 'X-Client-Id: <api-key>' \
--data '
{
"isActive": true,
"dueDate": "2026-12-31T23:59:59Z",
"maxPayments": 10
}
'const options = {
method: 'PATCH',
headers: {
'X-Client-Id': '<api-key>',
'X-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({isActive: true, dueDate: '2026-12-31T23:59:59Z', maxPayments: 10})
};
fetch('https://api.malga.io/v1/sessions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.malga.io/v1/sessions/{id}"
payload := strings.NewReader("{\n \"isActive\": true,\n \"dueDate\": \"2026-12-31T23:59:59Z\",\n \"maxPayments\": 10\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Client-Id", "<api-key>")
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "c1db83fa-723c-4e1f-9722-bc19d1be6791",
"isActive": true
}{
"error": {
"type": "bad_request",
"code": 422,
"message": "Consumed one-to-one PIX or boleto sessions cannot be reactivated.",
"businessCode": "pix_boleto_one_to_one_reactivation_blocked",
"details": []
}
}Atualizar relevância de uma sessão
Atualiza campos de relevância da sessão: isActive (obrigatório), dueDate e maxPayments (sessões 1:N). A resposta é parcial e devolve apenas id e isActive; após a atualização, consulte GET /v1/sessions/{id} para obter o estado completo (status, dueDate, maxPayments, multiplePayments, etc.).
Restrição de reativação pix/boleto 1:1 consumida: isActive: true em uma sessão pix ou boleto 1:1 já paga (maxPayments = 1 com paymentCount = 1, ou sessão legada sem maxPayments já paid com paymentCount = 1) retorna 422 com businessCode: "pix_boleto_one_to_one_reactivation_blocked". O bloqueio ignora maxPayments enviado no PATCH.
curl --request PATCH \
--url https://api.malga.io/v1/sessions/{id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--header 'X-Client-Id: <api-key>' \
--data '
{
"isActive": true,
"dueDate": "2026-12-31T23:59:59Z",
"maxPayments": 10
}
'const options = {
method: 'PATCH',
headers: {
'X-Client-Id': '<api-key>',
'X-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({isActive: true, dueDate: '2026-12-31T23:59:59Z', maxPayments: 10})
};
fetch('https://api.malga.io/v1/sessions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.malga.io/v1/sessions/{id}"
payload := strings.NewReader("{\n \"isActive\": true,\n \"dueDate\": \"2026-12-31T23:59:59Z\",\n \"maxPayments\": 10\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Client-Id", "<api-key>")
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "c1db83fa-723c-4e1f-9722-bc19d1be6791",
"isActive": true
}{
"error": {
"type": "bad_request",
"code": 422,
"message": "Consumed one-to-one PIX or boleto sessions cannot be reactivated.",
"businessCode": "pix_boleto_one_to_one_reactivation_blocked",
"details": []
}
}Path Parameters
Identificação da sessão a ser alterada
Body
Ativa ou desativa o link de pagamento da sessão. Sessões já pagas, canceladas ou expiradas não podem ser reativadas.
Atualiza a data limite da sessão, em ISO 8601 (com horário, ex.: 2026-01-17T20:00:00Z, ou apenas data, ex.: 2026-02-20).
Quando informado, o dia calendário em America/Sao_Paulo deve ser hoje ou no futuro.
Enviar null remove a dueDate: a sessão deixa de expirar por vencimento.
Atualiza a capacidade de pagamentos em sessões 1:N.
Aceita -1 (ilimitado) ou um valor inteiro entre 1 e 99999.
0, valores menores que -1 e valores acima de 99999 são inválidos.
-1 Was this page helpful?