> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sphinxhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Case

> Create a new case for a customer. You can either provide an existing customer_id or create a new customer inline. By default, the case is automatically started after creation (equivalent to calling POST /cases/{id}/start/). Set auto_start=false to create without starting.

**Customer matching:** If a customer with the same external_id already exists in your organization, the existing customer is updated. All of full_name, customer_type, and input_details are replaced — omitted fields are set to null. If you only want to reuse the customer without changing it, pass customer_id instead.



## OpenAPI

````yaml /api_schema.yaml post /api/cases/
openapi: 3.0.3
info:
  title: Sphinx API
  version: 1.0.0
  description: >
    Automated compliance API for KYC/AML workflows. Sphinx handles PEP
    screening, sanctions checks, adverse media monitoring, and document
    verification with AI-powered decisions.


    **Quick Start:**

    1. **Upload Documents** (Optional) - Required for KYB, KYC EDD, and
    transaction monitoring. Not required for AML checks (PEP, Sanctions, Adverse
    Media).

    2. **Create a Case** - The case creation endpoint combines customer details
    and checks (typically a single alert) into one request.

    3. **Receive Webhook** - Results are sent to your webhook URL when
    processing completes.


    **Authentication:** All API requests require a bearer token. Include it in
    the Authorization header: `Authorization: Token <YOUR_API_KEY>`


    **Outcomes:** Each check returns an outcome (ACCEPTED, REJECTED, or PENDING)
    with detailed reasoning, risk scores (0.0-1.0), and audit-ready case notes
    in Markdown format.


    For detailed documentation, visit
    [docs.sphinxhq.com](https://docs.sphinxhq.com).
servers:
  - url: https://app.sphinxhq.com
    description: Production server (US)
  - url: https://eu.sphinxhq.com
    description: Production server (EU)
security: []
tags:
  - name: Cases
    description: >-
      Cases represent compliance reviews for a customer. Create a case, add
      checks, then start processing.
  - name: Checks
    description: >-
      Individual compliance checks within a case (e.g., PEP, Sanctions, Document
      Verification).
  - name: Customers
    description: >-
      Customer records linked to cases. Store customer details, type
      (individual/company), and external IDs.
  - name: Documents
    description: >-
      Upload and manage documents for cases and checks. Used for identity
      verification and document-based checks.


      **Allowed file types:** PDF, PNG, JPG, CSV, XLSX, DOCX, MD.
  - name: Events
    description: >-
      Timeline of activity on cases and checks: comments, outcome changes,
      assignments, status changes, reruns, and document activity.
paths:
  /api/cases/:
    post:
      tags:
        - Cases
      summary: Create Case
      description: >-
        Create a new case for a customer. You can either provide an existing
        customer_id or create a new customer inline. By default, the case is
        automatically started after creation (equivalent to calling POST
        /cases/{id}/start/). Set auto_start=false to create without starting.


        **Customer matching:** If a customer with the same external_id already
        exists in your organization, the existing customer is updated. All of
        full_name, customer_type, and input_details are replaced — omitted
        fields are set to null. If you only want to reuse the customer without
        changing it, pass customer_id instead.
      operationId: cases_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericCaseWrite'
            examples:
              Recommended:NewCustomer+CaseConfig:
                value:
                  customer:
                    external_id: cust-jane-doe-1990
                    full_name: Jane Doe
                    customer_type: INDIVIDUAL
                    input_details:
                      dob: '1990-05-15'
                      nationality: US
                  case_config: standard-kyc
                  webhook_url: https://example.com/webhook/case-complete
                summary: 'Recommended: new customer + case_config'
                description: >-
                  The typical client flow: create a new customer inline and let
                  a CaseConfig auto-generate the checks. Listed first so it is
                  the default body in the Postman collection. Replace
                  `case_config` with one of your org's configured slugs.
              CaseWithExistingCustomer:
                value:
                  customer_id: 123
                  webhook_url: https://example.com/webhook/case-complete
                  delete_after: 30
                summary: Case with existing customer
              CaseWithNewCustomer(individual):
                value:
                  customer:
                    external_id: cust-789
                    full_name: Alice Johnson
                    customer_type: INDIVIDUAL
                    input_details:
                      dob: '1985-03-15'
                      nationality: US
                      email: alice@example.com
                summary: Case with new customer (individual)
              ComplexCaseWithDetailedChecksAndRFI:
                value:
                  customer:
                    external_id: cust-james-torres-1997
                    full_name: James Torres
                    customer_type: INDIVIDUAL
                    input_details:
                      dob: '1997-03-26'
                      nationality: US
                      address: 123 Main St, New York, NY 10001
                  webhook_url: https://example.com/webhook/case-complete
                  checks:
                    - check_type: ADVERSE_MEDIA
                      input_details:
                        media_hits:
                          - url: >-
                              http://interactives.wivb.com/photomojo/gallery/13470/1/
                            source: interactives.wivb.com
                            details: >-
                              Source relates to 'Operation Horseback' and James
                              Torres' drug trafficking involvement.
                            snippet: >-
                              The U.S. New York State Attorney General announced
                              on July 30, 2014, a 159-count indictment charging
                              47 individuals with narcotics possession and sale,
                              and conspiracy to distribute heroin in Jamestown.
                          - url: >-
                              http://interactives.wivb.com/photomojo/gallery/13470/251431/operation-horseback/james-torres/
                            source: interactives.wivb.com
                            details: >-
                              Source specifically mentions James Torres in
                              Operation Horseback drug trafficking
                              investigation.
                            snippet: >-
                              James Torres, a/k/a "BK" age 42, Jamestown, NY, is
                              charged with drug trafficking as of July 30, 2014.
                    - check_type: SANCTIONS
                    - check_type: PEP
                summary: Complex case with detailed checks and RFI
              CaseWithPre-uploadedDocuments:
                value:
                  customer_id: 456
                  document_ids:
                    - 101
                    - 102
                  checks:
                    - check_type: IDV
                      document_ids:
                        - 103
                        - 104
                    - check_type: PROOF_OF_ADDRESS
                      document_ids:
                        - 105
                summary: Case with pre-uploaded documents
              CaseWithCaseConfig(singleMode-Auto-generatedChecks):
                value:
                  customer:
                    external_id: cust-456
                    full_name: Jane Doe
                    customer_type: INDIVIDUAL
                    input_details:
                      dob: '1990-05-15'
                      nationality: US
                  case_config: standard-kyc
                  webhook_url: https://example.com/webhook
                summary: Case with CaseConfig (single mode - auto-generated checks)
                description: >-
                  Creates a case using a pre-configured CaseConfig. Checks are
                  auto-generated based on the config's CheckConfig entries.
              DualConfigCase(KYB+KYCWithShareholderExtraction):
                value:
                  customer:
                    external_id: acme-corp-001
                    full_name: Acme Corporation
                    customer_type: COMPANY
                  case_config: standard-kyb-kyc
                  webhook_url: https://example.com/webhook
                summary: Dual config case (KYB + KYC with shareholder extraction)
                description: >-
                  Creates a parent KYB case using a DualCaseConfig slug.
                  Documents can be added later via UI or API. When started (POST
                  /start), documents are classified, shareholders extracted, and
                  child KYC cases auto-created.
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericCaseWrite'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GenericCaseWrite'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericCaseRead'
              examples:
                Recommended:NewCustomer+CaseConfig:
                  value:
                    customer:
                      external_id: cust-jane-doe-1990
                      full_name: Jane Doe
                      customer_type: INDIVIDUAL
                      input_details:
                        dob: '1990-05-15'
                        nationality: US
                    case_config: standard-kyc
                    webhook_url: https://example.com/webhook/case-complete
                  summary: 'Recommended: new customer + case_config'
                  description: >-
                    The typical client flow: create a new customer inline and
                    let a CaseConfig auto-generate the checks. Listed first so
                    it is the default body in the Postman collection. Replace
                    `case_config` with one of your org's configured slugs.
                CaseWithExistingCustomer:
                  value:
                    customer_id: 123
                    webhook_url: https://example.com/webhook/case-complete
                    delete_after: 30
                  summary: Case with existing customer
                CaseWithNewCustomer(individual):
                  value:
                    customer:
                      external_id: cust-789
                      full_name: Alice Johnson
                      customer_type: INDIVIDUAL
                      input_details:
                        dob: '1985-03-15'
                        nationality: US
                        email: alice@example.com
                  summary: Case with new customer (individual)
                ComplexCaseWithDetailedChecksAndRFI:
                  value:
                    customer:
                      external_id: cust-james-torres-1997
                      full_name: James Torres
                      customer_type: INDIVIDUAL
                      input_details:
                        dob: '1997-03-26'
                        nationality: US
                        address: 123 Main St, New York, NY 10001
                    webhook_url: https://example.com/webhook/case-complete
                    checks:
                      - check_type: ADVERSE_MEDIA
                        input_details:
                          media_hits:
                            - url: >-
                                http://interactives.wivb.com/photomojo/gallery/13470/1/
                              source: interactives.wivb.com
                              details: >-
                                Source relates to 'Operation Horseback' and
                                James Torres' drug trafficking involvement.
                              snippet: >-
                                The U.S. New York State Attorney General
                                announced on July 30, 2014, a 159-count
                                indictment charging 47 individuals with
                                narcotics possession and sale, and conspiracy to
                                distribute heroin in Jamestown.
                            - url: >-
                                http://interactives.wivb.com/photomojo/gallery/13470/251431/operation-horseback/james-torres/
                              source: interactives.wivb.com
                              details: >-
                                Source specifically mentions James Torres in
                                Operation Horseback drug trafficking
                                investigation.
                              snippet: >-
                                James Torres, a/k/a "BK" age 42, Jamestown, NY,
                                is charged with drug trafficking as of July 30,
                                2014.
                      - check_type: SANCTIONS
                      - check_type: PEP
                  summary: Complex case with detailed checks and RFI
                CaseWithPre-uploadedDocuments:
                  value:
                    customer_id: 456
                    document_ids:
                      - 101
                      - 102
                    checks:
                      - check_type: IDV
                        document_ids:
                          - 103
                          - 104
                      - check_type: PROOF_OF_ADDRESS
                        document_ids:
                          - 105
                  summary: Case with pre-uploaded documents
                CaseWithCaseConfig(singleMode-Auto-generatedChecks):
                  value:
                    customer:
                      external_id: cust-456
                      full_name: Jane Doe
                      customer_type: INDIVIDUAL
                      input_details:
                        dob: '1990-05-15'
                        nationality: US
                    case_config: standard-kyc
                    webhook_url: https://example.com/webhook
                  summary: Case with CaseConfig (single mode - auto-generated checks)
                  description: >-
                    Creates a case using a pre-configured CaseConfig. Checks are
                    auto-generated based on the config's CheckConfig entries.
                DualConfigCase(KYB+KYCWithShareholderExtraction):
                  value:
                    customer:
                      external_id: acme-corp-001
                      full_name: Acme Corporation
                      customer_type: COMPANY
                    case_config: standard-kyb-kyc
                    webhook_url: https://example.com/webhook
                  summary: Dual config case (KYB + KYC with shareholder extraction)
                  description: >-
                    Creates a parent KYB case using a DualCaseConfig slug.
                    Documents can be added later via UI or API. When started
                    (POST /start), documents are classified, shareholders
                    extracted, and child KYC cases auto-created.
          description: ''
      security:
        - OAuthToken: []
        - tokenAuth: []
        - tokenAuth: []
components:
  schemas:
    GenericCaseWrite:
      type: object
      description: Write serializer for GenericCase creation.
      properties:
        customer_id:
          type: integer
          writeOnly: true
          description: ID of an existing customer for this case
        customer:
          allOf:
            - $ref: '#/components/schemas/CustomerWrite'
          writeOnly: true
          description: Customer data to create a new customer with this case
        webhook_url:
          type: string
          nullable: true
          description: Webhook sent on case completion.
          maxLength: 511
        checks:
          type: array
          items:
            $ref: '#/components/schemas/CheckInlineWrite'
          writeOnly: true
          description: A list of checks to create with this case.
        document_ids:
          type: array
          items:
            type: integer
          writeOnly: true
          description: List of document IDs to link to this case
        delete_after:
          type: integer
          description: >-
            Number of days until deletion. Use 0 for immediate deletion, or -1
            for indefinite retention (never delete). Defaults to -1.
        assignee:
          type: string
          format: email
          writeOnly: true
          nullable: true
          description: >-
            Email of the user to assign this case to. Must be a member of the
            organization.
        metadata:
          type: object
          nullable: true
          description: Case-specific details for display in UI. Flexible JSON object.
        sync_platforms:
          type: object
          nullable: true
          description: >-
            External platform references for outbound sync. List of dicts, e.g.
            [{"domain": "bofi--dev.sandbox.my.salesforce.com", "id":
            "500WA..."}]
        case_config:
          type: string
          writeOnly: true
          description: >-
            Slug of a CaseConfig or DualCaseConfig. For a CaseConfig,
            auto-generates checks from the config. Cannot be used together with
            'checks'. For a DualCaseConfig (pairs KYB + KYC configs), creates a
            parent KYB case; when started, child KYC cases are auto-created for
            each shareholder extracted from documents.
        auto_start:
          type: boolean
          writeOnly: true
          description: >-
            Whether to automatically start processing the case after creation.
            Defaults to true. Set to false to create a case without starting it
            (you can start it later via POST /cases/{id}/start/).
        external_id:
          type: string
          nullable: true
          description: >-
            External ID for the case. Auto-generated UUID if not provided.
            Stable across reruns.
          maxLength: 512
    GenericCaseRead:
      type: object
      description: Read-only serializer for GenericCase with related objects.
      properties:
        id:
          type: integer
          readOnly: true
        external_id:
          type: string
          readOnly: true
          description: >-
            External ID for the case. Auto-generated UUID if not provided.
            Stable across reruns.
        origin_url:
          type: string
          readOnly: true
          nullable: true
          description: Deprecated alias for external_id.
        customer:
          allOf:
            - $ref: '#/components/schemas/GenericCaseCustomer'
          readOnly: true
        webhook_url:
          type: string
          nullable: true
          description: Webhook sent on case completion.
          maxLength: 511
        note:
          type: string
          readOnly: true
          nullable: true
        risk_score:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Risk score (max of check risk scores for the case).
        outcome:
          enum:
            - ACCEPTED
            - REJECTED
            - PENDING
            - null
          type: string
          description: |-
            * `ACCEPTED` - Accepted
            * `REJECTED` - Rejected
            * `PENDING` - Pending
          x-spec-enum-id: 313afc0526efe9a0
          readOnly: true
          nullable: true
        is_started:
          type: boolean
          readOnly: true
        is_complete:
          type: boolean
          readOnly: true
        failed:
          type: boolean
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        checks:
          type: array
          items:
            $ref: '#/components/schemas/NestedCheckRead'
          readOnly: true
        delete_after:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: Days until deletion. -1 means never delete.
        rfi:
          type: object
          nullable: true
          properties:
            body:
              type: string
              description: The RFI message body.
            title:
              type: string
              nullable: true
              description: Optional title.
            details:
              type: object
              nullable: true
              description: Additional structured fields (e.g. product, required_documents).
          required:
            - body
          readOnly: true
        metadata:
          type: object
          nullable: true
          description: Case-specific metadata in JSON format.
        sync_platforms:
          type: object
          nullable: true
          description: >-
            External platform references for outbound sync. List of dicts, e.g.
            [{"domain": "bofi--dev.sandbox.my.salesforce.com", "id":
            "500WA..."}]
      required:
        - checks
        - created_at
        - customer
        - external_id
        - failed
        - id
        - is_complete
        - is_started
        - note
        - origin_url
        - outcome
        - rfi
        - risk_score
        - updated_at
    CustomerWrite:
      type: object
      description: Write serializer for Customer creation with flexible JSON details.
      properties:
        external_id:
          type: string
          nullable: true
          description: ID from the source system, for lookups.
          maxLength: 255
        full_name:
          type: string
          maxLength: 255
        customer_type:
          enum:
            - INDIVIDUAL
            - COMPANY
            - ''
            - null
          type: string
          description: |-
            * `INDIVIDUAL` - Individual
            * `COMPANY` - Company
          x-spec-enum-id: 7b9c847b681214ac
          nullable: true
        input_details:
          type: object
          nullable: true
          description: Flexible JSON for inputting customer fields. Any format accepted.
        sync_platforms:
          type: object
          nullable: true
          description: >-
            External platform references for outbound sync. List of dicts, e.g.
            [{"domain": "bofa--dev.sandbox.my.salesforce.com", "id":
            "500WA..."}]
        delete_after:
          type: integer
          description: >-
            Number of days until deletion. Use 0 for immediate deletion, or -1
            for indefinite retention (never delete). Defaults to -1.
      required:
        - full_name
    CheckInlineWrite:
      type: object
      description: Write serializer for creating a Check inline with a Case.
      properties:
        check_type:
          enum:
            - UBO_RESOLUTION
            - SIGNING_AUTHORITY
            - BANK_STATEMENT
            - BALANCE_SHEETS
            - INCOME_STATEMENTS
            - TAX_DOCUMENTS
            - AUTHORIZATION_FORM
            - ARTICLES_OF_ASSOCIATION
            - COMMERCIAL_EXTRACT
            - ONBOARDING_FORM
            - SHAREHOLDER_LIST
            - EDD_QUESTIONNAIRE
            - USER_RISK_REPORT
            - RISK_DECISION
            - INCORPORATION_DOCUMENT
            - MEETING_MINUTES
            - PROOF_OF_IDENTITY
            - FULL_IDV
            - SOURCE_OF_FUNDS
            - NAME_CHECK
            - PROOF_OF_ADDRESS
            - RDC_VERIFICATION
            - KYB_PROOF_OF_IDENTITY
            - KYB_BANK_STATEMENT
            - KYB_PROOF_OF_ADDRESS
            - KYB_TAX_DOCUMENTS
            - CLEAN_SCREENING
            - CRA
            - WEB_PRESENCE
            - FINANCIAL_LICENSE
            - AML_POLICY
            - WOLFSBERG_QUESTIONNAIRE
            - PEP
            - SANCTIONS
            - ADVERSE_MEDIA
            - BLACKLIST
            - NAME_MATCHING
            - MULTI_WATCHLIST
            - PEP_SEARCH
            - SANCTIONS_SEARCH
            - ADVERSE_MEDIA_SEARCH
            - BLACKLIST_SEARCH
            - DOCUMENT_FRAUD
            - TM_CRYPTO
            - TM_CLASSIC
            - IDV
            - TRANSACTION_MONITORING
            - INFO_BLOCK
            - ''
            - null
          type: string
          description: |-
            * `UBO_RESOLUTION` - UBO Resolution
            * `SIGNING_AUTHORITY` - Signing Authority
            * `BANK_STATEMENT` - Bank Statements
            * `BALANCE_SHEETS` - Balance Sheets
            * `INCOME_STATEMENTS` - Income Statements
            * `TAX_DOCUMENTS` - Tax Documents
            * `AUTHORIZATION_FORM` - Authorization Form
            * `ARTICLES_OF_ASSOCIATION` - Articles of Association
            * `COMMERCIAL_EXTRACT` - Commercial Extract
            * `ONBOARDING_FORM` - Onboarding Form
            * `SHAREHOLDER_LIST` - Shareholder List
            * `EDD_QUESTIONNAIRE` - Enhanced Due Diligence Questionnaire
            * `USER_RISK_REPORT` - User Risk Report
            * `RISK_DECISION` - Risk Decision
            * `INCORPORATION_DOCUMENT` - Incorporation Document
            * `MEETING_MINUTES` - Meeting Minutes
            * `PROOF_OF_IDENTITY` - Proof of Identity
            * `FULL_IDV` - Full IDV
            * `SOURCE_OF_FUNDS` - Source of Funds
            * `NAME_CHECK` - Name Check
            * `PROOF_OF_ADDRESS` - Proof of Address
            * `RDC_VERIFICATION` - RDC Verification
            * `KYB_PROOF_OF_IDENTITY` - Proof of Identity
            * `KYB_BANK_STATEMENT` - Bank Statements
            * `KYB_PROOF_OF_ADDRESS` - Proof of Address
            * `KYB_TAX_DOCUMENTS` - Tax Documents
            * `CLEAN_SCREENING` - Clean Screening
            * `CRA` - Customer Risk Assessment
            * `WEB_PRESENCE` - Web Presence
            * `FINANCIAL_LICENSE` - Financial License
            * `AML_POLICY` - AML Policy Documents
            * `WOLFSBERG_QUESTIONNAIRE` - Wolfsberg Questionnaire
            * `PEP` - PEP
            * `SANCTIONS` - Sanctions
            * `ADVERSE_MEDIA` - Adverse Media
            * `BLACKLIST` - Blacklist
            * `NAME_MATCHING` - Name Matching
            * `MULTI_WATCHLIST` - Multi-Watchlist
            * `PEP_SEARCH` - PEP Search
            * `SANCTIONS_SEARCH` - Sanctions Search
            * `ADVERSE_MEDIA_SEARCH` - Adverse Media Search
            * `BLACKLIST_SEARCH` - Blacklist Search
            * `DOCUMENT_FRAUD` - Document Fraud
            * `TM_CRYPTO` - Transaction Monitoring (Crypto)
            * `TM_CLASSIC` - Transaction Monitoring (Fiat)
            * `IDV` - IDV
            * `TRANSACTION_MONITORING` - Transaction Monitoring
            * `INFO_BLOCK` - Information
          x-spec-enum-id: fdcfec228d86d419
          nullable: true
        input_details:
          type: object
          nullable: true
          description: Flexible JSON format for check-specific details.
        document_ids:
          type: array
          items:
            type: integer
          writeOnly: true
          description: List of document IDs to link to this check
        delete_after:
          type: integer
          description: Number of days until deletion. Use -1 for indefinite retention.
    GenericCaseCustomer:
      type: object
      description: Nested customer serializer for GenericCase responses.
      properties:
        id:
          type: integer
          readOnly: true
        external_id:
          type: string
          nullable: true
          description: ID from the source system, for lookups.
          maxLength: 255
        full_name:
          type: string
          maxLength: 255
        customer_type:
          enum:
            - INDIVIDUAL
            - COMPANY
            - ''
            - null
          type: string
          description: |-
            * `INDIVIDUAL` - Individual
            * `COMPANY` - Company
          x-spec-enum-id: 7b9c847b681214ac
          nullable: true
      required:
        - full_name
        - id
    NestedCheckRead:
      type: object
      description: Read-only serializer for Check, for nesting inside Case.
      properties:
        id:
          type: integer
          readOnly: true
        input_details:
          type: object
          nullable: true
          description: >-
            Flexible JSON input data for this check, scoped to its own case:
            external-system data (e.g. the name and date of birth of a watchlist
            hit), ingested infractions, and enrichment-produced context — which
            may include this case's customer data such as transaction history.
            Must never contain data about other customers or cases, or any
            credentials/secrets. Note: this field is exposed via the case read
            API and webhooks.
        check_type:
          enum:
            - UBO_RESOLUTION
            - SIGNING_AUTHORITY
            - BANK_STATEMENT
            - BALANCE_SHEETS
            - INCOME_STATEMENTS
            - TAX_DOCUMENTS
            - AUTHORIZATION_FORM
            - ARTICLES_OF_ASSOCIATION
            - COMMERCIAL_EXTRACT
            - ONBOARDING_FORM
            - SHAREHOLDER_LIST
            - EDD_QUESTIONNAIRE
            - USER_RISK_REPORT
            - RISK_DECISION
            - INCORPORATION_DOCUMENT
            - MEETING_MINUTES
            - PROOF_OF_IDENTITY
            - FULL_IDV
            - SOURCE_OF_FUNDS
            - NAME_CHECK
            - PROOF_OF_ADDRESS
            - RDC_VERIFICATION
            - KYB_PROOF_OF_IDENTITY
            - KYB_BANK_STATEMENT
            - KYB_PROOF_OF_ADDRESS
            - KYB_TAX_DOCUMENTS
            - CLEAN_SCREENING
            - CRA
            - WEB_PRESENCE
            - FINANCIAL_LICENSE
            - AML_POLICY
            - WOLFSBERG_QUESTIONNAIRE
            - PEP
            - SANCTIONS
            - ADVERSE_MEDIA
            - BLACKLIST
            - NAME_MATCHING
            - MULTI_WATCHLIST
            - PEP_SEARCH
            - SANCTIONS_SEARCH
            - ADVERSE_MEDIA_SEARCH
            - BLACKLIST_SEARCH
            - DOCUMENT_FRAUD
            - TM_CRYPTO
            - TM_CLASSIC
            - IDV
            - TRANSACTION_MONITORING
            - INFO_BLOCK
            - ''
            - null
          type: string
          description: |-
            * `UBO_RESOLUTION` - UBO Resolution
            * `SIGNING_AUTHORITY` - Signing Authority
            * `BANK_STATEMENT` - Bank Statements
            * `BALANCE_SHEETS` - Balance Sheets
            * `INCOME_STATEMENTS` - Income Statements
            * `TAX_DOCUMENTS` - Tax Documents
            * `AUTHORIZATION_FORM` - Authorization Form
            * `ARTICLES_OF_ASSOCIATION` - Articles of Association
            * `COMMERCIAL_EXTRACT` - Commercial Extract
            * `ONBOARDING_FORM` - Onboarding Form
            * `SHAREHOLDER_LIST` - Shareholder List
            * `EDD_QUESTIONNAIRE` - Enhanced Due Diligence Questionnaire
            * `USER_RISK_REPORT` - User Risk Report
            * `RISK_DECISION` - Risk Decision
            * `INCORPORATION_DOCUMENT` - Incorporation Document
            * `MEETING_MINUTES` - Meeting Minutes
            * `PROOF_OF_IDENTITY` - Proof of Identity
            * `FULL_IDV` - Full IDV
            * `SOURCE_OF_FUNDS` - Source of Funds
            * `NAME_CHECK` - Name Check
            * `PROOF_OF_ADDRESS` - Proof of Address
            * `RDC_VERIFICATION` - RDC Verification
            * `KYB_PROOF_OF_IDENTITY` - Proof of Identity
            * `KYB_BANK_STATEMENT` - Bank Statements
            * `KYB_PROOF_OF_ADDRESS` - Proof of Address
            * `KYB_TAX_DOCUMENTS` - Tax Documents
            * `CLEAN_SCREENING` - Clean Screening
            * `CRA` - Customer Risk Assessment
            * `WEB_PRESENCE` - Web Presence
            * `FINANCIAL_LICENSE` - Financial License
            * `AML_POLICY` - AML Policy Documents
            * `WOLFSBERG_QUESTIONNAIRE` - Wolfsberg Questionnaire
            * `PEP` - PEP
            * `SANCTIONS` - Sanctions
            * `ADVERSE_MEDIA` - Adverse Media
            * `BLACKLIST` - Blacklist
            * `NAME_MATCHING` - Name Matching
            * `MULTI_WATCHLIST` - Multi-Watchlist
            * `PEP_SEARCH` - PEP Search
            * `SANCTIONS_SEARCH` - Sanctions Search
            * `ADVERSE_MEDIA_SEARCH` - Adverse Media Search
            * `BLACKLIST_SEARCH` - Blacklist Search
            * `DOCUMENT_FRAUD` - Document Fraud
            * `TM_CRYPTO` - Transaction Monitoring (Crypto)
            * `TM_CLASSIC` - Transaction Monitoring (Fiat)
            * `IDV` - IDV
            * `TRANSACTION_MONITORING` - Transaction Monitoring
            * `INFO_BLOCK` - Information
          x-spec-enum-id: fdcfec228d86d419
          nullable: true
        risk_score:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: >-
            Risk score (total or average of CRA field scores, depending on
            aggregation method).
        title:
          type: string
          readOnly: true
          nullable: true
          description: >-
            Short title generated by the check. For a watchlist hit, this
            typically corresponds to the name of the hit indvidual.
        note:
          type: string
          readOnly: true
          nullable: true
          description: 1-2 paragraph case note for audit purposes, Markdown format
        reasoning:
          type: array
          items:
            type: string
          readOnly: true
          nullable: true
          description: >-
            Detailed reasoning steps, in Markdown. More comprehensive than the
            note.
        outcome:
          enum:
            - ACCEPTED
            - REJECTED
            - PENDING
            - null
          type: string
          x-spec-enum-id: 313afc0526efe9a0
          readOnly: true
          nullable: true
          description: |-
            The agent's decision.

            * `ACCEPTED` - Accepted
            * `REJECTED` - Rejected
            * `PENDING` - Pending
        status:
          enum:
            - PENDING
            - DECIDING
            - DECIDED
            - SUBMITTED
            - SKIPPED
            - ERROR
          type: string
          description: |-
            * `PENDING` - Pending
            * `DECIDING` - Deciding
            * `DECIDED` - Decided
            * `SUBMITTED` - Submitted
            * `SKIPPED` - Skipped
            * `ERROR` - Error
          x-spec-enum-id: 06dfc845bd26379d
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        delete_after:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: Days until deletion. -1 means never delete.
      required:
        - created_at
        - id
        - note
        - outcome
        - reasoning
        - risk_score
        - status
        - title
        - updated_at
  securitySchemes:
    OAuthToken:
      type: http
      scheme: bearer
      description: >-
        OAuth2 access token obtained from POST /api/oauth/token/ using client
        credentials.
    tokenAuth:
      type: http
      scheme: bearer

````