Inyo

Configuração do Tenant

O comportamento da verificação é configurado por tenant pela Inyo. Esta página é a referência do que você pode solicitar — no onboarding, ou como alteração posterior. Não há API de configuração self-service; envie ao seu contato na Inyo as configurações desejadas.

Atualizações de configuração são mescladas ao que já está armazenado, portanto pedir a alteração de uma configuração deixa as demais intactas. Retornar uma configuração ao padrão da plataforma é uma solicitação explícita, não uma omissão.

Cada configuração é nomeada pela chave exata que definimos no seu tenant. Citar a chave em uma solicitação elimina qualquer ambiguidade sobre qual comportamento você quer dizer — várias têm nomes parecidos, e review_threshold e review_verification_declines, em particular, fazem coisas muito diferentes.

A maioria das chaves fica dentro do objeto config do seu tenant, mas webhook_url e branding ficam fora dele, como irmãos de config — marcados abaixo e visíveis no payload de exemplo.


Documentos e Jurisdições

ConfiguraçãoValores aceitosPadrãoEfeito
allowed_document_typesUma lista não vazia de passport, drivers_license, identity_cardTodos os trêsQuais tipos de documento um cliente pode apresentar. O widget oferece apenas estes, e solicitar uma sessão com um prefill.document_type excluído retorna 422
accepted_jurisdictionsObjeto indexado por tipo de documento; cada valor é uma lista de códigos de continente (AF, AN, AS, EU, NA, OC, SA) e/ou códigos ISO 3166-1 alpha-3Todas aceitasPor tipo de documento, quais países emissores você aceita. Um documento de fora deles falha na verificação obrigatória jurisdiction_accepted

Por exemplo:

{
  "passport": ["SA", "USA"],
  "drivers_license": ["NA"]
}

Esse exemplo aceita passaportes de qualquer país sul-americano mais os EUA, e carteiras de motorista da América do Norte. Omitir um tipo de documento aceita todas as jurisdições para ele.

Restrinja com critério. Limitar tipos de documento simplifica o tratamento de dados a jusante, mas cada restrição é um cliente que não consegue concluir o onboarding com o documento que possui.


Limiares de Decisão

ConfiguraçãoValores aceitosPadrãoEfeito
face_match_thresholdNúmero 0-10090Similaridade mínima entre o retrato do documento e a selfie para a verificação obrigatória face_match passar
liveness_thresholdNúmero 0-10080Confiança mínima de prova de vida para a verificação obrigatória liveness passar
liveness_modeselfie ou rekognition_streamingselfieselfie deriva a prova de vida dos sinais de qualidade e pose de uma única selfie; o modo streaming executa um desafio ativo de prova de vida
name_match_thresholdNúmero 0-10.85Similaridade a partir da qual um nome pré-preenchido é aceito como correspondente ao documento. Um sobrenome composto que contenha o seu pontua 0.95

Aumentar o limiar de face-match reduz falsas aceitações e aumenta falsas rejeições — clientes reais sendo recusados. Ambos os limiares são informados no detail da verificação relevante em cada resultado, para que sua integração possa ler o valor efetivo em vez de codificá-lo fixamente.


Roteamento de Revisão

ConfiguraçãoValores aceitosPadrãoEfeito
review_thresholdNúmero 0-100, e acima do seu limiar de face-match (veja abaixo). 0 desativa0 (desativado)Encaminha uma aprovação limítrofe para revisão. Uma aprovação automática cuja confiança fique abaixo desse valor torna-se in_review
review_verification_declinestrue ou falsefalseRetém uma rejeição para um humano. Uma verificação rejeitada pelas checagens é encaminhada para in_review em vez de declined, para que um analista a confirme

Ambos são explicados em detalhe — incluindo quais verificações contam para a confiança, e por que um limiar igual ou abaixo do seu limiar de face-match nunca pode disparar — em Revisão Manual. Um limiar nessa faixa inerte é rejeitado no momento da configuração em vez de aceito silenciosamente.

Ativar rejeições retidas gera trabalho de analista sem limite de fila. Ative quando um declínio falso for mais custoso que uma decisão atrasada.


Comportamento de Captura

ConfiguraçãoValores aceitosPadrãoEfeito
allow_file_uploadtrue ou falsefalseQuando ativado, o widget oferece um seletor de arquivos ao lado da câmera. Desativado significa que o cliente não pode enviar uma foto armazenada de um documento — um controle antifraude relevante
auto_capturetrue ou falsefalseQuando ativado, o widget fotografa automaticamente assim que o documento está bem enquadrado e estável, em vez de exigir um toque no obturador
auto_capture_fallback_secondsInteiro 0-30030No modo de captura automática, quanto tempo uma captura travada aguarda antes de o obturador manual reaparecer. 0 o exibe imediatamente
max_capture_attemptsInteiro 1-103Capturas com falha antes de a sessão ser recusada. Uma sessão pode sobrepor isso com seu próprio max_capture_attempts
record_selfie_videotrue ou falsetrueGrava um clipe curto enquanto a selfie é tirada, retido como prova evidenciária

Opções de Enriquecimento

Cada uma delas adiciona sinal a um custo por verificação. Duas ficam desativadas por padrão justamente por isso, e uma acarreta uma obrigação de conformidade.

