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

# Валидация регуляторного отчёта FIU через API

> Didit позволяет проверить черновик регуляторного отчёта на соответствие обязательным полям заголовка goAML перед финализацией.



Промпт API для проверки отчёта
        Скопировать промпт в буфер обмена



      
      

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



      
      

Вставьте в

Тестовый запуск проверки по обязательным полям goAML без генерации XML или PDF. [Завершение](https://docs.didit.me/ru/management-api/regulatory-reports/finalize.md) повторно выполняет проверку внутри системы, поэтому вызывать этот метод заранее необязательно, но это полезно, чтобы выявить ошибки на раннем этапе.## Связанные материалы- [Завершить отчёт](https://docs.didit.me/ru/management-api/regulatory-reports/finalize.md)
- [Создать отчёт из кейса](https://docs.didit.me/ru/management-api/regulatory-reports/create-for-case.md)
- [Удалить отчёт](https://docs.didit.me/ru/management-api/regulatory-reports/delete.md)


## OpenAPI

````yaml ru/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 верификации личности. Аутентификация выполняется с помощью заголовка
    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: Проверить отчёт
      description: >-
        Проверяет отчёт на наличие обязательных полей заголовка goAML (ID
        отчитывающейся организации, код отправки, местная валюта, предпринятое
        действие, дата отправки), а также как минимум одной прикреплённой
        транзакции и 2-буквенного кода юрисдикции без генерации файлов. Также
        сохраняет результат в отчёте: обновляются validation_errors и
        validated_at, а статус неокончательного отчёта переходит в VALIDATED
        (при отсутствии ошибок) или возвращается в DRAFT (при наличии ошибок).
      operationId: validate_regulatory_report
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID организации.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID приложения.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: 5ec00000-0000-4000-8000-000000000007
          description: UUID отчёта.
      responses:
        '200':
          description: Результат валидации.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - VALIDATED
                      - FINALIZED
                  is_valid:
                    type: boolean
                  errors:
                    type: array
                    description: Пусто при валидности.
                    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: >-
        API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в
        Business Console. Основной ключ имеет полный доступ. Именованный ключ
        может иметь ограниченную область действия: без доступа, чтение или
        запись для каждого ресурса, ограничение определенными сценариями или
        одобренными сессиями, списком IP-адресов и сроком действия. 401
        означает, что ключ неверен, отозван или его срок действия истек; 403
        означает, что ключ не был передан, у ключа нет доступа к этому ресурсу
        или действию, либо запрос поступил с адреса вне его списка IP-адресов;
        404 на маршруте сессии означает, что сессия не входит в сценарии или
        статусы ключа. Ключ без доступа к медиа получает URL изображений, видео
        и PDF как null, а ключ без прав на запись сессий получает ссылки на
        сессии и токены как null. См. https://docs.didit.me/console/api-keys.

````

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