Alterar um endpoint
Liga, desliga ou troca os tipos de evento de um endpoint. A URL e o segredo não mudam por aqui.
Autenticação
A sessão do painel autentica esta rota, e ela é lida de forma autoritativa: não há parâmetro em que o chamador aponte para outra conta.
Esta rota não exige escopo nomeado — o que não quer dizer que ela seja aberta: sem a credencial acima ela recusa.
Exige sessão de vendedor. Todo endpoint lido ou escrito é escopado pela sessão: o identificador na URL nunca alcança o endpoint de outro vendedor.
Parâmetros
Caminho
| Nome | Tipo | Descrição |
|---|---|---|
endpointIdobrigatório | texto | O identificador do endpoint, como ele aparece na listagem. |
Corpo da requisição
application/json.
| Campo | Tipo | Descrição |
|---|---|---|
active | booleano | Se o endpoint deve receber entregas. |
apiKey | texto | A chave nova (troca a atual) ou null para apagá-la. Ausente mantém a atual. |
authHeader | texto | O cabeçalho que leva a chave, ou null para voltar a Authorization. |
eventTypes | arranjo de um de: `account.migration_scheduled`, `advance.credited`, `charge.cancelled`, `debt.settled`, `funds.held`, `funds.released`, `kyc.updated`, `payout.failed`, `payout.paid`, `payout.partially_settled`, `payout.reversed`, `sale.chargeback`, `sale.disputed`, `sale.med_returned`, `sale.paid`, `sale.refunded`, `withdrawal.completed` | A lista nova de tipos assinados. Ela substitui a anterior inteira. |
name | texto | O nome novo do destino. |
productIds | arranjo de texto (uuid) | A lista nova de produtos, com ao menos um da sua conta. Ela substitui a anterior inteira. |
{
"active": true,
"apiKey": "valor-de-exemplo-nao-use",
"authHeader": "exemplo",
"eventTypes": [
"account.migration_scheduled"
],
"name": "Meu servidor de pedidos",
"productIds": [
"0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06"
]
}Respostas
200 · sucesso
{
"active": true,
"apiKeyConfigured": true,
"authHeader": "exemplo",
"eventTypes": [
"exemplo"
],
"id": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
"name": "Loja Exemplo",
"productIds": [
"exemplo"
],
"url": "https://loja.exemplo.com.br/webhooks"
}400 · requisição inválida
O corpo não muda nada, ou não passou na validação.
404 · não encontrado
O endpoint não existe, ou não é seu.
422 · corpo inválido
Os produtos ou o cabeçalho não passaram na validação.
Erros desta rota
| Status | Código | Quando | O que fazer |
|---|---|---|---|
| 400 | WEBHOOK_ENDPOINT_NO_CHANGES | O corpo não pede mudança nenhuma: veio vazio, ou traz exatamente o que já está gravado. Nada foi alterado, e a recusa é explícita para você não ler um 200 como confirmação de uma edição que não aconteceu. | Envie o campo que você quer mudar, com o valor novo. Confira o estado atual na listagem antes, se estiver em dúvida sobre o que já vale. |
| 404 | WEBHOOK_ENDPOINT_NOT_FOUND | O identificador não existe, ou o endpoint é de outra conta. As duas causas respondem igual de propósito: distinguir revelaria a existência de endpoint alheio. | Confira o identificador na listagem de endpoints. Repetir não muda o resultado, e nada foi alterado. |
| 422 | WEBHOOK_ENDPOINT_PRODUCT_INVALID | A lista de produtos traz um produto que não é desta conta. O destino só recebe vendas de produtos seus. | Escolha só produtos da sua conta, na listagem de produtos, e reenvie. Nada foi gravado. |
| 422 | WEBHOOK_AUTH_HEADER_NOT_ALLOWED | O cabeçalho escolhido para a chave de API é um dos reservados: os de assinatura da Naut (X-Naut-Signature, X-Naut-Timestamp) ou os do transporte, como Content-Type e Host. | Use Authorization ou outro nome para o cabeçalho da chave e reenvie. Nada foi gravado. |
Os códigos são estáveis e fazem parte do contrato. A lista completa, com todos os vocabulários, está na tabela de erros.