> ## 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의 Management API로 케이스의 대상자와 거래 정보를 바탕으로 템플릿에서 SAR, STR, CTR 등 FIU 보고서 초안을 생성합니다.



케이스에서 보고서 생성 API 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Create a draft FIU report from a case through the Management API.

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

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

Request body (all optional if a template is given):
\{
"template": "<report-template-uuid>",   // seeds rentity_id, submission_code, currency_code_local, etc.
"report_type": "SAR",                     // required if no template
"jurisdiction": "US",                     // required if no template
"transactions": ["<transaction-uuid>"]    // optional - defaults to the case's linked transactions
}

Behavior:
\- Draft is auto-populated from the template (if given) plus the case's subject, linked transactions, and a narrative structured around the five Ws (who/what/when/where/why/how) for SAR/STR/TFR.
\- Status starts as DRAFT. Call validate then finalize next.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"template": "<uuid>"}'

Response 201: RegulatoryReportDetail with status "DRAFT".

Failure modes:
\- 400 - the referenced template was not found.
\- 401/403 - auth/permission errors (requires write:cases).

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

\</pre>



      
      

붙여넣을 곳

케이스에 대한 초안 보고서를 생성합니다. 케이스를 이미 열어 둔 상태라면 단독 생성 엔드포인트 대신 이 엔드포인트를 사용하는 것이 좋습니다. `template`은 생략할 수 있으며, `report_type`과 `jurisdiction`은 케이스에서 직접 도출됩니다.## 관련 항목- [보고서 목록 조회](https://docs.didit.me/ko/management-api/regulatory-reports/list.md)
- [보고서 검증](https://docs.didit.me/ko/management-api/regulatory-reports/validate.md)
- [보고서 확정](https://docs.didit.me/ko/management-api/regulatory-reports/finalize.md)
- [보고서 삭제](https://docs.didit.me/ko/management-api/regulatory-reports/delete.md)


## OpenAPI

````yaml ko/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/
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}/cases/{case_uuid}/regulatory-reports/:
    post:
      tags:
        - Regulatory Reports
      summary: 케이스에서 보고서 생성
      description: >-
        케이스에 대한 FIU 보고서 초안을 생성합니다. DRAFT 상태이며, 선택적 템플릿과 케이스의 대상, 연결된 거래 및 설명문에서
        자동으로 채워집니다. 유효성을 검사한 후 확정하여 goAML XML 및 PDF를 생성합니다.
      operationId: create_case_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: case_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: c1a5e000-0000-4000-8000-000000000001
          description: 케이스 UUID.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                report_type:
                  type: string
                  enum:
                    - SAR
                    - STR
                    - CTR
                    - TTR
                    - UTR
                    - IFT
                    - CBR
                    - TFR
                  description: 템플릿이 제공되지 않으면 필수입니다. 그렇지 않은 경우 템플릿의 report_type이 사용됩니다.
                jurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 2
                  description: 템플릿이 제공되지 않으면 필수입니다.
                template:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    보고서 템플릿 UUID입니다. 케이스 파생 데이터가 병합되기 전에 해당 field_config가 초안의
                    초기값을 설정합니다.
                transactions:
                  type: array
                  items:
                    type: string
                    format: uuid
                  nullable: true
                  description: 첨부할 거래입니다. 기본값은 케이스의 연결된 거래입니다.
                rentity_id:
                  type: string
                  nullable: true
                rentity_branch:
                  type: string
                  nullable: true
                submission_code:
                  type: string
                  enum:
                    - E
                    - M
                  default: E
                entity_reference:
                  type: string
                  nullable: true
                fiu_ref_number:
                  type: string
                  nullable: true
                currency_code_local:
                  type: string
                  minLength: 3
                  maxLength: 3
                  nullable: true
                submission_date:
                  type: string
                  format: date-time
                  nullable: true
                reporting_person:
                  type: object
                location:
                  type: object
                reason:
                  type: string
                  nullable: true
                action:
                  type: string
                  nullable: true
                activity:
                  type: string
                  nullable: true
                narrative:
                  type: object
                  properties:
                    who:
                      type: string
                    what:
                      type: string
                    when:
                      type: string
                    where:
                      type: string
                    why:
                      type: string
                    how:
                      type: string
                report_indicators:
                  type: array
                  items:
                    type: string
                included_fields:
                  type: array
                  items:
                    type: string
            example:
              template: 7ec00000-0000-4000-8000-000000000006
      responses:
        '201':
          description: 초안 보고서가 생성되었습니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
        '400':
          description: 참조된 템플릿을 찾을 수 없습니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    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/cases/c1a5e000-0000-4000-8000-000000000001/regulatory-reports/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"template": "7ec00000-0000-4000-8000-000000000006"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

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

            result = client.cases.regulatory_reports.create(
                "c1a5e000-0000-4000-8000-000000000001",
                template="7ec00000-0000-4000-8000-000000000006",
            )
            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.cases.regulatoryReports.create("c1a5e000-0000-4000-8000-000000000001",
            {
              template: "7ec00000-0000-4000-8000-000000000006",
            });

            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.Cases.RegulatoryReports.Create(ctx, \"c1a5e000-0000-4000-8000-000000000001\", didit.CasesRegulatoryReportsCreateParams{\n\tTemplate: didit.String(\"7ec00000-0000-4000-8000-000000000006\"),\n})\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.CasesRegulatoryReportsCreateParams;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.cases().regulatoryReports().create("c1a5e000-0000-4000-8000-000000000001",
            CasesRegulatoryReportsCreateParams.builder()
                    .template("7ec00000-0000-4000-8000-000000000006")
                    .build());
            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->cases->regulatoryReports->create('c1a5e000-0000-4000-8000-000000000001',
            [
                'template' => '7ec00000-0000-4000-8000-000000000006',
            ]);

            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.cases.regulatory_reports.create(
              "c1a5e000-0000-4000-8000-000000000001",
              template: "7ec00000-0000-4000-8000-000000000006"
            )
            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.Cases.RegulatoryReports.CreateAsync("c1a5e000-0000-4000-8000-000000000001",
            new CasesRegulatoryReportsCreateParams

            {
                Template = "7ec00000-0000-4000-8000-000000000006",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    RegulatoryReportDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_uuid:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
        report_type:
          type: string
          enum:
            - SAR
            - STR
            - CTR
            - TTR
            - UTR
            - IFT
            - CBR
            - TFR
        report_type_display:
          type: string
        report_code:
          type: string
          description: 'report_type에서 파생된 goAML 보고서 코드(예: STR, CTR, BCR)입니다.'
        report_number:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - DRAFT
            - VALIDATED
            - FINALIZED
        status_display:
          type: string
        jurisdiction:
          type: string
          minLength: 2
          maxLength: 2
        rentity_id:
          type: string
          nullable: true
          description: FIU에서 발급한 보고 기관 ID입니다.
        rentity_branch:
          type: string
          nullable: true
        submission_code:
          type: string
          enum:
            - E
            - M
        entity_reference:
          type: string
          nullable: true
        fiu_ref_number:
          type: string
          nullable: true
        currency_code_local:
          type: string
          minLength: 3
          maxLength: 3
          nullable: true
        submission_date:
          type: string
          format: date-time
          nullable: true
        reporting_person:
          type: object
        location:
          type: object
        reason:
          type: string
          nullable: true
        action:
          type: string
          nullable: true
        activity:
          type: string
          nullable: true
        narrative:
          type: object
          description: 5W 서술형 섹션입니다.
          properties:
            who:
              type: string
            what:
              type: string
            when:
              type: string
            where:
              type: string
            why:
              type: string
            how:
              type: string
        report_indicators:
          type: array
          items:
            type: string
        included_fields:
          type: array
          items:
            type: string
        transactions:
          type: array
          items:
            type: string
            format: uuid
        validation_errors:
          type: array
          description: 가장 최근 검증의 결과입니다. 각 항목은 {field, message} 객체입니다.
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
        validated_at:
          type: string
          format: date-time
          nullable: true
        finalized_at:
          type: string
          format: date-time
          nullable: true
        created_by_email:
          type: string
          nullable: true
        created_by_name:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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