Pular para o conteúdo principal
Didit levanta US$ 7,5 milhões para construir a infraestrutura para identidade e fraude
Didit
Voltar para o blog
Blog · 7 de março de 2026

Verificações de Identidade Extensíveis em Go com Primitivos Didit (PT-BR)

Descubra como construir uma arquitetura de plugin flexível em Go para verificações de identidade personalizadas, utilizando os primitivos de identidade modulares da Didit.

Por DiditAtualizado
extensible-identity-checks-in-go-with-didits-primitives.png

Design Modular para AgilidadeConstruir uma arquitetura de plugin extensível em Go permite que as empresas se adaptem rapidamente às regulamentações de conformidade em evolução e a novos vetores de fraude, sem reformar todo o seu sistema de verificação de identidade.

Aproveite os Pontos Fortes do GoA tipagem forte, o desempenho e os recursos de concorrência do Go o tornam uma linguagem ideal para desenvolver serviços de verificação de identidade robustos e escaláveis, capazes de lidar com alto rendimento.

Composabilidade com Primitivos DiditA integração dos primitivos de identidade nativos de IA da Didit, como Verificação de ID, Liveness Passiva e Ativa, e Triagem AML, fornece componentes poderosos e pré-construídos que podem ser orquestrados dentro de plugins Go personalizados.

Abordagem Developer-First da DiditAs APIs limpas da Didit, o sandbox instantâneo e a arquitetura modular são perfeitamente adequados para desenvolvedores que constroem sistemas extensíveis, oferecendo KYC Core Gratuito e sem taxas de configuração para acelerar o desenvolvimento.

A Necessidade de Verificação de Identidade Extensível

No cenário digital de hoje, em rápida mudança, a verificação de identidade (IDV) não é mais um processo estático. As regulamentações evoluem, novas técnicas de fraude surgem e as necessidades dos negócios mudam. Um sistema IDV rígido e monolítico rapidamente se torna um gargalo, dificultando a inovação e aumentando os riscos de conformidade. É por isso que uma arquitetura de plugin extensível não é apenas um luxo, mas uma necessidade, especialmente para desenvolvedores que trabalham com linguagens de alto desempenho como Go.

Uma arquitetura extensível permite que as empresas adicionem, removam ou modifiquem verificações de identidade dinamicamente, sem reimplantar todo o serviço. Essa agilidade é crucial para se adaptar aos requisitos KYC (Know Your Customer) específicos de cada região, integrar mecanismos de detecção de fraude de ponta ou experimentar novos fluxos de integração de usuários. Por exemplo, uma empresa pode inicialmente exigir Verificação de ID básica e Detecção de Liveness. Mais tarde, ela pode precisar adicionar Estimativa de Idade para produtos específicos ou incorporar Triagem AML para transações financeiras. Um sistema baseado em plugins lida com essas adições de forma contínua.

Projetando uma Arquitetura de Plugin em Go

O design orientado a interfaces e a tipagem forte do Go o tornam uma excelente escolha para construir sistemas de plugin robustos. A ideia central é definir uma interface comum que todos os "plugins" de verificação de identidade devem implementar. Esta interface atua como um contrato, garantindo que qualquer nova verificação possa ser perfeitamente integrada ao fluxo de trabalho existente.

Definindo a Interface de Verificação de Identidade

Vamos considerar uma interface simples para uma verificação de identidade:

package main

type IdentityCheckResult struct {
    Passed  bool
    Details string
}

type IdentityChecker interface {
    Name() string
    Execute(data map[string]interface{}) (IdentityCheckResult, error)
}

Aqui, IdentityChecker define dois métodos: Name() para identificar o plugin e Execute() para realizar a verificação real, recebendo dados de entrada genéricos e retornando um resultado. Essa abstração permite verificações diversas, desde a verificação de documentos até a análise biométrica.

Implementando Verificações Personalizadas com os Primitivos da Didit

Agora, vejamos como podemos implementar verificações de identidade específicas usando os poderosos primitivos da Didit dentro desta estrutura de plugin. A arquitetura modular da Didit, APIs limpas e recursos nativos de IA tornam a integração desses serviços avançados simples.

Exemplo: Plugin de Verificação de ID Didit

Para verificação de identidade baseada em documentos, podemos criar um plugin que aproveita o produto de Verificação de ID da Didit, que inclui OCR, MRZ e digitalização de código de barras em mais de 220 países. Este plugin enviaria imagens e dados de documentos para a API da Didit e processaria a resposta.

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

