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

# Validar informe de la UIF (API)

> Comprova un informe normatiu en esborrany amb els camps obligatoris de la capçalera goAML abans de finalitzar-lo amb Didit.



Prompt de l'API per validar l'informe
        Copia el prompt al porta-retalls



      
      

\<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>



      
      

Enganxa a

Validació en mode de prova (dry-run) dels camps obligatoris de goAML, sense generar XML ni PDF. [Finalitza](https://docs.didit.me/ca/management-api/regulatory-reports/finalize.md) torna a validar internament, de manera que cridar primer aquest endpoint és opcional però útil per detectar errors aviat.## Relacionats- [Finalitzar l'informe](https://docs.didit.me/ca/management-api/regulatory-reports/finalize.md)
- [Crear informe a partir d'un cas](https://docs.didit.me/ca/management-api/regulatory-reports/create-for-case.md)
- [Eliminar l'informe](https://docs.didit.me/ca/management-api/regulatory-reports/delete.md)


## OpenAPI

````yaml ca/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 verificació d'identitat. Autentica't amb la capçalera 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 informe
      description: >-
        Comprova l'informe respecte als camps obligatoris de la capçalera de
        goAML (reporting entity ID, submission code, local currency, action
        taken, submission date), a més d'almenys una transacció adjunta i una
        jurisdicció de 2 lletres, sense generar cap fitxer. També desa el
        resultat a l'informe: validation_errors i validated_at s'actualitzen, i
        l'estat d'un informe no finalitzat passa a VALIDATED (sense errors) o
        torna a DRAFT (amb errors).
      operationId: validate_regulatory_report
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'organització.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'aplicació.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: 5ec00000-0000-4000-8000-000000000007
          description: UUID de l'informe.
      responses:
        '200':
          description: Resultat de la validació.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - VALIDATED
                      - FINALIZED
                  is_valid:
                    type: boolean
                  errors:
                    type: array
                    description: Buit quan és vàlid.
                    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: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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