> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# App KYC para Shopify: verificação de identidade e idade

> App Shopify da Didit: KYC, verificação de identidade e idade no checkout, sem código. Desde $0.33 por KYC completo, $10 grátis/mês, sem contrato.

Adicione verificação de identidade e controle de idade da Didit à sua loja Shopify em minutos.
O aplicativo Shopify **Didit Verify** instala um bloco de tema que você pode colocar em qualquer página (conta, checkout, landing pages personalizadas) e cria sessões de verificação no servidor. Sua chave de API fica dentro do aplicativo incorporado e nunca é exposta na vitrine da loja.
Os resultados das verificações aparecem diretamente na aba **Verifications** do aplicativo, no admin da Shopify, sem exigir um backend separado. Eles também ficam disponíveis por [webhooks](https://docs.didit.me/pt-br/integration/webhooks.md) e pela [API da Didit](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md) para lojistas que operam o próprio backend.
Você não precisa entrar no Business Console da Didit para acessar os dados de verificação coletados por meio da Shopify.

## Pré-requisitos

* Uma loja Shopify (qualquer plano)
* Uma conta no [Didit Console](https://business.didit.me) com pelo menos um fluxo de verificação (workflow)

***

### Etapa 1: instale o aplicativo

1. Abra o link de instalação:

   [[https://admin.shopify.com/oauth/install?client\_id=cafa0d15227fb59bd47470b23eae7469](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)

2. Selecione sua loja (se você tiver várias lojas)

3. Clique em **Install** para adicionar o aplicativo à sua loja

> [!NOTE]
>
> O aplicativo solicita um único escopo de permissão, `read_customers`. Esse escopo é usado para preencher automaticamente e conferir dados somente quando **Allow customer-approved prefill** está ativado e o cliente com sessão iniciada marca a caixa opcional de compartilhamento.

***

### Etapa 2: configure suas credenciais da Didit

Após a instalação, o Didit Verify abre dentro do admin da Shopify.
Use **Settings** para conectar o aplicativo à sua conta da Didit.

#### Obtenha sua chave de API

1. Entre no [Business Console da Didit](https://business.didit.me)
2. Acesse **API & Webhooks** na barra lateral esquerda
3. Copie sua chave de API

![Como obter a chave de API no Business Console da Didit](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

4. Cole a chave de API no campo **Didit API Key** nas preferências da Shopify

#### Obtenha o ID do seu fluxo

1. No Business Console da Didit, acesse **Workflows**
2. Selecione o fluxo que você quer usar (ou crie um novo)
3. Copie o **Workflow ID** (um UUID como `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![Como obter o ID do fluxo de trabalho no Business Console da Didit](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

4. Cole o ID do fluxo no campo **Didit Workflow ID**

#### Salve suas configurações

Escolha um período de retenção em **Data retention** antes de salvar.
O período se aplica às verificações existentes e futuras da loja, então escolha a duração de que sua loja precisa.
Clique em **Save Settings**.
Você deverá ver uma mensagem de sucesso:

![Configurações da Shopify salvas com sucesso](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-settings-saved-successfuly.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=93dcf3469f902876ae831075da75a628)

***

### Etapa 3: adicione o botão de verificação ao seu tema

1. No admin da Shopify, acesse **Online Store** → **Themes**
2. Clique em **Customize** no seu tema ativo
3. Navegue até a página onde você quer o botão de verificação (por exemplo, a página da conta ou uma página personalizada)
4. Clique em **Add section** ou **Add block**
5. Acesse a aba **Apps**
6. Selecione **Didit Verify**

O botão de verificação aparecerá no seu tema. Você pode arrastá-lo para reposicioná-lo dentro da seção.

***

## Acesso aos dados de verificação

A revisão de aplicativos da Shopify (requisito 5.1.5) exige que os dados coletados em um fluxo hospedado pela Shopify fiquem acessíveis ao lojista **no admin da Shopify ou no contexto do aplicativo**, e não apenas em um painel externo.
O aplicativo Didit Verify já atende a esse requisito sem configuração adicional: não é preciso backend, receptor de webhooks nem interface personalizada.

### A aba Verificações (padrão, sem código)

Abra **Aplicativos** → **Didit Verify** → **Verificações** no admin da Shopify para ver todas as sessões de verificação coletadas na sua loja virtual, com status, cliente, país e data e hora, restritas à sua loja.
Selecione uma sessão para ver o resumo da decisão, os campos de identidade, cada verificação realizada, os avisos e as evidências disponíveis.
Você pode alternar entre **Settings**, **Verificações**, **Privacy** e **Human review** sem sair do admin da Shopify.
Salvar as configurações mantém essas abas disponíveis.

> [!NOTE]
>
> A aba Verificações só carrega dados quando você abre o aplicativo pelo admin da Shopify. Se aparecer uma mensagem pedindo para reabrir a página, volte para **Aplicativos** → **Didit Verify** pela barra lateral do admin da Shopify.

O Didit Business Console (`business.didit.me`) é uma interface administrativa separada, voltada à configuração (chaves de API, fluxos de verificação (workflows), destinos de webhook).
Não oriente os lojistas a usá-lo para ver os dados de verificação coletados pela Shopify: isso não atende ao requisito de acesso a dados da Shopify.
O Console só é necessário para a configuração inicial e a obtenção das credenciais.

### Para lojistas com backend próprio (opcional)

Se você tem um backend próprio e quer manter uma cópia dos dados de verificação nele, por exemplo para acionar a lógica de processamento de pedidos, a Didit também entrega os resultados por webhook e por API sob demanda, além da aba Verificações descrita acima.

**1. Sessão de verificação criada**

O aplicativo da Shopify cria uma sessão no servidor usando sua chave de API da Didit. O cliente conclui o fluxo de verificação no bloco do tema (modal ou incorporado).

**2. Resultado entregue via webhook**

Quando a sessão atinge um status final, a Didit envia um webhook `status.updated` assinado para o destino que você configurou no Didit Business Console em **API e Webhooks**.
O corpo do webhook inclui o [objeto de decisão](https://docs.didit.me/pt-br/integration/webhooks.md#formato-do-payload) completo, com o mesmo esquema retornado por `GET /v3/session/{id}/decision/`, para os status `Approved`, `Declined`, `In Review` e `Abandoned`.
Os demais status finais (por exemplo, `Expired`, `Kyc Expired`) entregam a mudança de status sem o payload da decisão; chame a API para consultar o estado da sessão.

**3. Consulta sob demanda (opcional)**

Seu backend também pode chamar [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/pt-br/sessions-api/retrieve-session) a qualquer momento para obter o payload completo da decisão (campos de identidade, prova de vida, AML, correspondência facial etc.).

#### Configurando webhooks para a Shopify

1. No [Didit Business Console](https://business.didit.me), acesse **API e Webhooks** → **Webhooks**
2. Crie um destino de webhook apontando para o endpoint do seu backend (HTTPS, acessível publicamente)
3. Inscreva-se pelo menos nos eventos `status.updated` e `data.updated`
4. Guarde o `secret_shared_key` retornado para verificar as assinaturas HMAC-SHA256 dos webhooks recebidos

Consulte o [guia de webhooks](https://docs.didit.me/pt-br/integration/webhooks.md) para ver o contrato completo, exemplos de verificação de assinatura em Node.js/Python/PHP e o comportamento das novas tentativas.

#### Obtendo a decisão de uma sessão via API

```bash theme={null}
curl https://verification.didit.me/v3/session/<SESSION_ID>/decision/ \
  -H "x-api-key: <YOUR_API_KEY>"
```

A resposta inclui `session_kind`, `status` e todos os arrays de recursos (`id_verifications`, `liveness_checks`, `face_matches`, `aml_screenings` etc.). Consulte [Retrieve Session](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md) para ver o esquema completo da resposta e a referência dos campos.

***

## Opções de configuração

### Configurações da página de preferências

Estas configurações são definidas nas preferências do aplicativo (acessíveis em **Apps** → **Didit Verify** no admin da Shopify):

| Configuração | Descrição |
| - | - |
| **API Key** | Sua chave de API da Didit (obrigatória) |
| **Workflow ID** | O fluxo de verificação a ser usado (obrigatório) |
| **Vendor Data** | Como as sessões são vinculadas aos usuários no seu Didit Console: **Customer ID** (enviado como `shopify-<customer-id>`), **Customer Email**, **Shop + Customer ID** (enviado como `<shop-domain>-<customer-id>`) ou **None**. Aplicado apenas quando o cliente está conectado à conta. |
| **Callback URL** | URL opcional para onde os usuários são redirecionados após a verificação. A Didit adiciona `verificationSessionId` e `status` como parâmetros de consulta. |
| **Callback Method** | Qual dispositivo processa o redirecionamento: **Default (initiator)**, **Initiator**, **Completer** ou **Both** |
| **Language** | Idioma da interface de verificação (detecção automática ou um idioma específico) |
| **Require Customer Login** | Se ativado, apenas clientes conectados à conta podem fazer a verificação |
| **Allow customer-approved prefill** | Ofereça uma caixa de seleção opcional para compartilhar o nome, o e-mail, o telefone e o endereço do cliente conectado para preenchimento automático e verificações de identidade. Os dados são enviados apenas quando o cliente marca essa opção. |
| **Automatically delete after (days)** | Escolha por quanto tempo a loja precisa manter os registros de verificação. O período selecionado se aplica aos registros existentes e futuros desta loja. A exclusão é irreversível. |

### Escolhas de privacidade do cliente

O bloco da loja virtual oferece uma caixa de seleção opcional para compartilhar os dados da conta para preenchimento automático e verificações de identidade.
Se a caixa ficar desmarcada, o próprio cliente informa os dados.

Em **Verification choices**, um cliente conectado à conta pode solicitar revisão humana ou retirar o consentimento e solicitar a exclusão dos seus dados de verificação.
A revisão humana pausa a verificação automatizada e adiciona uma solicitação em **Aplicativos → Didit Verify → Human review**.
Entre em contato com o cliente e combine uma alternativa adequada antes de concluir essa solicitação.
Concluir uma solicitação de revisão humana não aprova uma verificação nem uma compra.

A retirada do consentimento interrompe imediatamente o link de verificação existente e impede novas verificações enquanto a exclusão é processada.
A loja virtual confirma o recebimento da solicitação; ela não afirma que a exclusão já foi concluída.

## Atender solicitações de privacidade

Abra **Aplicativos → Didit Verify → Privacidade** para acompanhar as solicitações de exportação e exclusão de dados de clientes recebidas do Shopify ou da loja virtual.

* **Exportação de dados do cliente:** baixe o ZIP preparado, entregue-o pelo seu processo seguro de atendimento ao cliente e, em seguida, selecione **I have delivered this export**.
* **Exclusão de dados do cliente:** a solicitação permanece em andamento até que os registros de verificação associados à loja, os arquivos enviados e as solicitações de revisão humana do cliente tenham sido excluídos.
* **Requer atenção:** siga as instruções da solicitação para resolver a falta de um ID de cliente ou entre em contato com o suporte da Didit quando um perfil incluir dados de outra loja ou finalidade.

As exportações contêm os registros de verificação, os arquivos enviados e as solicitações de revisão humana associados à loja e ao cliente solicitantes.
Os downloads temporários expiram após sete dias; use **Retry after resolving** para preparar um novo download, se necessário.
Uma exportação baixada deve ser tratada de acordo com os seus próprios procedimentos de atendimento ao cliente e de proteção de dados.

Defina o período de retenção em **Configurações → Retenção de dados**.
Os dados de verificação mais antigos são excluídos automaticamente; as verificações mais recentes continuam disponíveis.
A retenção existente no nível da aplicação continua se aplicando quando não houver um período específico selecionado para a loja.
Consulte **Privacidade** para ver qualquer solicitação de retenção que exija atenção.

Quando uma solicitação de exclusão aparece como **Excluído**, a exclusão é irreversível e as mídias excluídas deixam de estar disponíveis.
Os créditos já consumidos e as entradas da lista de bloqueio gerenciadas separadamente não são afetados.

## Configurações do bloco do tema

Estas configurações são definidas no editor de temas do Shopify quando você seleciona o bloco Didit Verify:

#### Conexão

| Configuração | Descrição |
| - | - |
| **Mode** | **App workflow** (recomendado) usa o fluxo de verificação (workflow) salvo nas configurações do aplicativo. **UniLink workflow** usa um link público de workflow da conta Didit conectada. Os dois modos criam sessões associadas à loja, com os resultados disponíveis no aplicativo. |
| **UniLink URL** | Usado somente no modo UniLink. Use um link ativo da conta Didit conectada nas configurações do aplicativo. Os clientes precisam entrar na conta na loja. |

#### Exibição

| Configuração | Descrição |
| - | - |
| **Display Mode** | **Modal**: abre a verificação em uma janela sobreposta (pop-up). **Embedded**: mostra a verificação incorporada na página, abaixo do botão. |
| **Show close button** | Mostra ou oculta o botão X para fechar o modal de verificação |
| **Exit confirmation dialog** | Pede que os usuários confirmem antes de fechar a verificação |
| **Auto-close on completion** | Fecha o modal automaticamente quando a verificação é concluída |
| **Debug logging** | Ativa logs no console do navegador para solução de problemas |

#### Aparência do botão

| Configuração | Descrição |
| - | - |
| **Button text** | Texto exibido no botão (padrão: "Verify your Identity") |
| **Success text** | Texto exibido após uma verificação bem-sucedida (padrão: "Identity Verified ✓") |
| **Background color** | Cor de fundo do botão |
| **Text color** | Cor do texto do botão |
| **Border radius** | Arredondamento dos cantos do botão (0–50px) |
| **Vertical padding** | Preenchimento superior/inferior (0–40px) |
| **Horizontal padding** | Preenchimento esquerdo/direito (0–60px) |
| **Font size** | Tamanho do texto do botão (10–32px) |

***

## Configuração recomendada

Para a maioria das lojas, recomendamos:

* **Mode:** App workflow (usa o workflow salvo nas configurações do aplicativo)
* **Display Mode:** Modal (funciona em qualquer lugar, sem problemas de layout)
* **Require Customer Login:** ativado (vincula a verificação às contas dos clientes)
* **Allow customer-approved prefill:** ativado (os clientes escolhem se compartilham os dados da loja)

***

## Testes

1. Visualize seu tema ou acesse a sua loja
2. Navegue até a página com o botão Didit Verify
3. Clique em **Verify your Identity**
4. Conclua o fluxo de verificação
5. Verifique no seu backend a entrega do webhook ou chame [GET /v3/session/{id}/decision/](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md) para obter o resultado da verificação

> [!NOTE]
>
> O sandbox é gratuito (cada aplicação de sandbox pode criar 500 sessões de teste a cada 24 horas), então você pode testar o fluxo completo sem custo. No ambiente de produção, o plano Free inclui \$10 de crédito por mês.

***

## Solução de problemas

### O botão não faz nada ao ser clicado

* Confirme que você salvou a sua chave de API e o Workflow ID nas preferências
* Verifique se o Workflow ID pertence à mesma aplicação que a sua chave de API
* Ative **Debug logging** nas configurações do bloco e verifique se há erros no console do navegador

### Erro "Didit credentials not configured"

* O aplicativo não tem uma chave de API ou um Workflow ID salvos para esta loja. Abra **Apps** → **Didit Verify**, preencha os dois campos e clique em **Save Settings**

### Mensagem informando que é preciso entrar na conta para verificar a identidade

* **Require Customer Login** está ativado (o padrão). O cliente precisa primeiro entrar na conta da loja; ou desative a configuração nas preferências do aplicativo se você precisar de verificação para visitantes

### As configurações não são salvas

* "API key validation failed": copie novamente a chave de API do [Didit Business Console](https://business.didit.me) e verifique se não há espaços extras
* "This workflow does not belong to your application": o Workflow ID pertence a uma aplicação Didit diferente da sua chave de API; copie os dois da mesma aplicação

## Suporte (24/7)

Nossa equipe está disponível para ajudar você a começar.

> [card] [E-mail](mailto:hello@didit.me)
>
> Envie um e-mail para [hello@didit.me](mailto:hello@didit.me).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.