type DiditIDVCheck struct{}

func (d *DiditIDVCheck) Name() string {
    return "DiditIDVerification"
}

func (d *DiditIDVCheck) Execute(data map[string]interface{}) (IdentityCheckResult, error) {
    documentImage, ok := data["documentImage"].(string)
    if !ok {
        return IdentityCheckResult{Passed: false, Details: "Missing document image"}, nil
    }

    // Em uma aplicação real, você enviaria a imagem para a API de Verificação de ID da Didit.
    // Para este exemplo, simularemos uma chamada.
    // Documentação: https://docs.didit.me/core-technology/id-verification

    // Simula a chamada da API para a Verificação de ID da Didit
    // Substitua pela chamada real da API e tratamento de erros
    fmt.Printf("Chamando a Verificação de ID da Didit para a imagem: %s...\n", documentImage[:20]) // Truncar para exibição
    
    // Assume uma resposta bem-sucedida para demonstração
    if documentImage != "invalid_id_image" {
        return IdentityCheckResult{Passed: true, Details: "Documento de ID verificado pela Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "A verificação do documento de ID falhou pela Didit." + " Imagem inválida fornecida."},
            fmt.Errorf("A Verificação de ID da Didit falhou")
    }
}

Exemplo: Plugin de Verificação de Liveness Didit

Para combater deepfakes e ataques de apresentação, uma verificação de liveness é essencial. A Didit oferece detecção de Liveness Passiva e Ativa. Um plugin poderia integrar isso, processando um vídeo curto ou uma série de imagens.

package main

type DiditLivenessCheck struct{}

func (d *DiditLivenessCheck) Name() string {
    return "DiditLivenessDetection"
}

func (d *DiditLivenessCheck) Execute(data map[string]interface{}) (IdentityCheckResult, error) {
    livenessVideo, ok := data["livenessVideo"].(string)
    if !ok {
        return IdentityCheckResult{Passed: false, Details: "Missing liveness video"}, nil
    }

    // Simula a chamada da API para a Detecção de Liveness da Didit
    // Substitua pela chamada real da API e tratamento de erros
    fmt.Printf("Chamando a Detecção de Liveness da Didit para o vídeo: %s...\n", livenessVideo[:20])

    if livenessVideo != "deepfake_video" {
        return IdentityCheckResult{Passed: true, Details: "Liveness detectada pela Didit."}, nil
    } else {
        return IdentityCheckResult{Passed: false, Details: "A detecção de liveness falhou pela Didit." + " Deepfake detectado."},
            fmt.Errorf("A Detecção de Liveness da Didit falhou")
    }
}

Orquestrando Fluxos de Trabalho com Plugins

Depois de ter seus plugins, você precisa de um mecanismo para orquestrá-los em um fluxo de trabalho coerente. Os Fluxos de Trabalho Orquestrados da Didit fornecem um construtor visual sem código para isso, mas se você estiver construindo um serviço Go personalizado, pode gerenciar essa lógica programaticamente.

package main

import "fmt"

// Um orquestrador simples
type Workflow struct {
    Checks []IdentityChecker
}

func (w *Workflow) AddCheck(checker IdentityChecker) {
    w.Checks = append(w.Checks, checker)
}

func (w *Workflow) Run(userData map[string]interface{}) ([]IdentityCheckResult, error) {
    var results []IdentityCheckResult
    for _, check := range w.Checks {
        fmt.Printf("\nExecutando verificação %s...\n", check.Name())
        res, err := check.Execute(userData)
        results = append(results, res)
        if err != nil || !res.Passed {
            fmt.Printf("Verificação %s falhou: %s\n", check.Name(), res.Details)
            return results, fmt.Errorf("o fluxo de trabalho falhou em %s: %w", check.Name(), err)
        }
        fmt.Printf("Verificação %s aprovada: %s\n", check.Name(), res.Details)
    }
    return results, nil
}

func main() {
    workflow := &Workflow{}
    workflow.AddCheck(&DiditIDVCheck{})
    workflow.AddCheck(&DiditLivenessCheck{})

    // Exemplo de dados do usuário
    userData := map[string]interface{}{
        "documentImage": "valid_passport_image_base64",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "Jane Doe",
    }

    fmt.Println("--- Executando fluxo de trabalho bem-sucedido ---")
    results, err := workflow.Run(userData)
    if err != nil {
        fmt.Printf("Fluxo de trabalho concluído com erros: %v\n", err)
    } else {
        fmt.Println("Fluxo de trabalho concluído com sucesso!")
    }
    for _, r := range results {
        fmt.Printf("- %s: Aprovado = %t, Detalhes = %s\n", r.Name, r.Passed, r.Details)
    }

    // Exemplo de um fluxo de trabalho com falha
    fmt.Println("\n--- Executando fluxo de trabalho com falha (ID inválido) ---")
    failingUserData := map[string]interface{}{
        "documentImage": "invalid_id_image",
        "livenessVideo": "valid_liveness_video_base64",
        "name":          "John Smith",
    }
    failingResults, err := workflow.Run(failingUserData)
    if err != nil {
        fmt.Printf("Fluxo de trabalho concluído com erros: %v\n", err)
    } else {
        fmt.Println("Fluxo de trabalho concluído com sucesso!")
    }
    for _, r := range failingResults {
        fmt.Printf("- %s: Aprovado = %t, Detalhes = %s\n", r.Name, r.Passed, r.Details)
    }
}

Este orquestrador simples executa as verificações sequencialmente. Em um cenário do mundo real, você pode adicionar lógica condicional, execução paralela ou novas tentativas, espelhando os recursos do construtor de fluxo de trabalho sem código da Didit.

Considerações Avançadas para Arquiteturas de Plugin Go

Ao construir uma arquitetura de plugin pronta para produção em Go, considere estes aspectos:

  • Tratamento de Erros: Implemente tratamento de erros e registro robustos para cada plugin.
  • Configuração: Permita que os plugins sejam configurados dinamicamente (por exemplo, chaves de API, limites).
  • Carregamento de Plugins: Para verdadeira extensibilidade sem recompilação, explore o pacote plugin do Go (embora tenha limitações de plataforma) ou processos externos/gRPC para comunicação entre processos.
  • Segurança: Garanta que os plugins sejam isolados (sandboxed) ou devidamente verificados para evitar a execução de código malicioso.
  • Fluxo de Dados: Defina contratos de dados claros para entradas e saídas de cada plugin.
  • White-Labeling: Se você estiver construindo um fluxo voltado para o usuário, lembre-se de que a Didit oferece amplas opções de white-labeling, permitindo personalizar cores, fontes, logotipos e até mesmo usar um domínio personalizado, garantindo uma experiência de marca perfeita. Isso é crucial para manter a confiança do usuário e reduzir as taxas de abandono durante o processo de verificação.

Como a Didit Ajuda

A Didit foi projetada desde o início para exatamente esse tipo de integração modular e extensível. Como uma plataforma de identidade nativa de IA e desenvolvedor-first, a Didit fornece os blocos de construção — ou "primitivos" — que podem ser perfeitamente integrados à sua arquitetura de plugin Go. Nossa arquitetura modular significa que você pode escolher os componentes de verificação exatos de que precisa, seja Verificação de ID, Liveness Passiva e Ativa, Correspondência Facial 1:1, Triagem e Monitoramento AML, Comprovante de Endereço ou Estimativa de Idade. Cada um deles pode ser um plugin distinto em seu sistema.

A Didit se destaca por oferecer KYC Core Gratuito, permitindo que você comece com verificações de identidade essenciais sem custos iniciais. Nossas APIs limpas e documentação abrangente, juntamente com um sandbox instantâneo, tornam a integração intuitiva e rápida. Ao aproveitar a Didit, você se livra da complexidade de manter modelos de IA sofisticados, bancos de dados de documentos globais e atualizações de conformidade, permitindo que seu serviço Go se concentre na orquestração e na lógica de negócios. O modelo de pagamento por verificação bem-sucedida da Didit e a ausência de taxas de configuração se alinham ainda mais com uma arquitetura flexível e escalável, garantindo que você pague apenas pelo que usa.

Pronto para Começar?

Pronto para ver a Didit em ação? Obtenha uma demonstração gratuita hoje.

Comece a verificar identidades gratuitamente com o nível gratuito da Didit.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitoramento de Transações e Análise de Carteiras. Integre em 5 minutos.

Peça para uma IA resumir esta página
Verificações de Identidade Extensíveis em Go com Didit.