> ## 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 KYB Registry Select: obter perfil da empresa

> Obtenha o perfil completo da empresa no registro KYB da Didit: POST /v3/kyb/select/ com o kyb_response_id da busca. Chamada faturável.

Use este endpoint depois que `POST /v3/kyb/search/` retornar empresas candidatas.

O Select é o nível **Lite**: ele obtém o perfil da empresa e seus administradores, cobrado pelo preço Lite do país ([preços por país](https://docs.didit.me/pt-br/getting-started/kyb-registry-pricing.md)). Ele armazena a requisição como uma verificação manual no Business Console e retorna um `request_id` que você pode usar para recuperar o resultado salvo da verificação da empresa. Para os acionistas ou os beneficiários finais, use [`POST /v3/kyb/shareholders/`](https://docs.didit.me/pt-br/standalone-apis/kyb-registry-shareholders) ou [`POST /v3/kyb/ubo/`](https://docs.didit.me/pt-br/standalone-apis/kyb-registry-ubo).

A Didit aguarda o registro de origem terminar antes de responder, por isso `fetch_status` é `resolved` na maioria das respostas. Se um registro lento mantiver o perfil pendente além desse tempo de espera, a resposta retorna `fetch_status: pending` com `data_resolved: false`, e a Didit conclui a verificação salva automaticamente assim que o provedor terminar. Leia novamente o resultado salvo da verificação em vez de repetir a busca, pois uma nova busca gera novos valores de `kyb_response_id`.


## OpenAPI

````yaml pt-br/openapi-25.json POST /v3/kyb/select/
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/kyb/select/:
    post:
      tags:
        - Standalone APIs
      summary: Seleção de empresa no registro KYB, nível Lite (avulsa)
      description: >-
        Obtenha o perfil de registro **Lite** de um candidato retornado por
        `POST /v3/kyb/search/`: dados da empresa, endereço registrado,
        identificadores, status, atividade e os administradores, além do payload
        bruto do registro. Acionistas e beneficiários finais são vendidos por
        `POST /v3/kyb/shareholders/` e `POST /v3/kyb/ubo/`.


        **Uso com a busca.** Envie o `kyb_response_id` do candidato exatamente
        como retornado por uma busca da mesma aplicação. O identificador é
        temporário e restrito a essa busca: selecione logo e faça uma nova busca
        para obter um identificador novo em vez de armazená-lo.


        **Faturamento.** Cada seleção é cobrada pelo preço Lite do país
        (qualquer tarifa de busca é cobrada à parte); consulte [Preços do
        registro KYB](/pt-br/getting-started/kyb-registry-pricing). O saldo é
        verificado antes de qualquer chamada ao registro (`403` quando
        insuficiente) e a cobrança é registrada na sessão de empresa criada.


        **A persistência é obrigatória.** Cada seleção cria uma sessão de
        empresa (o seu id é o `request_id`) para que o faturamento e a consulta
        possam ser acompanhados; ela aparece no console. `save_api_request` é
        aceito por simetria, mas deve ser `true` (o padrão): enviar `false`
        retorna `400`.
      operationId: post_v3_kyb_select
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KYBRegistryCandidateRequest'
            example:
              kyb_response_id: 69aeeb95febb0f1704042259
              vendor_data: company-1234
      responses:
        '200':
          description: >-
            Empresa obtida e faturada. `kyb_registry` contém o perfil completo;
            verifique `data_resolved`: quando é `false`, o registro ainda estava
            em processamento, e o registro armazenado é completado
            automaticamente assim que for resolvido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      Id da sessão de empresa criada para esta consulta. O
                      registro armazenado (visível no console) continua sendo
                      atualizado se o registro de empresas responder depois da
                      resposta.
                  registry_tier_requested:
                    type: string
                    enum:
                      - basic
                      - shareholders
                      - ubo
                    description: >-
                      O nível que este endpoint vende: `basic` (Lite) para
                      países selecionados, `shareholders`, `ubo`.
                  registry_tier_delivered:
                    type: string
                    enum:
                      - basic
                      - shareholders
                      - ubo
                    description: >-
                      O nível efetivamente entregue e faturado. Inferior ao
                      solicitado quando os registros do país não contêm dados de
                      propriedade ou quando o registro não possui informações de
                      propriedade desta empresa.
                  kyb_registry:
                    type: object
                    description: Perfil completo da empresa no registro.
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        description: ID da Didit para este registro de empresa.
                      node_id:
                        type: string
                        example: feature_kyb_registry
                      status:
                        type: string
                        enum:
                          - Not Finished
                          - Approved
                          - Declined
                          - In Review
                        description: >-
                          Avaliação da Didit sobre a verificação no registro de
                          empresas (por exemplo, `In Review` quando a empresa
                          não está ativa no registro ou quando não foi possível
                          derivar os dados de propriedade).
                      registry_status:
                        type: string
                        nullable: true
                        enum:
                          - active
                          - dissolved
                          - deregistered
                          - see full details
                          - authorised
                          - appointed representative
                          - unauthorised
                          - inactive
                          - no longer authorised
                          - closed
                          - struck off
                        description: >-
                          Status normalizado da empresa conforme informado pelo
                          registro.
                      data_resolved:
                        type: boolean
                        description: >-
                          `true` quando o registro retornou o perfil completo.
                          `false` quando o registro ainda estava processando
                          após a consulta periódica; o registro armazenado é
                          completado automaticamente assim que o registro
                          resolve.
                      company_name:
                        type: string
                        example: Tesco PLC
                      registration_number:
                        type: string
                        nullable: true
                        example: '00445790'
                      country_code:
                        type: string
                        description: ISO 3166-1 alpha-2.
                        example: GB
                      region:
                        type: string
                        nullable: true
                        description: >-
                          Código da subdivisão quando o registro é regional (por
                          exemplo `CA` para `US-CA`); vazio caso contrário.
                      company_type:
                        type: string
                        nullable: true
                        example: Public Limited Company
                      incorporation_date:
                        type: string
                        format: date
                        nullable: true
                        example: '1947-11-27'
                      registered_address:
                        type: string
                        nullable: true
                        example: >-
                          Tesco House, Shire Park, Kestrel Way, Welwyn Garden
                          City, United Kingdom, AL7 1GA
                      tax_number:
                        type: string
                        nullable: true
                        example: GB412 8925 93
                      risk_level:
                        type: string
                        nullable: true
                        description: >-
                          Nível de risco informado pelo registro, quando
                          disponível.
                      verification_status:
                        type: string
                        nullable: true
                        description: Status de verificação do registro, quando disponível.
                      is_from_registry:
                        type: boolean
                        description: >-
                          Sempre `true` para este endpoint: o perfil foi obtido
                          de um registro oficial.
                      fetch_status:
                        type: string
                        enum:
                          - pending
                          - resolved
                        description: >-
                          Ciclo de vida da consulta ao registro. Refletido por
                          `data_resolved`.
                      alternative_names:
                        type: string
                        nullable: true
                        description: >-
                          Nomes alternativos, comerciais, anteriores ou no
                          idioma original da empresa, em texto, quando
                          informados.
                      nature_of_business:
                        type: string
                        nullable: true
                        description: >-
                          Descrição da atividade ou código de classificação,
                          quando informado.
                      registered_capital:
                        type: string
                        nullable: true
                      registered_capital_amount:
                        type: string
                        nullable: true
                        description: Valor decimal como string, quando informado.
                      registered_capital_currency:
                        type: string
                        nullable: true
                        description: Código ISO 4217, quando informado.
                      website:
                        type: string
                        nullable: true
                        example: https://www.tesco.com/
                      email:
                        type: string
                        nullable: true
                        example: customer.service@tesco.co.uk
                      phone:
                        type: string
                        nullable: true
                        example: '03301231688'
                      legal_entity_identifier:
                        type: string
                        nullable: true
                        description: LEI, quando informado.
                      location_of_registration:
                        type: string
                        nullable: true
                        description: >-
                          Registro/jurisdição em que a empresa está registrada,
                          quando informado.
                      vat_number:
                        type: string
                        nullable: true
                        description: >-
                          Número de IVA da UE (EU VAT), quando coletado durante
                          a etapa de registro no fluxo hospedado ou editado
                          posteriormente. No momento da seleção, normalmente
                          ainda não está definido: a validação de IVA e de
                          identificação fiscal é executada quando o usuário
                          final envia a etapa de registro no fluxo hospedado.
                      vat_validation_status:
                        type: string
                        enum:
                          - valid
                          - invalid
                          - format_valid
                          - invalid_format
                          - could_not_validate
                          - not_applicable
                        description: >-
                          Resultado da validação do número de VAT ou, quando não
                          houver, do `tax_number`, no envio ao registro. `valid`
                          / `invalid`: decidido pelo registro oficial do país
                          (EU VIES, Noruega, Suíça, Brasil, Colômbia, Costa
                          Rica, Equador, Paraguai; a Polônia também pelo seu
                          registro nacional de VAT). `format_valid` /
                          `invalid_format`: decidido pelas regras de formato e
                          dígito verificador do país quando nenhum registro pode
                          ser consultado. `could_not_validate`: o registro
                          estava indisponível. `not_applicable`: nenhum número,
                          um país sem registro nem regras, ou uma sessão de
                          sandbox.
                      vat_validated_number:
                        type: string
                        nullable: true
                        description: >-
                          O número que foi verificado, como a fonte o conhece
                          (por exemplo, o número de IVA derivado de um SIREN
                          francês ou de um RSIN holandês). `null` quando nenhuma
                          verificação foi executada.
                      vat_validation_source:
                        type: string
                        nullable: true
                        enum:
                          - eu_vies
                          - pl_vat_white_list
                          - no_brreg
                          - ch_uid_register
                          - br_receita_federal
                          - co_rues
                          - cr_hacienda
                          - ec_sri
                          - py_dnit
                          - format_rules
                          - null
                        description: >-
                          A fonte que determinou `vat_validation_status`: um
                          registro oficial ou `format_rules`. `null` quando
                          nenhuma verificação foi executada.
                      vat_validated_name:
                        type: string
                        nullable: true
                        description: >-
                          Nome registrado na fonte que validou o número, quando
                          ela o informa. Preenchido apenas quando o status é
                          `valid`.
                      vat_validated_address:
                        type: string
                        nullable: true
                        description: >-
                          Endereço registrado na fonte que validou o número,
                          quando ela o informa. Definido apenas quando o status
                          é `valid`.
                      vat_checked_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          Data e hora da verificação. `null` quando nenhuma
                          verificação foi executada.
                      financial_summary:
                        type: object
                        nullable: true
                        description: >-
                          Detalhes de ações/capital informados pelo registro
                          (moeda, total de ações, classes de ações), quando
                          disponíveis.
                      officers:
                        type: array
                        items:
                          type: object
                          properties:
                            uuid:
                              type: string
                              format: uuid
                            name:
                              type: string
                              example: MELISSA BETHELL
                            designation:
                              type: string
                              nullable: true
                              description: >-
                                Designação bruta do registro (por exemplo,
                                `Director`, `Secretary`).
                            role:
                              type: string
                              description: >-
                                Função normalizada derivada do cargo. Conjunto
                                completo de 17 valores do modelo; a análise do
                                registro neste endpoint normalmente retorna
                                director, non_executive_director, secretary,
                                chairman ou company_officer.
                              enum:
                                - director
                                - non_executive_director
                                - secretary
                                - chairman
                                - ubo
                                - shareholder
                                - representative
                                - founder
                                - legal_advisor
                                - authorized_signatory
                                - trustee
                                - beneficiary
                                - company_officer
                                - settlor
                                - protector
                                - investor
                                - other
                            nationality:
                              type: string
                              nullable: true
                            is_active:
                              type: boolean
                              description: >-
                                `false` quando o registro marca a nomeação como
                                encerrada por renúncia.
                            kyc_status:
                              type: string
                              nullable: true
                              enum:
                                - Approved
                                - Declined
                                - Pending
                              description: >-
                                Status de uma sessão de KYC associada, quando
                                uma foi iniciada para este administrador. `null`
                                caso contrário.
                            kyc_session_url:
                              type: string
                              nullable: true
                              description: >-
                                URL de verificação da sessão de KYC associada,
                                quando existir.
                            first_name:
                              type: string
                              nullable: true
                              description: >-
                                Nome próprio, quando informado explicitamente
                                pelo registro; não é inferido a partir do nome
                                completo.
                            last_name:
                              type: string
                              nullable: true
                              description: >-
                                Sobrenome, quando informado explicitamente pelo
                                registro.
                            address:
                              type: string
                              nullable: true
                              description: >-
                                Endereço do administrador informado pelo
                                registro de empresas.
                            appointment_date:
                              type: string
                              nullable: true
                              description: Data em que o administrador foi nomeado.
                              format: date
                            termination_date:
                              type: string
                              nullable: true
                              description: Data em que o cargo terminou, quando informada.
                              format: date
                            date_of_birth:
                              type: string
                              nullable: true
                              description: >-
                                Data de nascimento completa informada pelo
                                registro. Nula quando apenas o ano ou o mês de
                                nascimento é conhecido.
                              format: date
                            date_of_birth_year:
                              type: integer
                              nullable: true
                              minimum: 1
                              maximum: 9999
                              description: >-
                                Ano de nascimento informado pelo registro,
                                inclusive quando a data completa não está
                                disponível.
                            date_of_birth_month:
                              type: integer
                              nullable: true
                              minimum: 1
                              maximum: 12
                              description: >-
                                Mês de nascimento informado pelo registro. Nulo
                                quando apenas o ano é conhecido.
                        description: >-
                          Diretores, secretários e outros administradores
                          extraídos do registro.
                      beneficial_owners:
                        type: array
                        items:
                          type: object
                          properties:
                            uuid:
                              type: string
                              format: uuid
                            name:
                              type: string
                            first_name:
                              type: string
                              nullable: true
                            last_name:
                              type: string
                              nullable: true
                            entity_type:
                              type: string
                              enum:
                                - person
                                - company
                              description: >-
                                Se o proprietário é uma pessoa física ou uma
                                pessoa jurídica.
                            roles:
                              type: array
                              items:
                                type: string
                              description: >-
                                Funções normalizadas (por exemplo, `ubo`,
                                `shareholder`).
                            ownership_min_shares:
                              type: string
                              nullable: true
                              description: >-
                                Limite inferior da faixa de propriedade
                                informada pelo registro (por exemplo, `25%`).
                            ownership_max_shares:
                              type: string
                              nullable: true
                              description: >-
                                Limite superior da faixa de propriedade
                                informada pelo registro.
                            is_active:
                              type: boolean
                            kyc_status:
                              type: string
                              enum:
                                - Approved
                                - Declined
                                - Pending
                              nullable: true
                            kyc_session_url:
                              type: string
                              nullable: true
                            effective_ownership_percent:
                              type: number
                              nullable: true
                              description: >-
                                Percentual de propriedade interpretado (limite
                                máximo, recorrendo ao limite mínimo).
                            company_name:
                              type: string
                              nullable: true
                            registration_number:
                              type: string
                              nullable: true
                            country_of_birth:
                              type: string
                              nullable: true
                            email:
                              type: string
                              nullable: true
                            nationality:
                              type: string
                              nullable: true
                            designation:
                              type: string
                              nullable: true
                            voting_min_shares:
                              type: string
                              nullable: true
                            voting_max_shares:
                              type: string
                              nullable: true
                            date_of_birth:
                              type: string
                              nullable: true
                              description: Data de nascimento completa, quando informada.
                              format: date
                            appointment_date:
                              type: string
                              nullable: true
                              description: Data de nomeação, quando informada.
                              format: date
                            shareholding:
                              $ref: '#/components/schemas/KYBRegistryShareholding'
                        description: >-
                          Beneficiários finais / pessoas com controle
                          significativo extraídos do registro. Pode estar vazio
                          quando o registro não expõe a propriedade.
                      addresses:
                        type: array
                        nullable: true
                        description: >-
                          Todos os endereços que o registro informa, em um único
                          formato canônico. Nulo quando não informa nenhum.
                        items:
                          $ref: '#/components/schemas/KYBRegistryAddress'
                      industries:
                        type: array
                        nullable: true
                        description: >-
                          As atividades em que o registro classifica a empresa,
                          em um único formato canônico. Null quando ele não
                          informa nenhuma.
                        items:
                          $ref: '#/components/schemas/KYBRegistryIndustry'
                      accounts:
                        type: object
                        nullable: true
                        additionalProperties: true
                        description: >-
                          Datas de arquivamento no registro, quando disponíveis.
                          Declarações anuais e assembleias gerais usam
                          last_annual_return_date e last_agm_date; elas são
                          distintas das demonstrações financeiras.
                      registry_data:
                        $ref: '#/components/schemas/KYBRegistryData'
                      user_provided_data:
                        type: object
                        nullable: true
                        description: >-
                          Sempre `null` neste endpoint (usado pelo fluxo KYB
                          hospedado quando usuários finais editam dados do
                          registro).
                      confirmed_by_user_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: Sempre `null` neste endpoint.
                      last_console_edit_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          Preenchido quando um revisor do console edita o
                          registro posteriormente.
                      is_editable:
                        type: boolean
                        description: >-
                          Se os dados obtidos do registro ainda podem ser
                          editados no fluxo hospedado/console.
                      registry_tier_delivered:
                        type: string
                        enum:
                          - basic
                          - shareholders
                          - ubo
                        description: Igual ao `registry_tier_delivered` de nível superior.
                      registry_ownership_status:
                        type: string
                        nullable: true
                        enum:
                          - not_requested
                          - delivered
                          - not_held
                          - unavailable
                        description: >-
                          `delivered` quando os dados de propriedade foram
                          retornados, `not_held` quando o registro de
                          propriedade respondeu e não lista esta empresa
                          (consulte `registry_data.ownership_error`),
                          `unavailable` quando um nível com propriedade foi
                          solicitado, mas o registro não tinha esses dados para
                          esta empresa ou não pôde ser consultado (consulte
                          `registry_data.ownership_error`), `not_requested` no
                          nível Lite.
                      ownership:
                        $ref: '#/components/schemas/KYBRegistryOwnership'
                      registry_tier:
                        type: string
                        nullable: true
                        description: >-
                          O nível de registro solicitado pelo fluxo: `basic`,
                          `shareholders` ou `ubo`. Também em
                          `ownership.tier_requested`.
                      registry_monitoring:
                        type: object
                        nullable: true
                        description: >-
                          O monitor de registro mais recente da empresa, ou
                          `null` quando não existe nenhum.
                        properties:
                          uuid:
                            type: string
                            format: uuid
                          status:
                            type: string
                          unavailable_reason:
                            type: string
                            nullable: true
                          enrolled_at:
                            type: string
                            format: date-time
                            nullable: true
                          cancelled_at:
                            type: string
                            format: date-time
                            nullable: true
                          last_bill_date:
                            type: string
                            format: date
                            nullable: true
                          next_bill_date:
                            type: string
                            format: date
                            nullable: true
                          last_event_at:
                            type: string
                            format: date-time
                            nullable: true
                          events_count:
                            type: integer
                          watched_fields:
                            description: Os campos da empresa que o monitor acompanha.
                  vendor_data:
                    type: string
                    nullable: true
                    description: Eco dos `vendor_data` que você enviou.
                  metadata:
                    type: object
                    nullable: true
                    description: Eco do `metadata` que você enviou.
                  created_at:
                    type: string
                    format: date-time
              examples:
                Resolved company:
                  summary: >-
                    Perfil completo do registro (lista de administradores
                    truncada por brevidade)
                  value:
                    request_id: 9d4f2c7a-1b3e-4a5c-8d6f-0e9a8b7c6d5e
                    kyb_registry:
                      uuid: f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d
                      node_id: feature_kyb_registry
                      status: In Review
                      registry_status: active
                      data_resolved: true
                      company_name: Tesco PLC
                      registration_number: '00445790'
                      country_code: GB
                      region: ''
                      company_type: Public Limited Company
                      incorporation_date: '1947-11-27'
                      registered_address: >-
                        Tesco House, Shire Park, Kestrel Way, Welwyn Garden
                        City, United Kingdom, AL7 1GA
                      tax_number: GB412 8925 93
                      risk_level: low risk
                      verification_status: verified
                      is_from_registry: true
                      fetch_status: resolved
                      alternative_names: TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY
                      nature_of_business: null
                      registered_capital: null
                      registered_capital_amount: null
                      registered_capital_currency: null
                      website: https://www.tesco.com/
                      email: customer.service@tesco.co.uk
                      phone: '03301231688'
                      legal_entity_identifier: null
                      location_of_registration: null
                      financial_summary:
                        currency: Pound (£)
                        total_number_of_shares: '8174378721'
                        meta_detail:
                          Class_Of_Share: Ordinary
                      officers:
                        - uuid: a1b2c3d4-e5f6-4789-9a0b-1c2d3e4f5a6b
                          name: CHRISTOPHER JON TAYLOR
                          designation: Secretary
                          role: secretary
                          nationality: null
                          is_active: true
                          kyc_status: null
                          kyc_session_url: null
                        - uuid: b2c3d4e5-f6a7-4890-8b1c-2d3e4f5a6b7c
                          name: MELISSA BETHELL
                          designation: Director
                          role: director
                          nationality: British
                          is_active: true
                          kyc_status: null
                          kyc_session_url: null
                      beneficial_owners: []
                      addresses:
                        - address: >-
                            Tesco House, Shire Park, Kestrel Way, Welwyn Garden
                            City, United Kingdom, AL7 1GA
                          type: legal_entity_registry_address
                          description: registered office address
                      industries: null
                      accounts:
                        last_account: 26 February 2025
                        next_account: 26 February 2026
                        due_by_date: 26 August 2026
                      registry_data: {}
                      user_provided_data: null
                      confirmed_by_user_at: null
                      last_console_edit_at: null
                      is_editable: true
                    vendor_data: company-1234
                    metadata: null
                    created_at: '2026-06-11T10:45:00.000000+00:00'
                Pending (registry still resolving):
                  summary: >-
                    A seleção continuou pendente após o polling: campos
                    esparsos, conclusão automática no servidor
                  value:
                    request_id: 9d4f2c7a-1b3e-4a5c-8d6f-0e9a8b7c6d5e
                    kyb_registry:
                      uuid: 7c0a4f7e-2b1d-4f6a-9c3e-8d5b2a1f0e9d
                      node_id: feature_kyb_registry
                      status: Not Finished
                      registry_status: null
                      data_resolved: false
                      company_name: Tesco PLC
                      registration_number: '00445790'
                      country_code: GB
                      region: null
                      company_type: null
                      incorporation_date: null
                      registered_address: null
                      tax_number: null
                      risk_level: null
                      verification_status: null
                      is_from_registry: true
                      fetch_status: pending
                      alternative_names: null
                      nature_of_business: null
                      registered_capital: null
                      registered_capital_amount: null
                      registered_capital_currency: null
                      website: null
                      email: null
                      phone: null
                      legal_entity_identifier: null
                      location_of_registration: null
                      financial_summary: {}
                      officers: []
                      beneficial_owners: []
                      addresses: null
                      industries: null
                      accounts: null
                      registry_data: {}
                      user_provided_data: null
                      confirmed_by_user_at: null
                      last_console_edit_at: null
                      is_editable: true
                    vendor_data: company-1234
                    metadata: null
                    created_at: '2026-06-11T10:45:00.000000+00:00'
        '400':
          description: >-
            Erro de validação. Problemas no nível de campo usam o envelope
            padrão do DRF. Um país que os registros não cobrem responde `400`
            com `code: kyb_registry_country_unsupported`.
          content:
            application/json:
              examples:
                Missing kyb_response_id:
                  summary: '`kyb_response_id` é obrigatório'
                  value:
                    kyb_response_id:
                      - This field is required.
                save_api_request=false rejected:
                  summary: As seleções são sempre persistidas
                  value:
                    save_api_request:
                      - >-
                        KYB registry select must be saved so billing and
                        retrieval can be tracked.
                Country not covered:
                  summary: Nenhum registro de empresas cobre o país
                  value:
                    detail: >-
                      Company registry search is not available for this country.
                      Enter the company details manually to continue.
                    code: kyb_registry_country_unsupported
        '403':
          description: >-
            Permissão negada. Retornado quando o cabeçalho `x-api-key` está
            ausente e também quando o saldo da organização que faz a chamada não
            cobre a chamada; uma chave incorreta, revogada ou expirada retorna
            `401`. Uma chave ausente retorna `403` com `{"detail": ...}`; uma
            chave incorreta, revogada ou expirada retorna `401`. Créditos
            insuficientes retornam `403` com `{"error": ...}` antes de qualquer
            análise ou chamada a provedores.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: Nenhum cabeçalho `x-api-key`, ou a chave é inválida/revogada
                  value:
                    detail: You do not have permission to perform this action.
                Not enough credits:
                  summary: O saldo da organização não cobre a chamada
                  value:
                    error: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
        '429':
          description: >-
            Limite de requisições excedido. Todos os endpoints POST/PATCH/DELETE
            compartilham uma cota de 300 requisições de escrita por minuto por
            chave de API. A resposta inclui os cabeçalhos `X-RateLimit-Limit`,
            `X-RateLimit-Remaining`, `X-RateLimit-Reset` e `Retry-After`.
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: Mais de 300 requisições de escrita no minuto atual
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
              schema:
                type: object
                properties:
                  detail:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/kyb/select/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "kyb_response_id": "69aeeb95febb0f1704042259",
                "vendor_data": "company-1234"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.kyb.select(
                kyb_response_id="69aeeb95febb0f1704042259",
                vendor_data="company-1234",
            )
            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.kyb.select({
              kyb_response_id: "69aeeb95febb0f1704042259",
              vendor_data: "company-1234",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.KYB.Select(ctx, didit.KYBRegistryCandidateRequest{\n\tKYBResponseID: \"69aeeb95febb0f1704042259\",\n\tVendorData:    didit.String(\"company-1234\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.KYBRegistryCandidateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.kyb().select(KYBRegistryCandidateRequest.builder()
                    .kybResponseId("69aeeb95febb0f1704042259")
                    .vendorData("company-1234")
                    .build());
            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->kyb->select([
                'kyb_response_id' => '69aeeb95febb0f1704042259',
                'vendor_data' => 'company-1234',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.kyb.select(
              kyb_response_id: "69aeeb95febb0f1704042259",
              vendor_data: "company-1234"
            )
            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.Kyb.SelectAsync(new
            KYBRegistryCandidateRequest

            {
                KybResponseId = "69aeeb95febb0f1704042259",
                VendorData = "company-1234",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    KYBRegistryCandidateRequest:
      type: object
      required:
        - kyb_response_id
      properties:
        kyb_response_id:
          type: string
          maxLength: 1024
          description: >-
            Identificador do candidato retornado por `POST /v3/kyb/search/`
            (`kyb_registry.companies[].kyb_response_id`). Efêmero: use-o logo
            após a busca que o gerou. Os identificadores podem ser longos, então
            armazene e envie o valor exatamente como retornado, sem cortar nem
            presumir um tamanho.
          example: 69aeeb95febb0f1704042259
        vendor_data:
          type: string
          description: >-
            Seu identificador para esta empresa; retornado na resposta e
            armazenado com a sessão da empresa.
        metadata:
          type: object
          nullable: true
          description: >-
            JSON livre armazenado com a sessão de empresa e retornado na
            resposta.
        save_api_request:
          type: boolean
          default: true
          description: >-
            Deve ser `true` (o padrão). As seleções de registro KYB são sempre
            persistidas para que o faturamento e a recuperação possam ser
            rastreados; `false` retorna `400`.
    KYBRegistryShareholding:
      type: object
      nullable: true
      description: >-
        O que um proprietário detém, no mesmo formato para todos os países e
        fontes de registro. Nulo quando o registro não informa nenhuma
        participação. Uma faixa (por exemplo, os 25-50% de um PSC do Reino
        Unido) não é uma participação: `percentage` é nulo e a faixa permanece
        em `ownership_min_shares` / `ownership_max_shares`.
      properties:
        share_class:
          type: string
          nullable: true
          description: Classe ou tipo de ação, conforme denominado pelo registro.
        number_of_shares:
          type: number
          nullable: true
          description: Número de ações detidas.
        currency:
          type: string
          nullable: true
          description: Moeda ISO 4217 dos valores abaixo.
        nominal_value:
          type: number
          nullable: true
          description: Valor nominal por ação.
        total_value:
          type: number
          nullable: true
          description: Valor total da participação.
        percentage:
          type: number
          nullable: true
          description: Participação exata em porcentagem, com quatro casas decimais.
      required:
        - share_class
        - number_of_shares
        - currency
        - nominal_value
        - total_value
        - percentage
    KYBRegistryAddress:
      type: object
      description: >-
        Um endereço informado pelo registro, no mesmo formato para todos os
        países e fontes de registro. Todas as chaves estão sempre presentes; uma
        parte que o registro não publica é null.
      properties:
        type:
          type: string
          nullable: true
          description: >-
            Tipo de endereço em letras minúsculas: `registered` para a sede
            registrada; outros tipos conforme o registro os nomeia (por exemplo,
            `postal`, `office`). `null` quando o registro não informa o que é o
            endereço.
        address:
          type: string
          description: >-
            O endereço completo em uma única linha. Sempre presente em todo
            endereço.
        street:
          type: string
          nullable: true
          description: Logradouro e número.
        city:
          type: string
          nullable: true
          description: Cidade ou localidade.
        postal_code:
          type: string
          nullable: true
          description: Código postal.
        region:
          type: string
          nullable: true
          description: Região, estado ou província.
        country_code:
          type: string
          nullable: true
          description: Código de país ISO 3166-1 alpha-2.
        description:
          type: string
          nullable: true
          description: O rótulo próprio do registro para o endereço, quando houver.
      required:
        - type
        - address
        - street
        - city
        - postal_code
        - region
        - country_code
        - description
    KYBRegistryIndustry:
      type: object
      description: >-
        Uma atividade na qual o registro classifica a empresa, no mesmo formato
        para todos os países e fontes de registro.
      properties:
        code:
          type: string
          nullable: true
          description: >-
            Código de atividade conforme impresso pelo registro (por exemplo,
            `73110`).
        description:
          type: string
          nullable: true
          description: Rótulo da atividade, quando o registro publica um.
        scheme:
          type: string
          nullable: true
          description: >-
            Sistema de classificação, com um nome por sistema, independentemente
            da fonte que o informou: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`,
            `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev.
            4`, `Canada SIC 1977`; outros sistemas nacionais mantêm o nome usado
            pelo próprio registro. Nulo quando o registro não informa o sistema.
        is_primary:
          type: boolean
          description: >-
            True para a atividade principal da empresa. Exatamente uma entrada é
            a principal quando a lista não está vazia.
      required:
        - code
        - description
        - scheme
        - is_primary
    KYBRegistryData:
      type: object
      nullable: true
      description: >-
        Detalhe normalizado da Didit sobre a empresa no registro de empresas: o
        resultado de propriedade (`ownership_error`, `section_errors`,
        `ubo_resolution`, `lite_enrichment`), as correções feitas com
        update-data e os dados do registro que não têm campo próprio. Nunca
        inclui o registro original da fonte do registro de empresas. Todas as
        chaves são opcionais e só estão presentes quando a empresa tem um valor
        para elas; novas chaves podem ser adicionadas. Consulte os campos
        canônicos (`addresses`, `industries`, `ownership`,
        `beneficial_owners[].shareholding`) para tudo o que eles abrangem.
      properties:
        company_name:
          type: string
          description: Nome da empresa conforme corrigido no console.
        registration_number:
          type: string
          description: >-
            Número de registro conforme informado pelo registro ou por uma
            correção feita no console.
        country_code:
          type: string
          description: >-
            País do registro, conforme informado pelo registro ou por uma
            correção feita no console.
        region:
          type: string
          description: Região ou estado do registro.
        incorporation_date:
          type: string
          description: Data de constituição (ISO 8601).
        registration_date:
          type: string
          description: >-
            Data de registro (ISO 8601) quando o registro informa uma data
            distinta da data de constituição.
        dissolution_date:
          type: string
          description: Data de dissolução (ISO 8601), quando o registro a informa.
        tax_number:
          type: string
          description: Número de identificação fiscal.
        vat_number:
          type: string
          description: Número de VAT.
        legal_address:
          type: string
          description: Endereço legal conforme corrigido no console.
        registered_address:
          type: string
          description: Endereço registrado conforme consta no registro.
        company_type:
          type: string
          description: Forma jurídica.
        registry_status:
          type: string
          description: Status da empresa no registro.
        verification_status:
          type: string
          description: Status da verificação.
        alternative_names:
          type: string
          description: Outros nomes comerciais que a empresa usa ou já usou.
        nature_of_business:
          type: string
          description: Descrição da atividade.
        registered_capital:
          type: string
          description: Capital social conforme impresso.
        registered_capital_amount:
          type: string
          description: Valor do capital social, como string decimal.
        registered_capital_currency:
          type: string
          description: Moeda do capital social (ISO 4217).
        website:
          type: string
          description: Site.
        email:
          type: string
          description: E-mail de contato.
        phone:
          type: string
          description: Telefone de contato.
        legal_entity_identifier:
          type: string
          description: Legal Entity Identifier (LEI).
        location_of_registration:
          type: string
          description: Local de registro.
        control_scheme:
          type: string
          description: Esquema de governança, quando o registro o expõe.
        ownership_error:
          type: string
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
          description: >-
            Motivo pelo qual um nível de propriedade solicitado não foi
            entregue, com os mesmos códigos de `ownership.unavailable_reason`.
            `no_owners_on_record` (o registro respondeu e não indica nenhum
            proprietário) e `ownership_section_unavailable` (o registro não
            retornou a seção de propriedade) são constatações diferentes.
        section_errors:
          type: object
          description: >-
            Seções que o registro não retornou, indexadas por seção (`officers`,
            `shareholders`, `group_structure`). Uma seção listada aqui nunca foi
            entregue: uma lista vazia ao lado dela não diz nada sobre a empresa.
          additionalProperties:
            $ref: '#/components/schemas/KYBRegistrySectionError'
        ubo_resolution:
          $ref: '#/components/schemas/KYBRegistryUboResolution'
        lite_enrichment:
          $ref: '#/components/schemas/KYBRegistryLiteEnrichment'
        registry_metadata:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
          description: >-
            Os campos próprios do registro para a empresa, com as chaves
            nomeadas como o registro as nomeia, como valores simples (registros
            legados). Somente os campos revisados como fatos do registro são
            incluídos.
        registry_sources:
          type: array
          description: >-
            Os registros oficiais dos quais o registro foi lido (registros
            legados). Outras fontes não são nomeadas.
          items:
            $ref: '#/components/schemas/KYBRegistrySource'
        previous_names:
          type: array
          items:
            type: string
          description: >-
            Nomes sob os quais a empresa foi registrada anteriormente (registros
            legados).
        parent_companies:
          type: array
          items:
            type: string
          description: Empresas controladoras indicadas pelo registro (registros legados).
        documents_available:
          type: integer
          description: >-
            Quantos documentos arquivados o registro oferece para a empresa
            (registros legados).
    KYBRegistryOwnership:
      type: object
      description: >-
        O resultado do nível de propriedade (Acionistas / UBO), no mesmo formato
        para todos os países e fontes de registro.
      properties:
        status:
          type: string
          nullable: true
          enum:
            - not_requested
            - pending
            - delivered
            - not_held
            - unavailable
            - null
          description: >-
            `delivered` quando o registro publicou os dados de propriedade;
            `not_held` quando o registro de propriedade respondeu e não lista a
            empresa de forma alguma (consulte `unavailable_reason`);
            `unavailable` quando ele não forneceu os dados de propriedade por
            qualquer outro motivo (consulte `unavailable_reason`); `pending`
            enquanto o registro ainda os está buscando; `not_requested` para o
            nível Basic.
        tier_requested:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: O nível que o fluxo solicitou.
        tier_delivered:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: >-
            O nível que o registro entregou (e que é faturado). Uma requisição
            de UBO respondida apenas com acionistas diretos é `shareholders`.
        unavailable_reason:
          type: string
          nullable: true
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
            - null
          description: >-
            Motivo pelo qual um nível de propriedade solicitado não foi
            entregue. Nulo, a menos que `status` seja `unavailable` ou
            `pending`.
        direct_ownership_complete:
          type: boolean
          nullable: true
          description: >-
            True quando as participações declaradas dos acionistas diretos somam
            100% (com margem de um ponto percentual para arredondamento); false
            quando não somam; null quando a propriedade não foi informada ou uma
            participação não está declarada.
        unresolved:
          type: array
          description: >-
            Partes da cadeia de propriedade que o registro não conseguiu
            resolver, por exemplo, quando não há estrutura de grupo registrada
            acima dos proprietários diretos.
          items:
            type: object
            properties:
              reason:
                type: string
              section:
                type: string
                nullable: true
      required:
        - status
        - tier_requested
        - tier_delivered
        - unavailable_reason
        - direct_ownership_complete
        - unresolved
    KYBRegistrySectionError:
      type: object
      description: Uma seção que o registro não retornou.
      properties:
        status_code:
          type: integer
          nullable: true
          description: O status que o registro retornou para a seção.
      required:
        - status_code
    KYBRegistryUboResolution:
      type: object
      description: Como o nível UBO percorreu a cadeia de propriedade acima da empresa.
      properties:
        parent_chain:
          type: array
          description: Controladoras corporativas, da controladora final até a empresa.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        subsidiaries:
          type: array
          description: Empresas diretamente abaixo da empresa em seu grupo corporativo.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        unresolved:
          type: array
          description: >-
            Partes da cadeia que o registro não conseguiu resolver (as mesmas
            entradas de `ownership.unresolved`).
          items:
            type: object
            properties:
              reason:
                type: string
                description: >-
                  O motivo, por exemplo `no_group_structure_on_record`,
                  `selected_company_not_in_group_structure` ou `section_error`.
              section:
                type: string
                nullable: true
                description: A seção em questão, por exemplo `group_structure`.
            required:
              - reason
              - section
      required:
        - parent_chain
        - subsidiaries
        - unresolved
    KYBRegistryLiteEnrichment:
      type: object
      description: >-
        Campos vazios do perfil Lite que outra das fontes de registro do país
        preencheu. A fonte não é identificada.
      properties:
        fields:
          type: array
          items:
            type: string
          description: Os campos da empresa que foram preenchidos.
        people_added:
          type: integer
          description: Quantos administradores ou proprietários foram adicionados.
      required:
        - fields
        - people_added
    KYBRegistrySource:
      type: object
      description: >-
        Um registro oficial do qual o dado foi lido. Apenas registros
        governamentais oficiais, órgãos reguladores e o sistema oficial de
        identificadores são citados; qualquer outra fonte é omitida.
      properties:
        name:
          type: string
          description: Nome do registro, por exemplo `UK Companies House`.
        source_type:
          type: string
          enum:
            - official
          description: Sempre `official`.
      required:
        - name
        - source_type
    KYBRegistryGroupCompany:
      type: object
      description: >-
        Uma empresa do grupo corporativo, identificada pela sua identidade no
        registro.
      properties:
        name:
          type: string
          nullable: true
          description: Nome da empresa.
        country_code:
          type: string
          nullable: true
          description: País de registro.
        registration_number:
          type: string
          nullable: true
          description: Número de registro.
      required:
        - name
        - country_code
        - registration_number
  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.