> ## 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 para validar relatório à UIF

> Com a Didit, valide um rascunho de relatório regulatório contra os campos obrigatórios do cabeçalho goAML antes de finalizá-lo.



Prompt da API de validação de relatório
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`Validate a FIU report through the Management API without finalizing it.

Endpoint:
POST https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/

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

Goal:
\- Check the report against the obligatory goAML header fields (reporting entity ID, submission code, local currency, action taken, submission date), plus at least one attached transaction and a 2-letter jurisdiction, without generating any files. Use this to show inline validation errors before the officer commits to finalizing.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/" \
-H "x-api-key: YOUR_API_KEY"

Response 200:
\{
"status": "DRAFT",
"is_valid": false,
"errors": [
\{"field": "rentity_id", "message": "Reporting entity ID is required."},
\{"field": "submission_date", "message": "Submission date is required."}
]
}
errors is an array of {field, message} objects (empty when valid).

Failure modes:
\- 401/403 - auth/permission errors (requires write:cases).
\- 404 - report not found.

Side effects: updates the report's validation_errors and validated_at, and moves a non-finalized report's status to VALIDATED (no errors) or back to DRAFT (errors). Does not generate files. Finalize does its own re-validation regardless.

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

\</pre>



      
      

Colar em

Validação de teste (dry-run) dos campos obrigatórios do goAML, sem gerar XML nem PDF. A [finalização](https://docs.didit.me/pt-br/management-api/regulatory-reports/finalize.md) valida o relatório novamente internamente, por isso chamar este endpoint antes é opcional, mas útil para identificar erros mais cedo.## Conteúdos relacionados- [Finalizar relatório](https://docs.didit.me/pt-br/management-api/regulatory-reports/finalize.md)
- [Criar relatório a partir de um caso](https://docs.didit.me/pt-br/management-api/regulatory-reports/create-for-case.md)
- [Excluir relatório](https://docs.didit.me/pt-br/management-api/regulatory-reports/delete.md)


## OpenAPI

````yaml pt-br/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/
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}/regulatory-reports/{report_uuid}/validate/:
    post:
      tags:
        - Regulatory Reports
      summary: Validar relatório
      description: >-
        Valida o relatório em relação aos campos de cabeçalho obrigatórios do
        goAML (ID da entidade declarante, código de envio, moeda local, ação
        tomada, data de envio), além de exigir pelo menos uma transação anexada
        e uma jurisdição de 2 letras, sem gerar nenhum arquivo. Também armazena
        o resultado no relatório: validation_errors e validated_at são
        atualizados, e o status de um relatório não finalizado passa para
        VALIDATED (sem erros) ou volta para DRAFT (com erros).
      operationId: validate_regulatory_report
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da organização.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da aplicação.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: 5ec00000-0000-4000-8000-000000000007
          description: UUID do relatório.
      responses:
        '200':
          description: Resultado da validação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - VALIDATED
                      - FINALIZED
                  is_valid:
                    type: boolean
                  errors:
                    type: array
                    description: Vazio quando válido.
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/validate/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

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

            result = client.regulatory_reports.validate(
                "5ec00000-0000-4000-8000-000000000007",
            )
            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.regulatoryReports.validate("5ec00000-0000-4000-8000-000000000007");

            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.RegulatoryReports.Validate(ctx, \"5ec00000-0000-4000-8000-000000000007\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.regulatoryReports().validate("5ec00000-0000-4000-8000-000000000007");

            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->regulatoryReports->validate('5ec00000-0000-4000-8000-000000000007');

            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.regulatory_reports.validate("5ec00000-0000-4000-8000-000000000007")

            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.RegulatoryReports.ValidateAsync("5ec00000-0000-4000-8000-000000000007");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.