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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
allowed_document_types | Uma lista não vazia de passport, drivers_license, identity_card | Todos os três | Quais 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_jurisdictions | Objeto 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-3 | Todas aceitas | Por 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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
face_match_threshold | Número 0-100 | 90 | Similaridade mínima entre o retrato do documento e a selfie para a verificação obrigatória face_match passar |
liveness_threshold | Número 0-100 | 80 | Confiança mínima de prova de vida para a verificação obrigatória liveness passar |
liveness_mode | selfie ou rekognition_streaming | selfie | selfie 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_threshold | Número 0-1 | 0.85 | Similaridade 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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
review_threshold | Número 0-100, e acima do seu limiar de face-match (veja abaixo). 0 desativa | 0 (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_declines | true ou false | false | Reté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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
allow_file_upload | true ou false | false | Quando 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_capture | true ou false | false | Quando 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_seconds | Inteiro 0-300 | 30 | No modo de captura automática, quanto tempo uma captura travada aguarda antes de o obturador manual reaparecer. 0 o exibe imediatamente |
max_capture_attempts | Inteiro 1-10 | 3 | Capturas com falha antes de a sessão ser recusada. Uma sessão pode sobrepor isso com seu próprio max_capture_attempts |
record_selfie_video | true ou false | true | Grava 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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
enable_ai_authenticity | true ou false | true | Revisã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_dldv | true ou false | false | Verificaçã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_description | true ou false | false | Descriçã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ção | Valores aceitos | Padrão | Efeito |
|---|---|---|---|
webhook_url (fora de config) | Uma URL. http é validado, mas use https — os resultados carregam dados pessoais | — | Para onde os resultados são enviados via POST. Obrigatório para delivery.mode: "webhook" e para notificações de resultado |
enable_result_notifications | true ou false | true | També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_language | Um código de idioma no formato xx ou xx-XX (ex.: en, pt, es, pt-BR) | en | O idioma do widget quando uma sessão não especifica um |
branding (fora de config) | Objeto — veja abaixo | Padrão Inyo | Seu logotipo, nome da empresa e cores do widget |
branding é um objeto próprio:
| Configuração | Valores aceitos | Efeito |
|---|---|---|
logo_url | Uma URL de imagem; use https para que o widget não carregue conteúdo misto | Exibido no chrome do widget |
company_name | String, até 80 caracteres | Exibido ao cliente |
color_primary | Hex de 6 dígitos com # (ex.: #0F766E) | Botões e destaques |
color_background | Hex de 6 dígitos com # | Fundo da página |
color_text | Hex 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ção | Valor | Por quê |
|---|---|---|
allowed_document_types | Todos os três | Não recuse clientes por causa do documento que eles têm em mãos |
allow_file_upload | false | Captura apenas por câmera é um controle antifraude relevante |
face_match_threshold / liveness_threshold | Deixe sem definir | Ajuste apenas quando tiver volume para medir |
enable_ai_authenticity | true (padrão) | Sua defesa mais forte contra recapturas |
review_verification_declines | false inicialmente | Ative quando puder absorver a latência de revisão e tiver medido sua taxa de declínios falsos |
enable_result_notifications | true (padrão) | Garante que decisões e reversões posteriores cheguem até você |
max_capture_attempts | 3 (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
- Revisão Manual — limiar de revisão e rejeições retidas em profundidade
- Verificações e Decisões — quais verificações cada configuração afeta
- Entrega do Widget — como identidade visual e idioma aparecem para o cliente
