Didit Report Templates API
The Report Templates API from Didit — 2 operation(s) for report templates.
The Report Templates API from Didit — 2 operation(s) for report templates.
openapi: 3.0.0
info:
version: 3.0.0
title: Didit Verification Billing Report Templates API
description: Identity verification API. Authenticate with x-api-key header.
servers:
- url: https://verification.didit.me
tags:
- name: Report Templates
paths:
/v3/organization/{organization_id}/application/{application_id}/report-templates/:
get:
summary: List report templates
description: List FIU report templates for the application.
operationId: list_report_templates
tags:
- Report Templates
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.
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/report-templates/' \\\n -H 'x-api-key: YOUR_API_KEY'"
responses:
'200':
description: Paginated templates.
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Number of matching rows, capped at 100 for performance.
next:
type: string
nullable: true
previous:
type: string
nullable: true
results:
type: array
items:
$ref: '#/components/schemas/ReportTemplateDetail'
post:
summary: Create report template
description: Create a reusable per-jurisdiction, per-report-type goAML header template. Rejected with 400 if any of the template-level obligatory fields (rentity_id, submission_code, currency_code_local) is missing from field_config; an invalid template cannot be saved or used to create a report. Per-filing header fields (action, submission_date, transactions) are enforced at report validate/finalize time instead.
operationId: create_report_template
tags:
- Report Templates
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:
- name
- jurisdiction
- report_type
properties:
name:
type: string
jurisdiction:
type: string
minLength: 2
maxLength: 2
description: ISO 3166-1 alpha-2 country code, upper-cased on save.
report_type:
type: string
enum:
- SAR
- STR
- CTR
- TTR
- UTR
- IFT
- CBR
- TFR
field_config:
type: object
description: 'Reusable goAML header defaults. Template-level obligatory fields: rentity_id, submission_code, and currency_code_local (3-letter). Optional: enabled_fields (which optional report blocks to include) plus reporting_person, location, reason, and action defaults. Per-filing header fields (action, submission_date, transactions, jurisdiction) are enforced when the report is validated or finalized, not on the template.'
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/report-templates/' \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"name\": \"US SAR default\", \"jurisdiction\": \"US\", \"report_type\": \"SAR\", \"field_config\": {\"rentity_id\": \"FIU-US-00123\", \"submission_code\": \"E\", \"currency_code_local\": \"USD\"}}'"
- 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/report-templates/',\n headers={'x-api-key': os.environ['DIDIT_API_KEY']},\n json={\n 'name': 'US SAR default',\n 'jurisdiction': 'US',\n 'report_type': 'SAR',\n 'field_config': {'rentity_id': 'FIU-US-00123', 'submission_code': 'E', 'currency_code_local': 'USD'},\n },\n timeout=10,\n)\nresp.raise_for_status()\nprint(resp.json()['uuid'])"
responses:
'201':
description: Template created.
content:
application/json:
schema:
$ref: '#/components/schemas/ReportTemplateDetail'
'400':
description: Unrecognized jurisdiction, or field_config fails obligatory-field validation.
content:
application/json:
schema:
type: object
properties:
errors:
type: array
items:
type: string
/v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/:
get:
summary: Get report template
description: Retrieve a report template.
operationId: get_report_template
tags:
- Report Templates
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: template_uuid
in: path
required: true
schema:
type: string
format: uuid
example: 7ec00000-0000-4000-8000-000000000006
description: Report template 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/report-templates/7ec00000-0000-4000-8000-000000000006/' \\\n -H 'x-api-key: YOUR_API_KEY'"
responses:
'200':
description: Template detail.
content:
application/json:
schema:
$ref: '#/components/schemas/ReportTemplateDetail'
patch:
summary: Update report template
description: Partially update a report template. Re-validates obligatory goAML fields on save.
operationId: update_report_template
tags:
- Report Templates
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: template_uuid
in: path
required: true
schema:
type: string
format: uuid
example: 7ec00000-0000-4000-8000-000000000006
description: Report template UUID.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
jurisdiction:
type: string
minLength: 2
maxLength: 2
description: ISO 3166-1 alpha-2 country code, upper-cased on save.
report_type:
type: string
enum:
- SAR
- STR
- CTR
- TTR
- UTR
- IFT
- CBR
- TFR
field_config:
type: object
description: 'Reusable goAML header defaults. Template-level obligatory fields: rentity_id, submission_code, and currency_code_local (3-letter). Optional: enabled_fields (which optional report blocks to include) plus reporting_person, location, reason, and action defaults. Per-filing header fields (action, submission_date, transactions, jurisdiction) are enforced when the report is validated or finalized, not on the template.'
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/report-templates/7ec00000-0000-4000-8000-000000000006/' \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"field_config\": {\"rentity_id\": \"FIU-US-00124\"}}'"
responses:
'200':
description: Updated template.
content:
application/json:
schema:
$ref: '#/components/schemas/ReportTemplateDetail'
delete:
summary: Delete report template
description: Soft-delete a report template. Reports already created from it are unaffected.
operationId: delete_report_template
tags:
- Report Templates
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: template_uuid
in: path
required: true
schema:
type: string
format: uuid
example: 7ec00000-0000-4000-8000-000000000006
description: Report template 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/report-templates/7ec00000-0000-4000-8000-000000000006/' \\\n -H 'x-api-key: YOUR_API_KEY'"
responses:
'204':
description: Template deleted.
components:
schemas:
ReportTemplateDetail:
type: object
properties:
uuid:
type: string
format: uuid
name:
type: string
jurisdiction:
type: string
minLength: 2
maxLength: 2
description: ISO 3166-1 alpha-2 country code.
report_type:
type: string
enum:
- SAR
- STR
- CTR
- TTR
- UTR
- IFT
- CBR
- TFR
report_type_display:
type: string
field_config:
type: object
description: 'Reusable goAML header defaults. Template-level obligatory fields: rentity_id, submission_code, and currency_code_local (3-letter). Optional: enabled_fields (which optional report blocks to include) plus reporting_person, location, reason, and action defaults. Per-filing header fields (action, submission_date, transactions, jurisdiction) are enforced when the report is validated or finalized, not on the template.'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
TransactionTokenAuth:
type: apiKey
in: header
name: X-Transaction-Token
description: Short-lived scoped token minted by your backend via POST /v3/transactions/sdk-token/. Used by the Didit SDKs on the device-facing /v1/transactions/ endpoints.
SessionTokenAuth:
type: apiKey
in: header
name: Session-Token
description: Short-lived token returned in the `session_token` field of POST /v3/session/. Used by the hosted verification flow (and custom sandbox UIs) to call session-scoped endpoints on behalf of the verifying user, without your server-side API key.