ConfiguraçãoValores aceitosPadrãoEfeito
enable_ai_authenticitytrue ou falsetrueRevisão de autenticidade de documento por IA. Adiciona a verificação obrigatória ai_authenticity — a defesa autoritativa contra recapturas de tela com corte fechado, cópias impressas, fotocópias e falsificações
enable_dldvtrue ou falsefalseVerificação de registro no DMV. Adiciona a verificação branda dmv_record_match, validando os dados extraídos de licenças dos EUA contra o DMV emissor. Ignorada automaticamente para estados não participantes e provedores indisponíveis
enable_selfie_descriptiontrue ou falsefalseDescrição da aparência na selfie. Adiciona selfie_description ao resultado — atributos observáveis estruturados para comparação em reverificações futuras

Descrições de aparência são dados pessoais sensíveis. Elas carregam exposição a GDPR e a leis de privacidade biométrica (por exemplo, BIPA), e a selfie é processada por um serviço de visão externo. Confirme que você tem base legal, um acordo de processamento de dados em vigor e uma justificativa de retenção documentada antes de nos pedir para ativar isso.


Entrega e Apresentação

ConfiguraçãoValores aceitosPadrãoEfeito
webhook_url (fora de config)Uma URL. http é validado, mas use https — os resultados carregam dados pessoaisPara onde os resultados são enviados via POST. Obrigatório para delivery.mode: "webhook" e para notificações de resultado
enable_result_notificationstrue ou falsetrueTambém entrega resultados de sessões em modo redirect e verificações server-to-server, e toda alteração posterior de qualquer desfecho. Requer uma URL de webhook — ativá-lo sem uma é rejeitado
default_languageUm código de idioma no formato xx ou xx-XX (ex.: en, pt, es, pt-BR)enO idioma do widget quando uma sessão não especifica um
branding (fora de config)Objeto — veja abaixoPadrão InyoSeu logotipo, nome da empresa e cores do widget

branding é um objeto próprio:

ConfiguraçãoValores aceitosEfeito
logo_urlUma URL de imagem; use https para que o widget não carregue conteúdo mistoExibido no chrome do widget
company_nameString, até 80 caracteresExibido ao cliente
color_primaryHex de 6 dígitos com # (ex.: #0F766E)Botões e destaques
color_backgroundHex de 6 dígitos com #Fundo da página
color_textHex de 6 dígitos com #Texto do corpo

As cores devem ser hex completo de 6 dígitos — a forma abreviada de 3 dígitos (#0F7) e a de 8 dígitos com alfa (#0F766E80) são rejeitadas.

O rodapé "Powered by Inyo 360" sempre é renderizado e intencionalmente não é configurável.

Os textos do widget — rótulos, botões, telas de resultado, feedback de nova tentativa — são servidos a partir do repositório de textos da Inyo em vez de embutidos no frontend, então alterações de redação por tenant e idiomas adicionais não exigem uma release do seu lado. Inglês, português e espanhol são fornecidos completos; qualquer outro código xx ou xx-XX é aceito, com strings não traduzidas recorrendo individualmente ao inglês.


Uma Configuração Inicial

Se você está em onboarding agora e não sabe o que pedir, esta é uma linha de base sensata para onboarding de consumidores:

ConfiguraçãoValorPor quê
allowed_document_typesTodos os trêsNão recuse clientes por causa do documento que eles têm em mãos
allow_file_uploadfalseCaptura apenas por câmera é um controle antifraude relevante
face_match_threshold / liveness_thresholdDeixe sem definirAjuste apenas quando tiver volume para medir
enable_ai_authenticitytrue (padrão)Sua defesa mais forte contra recapturas
review_verification_declinesfalse inicialmenteAtive quando puder absorver a latência de revisão e tiver medido sua taxa de declínios falsos
enable_result_notificationstrue (padrão)Garante que decisões e reversões posteriores cheguem até você
max_capture_attempts3 (padrão)Tolerante sem ser um loop de tentativas gratuito para um atacante

Depois, revisite limiares e roteamento de revisão com dados reais, e não no momento da integração.


Enviando-nos uma Configuração

Citar as chaves diretamente é a forma menos ambígua de fazer uma solicitação. Este é o formato que aplicamos ao seu tenant, e ele mostra o aninhamento: webhook_url e branding são irmãos de config, não membros dele.

{
  "webhook_url": "https://acme.example.com/kyc-result",
  "branding": {
    "company_name": "Acme Bank",
    "logo_url": "https://acme.example.com/logo.png",
    "color_primary": "#0F766E",
    "color_background": "#FFFFFF",
    "color_text": "#111827"
  },
  "config": {
    "default_language": "pt-BR",
    "allowed_document_types": ["passport", "drivers_license"],
    "accepted_jurisdictions": {
      "passport": ["SA", "USA"],
      "drivers_license": ["NA"]
    },
    "allow_file_upload": false,
    "max_capture_attempts": 3,
    "review_verification_declines": true
  }
}

Inclua apenas as chaves que quer definir — tudo o que for omitido mantém o valor atual, já que as atualizações são mescladas, não substituídas.


Próximos Passos