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

# Validasi Laporan FIU API

> Periksa draf laporan regulasi di Didit terhadap kolom header goAML yang wajib diisi sebelum laporan tersebut difinalisasi.



Prompt API Validasi Laporan
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke

Validasi simulasi terhadap kolom goAML wajib, tanpa menghasilkan XML atau PDF. [Finalisasi](https://docs.didit.me/id/management-api/regulatory-reports/finalize.md) melakukan validasi ulang secara internal, sehingga memanggil endpoint ini terlebih dahulu bersifat opsional, tetapi berguna untuk menampilkan kesalahan lebih awal.## Terkait- [Finalisasi laporan](https://docs.didit.me/id/management-api/regulatory-reports/finalize.md)
- [Buat laporan dari kasus](https://docs.didit.me/id/management-api/regulatory-reports/create-for-case.md)
- [Hapus laporan](https://docs.didit.me/id/management-api/regulatory-reports/delete.md)


## OpenAPI

````yaml id/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 Verifikasi Identitas. Lakukan autentikasi dengan header 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: Validasi laporan
      description: >-
        Periksa laporan terhadap kolom header goAML wajib (ID entitas pelapor,
        kode pengiriman, mata uang lokal, tindakan yang diambil, tanggal
        pengiriman), ditambah setidaknya satu transaksi terlampir dan yurisdiksi
        2 huruf, tanpa menghasilkan file apa pun. Juga menyimpan hasilnya pada
        laporan: validation_errors dan validated_at diperbarui, dan status
        laporan yang belum difinalisasi berubah menjadi VALIDATED (tidak ada
        kesalahan) atau kembali ke DRAFT (ada kesalahan).
      operationId: validate_regulatory_report
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID organisasi.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID aplikasi.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: 5ec00000-0000-4000-8000-000000000007
          description: UUID laporan.
      responses:
        '200':
          description: Hasil validasi.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - VALIDATED
                      - FINALIZED
                  is_valid:
                    type: boolean
                  errors:
                    type: array
                    description: Kosong jika valid.
                    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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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