Users

Cadastra vários usuários numa requisição

Cadastra até 25 usuários de uma vez, para popular a base no dia da virada sem disparar um PUT por funcionário.

Sucesso parcial é o comportamento pretendido. Uma foto ruim entre vinte e cinco não pode reprovar as outras vinte e quatro, então cada linha reporta o próprio resultado e a resposta é 200 mesmo quando há linhas reprovadas. Leia results, não o código HTTP — quem trata só o status considera aprovado um lote em que metade falhou.

userExternalId repetido no mesmo lote é 400: as linhas correriam sobre a mesma chave e a versão final ficaria imprevisível.

Limite real é o tamanho do corpo, não as 25 linhas. A invocação síncrona da Lambda corta em ~6 MB, e a imagem em base64 cresce um terço. Medido em HML: 25 fotos de 53 KB = 1,82 MB, aprovado em 5 s; 8 fotos de 536 KB = 5,72 MB passa, 9 = 6,44 MB devolve 413. Para usar as 25 vagas, mantenha cada foto abaixo de ~175 KB — 640×640 com qualidade 82 dá 53 KB e ainda detecta rosto com 99,99 de confiança.

Cadastrar não consome cota: nem de documento, nem de biometria. A cota é debitada quando a assinatura acontece, não quando o funcionário entra na base.

post/v1/users/enrollments

Request

  • Base URL: https://api.signdocs.com.br
  • URL: https://api.signdocs.com.br/v1/users/enrollments
  • Auth: HTTP bearer

Request body

dryRunboolean

Inspeciona sem gravar. Cada linha é avaliada e devolvida com métricas de qualidade, e nada é persistido — nenhuma imagem vai para o S3, nenhum registro para o DynamoDB, e o prazo de retenção de 90 dias não começa a correr.

Serve para conferir as fotos de referência antes de cadastrar. Uma foto escura, tremida ou de perfil é cadastrada sem reclamação e só falha na comparação facial meses depois, em produção, um funcionário por vez. Aqui ela volta como aviso enquanto o lote ainda está na tela de alguém.

Custa a mesma chamada de Rekognition por linha que cadastrar custaria — a economia não é financeira, é não guardar biometria que você já concluiu ser inservível.

Example request

{
  "enrollments": [
    {
      "userExternalId": "matricula-4471",
      "cpf": "12345678901",
      "source": "ORGANIZATION_PROVIDED"
    }
  ]
}

Response

Lote processado. Pode conter linhas reprovadas — confira failed e o status de cada item em results.

submittedinteger
succeededinteger
failedinteger
dryRunboolean

Presente e true quando a requisição foi uma inspeção.

usableinteger

dryRun: linhas boas, sem ressalva.

marginalinteger

dryRun: linhas que cadastrariam normalmente mas têm ressalva. É a categoria que interessa — são justamente as que viram reprovação de comparação lá na frente.

rejectedinteger

dryRun: linhas que nem seriam cadastradas.

Example response

{
  "submitted": 25,
  "succeeded": 24,
  "failed": 1,
  "results": [
    {
      "faceCoverage": 0.31
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.