Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· createWebhookEndpoint
Cadastra um destino para receber eventos assinados (até 10 por conta). O segredo whsec_… aparece só nesta resposta; ele é guardado cifrado e assina cada entrega. Repetir a criação com a mesma Idempotency-Key devolve o endpoint sem o segredo. HTTPS é obrigatório em produção; endereços internos, privados, de loopback ou de metadata são recusados aqui e de novo em cada entrega, depois da resolução de DNS.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de createWebhookEndpoint
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de createWebhookEndpoint
Parâmetro
Onde
Tipo
Descrição
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Corpo da requisição
Campos do corpo de createWebhookEndpoint
Campo
Tipo
Descrição
url obrigatório
texto
URL de destino. HTTPS obrigatório em produção; `http://` só no ambiente de testes. Endereços internos, privados, de loopback e de metadata são recusados. 0–2048 caracteres
events obrigatório
lista de SubscribableEventType
Tipos do catálogo que este endpoint recebe; `["*"]` recebe todos. 1–50 itens
description
texto
Rótulo livre para identificar o endpoint no painel. 1–200 caracteres
Exemplo
curl -X POST "$ECLIPTA_PAY_API/v1/webhook-endpoints" \
-H "Authorization: Bearer $ECLIPTA_PAY_KEY" \
-H "X-Account-Id: $ECLIPTA_PAY_ACCOUNT" \
-H "Idempotency-Key: <uma chave por intenção>" \
-H "Content-Type: application/json" \
-d '{"url":"https://loja.exemplo.com.br/webhooks/eclipta","events":["payment.confirmed","order.payment_completed"],"description":"Produção da loja"}'
Resposta 201: Recurso criado.
Campos da resposta 201 de createWebhookEndpoint
Campo
Tipo
Descrição
id obrigatório
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
url obrigatório
texto
description obrigatório
texto ou nulo
events obrigatório
lista de texto
status obrigatório
"ACTIVE" | "DISABLED" | "AUTO_DISABLED"
ACTIVE recebe; DISABLED foi pausado pelo integrador; AUTO_DISABLED foi desativado após 3 dias seguidos de falhas.
apiVersion obrigatório
"2026-11-13"
secretVersion obrigatório
inteiro
Versão do segredo atual; é o valor do header Eclipta-Pay-Key-Id. 1 a 9007199254740991
previousSecretVersion obrigatório
inteiro ou nulo
previousSecretExpiresAt obrigatório
data e hora (ISO 8601) ou nulo
Até quando o segredo anterior ainda assina (rotação com sobreposição).
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· updateWebhookEndpoint
Altera URL, tipos ou rótulo. enabled: false pausa as entregas; enabled: true reativa o endpoint, inclusive depois da desativação automática, zera o contador de falhas e retoma as entregas pendentes. A ação fica na trilha de auditoria.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de updateWebhookEndpoint
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de updateWebhookEndpoint
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Corpo da requisição
Campos do corpo de updateWebhookEndpoint
Campo
Tipo
Descrição
url
texto
URL de destino. HTTPS obrigatório em produção; `http://` só no ambiente de testes. Endereços internos, privados, de loopback e de metadata são recusados. 0–2048 caracteres
events
lista de SubscribableEventType
Tipos do catálogo que este endpoint recebe; `["*"]` recebe todos. 1–50 itens
description
texto ou nulo
enabled
booleano
`false` pausa as entregas; `true` reativa (inclusive após desativação automática) e retoma as entregas pendentes.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· deleteWebhookEndpoint
Remove o endpoint. Entregas ainda pendentes são canceladas; o histórico de entregas continua consultável pelo evento.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de deleteWebhookEndpoint
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de deleteWebhookEndpoint
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· rotateWebhookSecret
Gera um novo segredo (exibido só nesta resposta). Durante a sobreposição, cada entrega leva duas assinaturas v1= no header Eclipta-Pay-Signature e as duas versões em Eclipta-Pay-Key-Id, para você trocar o segredo sem perder eventos.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de rotateWebhookSecret
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de rotateWebhookSecret
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Corpo da requisição
Campos do corpo de rotateWebhookSecret
Campo
Tipo
Descrição
overlapSeconds
inteiro
Por quanto tempo o segredo anterior continua assinando junto com o novo (padrão 86400 = 24 h; 0 encerra o anterior na hora). 0 a 604800
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· sendWebhookTest
Enfileira um evento webhook_endpoint.test só para este endpoint, com assinatura real. Útil para validar a verificação no seu servidor. Não representa mudança financeira.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de sendWebhookTest
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de sendWebhookTest
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Exemplo
curl -X POST "$ECLIPTA_PAY_API/v1/webhook-endpoints/{id}/test" \
-H "Authorization: Bearer $ECLIPTA_PAY_KEY" \
-H "X-Account-Id: $ECLIPTA_PAY_ACCOUNT" \
-H "Idempotency-Key: <uma chave por intenção>"
Resposta 202: Aceito: a intenção foi registrada; acompanhe o resultado (não é transação concluída).
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· getWebhookDelivery
Entrega com o registro de cada tentativa: status HTTP, duração, resultado e até 1 KB do início da resposta, com dados que parecem sensíveis mascarados.
Escopo da chave:webhooks:write.
Headers de getWebhookDelivery
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Parâmetros de getWebhookDelivery
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.
Chave de API (Authorization: Bearer ep_…)· escopo webhooks:write· replayWebhookDelivery
Reenvia a entrega com o mesmoeventId e nova assinatura (novo timestamp). O receptor deve deduplicar por eventId e aplicar o efeito uma única vez. O reenvio é auditado e não cria outra entrega para o mesmo evento × endpoint.
Escopo da chave:webhooks:write.
Idempotência: exige o header Idempotency-Key.
Headers de replayWebhookDelivery
Header
Obrigatório
Descrição
X-Account-Id
sim
Conta permitida pelos grants do principal.
Idempotency-Key
sim
Chave única por intenção (16 a 128 caracteres visíveis). Ao refazer a mesma chamada, repita a mesma chave: o resultado gravado é devolvido. Mesma chave com outro conteúdo responde 409 IDEMPOTENCY_CONFLICT.
Parâmetros de replayWebhookDelivery
Parâmetro
Onde
Tipo
Descrição
id obrigatório
caminho
Id (texto)
8–160 caracteres · formato ^[A-Za-z0-9_]+$
Eclipta-Pay-Version
header
"2026-11-13"
Versão de data do contrato. Opcional; a resposta sempre informa a versão usada. Valor desconhecido responde 400 UNSUPPORTED_API_VERSION.
Exemplo
curl -X POST "$ECLIPTA_PAY_API/v1/webhook-deliveries/{id}/replay" \
-H "Authorization: Bearer $ECLIPTA_PAY_KEY" \
-H "X-Account-Id: $ECLIPTA_PAY_ACCOUNT" \
-H "Idempotency-Key: <uma chave por intenção>"
Resposta 202: Aceito: a intenção foi registrada; acompanhe o resultado (não é transação concluída).
Requisição inválida: fieldErrors aponta cada campo.
401
INVALID_API_KEY
Chave de API ausente, inválida, expirada ou revogada.
403
SCOPE_MISSING
Escopo ausente, conta não permitida em X-Account-Id, IP fora da lista ou conta suspensa.
404
RESOURCE_NOT_FOUND
Recurso inexistente nesta conta (inclusive recurso de outra conta ou de outro tenant).
409
IDEMPOTENCY_CONFLICT
Conflito de idempotência (IDEMPOTENCY_CONFLICT), requisição em andamento com a mesma chave (REQUEST_IN_PROGRESS) ou estado do recurso.
422
CAPABILITY_UNAVAILABLE
Regra de negócio ou capacidade indisponível para a conta.
429
TOO_MANY_REQUESTS
Limite de requisições da chave atingido (rajada de 100 e 6.000 por minuto). Toda resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset; o 429 traz Retry-After em segundos. Aguarde e repita com a mesma Idempotency-Key.