> ## 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.

# API Obter Workflow: consultar fluxo de KYC

> Obtenha a configuração completa de um workflow de KYC ou KYB da Didit, com ativação de recursos, limiares e documentos aceitos. Preço por uso.



Prompt da API para obter fluxo
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`Fetch the full configuration of a single Didit workflow through the Management API.

Endpoint:
GET https://verification.didit.me/v3/workflows/{settings_uuid}/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Retrieve every editable field on the workflow (feature toggles, score thresholds, documents_allowed per country, KYB role config, retry policy, callback config, etc.).
\- Useful for back-office "view workflow" screens, debugging why a verification declined/routed to review, or verifying a freshly published version.

Path parameter:
\- settings_uuid — the per-version workflow UUID returned by GET /v3/workflows/ or POST /v3/workflows/. Each workflow version has its own settings_uuid; workflow_id is the stable group id shared by every version.

Example call:
curl -X GET "https://verification.didit.me/v3/workflows/{settings_uuid}/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- workflow_id — stable group id; compare across versions to walk version history.
\- features and the underlying workflow_graph — describes which checks run and in what order.
\- Threshold and action fields per feature — see /management-api/workflows/feature-configs for the full reference.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope when the workflow belongs to a different application than the API key.
\- 404 — workflow not found in this application (also returned when settings_uuid is valid in another application).

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Colar em



## OpenAPI

````yaml pt-br/openapi-25.json GET /v3/workflows/{settings_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/workflows/{settings_uuid}/:
    get:
      tags:
        - Workflows
      summary: Obter fluxo
      description: >-
        Obtenha a configuração completa de uma versão do fluxo de verificação
        (workflow) por `settings_uuid`: ativação de recursos, limiares,
        documentos permitidos, grafo, política de novas tentativas, callbacks e
        preços.
      operationId: get_workflow
      parameters:
        - name: settings_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            UUID da versão do fluxo (o valor `uuid` retornado pelo endpoint de
            listagem). Cada versão de um fluxo tem o seu próprio
            `settings_uuid`.
      responses:
        '200':
          description: >-
            Configuração completa do fluxo. O formato é a serialização bruta de
            `VerificationSettings` (~190 campos: cada ativação de recurso,
            limiar, ação de aviso, configuração de documentos permitidos, o
            `workflow_graph`, a política de novas tentativas, os callbacks e os
            preços). O exemplo abaixo está abreviado. Observações: `features` é
            uma string unida por `" + "` (por exemplo, `"OCR + LIVENESS"`), os
            preços são números JSON e `is_editable` é `true` somente para
            versões `draft`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
              examples:
                KYC workflow with face match (abbreviated):
                  value:
                    uuid: a1b2c3d4-5678-90ab-cdef-111111111111
                    workflow_id: a1b2c3d4-5678-90ab-cdef-111111111111
                    workflow_label: Standard KYC
                    workflow_type: kyc
                    is_default: true
                    is_archived: false
                    is_liveness_enabled: true
                    face_liveness_method: passive
                    face_liveness_score_decline_threshold: 50
                    face_liveness_score_review_threshold: 70
                    is_face_match_enabled: true
                    face_match_score_decline_threshold: 40
                    face_match_score_review_threshold: 60
                    is_aml_enabled: false
                    is_phone_verification_enabled: false
                    is_email_verification_enabled: false
                    is_database_validation_enabled: false
                    is_ip_analysis_enabled: false
                    is_nfc_enabled: false
                    duplicated_user_action: no_action
                    documents_allowed:
                      ESP:
                        P:
                          sides: 1
                          enabled: 1
                          subtypes:
                            - EPASSPORT
                            - PASSPORT_GENERIC
                          preferred_characters: latin
                          expiration_check_mode: strict
                    max_retry_attempts: 3
                    retry_window_days: 7
                    session_expiration_time: 604800
                    version: 2
                    status: published
                    published_at: '2026-04-12T10:30:00Z'
                    is_simple_workflow: false
                    is_editable: false
                    workflow_url: https://verify.didit.me/u/_yljPOx8RWG3UAz5ZRQGVQ
                    total_price: 0.15
                    min_price: 0.15
                    max_price: 0.15
                    features: OCR + LIVENESS + FACE_MATCH
                    created_at: '2025-01-15T10:30:00Z'
                    updated_at: '2026-04-12T10:30:00Z'
        '403':
          description: >-
            A chave de API está ausente, malformada, expirada ou vinculada a
            outra aplicação.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Não existe nenhum fluxo de verificação (workflow) com este
            `settings_uuid` para a aplicação autenticada. Ou o UUID está errado,
            ou ele pertence a outra aplicação: a Didit propositalmente não
            distingue os dois casos para evitar revelar a existência de
            registros de outras aplicações.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Not found.
        '429':
          description: >-
            Limite de requisições excedido. Tente novamente com backoff
            exponencial.
        '500':
          description: Erro inesperado do servidor. É seguro tentar novamente.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/workflows/a1b2c3d4-5678-90ab-cdef-111111111111/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.workflows.retrieve(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.workflows.retrieve("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Workflows.Retrieve(ctx, \"11111111-2222-3333-4444-555555555555\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.workflows().retrieve("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->workflows->retrieve('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.workflows.retrieve("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Workflows.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WorkflowDetail:
      type: object
      description: >-
        Os campos abaixo são tipados; o objeto também traz todas as outras
        colunas da configuração do fluxo de verificação (ativação de recursos,
        limiares, ações de aviso, documentos permitidos, callbacks) como
        propriedades adicionais. Os campos que não se aplicam ao `workflow_type`
        são `null`.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            Identificador da versão (`settings_uuid`). Cada versão de um fluxo
            tem o seu próprio.
        workflow_id:
          type: string
          format: uuid
          description: >-
            Identificador estável compartilhado por todas as versões do fluxo.
            As sessões criadas com ele usam a versão publicada mais recente.
        workflow_label:
          type: string
          description: Nome de exibição do fluxo.
        workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: Modelo do fluxo. `null` para fluxos em grafo criados sem modelo.
        is_default:
          type: boolean
          description: Se este é o fluxo de verificação (workflow) padrão da aplicação.
        is_archived:
          type: boolean
          description: Fluxos arquivados não podem iniciar novas sessões.
        version:
          type: integer
          description: Número da versão dentro do fluxo.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            As versões de rascunho são editáveis; as versões publicadas são
            imutáveis e usadas para novas sessões.
        published_at:
          type: string
          format: date-time
          nullable: true
          description: Quando esta versão foi publicada. `null` para rascunhos.
        is_simple_workflow:
          type: boolean
          description: '`true` quando o fluxo não tem um `workflow_graph` personalizado.'
        is_editable:
          type: boolean
          description: '`true` apenas para versões `draft`.'
        workflow_url:
          type: string
          format: uri
          description: URL pública que inicia uma sessão com este fluxo.
        workflow_graph:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Estrutura de grafo do fluxo (nós e arestas). `null` para fluxos
            simples.
        features:
          type: string
          description: >-
            Recursos ativados unidos por `" + "`, por exemplo `"OCR +
            LIVENESS"`.
        total_price:
          type: number
          nullable: true
          description: Preço por sessão; para fluxos em grafo, o caminho mais caro.
        min_price:
          type: number
          nullable: true
          description: Preço do caminho mais barato do fluxo.
        max_price:
          type: number
          nullable: true
          description: Preço do caminho mais caro do fluxo.
        special_add_on_prices:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Preços de complementos específicos da organização, ou `null` quando
            nenhum está definido.
        max_retry_attempts:
          type: integer
          description: Novas tentativas permitidas após uma verificação recusada.
        retry_window_days:
          type: integer
          nullable: true
          description: Dias durante os quais as novas tentativas são permitidas.
        session_expiration_time:
          type: integer
          description: Segundos até a expiração de uma sessão não concluída.
        questionnaire:
          type: object
          nullable: true
          additionalProperties: true
          description: O questionário vinculado ao fluxo, ou `null`.
        kyb_role_settings:
          type: array
          items:
            type: object
            additionalProperties: true
          description: >-
            Configurações de verificação por função para as pessoas-chave do
            KYB.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        signature_availability:
          type: object
          description: >-
            Quais níveis de Assinatura eletrônica podem assinar neste momento.
            Verifique antes de definir `signature_level`. Retornado em fluxos
            `kyc`, `kyb` e de grafo.
          properties:
            simple:
              type: boolean
              description: O Simple está sempre disponível.
            aes:
              type: boolean
              description: >-
                Indica se a assinatura Avançada (AES) pode assinar agora.
                Enquanto for `false`, salvar uma nova etapa com
                `signature_level: "aes"` é recusado com `aes_not_available`.
            qes:
              type: boolean
              description: >-
                Indica se a assinatura Qualificada (QES) pode assinar agora. É
                `false` até que um provedor qualificado seja conectado.
        is_bank_verification_enabled:
          type: boolean
          description: >-
            Indica se um fluxo simples de KYC ou KYB executa a Verificação
            bancária. Ela é executada após as etapas de contato (e a Verificação
            de localização) e antes da validação de banco de dados, da AML e da
            análise de IP. A Verificação bancária ainda não está disponível para
            todos: ativá-la é recusado onde quer que ela não esteja habilitada.
        bank_verification_config:
          type: object
          additionalProperties: true
          description: >-
            Configurações de verificação bancária de um fluxo simples, com as
            mesmas chaves aceitas por um nó `BANK_VERIFICATION` (por exemplo,
            `bank_countries` e `bank_method_order`). Chaves desconhecidas são
            descartadas. Todas as chaves são opcionais e uma chave ausente
            mantém seu valor padrão, então `{}` significa todos os valores
            padrão. Consulte [Configurações de verificação
            bancária](/pt-br/management-api/workflows/feature-configs#verificação-bancária).
          example: {}
        is_geolocation_enabled:
          type: boolean
          description: >-
            Indica se um fluxo simples de KYC executa a Verificação de
            localização. Ela é executada após as etapas de contato e antes da
            Verificação bancária e da validação de banco de dados. Fluxos de
            empresas (KYB) não podem executá-la.
        geolocation_config:
          type: object
          additionalProperties: true
          description: >-
            Configurações de verificação de localização de um fluxo de
            verificação (workflow) simples, com as mesmas chaves que um nó
            `GEOLOCATION` aceita (por exemplo,
            `is_geolocation_geofencing_enabled` e `geolocation_max_attempts`).
            Chaves desconhecidas são descartadas. Todas as chaves são opcionais
            e uma chave ausente mantém seu valor padrão, então `{}` significa
            todos os valores padrão.
          example: {}
      additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Chave de API da sua aplicação, em Developers -> API keys no Business
        Console. A chave principal tem acesso total. Uma chave nomeada pode ter
        escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada
        a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a
        uma data de validade. 401 significa que a chave está errada, revogada ou
        expirada; 403 significa que nenhuma chave foi enviada, que a chave não
        tem acesso a este recurso ou ação, ou que a requisição veio de um
        endereço fora da sua lista de IPs; 404 em uma rota de sessão significa
        que a sessão está fora dos fluxos ou status da chave. Uma chave sem
        acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave
        sem permissão de escrita em sessões recebe links e tokens de sessão como
        null. Consulte https://docs.didit.me/console/api-keys.

````

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