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

> Tente novamente uma exportação assíncrona ou selecione itens de verificação falhados na Didit, com acesso só para o requerente e exclusão de sessões eliminadas.

Uma nova tentativa da API assíncrona de Relatórios volta a executar uma exportação ou coloca em fila os itens de verificação com falha selecionados. Uma nova tentativa devolve `201`; uma seleção idêntica de itens com falha devolve o relatório existente com `200`.

> [!WARNING]
>
> A tentativa seletiva exige a identidade do utilizador que fez o pedido original. Uma chave de API ou um token da aplicação sem essa identidade recebe `403` ao enviar `item_ids`, mesmo para a sua própria aplicação. O exemplo gerado com uma chave de API volta a executar a exportação completa com um corpo vazio.

Obtenha os IDs ativos em [Obter relatório assíncrono](https://docs.didit.me/pt/management-api/reports/retrieve.md) e siga as [orientações para tentar novamente os itens com falha](https://docs.didit.me/pt/console/export-pdf-csv.md#tentar-novamente-itens-com-falha-na-exportação). Envie de 1 a 1000 IDs de uma `SESSION_EXPORT` com estado `READY` ou `FAILED`, sem um intervalo de datas alternativo. Não é possível tentar novamente sessões eliminadas.


## OpenAPI

````yaml pt/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. As credenciais de aplicação/chave de API devem pertencer à
        aplicação indicada no caminho. Os tokens Bearer de membros devem ter
        acesso à aplicação. Requer também permissões de escrita para os recursos
        a exportar. Omita item_ids para executar novamente a exportação
        original, opcionalmente sobre um intervalo de datas alternativo. 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,
        apenas o requerente original (um requested_by_user_id não nulo que
        corresponda ao utilizador autenticado) pode tentar novamente uma
        SESSION_EXPORT em estado READY ou FAILED. Uma chave de API ou token de
        aplicação sem essa identidade de utilizador recebe 403 numa tentativa
        seletiva. Selecione apenas sessões com falha que não foram eliminadas,
        da exportação original; as sessões eliminadas não podem ser exportadas
        novamente. O relatório original permanece inalterado. A primeira seleção
        cria um novo relatório (201); tentar novamente a mesma seleção de itens
        devolve o relatório de nova tentativa existente (200). Seleções
        sobrepostas ou diferentes já atribuídas a outra tentativa devolvem 400.
        Consulte [Tentar novamente os itens de exportação com
        falha](https://docs.didit.me/pt/console/export-pdf-csv#tentar-novamente-itens-com-falha-na-exportação).
      operationId: retry_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identificador da organização.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identificador 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: >-
            Reprodução de uma seleção de itens falhados idêntica; devolve o
            relatório de nova tentativa existente sem colocar outro em fila.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '201':
          description: Nova exportação colocada em fila.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '400':
          description: >-
            Seleção vazia ou inválida, mais de 1000 IDs, IDs que não pertencem
            às sessões com falha ativas deste relatório, exportação não
            concluída ou que não seja de sessões, seleção de nova tentativa em
            conflito, ou intervalo de datas inválido ou misto.
        '401':
          description: Credenciais em falta, inválidas ou expiradas.
        '403':
          description: >-
            Permissões de leitura/escrita em falta, ou uma nova tentativa
            seletiva feita por alguém que não é o requerente original, incluindo
            um chamador sem identidade de utilizador.
        '404':
          description: Relatório não encontrado nesta aplicação.
        '409':
          description: O relatório está a ser eliminado; não é possível tentar 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 com falha
            desta exportação. Os duplicados são eliminados. Apenas o requerente
            original pode voltar a tentar 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: >-
            Opcional: nova data de início do período. Envie ambas as datas por
            ordem; omita para uma nova tentativa de itens com falha.
          format: date
        date_to:
          type: string
          description: >-
            Opcional: nova data de fim do 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 houver um
            e-mail do solicitante 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 apresentado para o 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 apresentado para o estado da 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 original do requerente, ou null para chamadores sem
            identidade de utilizador.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-mail do requerente, quando disponível.
          nullable: true
        requested_by_name:
          type: string
          description: Nome de apresentação do requerente, quando disponível.
          nullable: true
        row_count:
          type: integer
          description: Número de registos exportados, ou null antes da geração.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            UUIDs das sessões de produção que falharam nesta exportação de
            verificação. As sessões eliminadas são excluídas. Utilize 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 ficheiro gerado em bytes, ou null antes da geração.
          format: int64
          nullable: true
        files:
          type: array
          description: Metadados do ficheiro gerado; não contém URLs de transferência.
          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 eliminação solicitada ainda está em curso.
        eta_seconds:
          type: integer
          description: >-
            Tempo estimado, em segundos, até à conclusão de um relatório
            pendente ou em processamento; nulo 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: 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 ficheiro.
        format:
          type: string
          description: Formato do ficheiro.
        rows:
          type: integer
          description: Registos exportados neste ficheiro, quando aplicável.
          nullable: true
        bytes:
          type: integer
          description: Tamanho do ficheiro em bytes.
          format: int64
    RateLimitBudgetError:
      type: object
      description: >-
        Devolvido apenas numa recusa de orçamento de limite de pedidos do
        middleware. Outros erros 429, incluindo conflitos de idempotência e
        limites específicos de cada endpoint, não garantem estes 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 de UUID em minúsculas.
        limit:
          type: integer
          description: Orçamento do âmbito 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: >-
            Hora de reposiçã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 de espera restante.
            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 de escrita partilhado de 300 pedidos por minuto por chave de
        API foi excedido. Respeite o `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 por excesso para a janela seguinte.
        Presente nas recusas de orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        O âmbito cujo orçamento foi excedido. Presente nas recusas de orçamento
        do middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Orçamento do âmbito excedido; igual ao limite do corpo. Presente nas
        recusas por orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Orçamento restante, limitado a zero; igual a remaining do corpo.
        Presente nas recusas por orçamento do middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Hora de reposição em segundos Unix; é igual a reset no corpo. Presente
        nas recusas de orçamento do middleware.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, 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á
        incorreta, 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 o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: O token de acesso de credenciais de cliente da aplicação.

````

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