SignXP Docs
Erros e limites
Códigos de resposta
| Código | Quando acontece | O que fazer |
|---|---|---|
202 |
Documento aceito e em processamento. | Guarde o id. |
200 |
Repetição de um envio idempotente. | Nada — é o mesmo documento. |
401 |
Chave ausente, inválida, revogada ou expirada. | Verifique a chave; emita outra se necessário. |
402 |
Licença fora de vigência ou quota esgotada. | Fale com o time SignXP. Não repita a chamada em loop. |
403 |
Cliente inativo. | Fale com o time SignXP. |
409 |
Idempotency-Key reutilizada com conteúdo diferente, external_id já usado, ou cancelamento de um documento que já foi encerrado. |
Confira o estado atual do documento antes de repetir. |
422 |
Payload inválido. | Corrija conforme o corpo do erro. |
429 |
Limite de requisições por minuto excedido. | Respeite o Retry-After e reduza a frequência. |
Erros de validação seguem o formato padrão do Laravel:
{
"message": "O campo title é obrigatório.",
"errors": {
"title": ["O campo title é obrigatório."]
}
}
Quota mensal
A quota é contada em documentos enviados e aceitos, por mês. O período reinicia no dia 1º.
Nas respostas de envio bem-sucedidas devolvemos:
X-Quota-Limit: 500
X-Quota-Remaining: 361
Quando a quota se esgota, novos envios recebem 402:
{
"message": "Quota mensal de 500 documentos esgotada.",
"quota": { "limit": 500, "used": 500, "period": "2026-07" }
}
Assinaturas em andamento não são afetadas: os links continuam válidos, os documentos são selados normalmente e a consulta de status segue respondendo. Apenas o envio de documentos novos é bloqueado.
Envios com chave sk_test_ não consomem quota.
Cancelar um documento não devolve a quota. O consumo é contado no envio, no período do envio, e não volta — devolver creditaria o mês errado e faria o ciclo enviar/cancelar disparar convites sem limite. O cancelamento continua permitido com a quota esgotada, porém: derrubar um link pendente é o que você mais precisa poder fazer nessa situação.
Acompanhe o consumo em tempo real em Consumo, no portal da sua conta.
Limite de requisições
Cada licença tem um teto de requisições por minuto (padrão: 60). Ao ultrapassá-lo, a API responde 429 com o cabeçalho Retry-After.
Boas práticas:
- prefira callbacks a polling;
- se precisar de polling, espace as consultas e use backoff exponencial nos erros;
- não paralelize envios em massa sem controle de concorrência.
Recursos da licença
Alguns recursos são contratados à parte. Se a sua licença não os inclui, o envio que tentar usá-los recebe 422:
| Recurso | O que fica indisponível |
|---|---|
| Coleta de evidências | evidence.document e evidence.selfie. |
| Rúbrica e ordem de assinatura | Campos INITIALS e signing_order. |
| Validação por IA | Conferência automática de documento e selfie durante a assinatura, e a conferência de tax_id contra o documento fotografado. Veja validação por IA. |
| Verificação pública | Página /validar, o validador público, os endpoints /api/verify/... e o download da cópia certificada. |
A seção Chaves de API mostra quais recursos estão liberados na sua licença, e GET /api/v1/license devolve os mesmos dados para o seu código (veja Autenticação).