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

# Emitir Diligência

> Cria uma nova diligência para emissão de certidões e/ou Análise DiHub

## Regras importantes

* Consulte `GET /credits/balance` antes de iniciar fluxos em lote.
* Use no máximo 2 comarcas por requisição.
* A Análise DiHub só é executada para titulares com 18 anos ou mais.
* Para detalhes de cobrança, veja [Consumo de créditos](/reference/consumo-creditos).

## Cenários suportados

O endpoint suporta três cenários principais:

<AccordionGroup>
  <Accordion title="Diligência completa com certidões">
    ```json theme={null}
    {
      "document": "12345678901",
      "documentIdentity": "MG12345678",
      "districts": [
        {
          "state": "MG",
          "district": "BELO_HORIZONTE"
        },
        {
          "state": "SP",
          "district": "SAO_PAULO"
        }
      ]
    }
    ```

    * `documentIdentity` é opcional e usado apenas para CPF quando a certidão exigir.

    * `districts` é obrigatório e deve conter pelo menos uma comarca.

    * `districts` pode conter até 2 comarcas.
  </Accordion>

  <Accordion title="Diligência completa com certidões e Análise DiHub">
    ```json theme={null}
    {
      "document": "12345678901",
      "documentIdentity": "MG12345678",
      "districts": [
        {
          "state": "MG",
          "district": "BELO_HORIZONTE"
        }
      ],
      "creditAnalysis": true
    }
    ```

    * `documentIdentity` é opcional e usado apenas para CPF quando a certidão exigir.
  </Accordion>

  <Accordion title="Apenas Análise DiHub">
    ```json theme={null}
    {
      "document": "12345678901",
      "creditAnalysisOnly": true
    }
    ```

    * Não é necessário informar `districts`.

    * O titular deve ter ser maior de 18 anos.

    * Quando sozinha, a Análise DiHub consome 1 crédito.
  </Accordion>
</AccordionGroup>

## Erros comuns e como tratar

