Didit Regulatory Reports API

The Regulatory Reports API from Didit — 6 operation(s) for regulatory reports.

Operations 10

GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/ List reports for case #
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/ Create report from case #
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/ List reports #
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/ Create standalone report #
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/ Get report #
PATCH /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/ Update report #
DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/ Delete report #
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/ Validate report #
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/ Finalize report #
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/ Get report download URL #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/didit-regulatory-reports-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

didit-regulatory-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 3.0.0
  title: Didit Verification Billing Regulatory Reports API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
- url: https://verification.didit.me
tags:
- name: Regulatory Reports
paths:
  /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/:
    get:
      summary: List reports for case
      description: List FIU reports generated for the case.
      operationId: list_case_regulatory_reports
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: case_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: c1a5e000-0000-4000-8000-000000000001
        description: Case UUID.
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
          minimum: 1
        description: Page size.
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
          minimum: 0
        description: Zero-based offset.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X GET '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/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '200':
          description: Paginated reports for the case.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Number of matching rows, capped at 100 for performance.
                  next:
                    type:
                    - string
                    - 'null'
                  previous:
                    type:
                    - string
                    - 'null'
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegulatoryReportDetail'
    post:
      summary: Create report from case
      description: 'Create a draft FIU report for the case: DRAFT status, auto-populated from the optional template plus the case''s subject, linked transactions, and narrative. Validate then finalize to produce the goAML XML and PDF.'
      operationId: create_case_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: case_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: c1a5e000-0000-4000-8000-000000000001
        description: Case 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: Required unless a template is given; the template's report_type is used otherwise.
                jurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 2
                  description: Required unless a template is given.
                template:
                  type:
                  - string
                  - 'null'
                  format: uuid
                  description: Report template UUID; its field_config seeds the draft before case-derived data is merged in.
                transactions:
                  type:
                  - array
                  - 'null'
                  items:
                    type: string
                    format: uuid
                  description: Transactions to attach; defaults to the case's linked transactions.
                rentity_id:
                  type:
                  - string
                  - 'null'
                rentity_branch:
                  type:
                  - string
                  - 'null'
                submission_code:
                  type: string
                  enum:
                  - E
                  - M
                  default: E
                entity_reference:
                  type:
                  - string
                  - 'null'
                fiu_ref_number:
                  type:
                  - string
                  - 'null'
                currency_code_local:
                  type:
                  - string
                  - 'null'
                  minLength: 3
                  maxLength: 3
                submission_date:
                  type:
                  - string
                  - 'null'
                  format: date-time
                reporting_person:
                  type: object
                location:
                  type: object
                reason:
                  type:
                  - string
                  - 'null'
                action:
                  type:
                  - string
                  - 'null'
                activity:
                  type:
                  - string
                  - 'null'
                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
      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/' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"template\": \"7ec00000-0000-4000-8000-000000000006\"}'"
      responses:
        '201':
          description: Draft report created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
        '400':
          description: The referenced template was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
  /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/:
    get:
      summary: List reports
      description: Application-wide FIU report list, optionally filtered by status, report_type, or case.
      operationId: list_regulatory_reports
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
          minimum: 1
        description: Page size.
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
          minimum: 0
        description: Zero-based offset.
      - name: status
        in: query
        schema:
          type: string
          enum:
          - DRAFT
          - VALIDATED
          - FINALIZED
        description: Filter by status.
      - name: report_type
        in: query
        schema:
          type: string
          enum:
          - SAR
          - STR
          - CTR
          - TTR
          - UTR
          - IFT
          - CBR
          - TFR
        description: Filter by report type.
      - name: case
        in: query
        schema:
          type: string
          format: uuid
        description: Filter to reports on this case.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X GET 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '200':
          description: Paginated reports across the application.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Number of matching rows, capped at 100 for performance.
                  next:
                    type:
                    - string
                    - 'null'
                  previous:
                    type:
                    - string
                    - 'null'
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegulatoryReportDetail'
    post:
      summary: Create standalone report
      description: 'Create a draft FIU report from the standalone Reports page: both case and template are required (unlike the case-scoped create, which can omit template).'
      operationId: create_standalone_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - case
              - template
              properties:
                case:
                  type: string
                  format: uuid
                template:
                  type: string
                  format: uuid
                report_type:
                  type: string
                  enum:
                  - SAR
                  - STR
                  - CTR
                  - TTR
                  - UTR
                  - IFT
                  - CBR
                  - TFR
                  description: Required unless a template is given; the template's report_type is used otherwise.
                jurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 2
                  description: Required unless a template is given.
                transactions:
                  type:
                  - array
                  - 'null'
                  items:
                    type: string
                    format: uuid
                  description: Transactions to attach; defaults to the case's linked transactions.
                rentity_id:
                  type:
                  - string
                  - 'null'
                rentity_branch:
                  type:
                  - string
                  - 'null'
                submission_code:
                  type: string
                  enum:
                  - E
                  - M
                  default: E
                entity_reference:
                  type:
                  - string
                  - 'null'
                fiu_ref_number:
                  type:
                  - string
                  - 'null'
                currency_code_local:
                  type:
                  - string
                  - 'null'
                  minLength: 3
                  maxLength: 3
                submission_date:
                  type:
                  - string
                  - 'null'
                  format: date-time
                reporting_person:
                  type: object
                location:
                  type: object
                reason:
                  type:
                  - string
                  - 'null'
                action:
                  type:
                  - string
                  - 'null'
                activity:
                  type:
                  - string
                  - 'null'
                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
      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/' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"case\": \"c1a5e000-0000-4000-8000-000000000001\", \"template\": \"7ec00000-0000-4000-8000-000000000006\"}'"
      responses:
        '201':
          description: Draft report created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
        '400':
          description: The referenced template was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
  /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/:
    get:
      summary: Get report
      description: Retrieve a regulatory report.
      operationId: get_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X GET 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '200':
          description: Report detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
    patch:
      summary: Update report
      description: Edit a draft or validated report's fields. Finalized reports cannot be edited (409).
      operationId: update_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                jurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 2
                rentity_id:
                  type:
                  - string
                  - 'null'
                rentity_branch:
                  type:
                  - string
                  - 'null'
                submission_code:
                  type: string
                  enum:
                  - E
                  - M
                  default: E
                entity_reference:
                  type:
                  - string
                  - 'null'
                fiu_ref_number:
                  type:
                  - string
                  - 'null'
                currency_code_local:
                  type:
                  - string
                  - 'null'
                  minLength: 3
                  maxLength: 3
                submission_date:
                  type:
                  - string
                  - 'null'
                  format: date-time
                reporting_person:
                  type: object
                location:
                  type: object
                reason:
                  type:
                  - string
                  - 'null'
                action:
                  type:
                  - string
                  - 'null'
                activity:
                  type:
                  - string
                  - 'null'
                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
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X PATCH 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"rentity_id\": \"FIU-US-00123\", \"currency_code_local\": \"USD\"}'"
      responses:
        '200':
          description: Updated report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
        '409':
          description: Report is already finalized.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
    delete:
      summary: Delete report
      description: Soft-delete a draft or validated report. Finalized reports cannot be deleted (409).
      operationId: delete_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X DELETE 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '204':
          description: Report deleted.
        '409':
          description: Report is already finalized.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
  /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/:
    post:
      summary: Validate report
      description: '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. Also stores the result on the report: validation_errors and validated_at are updated, and a non-finalized report''s status moves to VALIDATED (no errors) or back to DRAFT (errors).'
      operationId: validate_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      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/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - DRAFT
                    - VALIDATED
                    - FINALIZED
                  is_valid:
                    type: boolean
                  errors:
                    type: array
                    description: Empty when valid.
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
  /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/:
    post:
      summary: Finalize report
      description: Re-validate, then render the goAML XML and PDF and upload both to S3. On SAR/STR/TFR reports, this also moves the case's transaction alerts from Pending SAR to SAR filed.
      operationId: finalize_regulatory_report
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      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/finalize/' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      - lang: python
        label: Python
        source: "import os\n\nimport requests\n\nresp = requests.post(\n    'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/finalize/',\n    headers={'x-api-key': os.environ['DIDIT_API_KEY']},\n    timeout=30,\n)\nif resp.status_code == 400:\n    print('Validation failed:', resp.json()['errors'])\nelse:\n    resp.raise_for_status()\n    report = resp.json()\n    print(report['status'], report['report_number'])"
      responses:
        '200':
          description: Report finalized; xml_s3_key and pdf_s3_key are set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportDetail'
        '400':
          description: Report failed validation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
        '409':
          description: Report is not in a finalizable state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
  /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/:
    get:
      summary: Get report download URL
      description: Mint a presigned URL for a finalized report's goAML XML or PDF.
      operationId: get_regulatory_report_download_url
      tags:
      - Regulatory Reports
      parameters:
      - name: organization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Organization UUID.
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Application UUID.
      - name: report_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 5ec00000-0000-4000-8000-000000000007
        description: Report UUID.
      - name: file
        in: query
        schema:
          type: string
          enum:
          - pdf
          - xml
          default: pdf
        description: Which file to download.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X GET 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/regulatory-reports/5ec00000-0000-4000-8000-000000000007/download-url/?file=xml' \\\n  -H 'x-api-key: YOUR_API_KEY'"
      responses:
        '200':
          description: Presigned download URL.
          content:
            application/json:
              schema:
                type: object
                properties:
                  download_url:
                    type: string
                    format: uri
                  file:
                    type: string
                    enum:
                    - pdf
                    - xml
        '409':
          description: Report is not finalized yet.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  status:
                    type: string
