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

# Tentar novamente relatório assíncrono da API

> Tente novamente uma exportação assíncrona da Didit ou itens com falha. Acesso restrito ao solicitante; sessões excluídas são ignoradas.

A API Reports assíncrona da Didit executa uma exportação novamente ou enfileira itens de verificação com falha selecionados. Uma nova tentativa retorna `201`; uma seleção idêntica de itens com falha retorna o relatório existente com `200`.

> [!WARNING]
>
> A nova tentativa seletiva exige a identidade do usuário solicitante original. Uma chave de API ou um token de aplicação sem essa identidade recebe `403` ao enviar `item_ids`, mesmo para a própria aplicação. O exemplo gerado com chave de API executa novamente a exportação inteira com um corpo vazio.

Leia os IDs reais em [Recuperar relatório assíncrono](https://docs.didit.me/pt-br/management-api/reports/retrieve.md) e siga o [guia de nova tentativa de itens com falha](https://docs.didit.me/pt-br/console/export-pdf-csv.md#tentar-novamente-os-itens-com-falha-da-exportação). Envie de 1 a 1000 IDs de uma `SESSION_EXPORT` com status `READY` ou `FAILED`, sem um intervalo de datas substituto. Sessões excluídas não podem ser tentadas novamente.


## OpenAPI

````yaml pt-br/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/
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/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/:
    post:
      tags:
        - Reports
      summary: Tentar novamente o relatório assíncrono
      description: >-
        Requer permissões de leitura para todos os recursos abrangidos pelo
        relatório. Credenciais de aplicação ou chave de API devem pertencer à
        aplicação no caminho. Tokens Bearer de membro devem ter acesso à
        aplicação. Também requer permissões de gravação para os recursos que
        estão sendo exportados. Omita item_ids para executar novamente a
        exportação original, opcionalmente sobre um intervalo de datas
        substituto. Um relatório criado como nova tentativa de itens com falha
        exige uma seleção explícita de item_ids para novas tentativas. Com
        item_ids, somente o solicitante original (um requested_by_user_id não
        nulo correspondente ao usuário autenticado) pode tentar novamente uma
        SESSION_EXPORT em READY ou FAILED. Uma chave de API ou token de
        aplicação sem essa identidade de usuário recebe 403 em uma nova
        tentativa seletiva. Selecione somente sessões com falha não excluídas da
        exportação original; sessões excluídas não podem ser exportadas
        novamente. O relatório original permanece inalterado. A primeira seleção
        cria um novo relatório (201); reenviar o mesmo conjunto selecionado
        retorna o relatório de nova tentativa existente (200). Seleções
        sobrepostas ou diferentes já atribuídas a outra nova tentativa retornam
        400. Consulte [Tentar novamente itens de exportação com
        falha](https://docs.didit.me/pt-br/console/export-pdf-csv#tentar-novamente-os-itens-com-falha-da-exportação).
      operationId: retry_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID da organização.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID da aplicação.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID do relatório.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncReportRetryRequest'
            example: {}
      responses:
        '200':
          description: >-
            Repetição idêntica da seleção de itens com falha; retorna o
            relatório de nova tentativa existente sem enfileirar outro.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '201':
          description: Nova exportação colocada na fila.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '400':
          description: >-
            Seleção inválida ou vazia, mais de 1000 IDs, IDs que não estão entre
            as sessões com falha ativas deste relatório, exportação não
            concluída ou que não é de sessões, seleção de nova tentativa
            conflitante, ou intervalo de datas inválido ou misto.
        '401':
          description: Credenciais ausentes, inválidas ou expiradas.
        '403':
          description: >-
            Permissões de leitura/gravação ausentes ou uma nova tentativa
            seletiva feita por alguém diferente do solicitante original,
            incluindo um chamador sem identidade de usuário.
        '404':
          description: Relatório não encontrado nesta aplicação.
        '409':
          description: O relatório está sendo excluído; ele não pode ser tentado novamente.
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

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


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


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

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Reports.Retry(ctx, \"11111111-2222-3333-4444-555555555555\", didit.AsyncReportRetryRequest{})\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.AsyncReportRetryRequest;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.reports().retry("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_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->reports->retry('11111111-2222-3333-4444-555555555555');

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

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.reports.retry("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, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


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

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AsyncReportRetryRequest:
      type: object
      properties:
        item_ids:
          type: array
          description: >-
            Seleção opcional de 1 a 1000 UUIDs de sessões de produção que
            falharam nesta exportação. Duplicatas são unificadas. Somente o
            solicitante original pode tentar novamente um subconjunto. Não pode
            ser combinado com date_from/date_to.
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 1000
        date_from:
          type: string
          description: >-
            Início opcional do novo período. Envie as duas datas em ordem; omita
            para uma nova tentativa de itens com falha.
          format: date
        date_to:
          type: string
          description: Fim opcional do novo período, igual ou posterior a date_from.
          format: date
        notify_on_ready:
          type: boolean
          description: >-
            Enviar um e-mail ao solicitante quando estiver pronto, se um e-mail
            do solicitante estiver disponível.
          default: false
    AsyncReport:
      type: object
      required:
        - uuid
        - report_type
        - report_type_display
        - status
        - status_display
        - parameters
        - requested_by_user_id
        - requested_by_email
        - requested_by_name
        - row_count
        - failed_item_ids
        - failed_count
        - file_size
        - files
        - scheduled_report
        - error_message
        - deletion_pending
        - eta_seconds
        - started_at
        - completed_at
        - expires_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          description: Identificador do relatório.
          format: uuid
        report_type:
          type: string
          description: Tipo de exportação ou de relatório de conformidade.
          enum:
            - SESSION_EXPORT
            - TRANSACTION_EXPORT
            - BUSINESS_EXPORT
            - VENDOR_USER_EXPORT
            - VENDOR_BUSINESS_EXPORT
            - CASE_EXPORT
            - CASE_SLA_EXPORT
            - LIST_ENTRY_EXPORT
            - EVENT_EXPORT
            - COMPLIANCE_KYC_KYB
            - COMPLIANCE_AML_LOG
            - COMPLIANCE_TRAVEL_RULE
            - COMPLIANCE_SANCTIONS_PEP
            - COMPLIANCE_RISK_SUMMARY
            - COMPLIANCE_SAR_STR_DRAFT
            - COMPLIANCE_CTR
            - COMPLIANCE_CASE_SUMMARY
        report_type_display:
          type: string
          description: Rótulo de exibição do tipo de relatório.
        status:
          type: string
          description: >-
            Estado da geração. READY pode incluir falhas individuais; verifique
            failed_count.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: Rótulo de exibição do estado de geração.
        parameters:
          type: object
          description: Opções originais da exportação; as chaves dependem de report_type.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: >-
            Identidade do solicitante original, ou null para chamadores sem
            identidade de usuário.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-mail do solicitante, quando disponível.
          nullable: true
        requested_by_name:
          type: string
          description: Nome de exibição do solicitante, quando disponível.
          nullable: true
        row_count:
          type: integer
          description: Número de registros exportados, ou null antes da geração.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            UUIDs de sessões de produção que falharam nesta exportação de
            verificação. Sessões excluídas são desconsideradas. Use estes IDs
            para uma nova tentativa seletiva.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: Número de entradas em failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: Tamanho total do arquivo gerado em bytes, ou null antes da geração.
          format: int64
          nullable: true
        files:
          type: array
          description: Metadados do arquivo gerado; não contém URLs de download.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: >-
            Identificador do agendamento, ou null para um relatório não
            agendado.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: Erro de geração, quando disponível.
          nullable: true
        deletion_pending:
          type: boolean
          description: Indica se uma exclusão solicitada ainda está em andamento.
        eta_seconds:
          type: integer
          description: >-
            Segundos estimados até a conclusão de um relatório pendente ou em
            processamento; null sem histórico ou quando concluído.
          nullable: true
        started_at:
          type: string
          description: Data e hora de início da geração.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: Data e hora de conclusão da geração.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: Data e hora de expiração do relatório.
          format: date-time
        created_at:
          type: string
          description: Data e hora de criação.
          format: date-time
        updated_at:
          type: string
          description: Data e hora da última atualização.
          format: date-time
      example:
        uuid: 00000000-0000-4000-8000-000000000002
        report_type: SESSION_EXPORT
        report_type_display: Verifications
        status: READY
        status_display: Ready
        parameters: {}
        requested_by_user_id: null
        requested_by_email: null
        requested_by_name: null
        row_count: 9
        failed_item_ids:
          - 00000000-0000-4000-8000-000000000001
        failed_count: 1
        file_size: 1200
        files:
          - name: verifications.csv
            format: csv
            rows: 9
            bytes: 1200
        scheduled_report: null
        error_message: null
        deletion_pending: false
        eta_seconds: null
        started_at: '2026-11-11T01:00:00Z'
        completed_at: '2026-11-11T01:01:00Z'
        expires_at: '2026-12-11T01:00:00Z'
        created_at: '2026-11-11T01:00:00Z'
        updated_at: '2026-11-11T01:01:00Z'
    AsyncReportFile:
      type: object
      required:
        - name
        - format
        - rows
        - bytes
      properties:
        name:
          type: string
          description: Nome do arquivo.
        format:
          type: string
          description: Formato do arquivo.
        rows:
          type: integer
          description: Registros exportados neste arquivo, quando aplicável.
          nullable: true
        bytes:
          type: integer
          description: Tamanho do arquivo em bytes.
          format: int64
    RateLimitBudgetError:
      type: object
      description: >-
        Retornado somente em uma recusa de orçamento de limite de requisições do
        middleware. Outros erros 429, incluindo conflitos de idempotência e
        limites específicos de endpoint, não garantem esses campos de metadados.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Mensagem de recusa por orçamento já existente, legível por humanos.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: >-
            Referência de suporte opaca: RL- seguido de 32 caracteres
            hexadecimais minúsculos de um UUID.
        limit:
          type: integer
          description: Orçamento do escopo excedido; igual a X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: Orçamento restante, limitado a zero; igual a X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Horário de redefinição da janela em segundos Unix; é igual a
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Duração da janela fixa em segundos, não o tempo restante de espera.
            Respeite Retry-After antes de tentar novamente.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
  responses:
    RateLimitedWrite:
      description: >-
        O limite compartilhado de escrita de 300 requisições por minuto por
        chave de API foi excedido. Respeite `Retry-After` antes de tentar
        novamente.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 300
            remaining: 0
            reset: 1794358860
            window_seconds: 60
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
  headers:
    BudgetRetryAfter:
      description: >-
        Segundos a aguardar, arredondados para cima até a próxima janela.
        Presente nas recusas de orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        O escopo cujo orçamento foi excedido. Presente nas recusas de orçamento
        do middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Orçamento do escopo excedido; igual ao limite do corpo. Presente nas
        recusas de orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Orçamento restante, limitado a zero; igual a remaining no corpo.
        Presente nas recusas de orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Horário da redefinição em segundos Unix; igual à redefinição no corpo.
        Presente nas recusas de orçamento do middleware.
      schema:
        type: integer
  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.
    BearerAuth:
      type: http
      scheme: bearer
      description: O token de acesso de client credentials da aplicação.

````

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