<AccordionGroup>
  <Accordion title="400 - Dados de entrada inválidos">
    O `details` traz `path` e `message` indicando o campo incorreto. Verifique o formato do CPF (11 dígitos) ou CNPJ (14 caracteres — pode ser alfanumérico a partir de jul/2026) e se `districts` está preenchido quando necessário.
  </Accordion>

  <Accordion title="400 - Distritos obrigatórios">
    Enviado quando `creditAnalysisOnly` é `false` e `districts` está ausente ou vazio. Informe pelo menos uma comarca.
  </Accordion>

  <Accordion title="400 - Créditos insuficientes">
    O `details` inclui `requiredCredits` e `totalCreditsAmount`. Consulte `GET /credits/balance` e solicite créditos no [painel financeiro](https://app.dihub.com.br/perfil/financeiro).
  </Accordion>

  <Accordion title="400 - Distrito inválido">
    A comarca informada não existe para o estado. Verifique a lista em [Todas as certidões](/reference/todas-certidoes).
  </Accordion>

  <Accordion title="400 - Análise não permitida para menores">
    O titular tem menos de 18 anos. A Análise DiHub não será executada; o crédito não é cobrado.
  </Accordion>

  <Accordion title="404 - Documento do titular não encontrado">
    O CPF ou CNPJ informado não foi encontrado na base. Verifique o documento e tente novamente.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /diligences/emit
openapi: 3.0.3
info:
  title: DiHub API
  description: API para acessar as funcionalidades da plataforma DiHub
  version: 1.0.0
  contact:
    name: Suporte DiHub
    email: claudiolima@dihub.com.br
servers:
  - url: https://api.dihub.com.br
    description: Produção
  - url: https://homolog.api.dihubapp.com
    description: Homologação
security: []
tags:
  - name: Créditos
    description: Gestão de saldo de créditos
  - name: Diligências
    description: Emissão de diligências e gestão de certidões
paths:
  /diligences/emit:
    post:
      tags:
        - Diligências
      summary: Emitir diligência
      description: >-
        Cria uma nova diligência. Suporta três cenários principais:


        1. **Diligência completa com certidões**: Requer distritos e
        opcionalmente inclui análise de crédito

        2. **Apenas análise de crédito**: Realiza somente análise de crédito sem
        emissão de certidões

        3. **Combinado**: Diligência completa com análise de crédito adicional
      operationId: emitDiligence
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmitDiligenceRequest'
            examples:
              fullDiligenceCPF:
                summary: Diligência completa para CPF com um distrito
                description: >-
                  Diligência padrão para pessoa física (CPF) em um distrito.
                  Custo: 1 crédito
                value:
                  document: '12345678901'
                  documentIdentity: MG12345678
                  districts:
                    - state: MG
                      district: BELO_HORIZONTE
              fullDiligenceCNPJ:
                summary: Diligência completa para CNPJ com um distrito
                description: >-
                  Diligência padrão para pessoa jurídica (CNPJ) em um distrito.
                  Custo: 1 crédito
                value:
                  document: '12345678000190'
                  districts:
                    - state: SP
                      district: SAO_PAULO
              fullDiligenceCNPJAlfanumerico:
                summary: Diligência completa para CNPJ alfanumérico (jul/2026+)
                description: >-
                  CNPJ alfanumérico: 12 caracteres A-Z/0-9 + 2 dígitos
                  verificadores. Custo: 1 crédito
                value:
                  document: 12ABC34501DE35
                  districts:
                    - state: SP
                      district: SAO_PAULO
              multipleDistrictsSameState:
                summary: Múltiplos distritos no mesmo estado
                description: >-
                  Diligência cobrindo dois distritos no mesmo estado (ex: MG).
                  Custo: 1 crédito
                value:
                  document: '12345678901'
                  districts:
                    - state: MG
                      district: BELO_HORIZONTE
                    - state: MG
                      district: DIVINOPOLIS
              multipleDistrictsDifferentStates:
                summary: Múltiplos distritos em estados diferentes
                description: >-
                  Diligência cobrindo distritos em estados diferentes. Custo: 2
                  créditos (1 base + 1 para múltiplos estados)
                value:
                  document: '12345678901'
                  districts:
                    - state: MG
                      district: BELO_HORIZONTE
                    - state: SP
                      district: SAO_PAULO
              withCreditAnalysis:
                summary: Diligência completa com análise de crédito
                description: >-
                  Combina emissão de certidões com análise de crédito. Custo:
                  1,5 créditos (1 para diligência + 0,5 para análise). Nota:
                  Análise de crédito só é realizada se o titular tiver 18+ anos.
                value:
                  document: '12345678901'
                  documentIdentity: MG12345678
                  districts:
                    - state: MG
                      district: BELO_HORIZONTE
                  creditAnalysis: true
              creditAnalysisOnly:
                summary: Apenas análise de crédito (sem certidões)
                description: >-
                  Realiza somente análise de crédito sem emitir certidões.
                  Custo: 1 crédito. Requer que o titular tenha 18+ anos.
                value:
                  document: '12345678901'
                  creditAnalysisOnly: true
      responses:
        '200':
          description: Diligência criada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  diligenceId:
                    type: string
                    description: Identificador único da diligência criada
                    example: 550e8400-e29b-41d4-a716-446655440000
                  message:
                    type: string
                    example: Diligence emitted successfully
        '400':
          description: Erro de validação ou violação de regra de negócio
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                validationError:
                  summary: Dados de entrada inválidos
                  value:
                    message: Validation Error
                    details:
                      - path:
                          - document
                        message: >-
                          Documento inválido: CPF deve ter 11 dígitos numéricos;
                          CNPJ deve ter 12 caracteres (A-Z/0-9) + 2 dígitos
                          verificadores válidos
                missingDistricts:
                  summary: >-
                    Distritos obrigatórios para requisições que não são apenas
                    análise
                  value:
                    message: Validation Error
                    details:
                      - path:
                          - districts
                        message: >-
                          Distritos são obrigatórios quando não é apenas Análise
                          DiHub
                insufficientCredits:
                  summary: Créditos insuficientes
                  value:
                    message: Not enough credits
                    details:
                      requiredCredits: 2
                      totalCreditsAmount: 1
                invalidDistrict:
                  summary: Distrito inválido para o estado
                  value:
                    message: Invalid district INVALID_DISTRICT in state MG
                    details:
                      district:
                        state: MG
                        district: INVALID_DISTRICT
                underage:
                  summary: Análise de crédito não permitida para menores
                  value:
                    message: 'Análise não realizada: usuário menor de idade.'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Documento do titular não encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Subject Document Not Found
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    EmitDiligenceRequest:
      type: object
      required:
        - document
      properties:
        document:
          type: string
          description: >-
            CPF (11 dígitos) ou CNPJ (14 caracteres) sem formatação. A partir de
            jul/2026 o CNPJ pode ser alfanumérico: 12 caracteres (A-Z maiúsculo
            / 0-9) + 2 dígitos verificadores numéricos.
          minLength: 11
          maxLength: 14
          pattern: ^[0-9]{11}$|^[A-Z0-9]{12}[0-9]{2}$
          example: '12345678901'
        documentIdentity:
          type: string
          description: Documento de identidade (RG) - opcional, apenas para CPF
          minLength: 6
          maxLength: 15
          example: MG12345678
        districts:
          type: array
          description: >-
            Lista de distritos onde as certidões devem ser emitidas. Obrigatório
            exceto quando creditAnalysisOnly é true. Máximo 2 distritos.
          minItems: 1
          maxItems: 2
          items:
            $ref: '#/components/schemas/StateDistrict'
          example:
            - state: MG
              district: BELO_HORIZONTE
        creditAnalysis:
          type: boolean
          description: >-
            Se deve incluir análise de crédito (Serasa) além das certidões.
            Adiciona 0,5 créditos ao custo. Só é realizada se o titular tiver
            18+ anos.
          default: false
        creditAnalysisOnly:
          type: boolean
          description: >-
            Se true, realiza apenas análise de crédito sem emitir certidões.
            Distritos não são obrigatórios. Titular deve ter 18+ anos.
          default: false
        useOldModel:
          type: boolean
          description: >-
            Se deve usar o modelo antigo de relatório de análise de crédito
            (true) ou o novo modelo de aluguel (false). Aplica-se apenas a
            requisições de análise de crédito. Modelos: antigo usa
            CREDIT_ANALYSIS_PF/PJ, novo usa CREDIT_ANALYSIS_PF_RENT/PJ_RENT
          default: false
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Mensagem de erro
          example: Validation Error
        details:
          oneOf:
            - type: array
              items:
                type: object
                properties:
                  path:
                    type: array
                    items:
                      type: string
                  message:
                    type: string
            - type: object
    StateDistrict:
      type: object
      required:
        - state
        - district
      properties:
        state:
          type: string
          description: Sigla do estado brasileiro (UF)
          minLength: 1
          maxLength: 100
          example: MG
        district:
          type: string
          description: Nome do distrito (comarca) em maiúsculas com underscores
          minLength: 1
          maxLength: 100
          example: BELO_HORIZONTE
  responses:
    UnauthorizedError:
      description: Credenciais de autenticação ausentes ou inválidas
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Unauthorized
    InternalServerError:
      description: Erro interno do servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: Internal Server Error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Token
      description: Chave de API para autenticação. Envie o token no header X-Api-Token.

````