components:
  schemas:
    RegulatoryReportDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_uuid:
          type: string
          format: uuid
        case_number:
          type:
          - string
          - 'null'
        report_type:
          type: string
          enum:
          - SAR
          - STR
          - CTR
          - TTR
          - UTR
          - IFT
          - CBR
          - TFR
        report_type_display:
          type: string
        report_code:
          type: string
          description: goAML report code derived from report_type, e.g. STR, CTR, BCR.
        report_number:
          type:
          - string
          - 'null'
        status:
          type: string
          enum:
          - DRAFT
          - VALIDATED
          - FINALIZED
        status_display:
          type: string
        jurisdiction:
          type: string
          minLength: 2
          maxLength: 2
        rentity_id:
          type:
          - string
          - 'null'
          description: Reporting entity ID issued by the FIU.
        rentity_branch:
          type:
          - string
          - 'null'
        submission_code:
          type: string
          enum:
          - E
          - M
        entity_reference:
          type:
          - string
          - 'null'
        fiu_ref_number:
          type:
          - string
          - 'null'
        currency_code_local:
          type:
          - string
          - 'null'
          minLength: 3
          maxLength: 3
        submission_date:
          type:
          - string
          - 'null'
          format: date-time
        reporting_person:
          type: object
        location:
          type: object
        reason:
          type:
          - string
          - 'null'
        action:
          type:
          - string
          - 'null'
        activity:
          type:
          - string
          - 'null'
        narrative:
          type: object
          description: Five Ws narrative sections.
          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: Result of the most recent validation; each entry is a {field, message} object.
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
        validated_at:
          type:
          - string
          - 'null'
  

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/didit/refs/heads/main/openapi/didit-regulatory-reports-api-openapi.yml