tags:
  - name: Quickstart Guide
    x-displayName: Quickstart Guide
    description: >
      Use this section to get familarized with the Lucinity API's syntax,
      payload, and data structures.


      Following the steps detailed below, you'll be able to ingest data in the
      Lucinity platform and get started to Make Money Good.


      ## The hidden power of your data


      One of the highlights of Lucinity’s AML platform is the actionable
      insights that show how much information you can gain from the data you
      already have today.


      We understand that data integration projects can be intimidating. When
      designing Lucinity’s APIs, we set out to make our data ingestion as
      integration-friendly as possible, while providing innovative and robust
      data analysis methodologies at the same time.


      To get started, you can connect basic data to get you familiar with the
      integration quickly and easily. As your familiarity and confidence grows,
      Lucinity is capable to extend and accept even more data to unlock its full
      potential.


      [Behavioral AML
      Detection](https://www.lucinity.com/transaction-monitoring-detect) and
      [Actor Intelligence](https://www.lucinity.com/actor-intelligence) follow
      the same data model and request information on your customers
      ([Actors](/#tag/Actors)) and their [Accounts](/#tag/Accounts),
      [Transactions](/#tag/Transactions-V2), and the mapping between Actors and
      Accounts.


      Going deeper, you can provide [Actor
      Associates](/#tag/Actors/operation/AddActorAssociates), entities you know
      are linked to your customer, and additional [Risk
      Assessments](/#tag/Actors/operation/AddActorRiskAssessment) you might
      have.


      The [Lucinity Case
      Manager](https://www.lucinity.com/transaction-monitoring-review) is
      integrated through Observation data and meta data belonging to a case
      surfaced by your legacy system.


      You can bring all this data into the Lucinity platform using a rich but
      simple to use set of APIs. The APIs ingest and return JSON-encoded
      requests and response structure, and use HTTP response codes to present
      the result of your request allowing you to track and respond efficiently.


      ## Access


      As an AML solution intended for highly regulated financial institutions,
      Lucinity’s APIs rest (no pun intended) on secure access through an API
      key.


      ### Lucinity Admin Portal


      You can use the Administration Portal to manage your Lucinity Products. It
      allows you to manage API keys, system access, what behaviors are
      monitored, workflows, and all other configurations for the Lucinity
      Platform.


      ### Lucinity API Keys


      Lucinity authenticates your API requests using your account's API Keys:
      your API key is used to make API calls on behalf of your account, and
      allows you to interact with the Lucinity platform.


      ### Get your API key


      API Keys are generated via the Lucinity Platform by approved users. Please
      get in touch with your Customer Success Team for more information.


      <!-- need as markdown - parsers not 100% visable in this scneario -->

      <div class="admonition admonition-caution alert alert--warning">
        <div class="admonition-heading">
          <h3>
            <span class="admonition-icon">
              <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>
            API Key
          </h3>
        </div>
        <div class="admonition-content">
          <p>Treat your secret API key as, or more carefully, you would treat your password. We recommend keeping it out of any version control system you may be using. Grant access only to those who need it or secure them their own API credentials.
      </p>
        </div>
      </div>


      Lucinity stores your API keys in the Administration Portal. You can sign
      in to retrieve and manage your keys.


      ### Using your API key


      API keys have full access to your account and are owned by the account
      owner. Therefore, all actions are tied to a specific account. A single
      account can have multiple API keys you can share or rotate if needed.


      See [Authentication](/#tag/Authentication) on how to use the API Key to
      authenticate your access.


      ## Adding data


      To use the Transaction Monitoring and Actor Intelligence modules of
      Lucinity, you need to add data for the relevant customers(actors),
      accounts, and transactions.


      The eight simple steps below walk you through the process of using the
      Lucinity APIs to publish data to the platform and get your instance of
      Transaction Monitoring or Actor Intelligence modules up and running.


      You can send the data in any order. However, to make it easier and more
      organized for data integration projects, we have structured data ingest
      around Actors, Accounts and Transactions.


      ### 1. Get Your API Keys Ready


      Make sure you have your [API Keys](/#section/Access) ready to
      [authenticate](/#tag/Authentication) with the Lucinity platform.


      ### 2. Ingest Actor Data


      <div class="panel">

        <div class="panel__text">
      Collect your customer data and follow the data structure outlined below to
      ingest it to the Lucinity Platform.


      The sidebar code snippets reflect the required data points for
      initializing the system, see [Transaction
      Monitoring](/#tag/Transaction-Monitoring) and [Actor
      Intelligence](/#tag/Actor-Intelligence) for all available fields.


      **NOTE:** There is a slight difference in the required fields between
      _individuals_ and _legal entities_ to ingest data. See the sidebar
      examples on how to ingest both actor types.

        </div>

        <div class="panel__code">

        <h3>Transmitting Customer Data - Individual</h3>

      ```jsx

      const unirest = require("unirest");

      unirest

      .post("https://<your environment>/api/actors")

      .headers({
        "X-Api-Key": "<Secret API Key>",
      });

      .send({
        id: "ACT985002241",
        asOfDate: "2019-08-24",
        status: "ACTIVE",
        type: "INDIVIDUAL",
        monitored: "YES",
        displayName: "Samantha Jones",
        name: "Samantha Jane Jones",
        dateOfBirth: "1966-01-21",
        gender: "FEMALE",
        addresses: [
          {
            type: "HOME",
            line1: "123 Bond Street",
            line2: "Mayfair",
            postcode: "W1S 1EJ",
            city: "London",
            country: "UK",
          },
        ],
        nationality: "UK",
        dataSource: "source-name"
      });

      .then((response) => {
        console.log(response.body);
      })

      .catch((err) => {
        console.log(err);
      });

      ```

        <h3>Transmitting Customer Data - Legal Entity</h3>

      ```jsx

      const unirest = require("unirest");

      unirest

      .post("https://<your environment>/api/actors")

      .headers({
        "X-Api-Key": "<Secret API Key>",
      });

      .send({
        id: "ACT985002242",
        asOfDate: "2019-08-24",
        status: "ACTIVE",
        type: "LEGAL_ENTITY",
        monitored: "YES",
        displayName: "Vortexecurity",
        name: "Vortexecurity",
        legalEntity:
          {
            dateOfRegistration: "1991-01-09",
            type: "PARTNERSHIP_LIMITED",
            industry: [{
              code: "561621",
              type: "NAICS",
            }]
          },
        addresses: [
          {
            type: "HOME",
            line1: "123 Bond Street",
            line2: "Mayfair",
            postcode: "W1S 1EJ",
            city: "London",
            country: "UK",
          },
        ],
        nationality: "UK",
        dataSource: "source-name"
      });

      .then((response) => {
        console.log(response.body);
      })

      .catch((err) => {
        console.log(err);
      });

      ```

        </div>
      </div>


      ### 3. Ingest Account Data


      <div class="panel">

        <div class="panel__text">
      Collect your customer’s account data and follow the data structure
      outlined below to ingest it to the Lucinity Platform.


      The sidebar code snippet reflects the account data fields required for
      initializing the system. See [Transaction
      Monitoring](/#tag/Transaction-Monitoring) and [Actor
      Intelligence](/#tag/Actor-Intelligence) for all available fields.

        </div>

        <div class="panel__code">
          <h3>Transmitting Accounts Data</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .send("https://<your environment>/api/accounts")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .post({
              id: "ACC99140294",
              asOfDate: "2019-08-24",
              accountType: "CURRENT",
              currencyCode: "GBP",
              openedDate: "2019-08-24",
              terminationDate: null,
              accountNumber: "2340-234-234234",
              status: "ACTIVE",
              monitored: "YES",
              dataSource: "source-name",
          })
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        </div>
      </div>


      ### 4. Ingest Actor Account Mapping


      <div class="panel">

        <div class="panel__text">
         Collect your customer’s and customer’s account data and follow the data structure outlined below to map Actors to Accounts in the Lucinity Platform.

      Use the provided code snippet to try it out.

        </div>

        <div class="panel__code">
          <h3>Transmitting Actor-Account Mapping</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .post("https://<your environment>/api/accounts/<Account ID>/actors")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .send({
              asOfDate: "2019-08-24",
              actors: [
                  {
                      id: "ACT985002241",
                      role: "OWNER",
                  },
              ],
          })
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        </div>
      </div>


      ### 5. Ingest Balance on Accounts Data


      <div class="panel">

        <div class="panel__text">
      Collect your customer’s account balance data and follow the data structure
      outlined below to ingest it to the Lucinity Platform.


      The following code snippet reflects the required account balance data
      fields for initializing the system, see [Actor
      Intelligence](/#tag/Actor-Intelligence) for all available fields.

        </div>

        <div class="panel__code">
          <h3>Transmitting Account Balance Data</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .send("https://<your environment>/api/accounts/<Account ID>/balances")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .post({
              asOfDate: "2019-08-24",
              currency: "USD",
              current: 5000,
              available: 4000,
              type: "CLOSING",
          })
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        </div>
      </div>


      ### 6. Ingest Transaction Data


      <div class="panel">

        <div class="panel__text">
      Collect your customer’s transactions data and follow the data structure
      outlined below to ingest it to the Lucinity Platform.


      The sidebar code snippet reflects the required transaction data fields for
      initializing the system, see [Transaction
      Monitoring](/#tag/Transaction-Monitoring) and [Actor
      Intelligence](/#tag/Actor-Intelligence) for all available fields.

        </div>

        <div class="panel__code">
          <h3>Transmitting Transaction Data</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .post("https://<your environment>/api/v2/transactions")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .send({
              id: "TXN949000250",
              created_at: 1697470699,
              direction: "OUTBOUND",
              status: "COMPLETED",
              description: "Transfer for bill xx",
              channel: "ONLINE",
              account_id: "ACC99140294",
              amount: {
                  value: 100.15,
                  currency: "USD",
              },
              standardized_amount: 200.25,
              account_balance: 4000.05,
              account_owner_id: "ACT985002241",
              method: "WIRE_TRANSFER",
              purpose: "BILL_PAYMENT",
              counterparty: {
                  object: "LEGAL_ENTITY",
                  id: "CPid",
                  name: "Vortexecurity",
                  account_info: {
                      account_number: "123-45-6789",
                      iban: "GB61xxxxxxxxxxxxxxxxxxxx",
                      country: "GBR",
                  },
                  industry: {
                      classification_identifier: "NAICS",
                      code: "561621",
                  },
                  metadata: {
                      identifiable_as_actor: "true",
                  },
              },
              metadata: {
                  international: "false",
              },
          })
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        </div>
      </div>


      ### 7. Actor Associates & Risk Assessment (Optional)


      <div class="panel">

        <div class="panel__text">
      You can enrich the data with any additional information about your
      customers to get a better risk overview, such as entities linked to
      customers, internal or external risk assessments, etc. Follow the data
      structure outlined below.


      Use the provided code snippet to try it out.

        </div>

        <div class="panel__code">
          <h3>Transmitting Actor Associates</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .post("https://<your environment>/api/actors/<Actor ID>/associates")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .send({
              asOfDate: "2019-08-24",
              actorAssociates: [
                  {
                      id: "AA842099",
                      name: "Fred Patricks",
                      type: "REPRESENTATIVE",
                      customer: false,
                      dataSource: "source-name",
                  },
              ],
          })
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        <h3>Transmitting Risk Assesment</h3>

      ```jsx

      const unirest = require("unirest");

      unirest
          .post("https://<your environment>/api/actors/<Actor ID>/riskAssessments")
          .headers({
              "X-Api-Key": "<Secret API Key>",
          })
          .send([
              {
                  asOfDate: "2019-08-24",
                  type: "PEP",
                  value: "1",
              },
          ])
          .then((response) => {
              console.log(response.body);
          })
          .catch((err) => {
              console.log(err);
          });
      ```

        </div>
      </div>


      ### 8. Initialize Your Data Batch


      <div class="panel">

        <div class="panel__text">
      With all relevant data sent in steps 2-6, you need to evoke the initialize
      method to get the batch running and analyzed.


      The initialization method you use depends on whether you want to run
      [Transaction Monitoring](https://www.lucinity.com/transaction-monitoring)
      or [Actor Intelligence](https://www.lucinity.com/actor-intelligence):


      -   for **Transaction Monitoring** set the `processType` parameter to
      _AML_


      -   for **Actor Intelligence** set the `processType` parameter to _ACTOR_


      For more information see [Initialize
      Batch](/#tag/Detect/operation/InitializeBatch)


      Use the code examples in the sidebar to get you started.

        </div>

        <div class="panel__code">
          <h3>Initializing the batch for Transaction Monitoring.</h3>

      ```jsx

      const unirest = require("unirest");

      unirest.post("https://<your environment>/api/detection/initialize");

      .headers({
        "X-Api-Key": "<Secret API Key>",
      })

      .send({
        closeOfBusinessDate: "2020-02-01",
        lineOfBusiness: "INDIVIDUAL",
        processType: "AML",
      })

      .then((response) => {
        console.log(response.body);
      })

      .catch((err) => {
        console.log(err);
      });

      ```

        </div>
      </div>


      ## Further information


      Refer to documentation for [Transaction
      Monitoring](/#tag/Transaction-Monitoring) and [Actor
      Intelligence](/#tag/Actor-Intelligence) for information about how to use
      some of Lucinity’s advanced capabilities through APIs.


      ## Make Money Good


      That’s it! Expected more steps? Sorry to disappoint.


      Congratulations, you are ready to **Make Money Good** with Lucinity. Have
      fun, and don't hesitate to reach out to us if you need assistance.


      ---
  - name: Authentication
    x-displayName: Authentication
    description: >-
      Lucinity uses [API Keys](/#section/Lucinity-API-Keys) to authenticate your
      access to the environment. Authentication is performed via HTTP(S) with an
      Api key schema.


      ## ApiKeyAuth


      <div class="panel">

        <div class="panel__text">

      The client must send the key in an `x-api-key header` when making request
      to protected resources.

        </div>

        <div class="panel__code">

        <h3>Authenticating</h3>

      ```jsx

      headers = { "x-api-key": "{API_KEY}" };

      ```

        </div>
      </div>


      ----
  - name: Core Data
    x-displayName: Core Data
    description: >
      Core Data represents the data points you add to Lucinity from sources like
      your KYC pipeline, transactions, etc.


      After ingested, it is then used by the Lucinity platform to calculate risk
      scores and other operations that gives the AML team intelligent insight
      into customer behavior.
  - name: Webhooks
    x-displayName: Webhooks
    description: >
      Webhooks serve as automated messages sent from one system to another in
      real-time. Rather than requiring you to constantly request updates from
      another service (known as "polling"), webhooks work by sending an
      immediate HTTP POST request to a designated URL—known as the "webhook
      endpoint"—when a specific event happens.


      This means your application can instantly react to events in other
      systems, making your development process more efficient, scalable, and
      responsive. You simply configure the endpoint URL in the service sending
      the event, and then your system will receive real-time updates
      automatically.


      In summary, webhooks offer a straightforward way to enhance your
      applications through real-time, event-driven communication between
      services.
  - name: Reporting
    x-displayName: Reporting
    description: >
      The reporting APIs offer customers real time access to various reports
      pulled from the Lucinity platform. They are grouped into categories and
      listed out below.
  - name: Segmentation
    x-displayName: Segmentation
    description: >
      The Segmentation API provides a flexible and efficient way to categorize
      and group legal entities, enabling precise targeting and analysis within
      your detection scenarios and investigations.


      Segmentation is structured around **Categories** and **Groups**:


      - A **Category** represents a broad classification or theme, such as
      “Industry Classification” or “Annual Turnover.”

      - Within each **Category**, there are multiple **Groups** that serve as
      specific subsets. For example, the “Industry Classification” Category
      might include Groups like “Healthcare Providers,” “Financial Services,”
      “Manufacturing,” and “Retail.”

      - Each **Group** belongs exclusively to one Category and can contain
      multiple legal entities (actors).

      - A legal entity (actor) can be assigned to multiple Groups across
      different Categories, allowing for comprehensive segmentation based on
      various criteria.


      **Example:**


      If you want to segment legal entities by their **Industry
      Classification**, you can create a Category called “Industry
      Classification” and define Groups such as:

      - “Healthcare Providers,” including entities like hospitals, clinics, and
      pharmaceutical companies.

      - “Financial Services,” covering banks, insurance companies, and
      investment firms.

      - “Manufacturing,” for entities involved in producing goods, such as
      automotive or electronics manufacturers.

      - “Retail,” which includes department stores, online retailers, and
      supermarkets.


      Additionally, you could use another Category, such as **Annual Turnover**,
      to group entities by their revenue. Under this Category, you might define
      Groups like:

      - “Up to $1 Million”

      - “$1 Million to $10 Million”

      - “$10 Million to $100 Million”

      - “Over $100 Million”


      Legal entities can be assigned to the relevant Groups based on their
      primary business activities and annual turnover. This segmentation allows
      for the development of tailored rules and detection scenarios, such as
      monitoring for industry-specific compliance risks or conducting focused
      market analyses.


      By utilizing the Segmentation API, you gain the ability to create dynamic
      and customized classifications that support more targeted decision-making
      and strategic planning.
  - name: Glossary
    x-displayName: Glossary
    description: "## Actor\n\nAn Actor is a human or a legal entity involved in a banking transaction: the account holder/customer, bank staff facilitating the transaction or bank database/platform, etc. An Actor can be an originator or Beneficiary when it comes to customers.\n\n## Alert\n\nAn Alert is a review based on underlying red flags that requires analyst attention.\n\n## AML Risk\n\nAn AML Risk Assessment measures risk exposure. A money laundering risk assessment is an analytical process applied to a business to measure the likelihood or probability that a person (or legal entity) will unwittingly engage in money laundering or financing terrorism. Key Risk Indicator (KRI) is a metric used to measure the likelihood that the combined probability of an event and its consequence will exceed the organization's risk appetite and have a profoundly negative impact on an organization's ability to be successful.\n\nMany of the sanctions currently imposed by banking regulators contain provisions that require improvements in risk management programs for AML and The Office of Foreign Assets Control (OFAC) compliance. The starting point of a strong AML risk assessment program should be an accurate and comprehensive AML / OFAC risk assessment.\n\n## AML risk-score\n\nAML Risk-Scoring identifies the areas where business is most vulnerable to money laundering and terrorist financing risks (ML/TF) and helps take the appropriate preventative measures. Risk-Scoring identifies and monitors high-risk countries, products, accounts, and clients from the FI's entire customer base and helps determine the proper level of customer due diligence (CDD) applicable to adhere to regulations, including the revised FATF (Financial Action Task Force) International Standards.\n\nFinancial Action Task Force (FATF) is an international policy-making body that sets anti-money laundering standards and counter-terrorist financing measures worldwide.\n\n## AML Taxonomies\n\nAML Taxonomies represent the formal structure of classes or types of objects within the AML domain. A taxonomy follows a hierarchic format and provides names for each object in relation to the other object.\n\n## Audit\n\nThe Audit function of a bank reports to the audit committee of the board of directors (or similar oversight body). Its role is to independently evaluate the risk management and controls of the bank through periodic assessments, including the adequacy of the bank's controls to mitigate the identified risks, the effectiveness of the bank's staff's execution of the controls, the efficacy of the compliance oversight and quality controls and the effectiveness of the training.\n\n## Behavior\n\nBehavior is the customer's way of transacting and is lined with historical or expected transactions. During their day-to-day activities, first-line employees may observe unusual or potentially suspicious behavior exhibited by customers. According to policies and procedures, first-line employees are required to be vigilant in their identification, escalation, and reporting of potentially suspicious and or unusual activities.\n\n## Behavior Detection\n\nBehaviors Detection replaces the rule-based approach with an actor-based approach. While a rule-based detection uses singular, expertly chosen data points to flag potentially suspicious activities, Behavior Detection considers the actor's context: the actors' past activity, their peer group, their expected transaction prole, and how the data interplays to conclude. Behavior Detection provides insights on why a case is suspicious, rather than putting this burden on investigators.\n\n## Behavior Risk\n\nBehavior Risk determines the risks associated with the behavior of the customer. Simply knowing a customer's occupation or the banking products they use does not necessarily add predictive value to a model. More telling is whether the customer's transaction behavior is in line with what would be expected given the stated occupation or how the customer uses a product.\n\nEvidence shows that customers with deeper banking relationships tend to be lower risk, which means customers with a checking account and other products are less likely to be high risk. The number of in-person visits to a bank might also help determine more accurately whether a customer with a checking account posed a high risk, as would his or her transaction behavior—the number and value of cash transactions and any cross-border activity.\n\n## Beneficiary\n\nThe Beneficiary is the person (or legal entity) who benefits from a transaction, for example, receiving the proceeds of a wire or a payout from an insurance policy.\n\n## Case\n\nIn a Case, the analyst is looking at the parties, accounts, and transactions involved and any outside parties or transactions that might be relevant. Anti-money laundering (AML) Case Management is the critical step where analysts at financial institutions review suspicious activity. The detection rules in an AML system flag all the transactions that meet specific criteria. Then, analysts review those transactions to determine whether they might be criminal activity. Lastly, it files the SAR directly with the Financial Crimes Enforcement Network (FinCEN).\n\n## Case Management\n\nAnti-money laundering (AML) Case Management is the critical step where analysts at financial institutions review suspicious activity. The detection mechanisms in an AML system flag all the transactions that meet specific criteria. Then, analysts review those transactions to determine whether they might be criminal activity. The Case Manager provides a dashboard overview of customer KYC, transaction history, and any investigations undertaken or regulatory filings filed on a customer.\n\n## Case Summary\n\nAfter gathering and organizing evidence and evaluating it, the investigator consistently documents the relevant evidence as a Case Summary that includes all the red flags identified in the case.\n\n## Champion Challenger Models\n\nChampion and Challenger Models expose the underlying settings, parameters, and code. Though the system is creating the pipeline for the user, the model development process is not a black box and is editable.\n\n## False Positive\n\nA False Positive refers to a hit identified during the screening process as a possible alert. However, when reviewed, it is found\_not to match\_a target named on a sanctions list, high-risk profile, or outside of a typical transaction.\n\n## Geographic Risk\n\nThe Geographic Risk measures the risk exposure by countries. It comprises three financial crime-relevant risk parameters:\n\n- Criminal indicators such as corruption indices, political risk maps, countries considered tax havens, countries susceptible to terrorism, etc.\n- Political factors such as political stability, the rule of law, civil liberties, etc.\n- The regulatory expectations and requirements of various countries. Based on ML risk perspectives or FATF Mutual Evaluation Reports.\n\n## Investigation\n\nAn Investigation is a process of obtaining, evaluating, recording, and storing information about an individual or legal entity with whom one is conducting business in response to an alert indicating a possible sanctions violation. Investigations often begin with simple checks before progressing to further analysis, such as account review, customer outreach, and possible escalation to the compliance function.\n\n## Knowledge graph\n\nA Knowledge Graph is a semi-structured data model characterized by three components:\n\n- a (ground) extensional component (EDB, extensional database), with constructs, namely facts, to represent data in terms of a graph or a generalization thereof;\n- an intentional component (IDB, intentional database), with reasoning, rules over the facts of the ground extensional component;\n- a derived extensional component, the reasoning component, produced in the reasoning process, which applies rules on the ground facts reasoning on a knowledge graph concerns the different ways to traverse it while answering queries, reaching all the interlinked involved entities along different paths, possibly requiring the creation of new parts of the graph: creating new knowledge.\n\nKnowledge Graphs have emerged as an essential tool for AML and transaction monitoring. As money laundering involves cash flow relationships between entities, Knowledge Graphs can capture financial transactions. Examples of graph analytics techniques are clustering and label propagation. Clustering enables focus on investigating specific high-risk sectors while simultaneously reducing the focus on low-risk sectors, providing an efficient allocation of analyst resources, and reducing false positives. Label propagation helps find previously unknowable patterns that may have been missed by analysts in the transaction monitoring process, thereby reducing false negatives.\n\n## KYC Risk\n\nA KYC Risk rating calculates risk: either posed by a specific customer or an institution faces based on its customer portfolio. Most institutions calculate both of these risk ratings as each of them is equally important.\n\nPoor data quality is the single most significant contributor to the poor performance of customer risk-rating models. Incorrect Know-Your-Customer (KYC) information, missing information on company suppliers, and erroneous business descriptions impair the effectiveness of screening tools and needlessly raise the workload of investigation teams. In many institutions, over half the cases reviewed have been labeled high risk simply due to insufficient data quality.\n\n## KYC Sources\n\nThe first pillar of a KYC compliance policy is the Customer Identification Program (CIP). CIPs verify the customer's identity using credentials like their name, date of birth, address, social security number, or other documents.\n\nThe second pillar of KYC compliance policy is Customer Due Diligence (CDD). CDD is a KYC process in which all of a customer's credentials are collected to verify their identity and evaluate their risk profile.\n\nThe third pillar of KYC compliance policy is Continuous Monitoring. Checking a customer once isn't sufficient to ensure security. Understanding a customer's typical account activity and monitoring the activity is necessary to catch irregularities and eliminate risks as they arise.\n\n## Narration\n\nThe Narration is a well-structured summary of research findings to help analysts analyze cases more efficiently. The Narration includes five essential elements of information – Who? What? When? Where? and Why?\n\n## Network Association Risk\n\nNetwork analytics examines the connections between related entities to better illuminate relationships. Instead of analyzing an individual, subcomponents of the network are reviewed for similarity to known methods of money laundering and atypical customer behavior.\nNetworks are formed by links between customers and related activity. These (sometimes inferred) links can be internal data, such as account transfers or joint ownership, or external data, such as a shared address or common use of the same ATM.\n\nNetwork analytics complements existing machine learning and fuzzy logic-based approaches that many banks use for AML monitoring. Network statistics can improve the accuracy of customer risk rating or transaction monitoring models. Fuzzy logic-based methods that resolve customer identities can also be enhanced by looking at how closely accounts are connected. In addition to improving the effectiveness of existing techniques, network analytics provides investigators with new capabilities. For example, community detection algorithms can identify customer groups that could indicate criminal behavior.\n\n## Noise vs. Signal\n\nThe greatest opportunity for application is in the money laundering and terrorist financing transaction monitoring process. Traditional systems detect specific typologies that can be circumvented. Furthermore, the results from these models contain more noise than 'signals of risk' as the net is often cast wide not to miss a potentially suspicious activity.\n\n## Observation\n\nAn Observation is an element of an institution's anti-money laundering program to identify unusual or suspicious patterns, trends, or outlying transactions that do not fit a typical pattern.\n\n## Originator\n\nThe Originator is the account holder or, where there is no account, the person (or legal entity) who places the order with the financial institution to perform the wire transfer.\n\n## Peer group\n\nPeer Group Analysis, in layperson's terms, is the grouping of like businesses and entities for the purpose of comparison. From this grouping of like entities, various ratios and statistical methodologies can be applied to determine outliers. Once outliers have been isolated, analysis of these outliers is integral to learn more about the entity and its activity. Ultimately, the goal is to learn more about the business sector or determine whether the outlying activity is a consequence of suspicious activity. Once suspicious activity is determined, the associated data can provide a basis for developing behavioral typologies to find other potentially suspicious activity.\n\n## PEP Risk\n\nThe definition of a politically exposed person (PEP) is an individual with a high-profile political role or who has been entrusted with a prominent public function. They present a higher risk of money laundering or terrorist financing because of their position.\n\nAccording to FATF's International Standards on Combating Money Laundering and the Financing of Terrorism & Proliferation (2012), there are two types of politically exposed persons (PEPs).\n\nForeign PEPs: Individuals who are or have been entrusted with prominent public functions by a foreign country (e.g., heads of state or government; senior politicians; senior government, judicial or military officials; senior executives of state-owned corporations, and important political party officials).\n\nDomestic PEPs: Individuals who are or have been entrusted domestically with prominent public functions (e.g., heads of state or government; senior politicians; senior government, judicial or military officials; senior executives of state-owned corporations, and important political party officials).\n\n## Product Risk\n\nThe Product Risk assessment measures the risk associated with products or services offered to customers. Some products and services offered may have a higher risk assigned, depending on the nature of the product and service, e.g., because they may facilitate anonymity or handling with high volumes of currency.\n\n## Reputation Risk\n\nReputation Risk relates to the potential loss of public confidence in an organization's integrity due to unlawful or unethical business practices, whether accurate or not. A money-laundering scandal could even result in banks' customers stopping doing business with them, thereby impacting the bottom line.\n\n## Review Feedback\n\nThe Review Feedback is the process of reviewing the information or facts retrieved through the investigation. As per the investigator's research, the alerted case can be closed, escalated for further review, or reported as false positive.\n\n## SAR\n\nA Suspicious Activity Report (SAR) is a document that financial institutions, and those associated with their business, must file with the Financial Crimes Enforcement Network (FinCEN) whenever there is a suspected case of money laundering or fraud.\n\n## Suspicious Activity\n\nSuspicious Activity refers to irregular or questionable customer behavior or action potentially related to money laundering or other criminal offense or the financing of terrorist activity. It may also refer to a transaction that is inconsistent with a customer's known legitimate business, personal activities, or the expected level of activity for that kind of business or account.\n\n## Systemic Risk\n\nSystemic Risk is the disruption to the flow of financial services that is (i) caused by an impairment of all or parts of the financial system, and (ii) has the potential to have serious negative consequences for the real economy.\n\n## Workflow (Case)\n\nA Case Management Workflow is a method of managing and processing a case. It breaks down the tasks needed to resolve a case and maps out their execution from beginning to end.\n\nA typical case workflow used in incident management can have the following steps:\n\n1. The incident report is received.\n2. The incident is evaluated. If false-positive, end workflow. If valid, proceed to step three.\n3. Email or a ticket is sent to the team in charge.\n4. The team deliberates and decides on the incident report.\n5. The team proposes and applies a solution.\n6. If the solution works, the workflow is completed. If it needs further review, go back to step three four.\n\nThis type of case management workflow is highly dynamic and depends on many different factors. It relies on the knowledge worker, the data that emerges, and other unpredictable events. It often requires collaboration between team members, and steps might need repetition frequently."
x-tagGroups:
  - name: Quickstart Guide
    tags:
      - Quickstart Guide
  - name: Authentication
    tags:
      - Authentication
  - name: Core Data
    tags:
      - Core Data
      - Actors
      - Accounts
      - Transactions
      - Observations
      - Cases
  - name: Webhooks
    tags:
      - Webhooks
      - Webhook
      - Case Events
  - name: Reporting
    tags:
      - Reporting
      - Observation Reporting
      - Signals Reporting
      - Audit Logs
  - name: Segmentation
    tags:
      - Segmentation
      - Categories
      - Groups
  - name: Glossary
    tags:
      - Glossary
openapi: 3.1.0
info:
  title: Lucinity API
  version: '3.3'
  description: >
    **Welcome to the Lucinity API!**


    [Lucinity](https://lucinity.com) is an API-first SaaS solution for AML: our
    platform ingests your data to make integration and data publishing simple
    and seamless. Our modular approach separates the functionality of the user
    interface centered around customer use cases, but the backend APIs are
    unified so the system can scale with your needs.
servers:
  - url: https://<your environment>/api
security:
  - ApiKeyAuth: []
webhooks:
  CaseAssignedEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: CaseAssignedEvent
      summary: Case Assigned
      requestBody:
        description: Information about an event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseAssignedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  CaseClosedEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: CaseClosedEvent
      summary: Case Closed
      requestBody:
        description: Information about an event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseClosedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  CaseCreatedEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: CaseCreatedEvent
      summary: Case Created
      requestBody:
        description: Information about an event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseCreatedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  CaseWorkflowActioned:
    post:
      security: []
      tags:
        - Case Events
      operationId: CaseWorkflowActioned
      summary: Case Workflow Action Performed
      requestBody:
        description: Information about an event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseWorkflowActionedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  CaseCommented:
    post:
      security: []
      tags:
        - Case Events
      operationId: CaseWorkflowCommented
      summary: Commented on a case event
      requestBody:
        description: Information about a comment event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseCommentedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  TransactionDecisionUpdateEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: TransactionDecisionUpdateEvent
      summary: Transaction Decision Update Event
      requestBody:
        description: Information about an event in the systems
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/TransanctionDecisionUpdatedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  ObservationFeedbackEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: ObservationFeedbackEvent
      summary: Case Observation Feedback Updated
      requestBody:
        description: Information about an event in the system
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/CaseObservationFeedbackEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
  ObservationActionedEvent:
    post:
      security: []
      tags:
        - Case Events
      operationId: ObservationActionedEvent
      summary: Observation Actioned Event
      requestBody:
        description: >-
          Information that a event has been actioned, typically a case
          observation. This event is triggered when an observation is actioned.
          Currently only supports "WHITELIST" action.
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/WebhookEvent'
                - $ref: '#/components/schemas/ObservationActionedEventData'
      responses:
        '200':
          description: >-
            Return a 200 status to indicate that the data was received
            successfully
components:
  schemas:
    ObservationActorsResponse:
      type: object
      x-showSchema: true
      x-groupedUnder: Observation
      properties:
        status:
          type: string
          example: success
    ObservationActivities:
      type: array
      x-showSchema: true
      x-groupedUnder: Observation
      description: Container for the activity-id and activity-type.
      items:
        type: object
        properties:
          activityId:
            type: string
            description: The activityId on the platform which detected the observation.
            x-vitalAttribute: true
          activityType:
            type: string
            description: Describes the type of activity used in the ObservationActivities.
    TransactionStatus:
      type: string
      x-showSchema: true
      x-groupedUnder: Transactions
      description: >-
        Status indicates the state or condition of the transaction. Only
        *COMPLETE* transactions will be included in the Lucinity's Behavioral
        Monitoring and Rule Engine. Possible values:


        * *COMPLETE* - The transaction took place and will be included in
        Lucinity's Behavioral Monitoring and Rule Engine.


        * *PENDING* - The transaction has not yet been fully processed by the
        merchant. The transaction will not be included in Lucinity's Behavioral
        Monitoring and Rule Engine.


        * *VOID* - The transaction was cancelled before it was settled. The
        transaction will not be included in Lucinity's Behavioral Monitoring and
        Rule Engine.


        * *FAILED* - The transaction failed for some reasons. The transaction
        will not be included in Lucinity's Behavioral Monitoring and Rule
        Engine.
      enum:
        - COMPLETE
        - PENDING
        - VOID
        - FAILED
    TransactionMethod:
      type: string
      x-showSchema: true
      x-groupedUnder: Transactions
      description: >-
        Method, type or nature of the transaction. Possible values:


        * *FEE* - Bank charge or fee charged to the customer.


        * *INTEREST* - Interest credited to the customer.


        * *CASH* - Cash deposited or withdrawn. Includes cash transactions at
        ATM locations.


        * *CARD* - Credit/Debit card transaction at a point-of-sale location.
        (But *not* card withdrawal from an ATM.)


        * *CHECK* - Check deposited or paid.


        * *PAYMENT* - Payment to supplier of goods or services eg. utility bills
        payment etc.


        * *DIRECT_DEBIT* - An automatic transaction initiated by a third party
        at regular intervals. It differs from `STANDING ORDER` in that the
        transaction is initiated by the counterparty.


        * *STANDING_ORDER* - An automatic transaction initiated by the account
        holder at regular intervals. It differs from `DIRECT DEBIT` in that the
        transaction is initiated by the account holder.


        * *TRANSFER* - A non-recurring electronic fund transfer made to other
        accounts inside of the financial institution or otherwise.


        * *REVERSAL* - Reversal of a transaction.


        * *CORRECTION* - Correction of a transaction error. (Typically
        adjustments made related to another transaction.)


        * *OTHER* - Miscellaneous account debit or credit, uncategorized by the
        bank.


        * *CLOSED* - Final transaction on an account being closed made to the
        account holder.
      enum:
        - FEE
        - INTEREST
        - CASH
        - CHECK
        - PAYMENT
        - DIRECT_DEBIT
        - STANDING_ORDER
        - TRANSFER
        - REVERSAL
        - CORRECTION
        - OTHER
        - PREPAID
        - CLOSED
        - CARD
    ChannelType:
      type: string
      x-showSchema: true
      x-groupedUnder: Reference Data
      description: The type of channel that was used to *initiate* the transaction.
      enum:
        - BRANCH
        - ONLINE
        - ATM
        - POS
        - MOBILE
        - UNKNOWN
    SourceSystem:
      type: object
      x-showSchema: true
      x-groupedUnder: Publishing Metadata
      description: Container schema that shows attributes of a source/upstream system.
      required:
        - name
        - urlTemplate
      properties:
        name:
          type: string
          example: system
          x-vitalAttribute: true
          description: This will also serve as the source system id
        urlTemplate:
          type: string
          x-vitalAttribute: true
          format: url
          example: http://example.com/{itemId}
          description: >-
            For URLs to external systems the activity reference id will be used
            to replace the {itemId} string
    Error:
      type: object
      x-showSchema: true
      x-groupedUnder: Error
      description: >-
        Holds the error code and message that is emitted as result from Lucinity
        API.
      properties:
        code:
          type: string
          description: Code
          x-vitalAttribute: true
        message:
          type: string
          description: Message
          x-vitalAttribute: true
      example: Input didn't have expected field
      required:
        - code
        - message
    geoTag:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: Latitude and longitude where the message originated.
      properties:
        latitude:
          type: string
          description: Latitude Value
          x-vitalAttribute: true
        longitude:
          type: string
          description: Longitude Value
          x-vitalAttribute: true
    ChannelLocation:
      type: object
      x-showSchema: true
      x-groupedUnder: Reference Data
      description: |
        Represents a physical location associated with a transaction channel.
      required:
        - id
        - type
      properties:
        id:
          type: string
          description: Unique identifier for the channel location.
        type:
          type: string
          description: Defines the type of the location.
          enum:
            - ATM
            - BRANCH
            - OTHER
        ingestDate:
          type: string
          format: date-time
          description: >-
            The date and time when the channel location was ingested into the
            system.
    BaseEntity:
      type: object
      x-showSchema: true
      description: >-
        BaseEntity is the foundational object for most of the schemas in the
        Lucinity platform.

        It encompasses the regularly found attributes like id, dataSource ,
        metadata (key/values) and classification.
      required:
        - id
      properties:
        id:
          type: string
          x-vitalAttribute: true
          description: >-
            Primary identifier for the entity. If the entity type is
            [transaction](/#tag/Transactions-V2), it should be unique and
            consistent across entries.
          example: 568975e1-d16b-4e5a-9ecd-16cb105a6976
        dataSource:
          type: string
          description: >-
            An identifier that represents the system from which the record is
            originated.
          example: SWAGGER_API
        references:
          type: array
          description: Reference attribute
          x-vitalAttribute: true
          items:
            $ref: '#/components/schemas/Reference'
        ingestDate:
          type: string
          format: date-time
          description: Date time for when the object was ingested
          example: '2020-05-03T14:03:41.089Z'
        classification:
          deprecated: true
          description: Reference attribute
          x-vitalAttribute: true
          $ref: '#/components/schemas/Classification'
        accessClassification:
          deprecated: true
          description: Reference attribute
          $ref: '#/components/schemas/AccessClassification'
    BalanceType:
      x-showSchema: true
      x-groupedUnder: Account
      type: string
      description: The type of balance, e.g. CLOSING indicating EOD balance
      example: CLOSING
      enum:
        - CLOSING
    Balance:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: Represents the balance on an account.
      required:
        - currency
        - current
      properties:
        accountId:
          type: string
          description: The account id that the balance belongs to
          example: ACC0001
          readOnly: true
        internalId:
          type: string
          description: The internal id of the balance
          example: a083f3a8-f055-4252-a22d-ed476ca082ed
          readOnly: true
        ingestDate:
          type: string
          format: date-time
          readOnly: true
          description: Date time for when the object was ingested
        asOfDate:
          type: string
          format: date
          description: The date when this record became valid
        currency:
          type: string
          pattern: /[A-Z]{3}/
          description: ISO currency of the balance
          example: USD
        current:
          type: number
          description: The balance on the account at the end of day
          example: 5000
        available:
          type: number
          description: The available balance on the account at the end of day
          example: 4000
        type:
          $ref: '#/components/schemas/BalanceType'
    Account:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: >-
        Account wraps vital attributes that describe the account used in
        transactions.

        The account can be of various types such as savings, current, term
        deposit, loan, or credit cards.

        This object is widely used in the Lucinity platform.
      allOf:
        - $ref: '#/components/schemas/BaseEntity'
        - required:
            - asOfDate
            - accountType
          properties:
            accountType:
              $ref: '#/components/schemas/AccountType'
            asOfDate:
              type: string
              format: date
              description: The date when this record became valid
            name:
              type: string
              example: Mez's account
              description: The name of the account.
            metadata:
              description: Reference attribute
              $ref: '#/components/schemas/Metadata'
            subType:
              type: string
              description: Subtype of the account
              enum:
                - PERSONAL
                - BUSINESS
            status:
              type: string
              description: Status of the account
              enum:
                - ACTIVE
                - CLOSED
                - TERMINATED
                - NO_TRADING
            monitored:
              type: string
              deprecated: true
              description: >-
                Is the Account monitored? EXPERIMENTAL: This field does not have
                any affect on Lucinity's Behavioral Monitoring or Rule Engine.
              enum:
                - 'YES'
                - 'NO'
            accountNumber:
              type: string
              description: The account number
            iban:
              type: string
              description: The IBAN of the account
            productType:
              type: string
              x-vitalAttribute: true
              description: >-
                Account Base Product, used for internal reference for products
                such as loans, etc. Used to display the information in the UI.
            currencyCode:
              type: string
              description: ISO currency of the account
            domicile:
              type: string
              description: >-
                The 2 letter [ISO 3116-1
                Alpha-2](https://www.iso.org/iso-3166-country-codes.html)
                country code.
            openedDate:
              type: string
              x-vitalAttribute: true
              format: date
              description: Date of when account was opened
            terminationDate:
              type: string
              x-vitalAttribute: true
              format: date
              description: Date of when account was terminated
            closingBalance:
              type: number
              description: Balance of account when account was closed
              example: 9865
            bankCode:
              type: string
              description: Bank code used for the Account
            productId:
              type: string
              x-vitalAttribute: true
              description: >-
                Product ID of the account, used for internal reference for
                products such as loans or other services. Used to link products
                in the UI.
            internal:
              type: boolean
              description: Indicates that account is owned by the bank
            depositable:
              type: boolean
              description: Indicates that account is depositable
            withdrawable:
              type: boolean
              description: Indicates that account is withdrawable
            collateral:
              type: boolean
              description: Indicates that account is held as collateral
            terminated:
              type: boolean
              description: Indicates that account has been terminated
            accountInDefault:
              type: boolean
              description: Indicates that account is in default or overdraft
            accountInDefaultDays:
              type: integer
              description: Number of days account has been in default or overdraft
            interest:
              type: array
              items:
                $ref: '#/components/schemas/Interest'
              description: Interest reference
            balance:
              description: Account Balance reference
              $ref: '#/components/schemas/AccountBalance'
            termDeposit:
              description: Term Deposit reference
              $ref: '#/components/schemas/TermDepositFacility'
            credit:
              description: Credit Facility reference
              $ref: '#/components/schemas/CreditFacility'
            loan:
              description: Loan facility reference
              $ref: '#/components/schemas/LoanFacility'
            brokerage:
              description: Trading Account reference
              $ref: '#/components/schemas/TradingAccount'
            accountAgreementId:
              type: string
              deprecated: true
              description: Agreement ID of the account.
            primaryRepresentativeId:
              type: string
              deprecated: true
              description: The id of the primary representative for the account.
            beneficiaryOwnerId:
              deprecated: true
              type: string
              description: The id of the beneficiary owner for the account.
            customData:
              $ref: '#/components/schemas/CustomData'
    LoanFacility:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: Holds attributes about the loan object.
      properties:
        loanType:
          type: object
          $ref: '#/components/schemas/LoanType'
          description: Indicates the type of loan.
        loanPrincipal:
          type: number
          x-vitalAttribute: true
          description: Loan original value
          example: 1000000
        loanPrincipalLcy:
          type: number
          description: Loan original value, converted to LCY
          example: 100000
        loanInstallment:
          type: number
          description: Loan installment amount, per month
          example: 100000
        loanSecured:
          type: boolean
          x-vitalAttribute: true
          description: Indicates that loan is secured
        loanPeriodRemaining:
          type: integer
          description: Length of the loan term remaining, in months
        loanIssueDate:
          type: string
          format: date
          description: Date of when loan facility was started
        loanFinalDate:
          type: string
          format: date
          description: Date of when start facility finishes
    CreditFacility:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: Information on the account Credit facility.
      properties:
        creditType:
          description: Type of credit facility (credit card, line of business, overdraft).
          x-vitalAttribute: true
          $ref: '#/components/schemas/CreditType'
        creditLimit:
          type: number
          description: Credit facility limit
          example: 100000
        creditLimitLcy:
          type: number
          x-vitalAttribute: true
          description: Credit facility limit, converted to LCY
          example: 100000
        creditUnused:
          type: number
          description: Unused credit facility
          example: 100000
        creditUnusedLcy:
          type: number
          description: Unused credit facility, converted to LCY
          example: 100000
        creditIssueDate:
          type: string
          format: date
          description: Date of when credit facility was opened
        creditFinalDate:
          type: string
          format: date
          description: Date of when credit facility is closed
        creditCardNumberMasked:
          type: string
          x-vitalAttribute: true
          description: Masked credit card number
    TermDepositFacility:
      type: object
      x-showSchema: true
      x-groupedUnder: Transactions
      description: Information on the account savings facility.
      properties:
        termDepositType:
          description: Reference attribute
          $ref: '#/components/schemas/TermDepositType'
        termDepositPeriod:
          type: integer
          x-vitalAttribute: true
          description: Length of the savings term, in months
        termDepositWithdrawalNotice:
          type: boolean
          description: Indicates that account requires notice for withdrawal
        termDepositWithdrawalDate:
          type: string
          x-vitalAttribute: true
          format: date
          description: Earliest date that deposits can be withdrawn
    AccountBalance:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: >-
        Account Balance depicts the available balance (in Local Currency)on the
        account (loan, current/savings bank account etc).
      properties:
        depositBalance:
          type: number
          x-vitalAttribute: true
          description: Total deposit balance (including accrued indexation and interest)
          example: 100000
        depositBalanceLcy:
          type: number
          description: >-
            Total deposit balance (including accrued indexation and interest),
            converted to LCY
          example: 100000
        depositDisposableBalance:
          type: number
          description: Available amount of deposit on reference day
          example: 100000
        depositDisposableBalanceLcy:
          type: number
          description: Available amount of deposit on reference day, converted to LCY
          example: 100000
        loanBalance:
          type: number
          x-vitalAttribute: true
          description: Loan balance
          example: 100000
        loanBalanceLcy:
          type: number
          description: Loan balance, converted to LCY
          example: 100000
    Interest:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: Interest amount, rate etc derived from the account.
      properties:
        interestType:
          type: object
          x-vitalAttribute: true
          $ref: '#/components/schemas/InterestType'
          description: Indicates the type for the interest rate product of the account
        interestCode:
          type: string
          description: Code for the interest rate product of the account
        interestForm:
          type: object
          x-vitalAttribute: true
          $ref: '#/components/schemas/InterestForm'
          description: Form for the Interest rate to apply on the account
        interestRate:
          type: number
          description: Interest rate applied on the account
          example: 100000
    InterestType:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Type of the interest rate object (deposit, loan, overdraft, etc)
      enum:
        - DEPOSIT
        - LOAN
        - OVERDRAFT
    InterestForm:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Form or nature of interest rate (fixed, variable)
      enum:
        - FIXED
        - VARIABLE
    TermDepositType:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Enumerated values for Type of Term Deposit.
      enum:
        - NOTICE
        - DATE
        - MONTH
    CreditType:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Type of credit facility (credit card, line of business, overdraft).
      enum:
        - CREDIT_CARD
        - LINE_OF_CREDIT
        - OVERDRAFT
    LoanType:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Enumerated values for Type of Loan.
      enum:
        - MORTGAGE
        - AUTO
        - PERSONAL
        - STUDENT
    AccountType:
      type: string
      x-showSchema: true
      x-groupedUnder: Account
      description: Enumeration values for the type of account.
      enum:
        - CURRENT
        - SAVINGS
        - MONEY_MARKET
        - TERM_DEPOSIT
        - LOAN
        - CREDIT_CARD
        - TRADING
        - HELD_IN_CUSTODY
        - CASH_ON_DELIVERY
        - BOTH_HIC_AND_COD
    TradingAccount:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: Contains attributes for an trade account.
      properties:
        regulatoryExemptionType:
          type: string
          x-vitalAttribute: true
          description: Regulatory Exemption Type
        settlementInstruction:
          type: string
          x-vitalAttribute: true
          description: Settlement Instructions
        isGiveIn:
          type: boolean
          description: Is Given In
        isGiveUp:
          type: boolean
          description: Is Given Up
        isWhiteLabel:
          type: boolean
          description: Is White Labeled
        isDmaBroker:
          type: boolean
          x-vitalAttribute: true
          description: Is DMA Broker
        isCareBroker:
          type: boolean
          description: Is Care Broker
        locateByPass:
          type: boolean
          description: Bypass Location
        shortName:
          type: string
          x-vitalAttribute: true
          description: Short Name
        primaryDesk:
          type: string
          description: Primary Trade Desk
        aggUnit:
          type: string
          description: Aggregation Unit
        isFiduciary:
          type: boolean
          description: Is Fiduciary Flag
        isErisa:
          type: string
          enum:
            - 'YES'
            - 'NO'
            - NOT_STATED
          description: >-
            Account attribute which allows reviewers easily identify if an
            exception is generated for accounts whose ERISA status is not coded
            in RADAR and request for the ERISA status to be coded in RADAR.
        is1940ActAccount:
          type: string
          enum:
            - 'YES'
            - 'NO'
            - NOT_STATED
          description: >-
            Account attribute which allows reviewers to easily identify if
            40Act/ERISA have crossed with non ERISA/40Act accounts.
        tradingDesk:
          type: string
          description: >-
            Account attribute which help reviewers identify trades done by
            trading desks (e.g. FE/QIS/FI etc.) and allows investigation of
            specific trading behavior and market risk.
        brokerName:
          type: string
          description: Name of the broker that the account is held with
        brokerId:
          type: string
          description: Id of the broker that the account is held with
        brokerLocation:
          type: string
          description: office location of the broker that the account is held with
        region:
          type: string
          description: The region in which the trading account is primarily based in.
          example: LN, HK
    ActorType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values for Type of actor, individual or legal entity.
      enum:
        - INDIVIDUAL
        - LEGAL_ENTITY
    ActorSubType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      enum:
        - CUSTOMER
        - EMPLOYEE
        - MERCHANT
        - PSP
    ActorGender:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Gender of the actor, if an individual
      enum:
        - MALE
        - FEMALE
        - UNSPECIFIED
        - OTHER
    EmploymentType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: >-
        Enumerated values for the type of Employee. Full-time, contingent ,
        part-time etc.
      enum:
        - FULL_TIME
        - PART_TIME
        - CONTINGENT
        - PENDING
    LegalStructure:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: |-
        Legal structure or form of the legal entity actor

         - **SOLE_PROPRIETORSHIP** - Business is not a separated legal entity from its individual owner

         - **PARTNERSHIP_GENERAL** - Business is jointly owned by multiple people and governed by a partnership agreement

         - **PARTNERSHIP_LIMITED**

         - **COMPANY_PRIVATE** - Business is incorporated and privately owned, with shares not traded on a public stock exchange

         - **COMPANY_PUBLIC** - Business is incorporated and publicly owned, with shares traded on a public stock exchange

         - **HOLDING**

         - **SUBSIDIARY**

         - **NONPROFIT**

         - **ORGANIZATION**

         - **GOVERNMENT** - Organization is formed by a government statute or body

         - **TRUST**

         - **OTHER**
      enum:
        - SOLE_PROPRIETORSHIP
        - PARTNERSHIP_GENERAL
        - PARTNERSHIP_LIMITED
        - COMPANY_PRIVATE
        - COMPANY_PUBLIC
        - HOLDING
        - SUBSIDIARY
        - NONPROFIT
        - ORGANIZATION
        - GOVERNMENT
        - TRUST
        - OTHER
    LegalEntity:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Description for LegalEntity
      properties:
        dateOfRegistration:
          type: string
          x-vitalAttribute: true
          format: date
          description: Date of registration for the legal entity.
        type:
          description: Reference attribute
          $ref: '#/components/schemas/LegalStructure'
        url:
          type: string
          x-vitalAttribute: true
          description: The website of the legal entity actor
        industry:
          description: Reference attribute
          type: array
          items:
            $ref: '#/components/schemas/IndustryClassification'
        countryOfIncorporation:
          description: Reference attribute
          type: string
    GovernmentId:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Description for GovernmentId
      properties:
        id:
          type: string
          x-vitalAttribute: true
          description: government id
        type:
          type: string
          description: Reference attribute
        issuingAuthority:
          type: string
          description: issuing authority of the gov id
        expirationDate:
          type: string
          format: date
          description: validity expiration date for the gov id
    Link:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Description for Link
      properties:
        link:
          type: string
          x-vitalAttribute: true
          description: link url
        description:
          type: string
          description: link description
    RelatedAccounts:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Description for Link
      properties:
        id:
          type: string
          example: 568975e1-d16b-4e5a-9ecd-16cb105a6976
          description: Id of the account that is related
        name:
          type: string
          example: Name of the account that is related
          description: Saving account
        relationshipType:
          type: string
          example: PARENT
          description: What kind of relationship it is between the accounts
          enum:
            - PARENT
            - CHILD
            - TOP_ACCOUNT
            - PRIMARY_ACCOUNT
        accountNumber:
          type: string
          example: 568975e1-d16b-4e5a-9ecd-16cb105a6976
          description: Account number of the related account
    ValidationStatus:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values for the validation status of actor data
      enum:
        - UNVALIDATED
        - VALIDATED
        - DUE_DILIGENCE
        - VENDOR_SUPPLIED_DATA
        - MANUAL_ENTRY
    Employee:
      deprecated: true
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: >-
        Container object for an employee, it stores attributes like department,
        designation etc.
      properties:
        designation:
          type: string
          x-vitalAttribute: true
          description: The designation or corporate title of the employee
        departmentCode:
          type: string
          x-vitalAttribute: true
          description: Reference code of the employee's department
        departmentDescription:
          type: string
          description: The Name or description of employee's department
        officeDescription:
          type: string
          description: The office location of the employee
        sectorsCovered:
          type: string
          x-vitalAttribute: true
          description: Sectors covered by a research analyst
        region:
          type: string
          description: The region of the employee
        employmentType:
          description: Reference attribute
          x-vitalAttribute: true
          $ref: '#/components/schemas/EmploymentType'
        terminationDate:
          type: string
          format: date
          description: The termination date for the employee
        divisionHireDate:
          type: string
          format: date
          description: The date the employee was hired by the division
        hireDate:
          type: string
          format: date
          description: The hiring date for the employee
        supervisorName:
          type: string
          description: The supervisor's name for the employee
        tradingDeskId:
          type: string
          description: The id of the employee's trading desk
        isPartner:
          type: boolean
          description: flag to check partner title
    MilestoneType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values for Type Milestone.
      enum:
        - EDUCATION
        - EMPLOYMENT
    ExclusionType:
      type: object
      x-showSchema: true
      description: >-
        Enumerated values for the type of exclusion with a stored date tied to
        it.
      required:
        - exclusion_type
      properties:
        exclusion_type:
          type: string
          enum:
            - MONITORED
            - NOT_MONITORED
            - SUPPRESSED
          x-vitalAttribute: true
          description: >-
            The type of exclusion.


            * *MONITORED* - The actor will be monitored on the Lucinity platform
            (this is the default value for all actors).


            * *NOT_MONITORED* - The actor will not be monitored in any shape or
            form by the Lucinity platform.


            * *SUPPRESSED* - The actor will be monitored on the Lucinity
            platform, but no alerts will be raised for the actor; instead,
            signals will be stored internally. Suppressed signals can be
            retrieved through the [Get Suppressed
            Signals](/#tag/Signals-Reporting/operation/GetSuppressedSignals)
            endpoint.
        stored_at:
          type: string
          format: date-time
          description: The datetime when the exclusion was stored defaults to current time.
    Actor:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: >-
        Actor is an individual or legal entity that is ingested into Lucinity
        Platform.

        Its one of the vital object that is transmitted by the client into the
        platform.

        It contains attributes like name, address, nationality etc to identify
        an individual/entity.
      allOf:
        - $ref: '#/components/schemas/BaseEntity'
        - required:
            - asOfDate
            - type
          properties:
            metadata:
              description: Reference attribute
              $ref: '#/components/schemas/Metadata'
            type:
              type: object
              $ref: '#/components/schemas/ActorType'
              description: Set of ActorTypes for the actor
            subType:
              type: array
              x-vitalAttribute: true
              items:
                $ref: '#/components/schemas/ActorSubType'
              description: >-
                Enumerated values for Subtype of actor - customer, employee,
                merchant and PSP


                - `CUSTOMER` Represents an actor who is a direct or indirect
                customer of the integrating client.

                - `EMPLOYEE` Represents an actor employed by a customer of the
                integrating client.

                - `MERCHANT` Represents an actor engaged in selling goods or
                services.

                - `PSP` A Payment Service Provider (PSP) is a legal entity that
                facilitates electronic payments
                  between businesses, customers, and other financial institutions.
            gender:
              description: Gender reference
              $ref: '#/components/schemas/ActorGender'
            legalEntity:
              type: object
              description: legal entity reference
              $ref: '#/components/schemas/LegalEntity'
            name:
              type: string
              description: Name of individual or company
            displayName:
              type: string
              description: Full name of individual or company that will be used for display
            firstName:
              type: string
              x-vitalAttribute: true
              description: First name of actor, can be individual or full company name
            middleName:
              type: string
              x-vitalAttribute: true
              description: Middle name of actor, can be empty if no middle name or company
            lastName:
              type: string
              x-vitalAttribute: true
              description: Last name of actor, can be individual or empty if company
            isActive:
              deprecated: true
              type: boolean
              x-vitalAttribute: true
              description: >-
                Please use status and monitored. Flag for if actor is active (is
                actor dormant, has actor performed an activity last 60 days)
            status:
              type: string
              x-vitalAttribute: true
              enum:
                - ACTIVE
                - TERMINATED
              description: Enumerated values of the actor status.
            monitored:
              deprecated: true
              type: string
              x-vitalAttribute: true
              enum:
                - 'YES'
                - 'NO'
              description: >-
                Is Actor monitored? Default value `YES` -- if set to `NO` the
                Actor will be *excluded* from Lucinity's Behavioral Monitoring
                and Rule Engine.
            dateOfBirth:
              type: string
              x-vitalAttribute: true
              format: date
              description: Date of birth of the actor
            customerSince:
              type: string
              format: date
              description: Date when the actor first became a customer.
            addresses:
              type: array
              items:
                $ref: '#/components/schemas/address'
              description: Address List
            phones:
              type: array
              x-vitalAttribute: true
              items:
                $ref: '#/components/schemas/phone'
              description: Phone Number List
            emails:
              type: array
              items:
                $ref: '#/components/schemas/emailAddress'
              description: Emails List
            nationality:
              type: string
              description: >-
                The 2 letter [ISO 3116-1
                Alpha-2](https://www.iso.org/iso-3166-country-codes.html)
                country code.
            domicile:
              type: string
              x-vitalAttribute: true
              description: >-
                The 2 letter [ISO 3116-1
                Alpha-2](https://www.iso.org/iso-3166-country-codes.html)
                country code.
            asOfDate:
              type: string
              format: date
              description: The date when this record became valid
            employee:
              description: Employee reference
              $ref: '#/components/schemas/Employee'
            governmentIds:
              type: array
              items:
                $ref: '#/components/schemas/GovernmentId'
              description: Government id list for actor
            relatedLinks:
              type: array
              items:
                $ref: '#/components/schemas/Link'
              description: links to external related objects for actor
            relatedAccounts:
              type: array
              items:
                $ref: '#/components/schemas/Link'
              description: links to related accounts.
            validationStatus:
              description: Validation status for actor data
              $ref: '#/components/schemas/ValidationStatus'
            customData:
              $ref: '#/components/schemas/CustomData'
    IndustryClassification:
      type: object
      x-showSchema: true
      description: >-
        The classification of business establishments, by type of economic
        activity

        - **ISAT** - Iceland Industry Classification (IS)

        - **NAICS** - North American Industry Classification System (US)

        - **SIC** - Standard Industrial Classification (UK)

        - **SNI** - STANDARD Industrial Classification (Sweden)
      x-groupedUnder: Actors
      properties:
        code:
          type: string
          x-vitalAttribute: true
          description: The sector the actor is in
        type:
          type: string
          x-vitalAttribute: true
          description: Type of classification
          enum:
            - ISAT
            - MCC
            - NACE
            - NAICS
            - SIC
            - SNI
        description:
          type: string
          description: Description of classification type
    ActorExtendedInfoRequest:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: |
        Summary information on balances, number of products the actor has with
        the institution and dates when products were acquired.
      properties:
        depositsTotalBalanceLcy:
          type: number
          x-vitalAttribute: true
          description: Total balance of deposits
          example: 100000
        depositsFixedTermBalanceLcy:
          type: number
          description: The total position of fixed deposits
          example: 100000
        depositsAvailableBalanceLcy:
          type: number
          description: Total balance of deposits
          example: 100000
        loansBalanceLcy:
          type: number
          description: Total balance of loans
          example: 100000
        loansPrincipalLcy:
          type: number
          x-vitalAttribute: true
          description: Loan total original value, converted to LCY
          example: 100000
        loansOverdraftLcy:
          type: number
          description: Overdraft total balance, converted to LCY
          example: 100000
        loansCreditLimitLcy:
          type: number
          description: Total credit limit for loans
          example: 100000
        securitiesBalanceLcy:
          type: number
          description: Total balance for securities
          example: 100000
        derivativesBalanceLcy:
          type: number
          x-vitalAttribute: true
          description: Total balance for derivatives
          example: 100000
        numberOfBankAccounts:
          type: number
          description: Number of bank accounts the customer has
          example: 100000
        numberOfDepositAccounts:
          type: number
          description: Number of deposit accounts the customer has
          example: 100000
        numberOfCreditCards:
          type: number
          description: Number of credit cards the customer has
          example: 100000
        numberOfLoans:
          type: number
          description: Number of loans the customer has
          example: 100000
        numberOfSecuritiesPortfolios:
          type: number
          description: Securities number of portfolios
          example: 100000
        numberOfDerivativesPortfolios:
          type: number
          description: Derivatives number of portfolios
          example: 100000
        firstProductDate:
          type: string
          format: date
          description: The first known product that a customer had
        lastProductDate:
          type: string
          format: date
          description: Last known product by a customer
        asOfDate:
          type: string
          format: date
          description: >-
            The date when this record became valid. Defaults to today if not
            provided.
    ActorExtendedInfoResponse:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: |
        Summary information on balances, number of products the actor has with
        the institution and dates when products were acquired.
      properties:
        depositsTotalBalanceLcy:
          type: number
          x-vitalAttribute: true
          description: Total balance of deposits
          example: 100000
        depositsFixedTermBalanceLcy:
          type: number
          description: The total position of fixed deposits
          example: 100000
        depositsAvailableBalanceLcy:
          type: number
          description: Total balance of deposits
          example: 100000
        loansBalanceLcy:
          type: number
          description: Total balance of loans
          example: 100000
        loansPrincipalLcy:
          type: number
          x-vitalAttribute: true
          description: Loan total original value, converted to LCY
          example: 100000
        loansOverdraftLcy:
          type: number
          description: Overdraft total balance, converted to LCY
          example: 100000
        loansCreditLimitLcy:
          type: number
          description: Total credit limit for loans
          example: 100000
        securitiesBalanceLcy:
          type: number
          description: Total balance for securities
          example: 100000
        derivativesBalanceLcy:
          type: number
          x-vitalAttribute: true
          description: Total balance for derivatives
          example: 100000
        numberOfBankAccounts:
          type: number
          description: Number of bank accounts the customer has
          example: 100000
        numberOfDepositAccounts:
          type: number
          description: Number of deposit accounts the customer has
          example: 100000
        numberOfCreditCards:
          type: number
          description: Number of credit cards the customer has
          example: 100000
        numberOfLoans:
          type: number
          description: Number of loans the customer has
          example: 100000
        numberOfSecuritiesPortfolios:
          type: number
          description: Securities number of portfolios
          example: 100000
        numberOfDerivativesPortfolios:
          type: number
          description: Derivatives number of portfolios
          example: 100000
        firstProductDate:
          type: string
          format: date
          description: The first known product that a customer had
        lastProductDate:
          type: string
          format: date
          description: Last known product by a customer
        asOfDate:
          type: string
          format: date
          description: The date when this record became valid
        actorId:
          type: string
          description: The actor id
    ActorAssociate:
      type: object
      x-showSchema: true
      description: >-
        An actor associate indicate that individual or other identifiable entity
        is associated with the actor in some way
      x-groupedUnder: Actors
      properties:
        id:
          type: string
          x-vitalAttribute: true
          description: Primary actor id, if the associate is a customer
        references:
          type: array
          x-vitalAttribute: true
          items:
            $ref: '#/components/schemas/Reference'
          description: >-
            References to identify the associate with other ids than actor id.
            Can be set if multiple ids exists to provide identification or used
            to extend the identification of the associate further. The system
            source must have been added for the systemName specified.
        dataSource:
          type: string
          description: >-
            The source system where associate id is key or the origin of the
            data for the associate, eg is it coming from other data records
        name:
          type: string
          x-vitalAttribute: true
          description: >-
            Actor associate name, example would be a full name of individual or
            representative
        type:
          type: string
          x-vitalAttribute: true
          description: >-
            Actor associate descriptive type, example would be SPOUSE,
            REPRESENTATIVE
        isCustomer:
          type: boolean
          x-vitalAttribute: true
          description: Indicates if associate is a customer of the institution
    ActorAssociates:
      type: object
      x-showSchema: true
      description: A list of actor's associates.
      x-groupedUnder: Actors
      properties:
        actorAssociates:
          type: array
          x-vitalAttribute: true
          example:
            - id: LUCINITY_ACTOR_ID_89012730812411
              references:
                - id: LUCINITY_INTERNAL_ID_88614467199170002
                  systemName: LucinityInternalService
              dataSource: Lucinity Actor Database
              name: Jonathan Hawker
              type: Parent
              isCustomer: true
          items:
            $ref: '#/components/schemas/ActorAssociate'
          description: >-
            Actor associate name, example would be a full name of individual or
            representative
        asOfDate:
          type: string
          format: date
          example: '2023-04-22'
          description: >-
            The date when this record became valid. Defaults to today if not
            provided.
    RiskAssessment:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Risk assessment from an internal system.
      properties:
        asOfDate:
          type: string
          x-vitalAttribute: true
          format: date
          description: Date when record came valid
        type:
          type: string
          description: >-
            Used to specify Risk Assessment type. The type can be any string,
            depending on organizational guidelines, except for the following
            which are reserved for specific Risk Assessments:


            * *INTERNAL* - Internal Risk Assessment of the actor (The risk score
            that is derived from the CDD process). The value should be numeric
            on a scale decided in co-operation with Lucinity.


            * *PEP* - Politically Exposed Person. The value should be "1" for
            PEPs and "0" otherwise.


            * *SANCTIONS* - On a sanctions list. The value should be "1" if the
            actor appears on any sanctions list and "0" otherwise.


            * *ADVERSE_MEDIA* - Has appeared in an Adverse Media report. Value
            should be "1" if true and "0" otherwise.


            * *INTP* - Actor is an intermediary processing entity for
            transactions. Value should be "1" if true and "0" otherwise.


            * *PP* - Actor is a payment processor. Value should be "1" if true
            and "0" otherwise.


            * *SAR* - Suspicious Activity Report. Value should be the number of
            SARs the actor has had.
          enum:
            - INTERNAL
            - PEP
            - SANCTIONS
            - ADVERSE_MEDIA
            - INTP
            - PP
            - SAR
          x-vitalAttribute: true
        value:
          type: string
          description: Value of risk assessment
        comment:
          type: string
          description: reason for risk or related commment
    address:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: >-
        Address object encompasses the attributes that identifies the physical
        location.

        These are commonly available values like street, postal code, city,
        state, country etc.
      properties:
        type:
          description: Address type reference
          $ref: '#/components/schemas/addressType'
        line1:
          type: string
          description: Value of Line 1
        line2:
          type: string
          description: Value of Line 2
        postcode:
          type: string
          description: Postcode value must be valid
        city:
          type: string
          x-vitalAttribute: true
          description: City
        state:
          type: string
          x-vitalAttribute: true
          description: State
        country:
          type: string
          x-vitalAttribute: true
          description: Country
    addressType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values for the type of address. HOME (or) WORK (or) OTHER
      enum:
        - HOME
        - WORK
        - OTHER
        - PRINCIPAL_PLACE_OF_BUSINESS
        - REGISTERED_ADDRESS
        - BUSINESS_ADDRESS_INDIVIDUAL
        - HEADQUARTERS
        - INVESTMENT_ADVISOR_ADDRESS
        - LOCAL_OFFICE
        - MAILING_ADDRESS
        - MAILING_ADDRESS_GSAM
        - MAILING_ADDRESS_PWM
        - MAILING_ADDRESS_TAX
        - MILITARY_ADDRESS
        - UNKNOWN
        - NEXT_OF_KIN
        - OTHER_CONTACT_PERSON
        - OTHER_PHYSICAL_BUSINESS_LOC
        - RESIDENCE_ADDRESS
    phone:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Descriptor object for a phone number.
      properties:
        type:
          $ref: '#/components/schemas/phoneNumberType'
          description: It must be a valid phone number.
        number:
          type: string
          description: phone number
          x-vitalAttribute: true
    phoneNumberType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values for Type of phone number.
      enum:
        - HOME
        - WORK
        - OTHER
        - MOBILE
    emailAddress:
      type: object
      x-showSchema: true
      x-groupedUnder: Actors
      description: Contains the address and type of email.
      properties:
        type:
          description: Reference attribute
          $ref: '#/components/schemas/emailType'
        address:
          type: string
          x-vitalAttribute: true
          example: example@example.com
          description: Address should be relevant as specified before.
    emailType:
      type: string
      x-showSchema: true
      x-groupedUnder: Actors
      description: Enumerated values of email type home, work etc.
      enum:
        - HOME
        - WORK
        - OTHER
    AccountActors:
      type: object
      x-showSchema: true
      x-groupedUnder: Account
      description: >-
        Account Actors object connects the account to one or more actors (And
        the associated roles they play).
      required:
        - actors
      properties:
        actors:
          type: array
          x-vitalAttribute: true
          items:
            type: object
            required:
              - id
              - role
            properties:
              id:
                type: string
                example: ACT00001
                description: The id of the actor
              role:
                type: string
                example: OWNER
                enum:
                  - AUTHORIZED
                  - BENEFICIAL_OWNER
                  - INVESTMENT_ADVISOR
                  - OTHER
                  - OWNER
                description: The actor's role on the account.
          description: List of the actors associated with account and their role
        asOfDate:
          type: string
          format: date
          example: '2024-01-01'
          description: >-
            The date when this record became valid. Defaults to today if not
            provided.
    Activity:
      type: object
      x-showSchema: true
      x-groupedUnder: Activity
      description: >-
        Activity depicts a specific list of Participants (Actors) performing an
        action on specific date.
      allOf:
        - $ref: '#/components/schemas/BaseEntity'
        - type: object
          required:
            - participants
            - activityDate
          properties:
            metadata:
              description: >-
                Metadata describing the object. This field is not intended to
                add additional information to the object, rather add information
                about the object's attributes.


                Reserved Metadata Keywords:

                - `exclude_from_monitoring`: When set to `"true"`, this keyword
                excludes the transaction from Lucinity's Behavioral Monitoring,
                Rule Engine, and Actor Intelligence. Excluded transactions will
                only be used for display but not in any calculations or graphs.
                If this keyword is missing or set to `"false"`, the transaction
                is included.
              $ref: '#/components/schemas/Metadata'
            activityDate:
              type: string
              description: The date and time of the activity
              x-vitalAttribute: true
              format: date-time
            geoTags:
              type: array
              description: An array of all relevant geoTags for the activity.
              items:
                $ref: '#/components/schemas/geoTag'
            participants:
              type: array
              description: >-
                An array of actors that participate in the transaction. If the
                entity type is [transaction](/#tag/Transactions) and the
                intended use is for *AML detection* or *Transaction Monitoring*,
                this array should **only** include the focal actor as the owner
                of the transaction. (The counterparty is defined in the
                [counterparty](/#operation/Add%20Transaction) object.)
              x-vitalAttribute: true
              items:
                $ref: '#/components/schemas/Participant'
            ipAddresses:
              type: array
              items:
                $ref: '#/components/schemas/IpAddress'
              description: An array of all relevant ip addresses for the activity.
    Counterparty:
      type: object
      x-showSchema: true
      x-groupedUnder: Activity
      description: >-
        Counterparty of a transaction: the entity with which the Focal Actor
        transacts with.
      properties:
        id:
          type: string
          description: The unique idenitfier of the counterparty.
        type:
          type: string
          description: The legal type of the counterparty. E.g. INDIVIDUAL OR LEGAL_ENTITY.
        name:
          type: string
          description: The name of the counterparty.
        address:
          type: string
          description: The address of the counterparty.
        bankName:
          type: string
          description: The bank through which the counterparty transacts.
        bic:
          type: string
          description: >-
            The [BIC code](https://www2.swift.com/bsl/) of the counterparty's
            financial institution.
        bankCode:
          type: string
          description: The bank code of the counterparties account.
        accountNumber:
          type: string
          description: The unique identifier for the account of the counterparty.
        iban:
          type: string
          description: >-
            The [IBAN number](https://www.iban.com/) of the counterparty's
            account.
        country:
          type: string
          description: >-
            The 2 letter [ISO 3116-1
            Alpha-2](https://www.iso.org/iso-3166-country-codes.html) country
            code of the account that the counterparty uses in the transaction.
        industry.code:
          type: string
          description: >-
            The industry sector code  of the counterparty. (If the `ActorType`
            for the counterparty is `LEGAL_ENTITY`.)
        industry.type:
          type: string
          description: >-
            The industry classification standard that the industry code belongs
            to. For example NAICS, ISIC, or other.
        actorId:
          type: string
          description: >-
            The unique identifier used in *your* financial institution for this
            counterparty. (If you have one.) Should match the unique identifier
            being used for Actors.
    IpAddress:
      type: object
      x-showSchema: true
      x-groupedUnder: Activity
      description: Schema object to capture IP Address.
      properties:
        address:
          type: string
          x-vitalAttribute: true
          description: An string of all relevant ip addresses for the activity.
        type:
          type: string
          description: An string of all relevant activity.
          enum:
            - IPV4
            - IPV6
      example:
        address: 10.0.0.15
        type: IPV4
        description: >-
          Internet Protocol version 4 (IPv4) is the fourth version of the
          Internet Protocol (IP).
    Participant:
      type: object
      x-showSchema: true
      x-groupedUnder: Activity
      description: This object captures the actor who was part of an activity.
      required:
        - role
        - id
        - type
      properties:
        role:
          $ref: '#/components/schemas/ParticipantRole'
        id:
          type: string
          x-vitalAttribute: true
          description: >-
            The `id` of the [Actor](/#operation/Add%20Actor) connected to the
            participant. Must be unique.
        tags:
          type: array
          description: Additional information about the participant
          items:
            type: string
        type:
          $ref: '#/components/schemas/ParticipantType'
        actorId:
          type: string
          x-vitalAttribute: true
          description: >-
            The `id` of the [Actor](/#operation/Add%20Actor) connected to the
            participant. Must be unique.
    ParticipantType:
      type: string
      x-showSchema: true
      x-groupedUnder: Activity
      description: Enumerated values for Type of Participant.
      enum:
        - ACTOR
        - DISTRIBUTION_LIST
        - OTHER
    ParticipantRole:
      type: string
      x-showSchema: true
      x-groupedUnder: Activity
      description: >-
        Role of the participant.


        * *OWNER* - Actor that should be evaluated in the transaction monitoring
        product for this transaction, can be the actor who performed the
        transaction. If no actor with role = OWNER is linked to the transaction,
        the transaction will not be evaluated in transaction monitoring.


        * *USER* - Actor that is somehow linked to the transaction. The
        participant is only linked to the transaction for display purposes but
        not in transaction monitoring.
      x-vitalAttribute: true
      enum:
        - OWNER
        - USER
    Transaction:
      type: object
      x-showSchema: true
      x-groupedUnder: Transactions
      description: |
        Important schema object that holds attributes of a transaction.
      allOf:
        - $ref: '#/components/schemas/Activity'
        - properties:
            status:
              description: Reference attribute
              $ref: '#/components/schemas/TransactionStatus'
            currency:
              type: string
              minLength: 3
              maxLength: 3
              description: >-
                The [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)
                currency code of the transaction.
            entryDate:
              type: string
              x-vitalAttribute: true
              format: date-time
              description: >-
                The timestamp of the transaction. Should be the same as
                `activityDate`.
              example: '2020-05-03T14:03:41.089Z'
            channel:
              description: Reference attribute
              x-vitalAttribute: true
              $ref: '#/components/schemas/ChannelType'
            accountId:
              type: string
              x-vitalAttribute: true
              description: The Account `id` the focal actor used in the transaction.
            amountLcy:
              type: number
              description: >-
                Amount converted to the local currency of the financial
                institution. **Important**: Use positive amount if the direction
                is **inflowing** from the perspective of the *Focal Actor*, or a
                negative amount if the direction is **outflowing**. **Example**:
                3000 (inflowing transaction) or -4000 (outflowing transaction).
              example: 100000
            amount:
              type: number
              x-vitalAttribute: true
              description: >-
                Amount in the currency stated (in the `currency` field) for this
                transaction. **Important**: Use positive amount if the direction
                is **inflowing** from the perspective of the *Focal Actor*, or a
                negative amount if the direction is **outflowing**. **Example**:
                3000 (inflowing transaction) or -4000 (outflowing transaction).
              example: 100000
            valueDate:
              type: string
              format: date-time
              description: Effective interest date
              example: '2020-05-03T14:03:41.089Z'
            bookingDate:
              type: string
              format: date-time
              description: The datetime the transaction is booked
              example: '2020-05-03T14:03:41.089Z'
            description:
              type: string
              description: Free text area, used by the Actor initiating the transaction.
            cardNumber:
              type: string
              description: Card Number
            balance:
              type: number
              description: >-
                Balance of the account after the transaction has taken place.
                Uses the currency of the account, not necessarily of the
                transaction.
              example: 100000
            channelLocation:
              type: string
              example: 2828ATM
              description: >-
                The unique identifier for the channel location associated with
                the transaction. Has to match a location code ingested through
                [/ChannelLocations](/#operation/Add%20Channel%20Location).
            checkNumber:
              type: string
              description: >-
                If the transaction's `TransactionMethod` field is *CHECK*, this
                field should contain the associated check number.
            method:
              description: Reference attribute
              $ref: '#/components/schemas/TransactionMethod'
            categoryPrimary:
              type: string
              description: The primary category type
            categorySecondary:
              type: string
              description: The secondary category type
            internationalTransaction:
              type: boolean
              description: Indicates if the transaction is an international transaction
            counterparty:
              $ref: '#/components/schemas/Counterparty'
    ObservationReporting:
      type: array
      x-showSchema: true
      x-groupedUnder: Transactions
      description: Important schema object that holds attributes of an transaction.
      items:
        properties:
          observationId:
            type: string
            description: The unique identifier of the observation
            example: h9af6CLAC00002
          observationType:
            type: string
            description: The type of the observation, for Lucinity AML it is ALERT_AML.
            enum:
              - ALERT_AML
              - ALERT_RULE
            example: ALERT_AML
          observationDate:
            type: string
            format: date-time
            description: The final date the event of the observation took place on
            example: '2021-01-27T01:00:00+00:00'
          feedback:
            type: string
            description: >-
              The feedback that the analyst has given the observation, no
              feedback has been given.
            enum:
              - IRRELEVANT
              - FALSE_POSITIVE
              - LOW_AMOUNTS
              - NORMAL
              - SUSPICIOUS
              - no feedback
            example: SUSPICIOUS
          typology:
            type: string
            description: The parent category of the behavior of this observation.
            example: Avoiding reporting requirements
          behaviorId:
            type: string
            description: The identifier of the behavior of this observation.
            example: ARR_EFT
          behaviorName:
            type: string
            description: The descriptive name of the behavior of this observation.
            example: Electronic transactions designed to avoid reporting requirements
          lineOfBusiness:
            type: string
            description: >-
              Is the actor that is associated with the observation an individual
              or legal entity. Is null if not defined
            enum:
              - Individual
              - Legal entity
              - 'null'
            example: Individual
          modelScore:
            type: float
            description: The model/rule score of this observation
            example: 3.5
          modelThreshold:
            type: float
            description: >-
              The threshold for the model version for when this observation was
              published.
            example: 3.5
          caseId:
            type: string
            description: The id of the case that contains this observation
            example: CASE202301010001
          createdTime:
            type: string
            format: date-time
            description: >-
              The time that this observation was posted to the observation
              endpoint
            example: '2021-01-27T01:00:00+00:00'
          actorId:
            type: string
            x-vitalAttribute: true
            description: The id of the actor that is associate to the observation.
            example: h9a96jf8f99999999
          dataSource:
            type: string
            description: The name of the system that created the observation
            example: Lucinity
          transactionIds:
            type: array
            description: >-
              The ids of the transactions that are associated with the
              observation
            items:
              type: string
              example: txn1224412
    SuppressedSignals:
      type: array
      x-showSchema: true
      description: >-
        Signals that were suppressed and subsequently did not generate an
        observation.
      items:
        properties:
          suppressed_signal_id:
            type: string
            description: Unique identifier of the signal.
            example: 1
          actor_id:
            type: string
            description: The unique identifier of the actor that the signal belongs to.
            example: ACT00001
          review_date:
            type: string
            format: date
            description: The date when the signal occurred, in ISO 8601 format.
            example: '2021-01-27'
          detection_method_name:
            type: string
            description: >-
              The name of the behavioral model or rule that generated the
              signal.
            example: High income with low activity
          decision_reason:
            type: string
            description: The reason why the signal did not generate an observation.
            enum:
              - ACTOR_SUPPRESSED
            example: ACTOR_SUPPRESSED
          data_source:
            type: string
            description: The name of the system that created the signal.
            enum:
              - RULE_ENGINE
              - AML
            example: RULE_ENGINE
    SuppressedSignalsResponse:
      type: object
      x-showSchema: true
      description: Signals for non monitored actors.
      properties:
        signals_suppressed:
          $ref: '#/components/schemas/SuppressedSignals'
        limit:
          type: integer
          description: The limit used in the query.
          example: 10
        offset:
          type: integer
          description: The offset used in the query.
          example: 0
        number_of_signals:
          type: integer
          description: The number of signals returned in the query.
          example: 1
    DetectionBatchInitialization:
      type: object
      x-showSchema: true
      description: Parameters for requesting a run or a rerun of a detection batch.
      x-groupedUnder: Event Trigger
      required:
        - closeOfBusinessDate
        - lineOfBusiness
        - processType
      properties:
        closeOfBusinessDate:
          type: string
          x-vitalAttribute: true
          format: date
          example: '2020-02-01'
          description: >-
            Date that denotes the inclusive right bound of the interval of
            ingested data to be reviewed. All that happened before this date and
            has previously not been reviewed will be processed. The "asOfDate"
            for ingested data will be considered for inclusion in the review.
        lineOfBusiness:
          type: string
          x-vitalAttribute: true
          enum:
            - INDIVIDUAL
            - LEGAL_ENTITY
          example: INDIVIDUAL
          description: The line of business for detection batch, must always be provided
        processType:
          type: string
          enum:
            - AML
            - ACTOR
          x-vitalAttribute: true
          example: AML
          description: The type of the pipeline to trigger, eg. AML or ACTOR
        useOldConfig:
          type: boolean
          example: false
          description: >-
            If "useOldConfig" is used then config version from the previous
            successful run will be used. If there is no previous successful run
            this flag is ignored.
    DetectionBatch:
      type: object
      x-showSchema: true
      x-groupedUnder: Event Trigger
      description: Description for DetectionBatch
      allOf:
        - $ref: '#/components/schemas/DetectionBatchInitialization'
          properties:
            id:
              type: string
              example: CLADV20200301002217
              description: The id for detection batch
            reviewEndDate:
              type: string
              format: date
              example: '2020-02-28'
              description: The review period end date
            reviewStartDate:
              type: string
              format: date
              example: '2020-02-01'
              description: The review period start date
            advisorConfigVersion:
              type: string
              example: 14
              description: >-
                the advisor config version number which is used in for the batch
                run
    FinalizedResult:
      type: object
      x-showSchema: true
      x-groupedUnder: Batches
      description: >-
        Result of finalizing a batch. A list of case ids created and/or a list
        of observations lacking referenced data.
      properties:
        caseIds:
          description: A list of case ids
          type: array
          items:
            type: string
        observationFailedFinalization:
          description: A list of observations with missing references
          type: array
          items:
            $ref: '#/components/schemas/ObservationFailedFinalization'
      example:
        caseIds:
          - CLC2021020400000000
          - CLC2021020400000001
        observationFailedFinalization:
          - observationId: '654681551632065'
            missingReferences:
              - id: '757577483749892394'
                type: ACTOR
              - id: '363598483565265356'
                type: TRANSACTION
          - observationId: '226569451111500'
            missingReferences:
              - id: '141457524124'
                type: ACTOR
    BatchInitializeFailure:
      type: object
      x-showSchema: true
      x-groupedUnder: Batches
      description: Bad request
      properties:
        message:
          type: string
          description: Error message detailing why the batch failed to initialize
      example:
        message: >-
          Last batch is not completed, cannot start another until previous batch
          for the period from 2022-01-01 to 2022-01-07 has finished
          successfully.
    BatchInitializeFailureNoTransactions:
      type: object
      x-showSchema: true
      x-groupedUnder: Batches
      description: Description for BatchInitializeFailureNoTransactions
      properties:
        reviewStartDate:
          type: string
          x-vitalAttribute: true
          format: date
          example: '2020-01-01'
          description: Date denoting the start of the review period
        reviewEndDate:
          type: string
          x-vitalAttribute: true
          format: date
          example: '2020-01-07'
          description: Date denoting the end of the review period.
        closeOfBusinessDate:
          type: string
          x-vitalAttribute: true
          format: date
          example: '2020-01-07'
          description: Alias for `"reviewEndDate"`.
        lineOfBusiness:
          type: string
          x-vitalAttribute: true
          enum:
            - INDIVIDUAL
            - LEGAL_ENTITY
          example: INDIVIDUAL
          description: The line of business for the batch
        processType:
          type: string
          enum:
            - AML
            - ACTOR
          x-vitalAttribute: true
          example: AML
          description: The pipeline to be triggered
        useOldConfig:
          type: boolean
          example: false
          description: Whether the previous config version was to be used in the batch
        failureReason:
          type: string
          example: NO_TXN
          description: The reason the batch failed to initialize
    UnprocessableEntityError:
      type: object
      x-showSchema: true
      x-groupedUnder: System
      description: >-
        UnprocessableEntityError indicates that the input was not processed by
        Lucinity.
      properties:
        detail:
          type: array
          items:
            properties:
              loc:
                type: array
                items:
                  type: string
                x-vitalAttribute: true
                format: string
              msg:
                type: string
                x-vitalAttribute: true
              type:
                type: string
      example:
        loc:
          - body
          - id
        msg: field required
        type: value_error.missing
    Submitter:
      type: object
      x-showSchema: true
      x-groupedUnder: System
      description: >-
        Defines submitter of the case observation. EXPERIMENTAL, not linked to a
        system id or username.
      required:
        - id
        - displayName
        - username
      properties:
        id:
          type: string
          x-vitalAttribute: true
          description: Provides the submitter id
        displayName:
          type: string
          x-vitalAttribute: true
          description: Provides the submitter display name
        username:
          type: string
          x-vitalAttribute: true
          description: Provides the submitter username
    Reference:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: >-
        Add a reference to an object in an external systems, giving the id of
        the object in the external system and the name of the system.
      required:
        - id
        - systemName
      properties:
        id:
          type: string
          description: Id of the object in the external system
          x-vitalAttribute: true
          example: 7777771-555-4e5a-9ecd-16cb105a6976
        systemName:
          type: string
          x-vitalAttribute: true
          description: Name of the external system that the id belongs to.
          example: SystemName
    Metadata:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: >-
        Placeholder object that can carry additional information that are not
        part of the original schema.
      additionalProperties:
        oneOf:
          - type: string
          - type: number
      example:
        someProperty: some value
    Classification:
      deprecated: true
      type: object
      x-showSchema: true
      x-groupedUnder: Data Descriptor
      description: >-
        Data descriptive schema that contains commonly used attributes like
        domain, region, country etc. Not required for AML detection.
      properties:
        domain:
          type: array
          x-vitalAttribute: true
          items:
            type: string
          description: Domain description.
        region:
          type: array
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            region.
        country:
          type: array
          x-vitalAttribute: true
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            country.
        group:
          type: array
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            group.
        department:
          type: array
          items:
            type: string
          description: Name of the department to be specified.
        business:
          type: array
          items:
            type: string
          description: To specify description for business.
        city:
          type: array
          items:
            type: string
          description: Name of city(s) to be specified.
    AccessClassification:
      deprecated: true
      type: object
      x-showSchema: true
      x-groupedUnder: Data Descriptor
      description: >-
        Restrictive properties to control data access. Example: If region =
        [EMEA], then only users with the corresponding role can view the data.
        If no value is supplied, no restrictions are applied to the data. Not
        required for AML detection.
      properties:
        domain:
          deprecated: true
          type: array
          x-vitalAttribute: true
          items:
            type: string
          description: Domain based description.
        region:
          deprecated: true
          type: array
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            region.
        country:
          deprecated: true
          type: array
          x-vitalAttribute: true
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            country.
        group:
          deprecated: true
          type: array
          x-vitalAttribute: true
          items:
            type: string
          description: >-
            Data descriptive schema that contains commonly used attributes like
            group.
        department:
          deprecated: true
          type: array
          items:
            type: string
          description: Name of the department to be specified.
        elevatedPrivilege:
          deprecated: true
          type: array
          items:
            type: string
          description: Elevated privilege access.
        city:
          deprecated: true
          type: array
          items:
            type: string
          description: City of activity
    BaseEntityRequest:
      type: object
      x-showSchema: true
      description: >-
        BaseEntityRequest is the foundational object for most of the schemas in
        the Lucinity platform.

        It encompasses the regularly found attributes like id, dataSource ,
        metadata (key/values) and classification.
      required:
        - id
      properties:
        id:
          type: string
          x-vitalAttribute: true
          description: >-
            Primary identifier for the observation. It should be unique and
            consistent across entries.
          example: 568975e1-d16b-4e5a-9ecd-16cb105a6976
        dataSource:
          type: string
          description: >-
            An identifier that represents the system from which the record is
            originated.
          example: SWAGGER_API
        references:
          type: array
          description: Reference attribute
          x-vitalAttribute: true
          items:
            $ref: '#/components/schemas/Reference'
        metadata:
          description: >-
            Placeholder object that can carry additional information that are
            not part of the original schema.
          $ref: '#/components/schemas/Metadata'
        classification:
          deprecated: true
          description: Reference attribute
          x-vitalAttribute: true
          $ref: '#/components/schemas/Classification'
        accessClassification:
          deprecated: true
          description: Reference attribute
          $ref: '#/components/schemas/AccessClassification'
    ObservationType:
      type: string
      x-showSchema: true
      x-groupedUnder: Observation
      description: >-
        The type of the observation (alert) which controls what kind of data can
        be associated with the observation.
    CustomData:
      type: object
      x-showSchema: true
      x-groupedUnder: Custom
      description: >-
        The `customData` property can be used to add data in a key, value
        `<string,string>` format to the objects. This can e.g. be used for
        display purposes. *Maximum length of this property is 5000 characters*.
      additionalProperties:
        oneOf:
          - type: string
      example:
        someProperty: some value
        otherProperty: other value
    BaseObservation:
      allOf:
        - $ref: '#/components/schemas/BaseEntityRequest'
        - type: object
          x-showSchema: true
          required:
            - date
            - type
            - behaviorId
            - behaviorName
          properties:
            date:
              type: number
              description: >-
                Timestamp at which the transaction took place. Measured in
                seconds since the Unix epoch.
              example: 1654236000
            type:
              $ref: '#/components/schemas/ObservationType'
            batchId:
              type: string
              x-vitalAttribute: true
              description: >-
                The batchId on the surveillance platform which detected the
                observation
            behaviorId:
              type: string
              description: Risk / Concern ID with the observation
            behaviorName:
              type: string
              description: Risk / Concern Description
            version:
              type: string
              description: >-
                Optional version for the model, function or rule that was in
                effect when the Observation was created. Having this version can
                help explain why this Observation was raised. It can be a
                number, an arbitray string or an record identifier for specific
                revision.
            behaviorDescription:
              type: string
              description: Behavior description
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
            priority:
              type: string
              description: >-
                This property is important for real-time detection where a
                transaction might raise an observation that needs to be reviewed
                quickly because if the observation is a false positive, the
                backend systems would want to process the transaction as soon as
                possible.
            btlFlag:
              type: boolean
              description: >-
                (Below The Line) True or false, depending on the threshold
                setting of the surveillance system on the observation. Eg. If
                there is confidence threshold that is associated with a
                surveillance as 80% and exception confidence is 78%, but still
                gets raised as an exception, BTL would be true. If above cutoff,
                BTL is false.
              example: false
            score:
              type: number
              description: >-
                The confidence of the detection system on a scale of 0 to 1. 0
                or 1 for rules-based systems.
              example: 0.88
              minimum: 0
              maximum: 1
            rank:
              type: number
              description: >-
                Risk Ranking of this observation in a homogenous group of such
                observations.
              example: 100000
            rule:
              description: A list of rules triggering the observation.
              type: array
              items:
                type: string
            decisionTree:
              type: array
              description: Brief summary of surveillance logic that triggered an exception
              items:
                type: string
                description: >-
                  Brief summary of surveillance logic that triggered an items
                  exception
            businessDateEnd:
              type: string
              format: date-time
              description: Timestamp for the end of the the surveillance period
              example: '2020-05-03T14:03:41.089Z'
            businessDateStart:
              type: string
              format: date-time
              description: Timestamp for the start of the the surveillance period
              example: '2020-05-03T14:03:41.089Z'
            detectionDate:
              type: string
              format: date-time
              description: >-
                Timestamp for when the exception was discovered by the
                publishing system
              example: '2020-05-03T14:03:41.089Z'
            businessDate:
              type: string
              format: date
              description: Date when activity/activities occured
              example: '2020-05-03'
            label:
              type: string
              description: Observation label
            associatedLegalEntity:
              type: array
            programGroup:
              type: string
            customData:
              $ref: '#/components/schemas/CustomData'
    AmlObservationRequest:
      title: AmlObservation
      allOf:
        - type: object
          x-showSchema: true
          x-groupedUnder: Observation
          description: >-
            Observation is a vital schema object that encompasses a behavior of
            a transaction.
          required:
            - type
          properties:
            type:
              enum:
                - ALERT_AML
            submitter:
              $ref: '#/components/schemas/Submitter'
        - $ref: '#/components/schemas/BaseObservation'
    ObservationActor:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: Actor object that is noted in an observation.
      required:
        - actorId
      properties:
        actorId:
          type: string
          x-vitalAttribute: true
          description: >-
            An id for an actor that is to be reviewed as part of the
            observation.
          example: LUCINITY_ACTOR_ID_89012730812411
        primary:
          type: boolean
          description: >-
            Specify whether the actor id belongs to the primary actor of the
            observation. Defaults to False.
          example: true
    RuleObject:
      type: object
      description: An object representing a rule that was triggered.
      required:
        - id
      properties:
        id:
          type: string
          description: A unique id of this rule in the rule system.
        name:
          type: string
          description: A representative name for the rule.
        status:
          type: string
          description: |-
            A descriptive status of the rule in the rule system.
            For example ACTIVE, WHITELISTED, DEACTIVATED.
        score:
          type: string
          description: |-
            The score or suggested operation for the this rule.
            This could give an insight into why the Signal was sent.
        date:
          type: number
          description: The date when this rule triggered.
        custom_data:
          $ref: '#/components/schemas/CustomData'
    BaseSimpleObservation:
      type: object
      required:
        - type
        - date
        - actors
      allOf:
        - $ref: '#/components/schemas/BaseEntityRequest'
        - properties:
            type:
              type: string
              description: >-
                The type of the observation (alert) which controls what kind of
                data can be associated with the observation.
            date:
              type: number
              description: >-
                Timestamp at which the transaction took place. Measured in
                seconds since the Unix epoch.
              example: 1654236000
            batchId:
              type: string
              x-vitalAttribute: true
              description: >-
                The batchId on the surveillance platform which detected the
                observation
            behaviorId:
              type: string
              description: Risk / Concern ID with the observation
            behaviorName:
              type: string
              description: Risk / Concern Description
            behaviorDescription:
              type: string
              description: Behavior description
            version:
              type: string
              description: >-
                Optional version for the model, function or rule that was in
                effect when the Observation was created. Having this version can
                help explain why this Observation was raised. It can be a
                number, an arbitray string or an record identifier for specific
                revision.
            actors:
              type: array
              description: The Actor IDs which this observations applies to.
              x-vitalAttribute: true
              items:
                $ref: '#/components/schemas/ObservationActor'
            rules:
              description: List of objects representing rules that were triggered.
              type: array
              items:
                $ref: '#/components/schemas/RuleObject'
                description: List of objects representing rules that were triggered.
            custom_data:
              $ref: '#/components/schemas/CustomData'
    AmlV2ObservationRequest:
      title: AmlV2Observation
      allOf:
        - type: object
          required:
            - transactionIds
          properties:
            type:
              enum:
                - ALERT_AML_V2
            transactionIds:
              description: List of transaction ids which apply in this observation
              type: array
              items:
                type: string
            score:
              description: >-
                A score indicator for the result of this rule applying. This
                could be a numeric value or it could be some qualifier such as
                'APPROVE' or 'REJECT', indicating a suggested operation based on
                this rule applying.
              type: string
        - $ref: '#/components/schemas/BaseSimpleObservation'
    RuleCheck:
      type: object
      properties:
        rule_id:
          type: string
          description: The unique id for the rule.
        name:
          type: string
          description: A descriptive name for the rule.
        score:
          type: string
          description: A score attributed by the rule match.
        operation:
          type: string
          description: >-
            A suggestive operation based on the result from the rule or
            indicator

            of how the score contributed to the total score.
    FraudCheck:
      type: object
      required:
        - provider
        - name
        - timestamp
        - rule_checks
      properties:
        provider:
          type: string
          description: >-
            The provider of the fraud check or the name of the fraud check
            system.
        name:
          type: string
          description: A short name for the type of check.
        description:
          type: string
          description: A longer version of the type of check.
        version:
          type: string
          description: The version of the fraud check system.
        score:
          type: string
          description: The total score for the check.
        state:
          type: string
          description: |-
            Suggestion from the fraud check system on how to handle the result.
            Can be for example APPROVE or DECLINE.
        timestamp:
          type: number
          description: >-
            The date and time when the check was performed as unix epoch in
            milliseconds.
        rule_checks:
          type: array
          description: >-
            The list of rules that applied and contributed to the total score or
            state.
          items:
            $ref: '#/components/schemas/RuleCheck'
    ScreeningBaseObservation:
      type: object
      required:
        - type
        - behaviorId
        - behaviorName
        - actors
        - transactionIds
      allOf:
        - $ref: '#/components/schemas/BaseEntityRequest'
        - properties:
            type:
              type: string
              description: >-
                The type of the observation (alert) which controls what kind of
                data can be associated with the observation.
            date:
              type: number
              description: >-
                Timestamp at which the transaction took place. Measured in
                seconds since the Unix epoch.
              example: 1654236000
            batchId:
              type: string
              x-vitalAttribute: true
              description: >-
                The batchId on the surveillance platform which detected the
                observation
            behaviorId:
              type: string
              description: Risk / Concern ID with the observation
            behaviorName:
              type: string
              description: Risk / Concern Description
            version:
              type: string
              description: >-
                Optional version for the model, function or rule that was in
                effect when the Observation was created. Having this version can
                help explain why this Observation was raised. It can be a
                number, an arbitray string or an record identifier for specific
                revision.
            actors:
              type: array
              description: The Actor IDs which this observations applies to.
              x-vitalAttribute: true
              items:
                $ref: '#/components/schemas/ObservationActor'
            transactionIds:
              description: >-
                Optional list of transaction ids which apply in this
                observation.
              type: array
              items:
                type: string
            submitter:
              $ref: '#/components/schemas/Submitter'
            rules:
              description: List of objects representing rules that were triggered.
              type: array
              items:
                $ref: '#/components/schemas/RuleObject'
                description: List of objects representing rules that were triggered.
            custom_data:
              $ref: '#/components/schemas/CustomData'
    FraudObservationRequest:
      title: FraudObservation
      required:
        - fraud_check
      allOf:
        - type: object
          properties:
            type:
              enum:
                - ALERT_FRAUD
            fraud_check:
              $ref: '#/components/schemas/FraudCheck'
        - $ref: '#/components/schemas/ScreeningBaseObservation'
    PostalAddress:
      type: object
      required:
        - lines
      properties:
        lines:
          type: array
          items:
            type: string
          description: An array of strings representing the lines of the postal address
        postal_code:
          type: string
          description: The postal code or ZIP code of the address.
        city:
          type: string
          description: The city of the address.
        state:
          type: string
          description: The state or province of the address.
        country:
          type: string
          description: Three letter country code, ISO 3166-1-alpha3
        location:
          type: string
          enum:
            - HOME
            - WORK
            - HEADQUARTERS
            - OTHER
          description: A string representing the location type.
    ListMatch:
      type: object
      properties:
        object:
          description: The profile type (INDIVIDUAL or LEGAL_ENITITY)
          type: string
        profile_id:
          description: The unique id of the profile on the list
          type: string
        match_id:
          description: >-
            Unique id for the match (provided by the system performing the
            match)
          type: string
        score:
          description: >-
            A score for the match, can be in any format the matching system
            provides.
          type: string
        level:
          description: '--'
          type: string
        matched_name:
          description: The name on the list that matches.
          type: string
        status:
          description: The status of the profile on the list.
          type: string
        tags:
          description: A list of tags can be provided labelling the list match.
          type: array
          items:
            type: string
        countries:
          description: A list of relevant countries in the match.
          type: array
          items:
            type: string
        sanctions:
          description: '--'
          type: array
          items:
            type: string
        addresses:
          description: The postal addresses for the profile on the list.
          type: array
          items:
            $ref: '#/components/schemas/PostalAddress'
        additional_details:
          description: Additional details of the profile on the list.
          type: string
    ListMatchIndividual:
      allOf:
        - $ref: '#/components/schemas/ListMatch'
        - type: object
          properties:
            gender:
              description: The gender of the individual
              type: string
            birth_dates:
              type: array
              description: A list of birth dates for the individual.
              items:
                type: string
    ListMatchLegalEntity:
      allOf:
        - $ref: '#/components/schemas/ListMatch'
        - type: object
          properties:
            registration_dates:
              type: array
              description: A list of registration dates for the legal entity
              items:
                type: string
    ListMatches:
      type: object
      required:
        - provider
        - name
      description: Information for the sanction list and the matches.
      properties:
        provider:
          description: The provider of the list matches
          type: string
        name:
          description: The name of the list
          type: string
        description:
          description: Description for the list
          type: string
        version:
          description: Version of the list used in the match
          type: string
        timestamp:
          description: The date and time this list was updated
          type: number
          example: 1654236000
        matches:
          type: array
          description: All the matches found on this list
          items:
            discriminator:
              propertyName: object
              mapping:
                INDIVIDUAL: '#/components/schemas/ListMatchIndividual'
                LEGAL_ENTITY: '#/components/schemas/ListMatchLegalEntity'
            oneOf:
              - $ref: '#/components/schemas/ListMatchIndividual'
              - $ref: '#/components/schemas/ListMatchLegalEntity'
    SanctionsObservationRequest:
      title: SanctionsObservation
      required:
        - list_matches
      allOf:
        - type: object
          properties:
            type:
              enum:
                - ALERT_SANCTIONS
            list_matches:
              type: array
              description: Matches on sanction lists grouped by the lists.
              items:
                $ref: '#/components/schemas/ListMatches'
        - $ref: '#/components/schemas/ScreeningBaseObservation'
    RuleObservationRequest:
      title: RuleObservation
      allOf:
        - type: object
          required:
            - actors
          properties:
            type:
              enum:
                - ALERT_RULE
            title:
              description: The title of the observation.
              type: string
            transactionIds:
              description: >-
                Optional list of transaction ids which apply in this
                observation.
              type: array
              items:
                type: string
            score:
              description: >-
                A score indicator for the result of this rule applying. This
                could be a numeric value or it could be some qualifier such as
                'APPROVE' or 'REJECT', indicating a suggested operation based on
                this rule applying.
              type: string
        - $ref: '#/components/schemas/BaseSimpleObservation'
    GenericObservationRequest:
      title: GenericObservation
      allOf:
        - type: object
          required:
            - transaction_ids
          properties:
            type:
              enum:
                - ALERT_GENERIC
            title:
              type: string
              description: The title for the observation.
            description:
              type: string
              description: The description for the observation.
            transaction_ids:
              type: array
              description: List of transaction Ids which apply in this observation.
              items:
                type: string
        - $ref: '#/components/schemas/BaseSimpleObservation'
    ObservationRequestList:
      title: ObservationList
      type: array
      items:
        oneOf:
          - $ref: '#/components/schemas/AmlObservationRequest'
          - $ref: '#/components/schemas/AmlV2ObservationRequest'
          - $ref: '#/components/schemas/FraudObservationRequest'
          - $ref: '#/components/schemas/SanctionsObservationRequest'
          - $ref: '#/components/schemas/RuleObservationRequest'
          - $ref: '#/components/schemas/GenericObservationRequest'
    MissingReferences:
      type: object
      x-showSchema: true
      x-groupedUnder: Batches
      description: Missing references
      properties:
        id:
          type: string
        type:
          type: string
    ObservationFailedFinalization:
      type: object
      x-showSchema: true
      x-groupedUnder: Batches
      description: Observation failed finalization due to missing references
      properties:
        observationId:
          type: string
        missingReferences:
          type: array
          items:
            $ref: '#/components/schemas/MissingReferences'
    CaseCreationResponse:
      type: object
      description: Response object when create_case is true.
      properties:
        caseIds:
          type: array
          items:
            type: string
          description: An array of unique identifiers for the cases that were created.
          example:
            - CLC2024030400001378
        observationFailedFinalization:
          type: array
          items:
            $ref: '#/components/schemas/ObservationFailedFinalization'
      required:
        - caseIds
        - observationFailedFinalization
    schemas-BaseEntity:
      type: object
      description: >-
        BaseEntity is the foundational object for responses in the Lucinity
        platform. It encompasses read only properties.
      properties:
        ingestDate:
          type: string
          format: datetime
          readOnly: true
          description: The date at which the entity was ingested by Lucinity.
        internalId:
          type: string
          format: uuid
          readOnly: true
          description: The Lucinity internal id of the entity.
    AmlObservation:
      title: AmlObservation
      allOf:
        - $ref: '#/components/schemas/BaseObservation'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          x-showSchema: true
          x-groupedUnder: Observation
          properties:
            caseId:
              type: string
              description: >-
                The unique identifier of the case associated with the
                observation.
            feedback:
              type: string
              description: The feedback associated with the observation.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
    AmlV2Observation:
      title: AmlV2Observation
      allOf:
        - $ref: '#/components/schemas/AmlV2ObservationRequest'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          properties:
            caseId:
              type: string
              description: >-
                The unique identifier of the case associated with the
                observation.
            feedback:
              type: string
              description: The feedback associated with the observation.
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            businessDate:
              type: string
              format: datetime
              description: Timestamp for the end of the the surveillance period.
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
    FraudObservation:
      title: FraudObservation
      allOf:
        - $ref: '#/components/schemas/FraudObservationRequest'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          properties:
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
            caseId:
              type: string
              description: >-
                The unique identified of the case associated with the
                observation.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            businessDate:
              type: string
              format: datetime
              description: Timestamp for the end of the the surveillance period.
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
    SanctionsObservation:
      title: SanctionsObservation
      allOf:
        - $ref: '#/components/schemas/SanctionsObservationRequest'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          properties:
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
            caseId:
              type: string
              description: >-
                The unique identified of the case associated with the
                observation.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            businessDate:
              type: string
              format: datetime
              description: Timestamp for the end of the the surveillance period.
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
    RuleObservation:
      title: RuleObservation
      allOf:
        - $ref: '#/components/schemas/RuleObservationRequest'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          properties:
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
            caseId:
              type: string
              description: >-
                The unique identified of the case associated with the
                observation.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            businessDate:
              type: string
              format: datetime
              description: Timestamp for the end of the the surveillance period.
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
    GenericObservation:
      title: GenericObservation
      allOf:
        - $ref: '#/components/schemas/GenericObservationRequest'
        - $ref: '#/components/schemas/schemas-BaseEntity'
        - type: object
          properties:
            finalized:
              type: boolean
              description: >-
                True if the observation has been finalized, false otherwise.
                Defaults to false.
            caseId:
              type: string
              description: >-
                The unique identified of the case associated with the
                observation.
            submitterInternalId:
              type: string
              description: The internal identifier of the submitter of the observation.
            businessDate:
              type: string
              format: datetime
              description: Timestamp for the end of the the surveillance period.
            taxonomyDescription:
              type: string
              description: >-
                Higher level of Risk / Concern. Control to which the risk is
                mapped
    WebhookRequest:
      type: object
      properties:
        name:
          type: string
          example: My Webhook for handling claimed cases
          description: The name of the Webhook given by the Webhook creator
        url:
          type: string
          format: uri
          example: https://my-company.com/api/webhooks/myhook
          description: >-
            The target URL for the Webhooks. Typically an endpoint in the
            customer API that can accept the Lucinity events
        events:
          description: >-
            List of events to subscribe to. If '*' all events will be delivered.
            If empty, the Webhook will be disabled.
          type: array
          items:
            type: string
          example:
            - case.assigned
    WebhookStatus:
      type: string
      enum:
        - ACTIVE
        - INACTIVE
    WebhookResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/WebhookRequest'
        - properties:
            id:
              type: string
              example: 5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74
              description: >-
                The Lucinity id for the Webhook, use this id when accessing
                Webhooks in the API.
            status:
              $ref: '#/components/schemas/WebhookStatus'
            secret:
              type: string
              example: '%D^u~k:pc<y9Hv'
              description: A generated secret only returned at Webhooks creation.
            created:
              type: integer
              format: int64
              description: The timestamp this Webhook was created
              example: 1692294086682
            tenant:
              type: string
              description: The name of the tenant owning this Webhook
              example: lucinity
    GetWebhookResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/WebhookRequest'
        - properties:
            id:
              type: string
              example: 5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74
              description: >-
                The Lucinity id for the Webhook, use this id when accessing
                Webhooks in the API.
            status:
              $ref: '#/components/schemas/WebhookStatus'
            created:
              type: integer
              format: int64
              description: The timestamp this Webhook was created
              example: 1692294086682
            tenant:
              type: string
              description: The name of the tenant owning this Webhook
              example: lucinity
    WebhookUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/WebhookRequest'
        - properties:
            status:
              $ref: '#/components/schemas/WebhookStatus'
    Amount:
      type: object
      properties:
        value:
          type: number
          description: Value of the transaction.
        currency:
          description: 3 letter ISO 4217 currency code of the value.
          type: string
      required:
        - value
        - currency
    Empty:
      type: object
      properties:
        object:
          type: string
          example: EMPTY
    Country:
      type: string
      description: Three letter country code, ISO 3166-1-alpha3
    schemas-PostalAddress:
      type: object
      required:
        - lines
      properties:
        lines:
          type: array
          items:
            type: string
          description: An array of strings representing the lines of the postal address
        postal_code:
          type: string
          description: The postal code or ZIP code of the address.
        city:
          type: string
          description: The city of the address.
        state:
          type: string
          description: The state or province of the address.
        country:
          $ref: '#/components/schemas/Country'
        location:
          type: string
          enum:
            - HOME
            - WORK
            - HEADQUARTERS
            - OTHER
          description: A string representing the location type.
    AccountInfo:
      type: object
      properties:
        object:
          type: string
          example: ACCOUNT_INFO
        bank_name:
          type: string
          description: Name of the bank.
        bic:
          type: string
          description: Bank identifier code / SWIFT.
        bank_code:
          type: string
          description: Any other bank identifier code.
        account_number:
          type: string
          description: Account number in the financial institution.
        iban:
          type: string
          description: International bank account number.
        country:
          $ref: '#/components/schemas/Country'
          description: >-
            Two or three letter country code, ISO 3166-1. This should be set for
            transaction monitoring to work as intended.
        id:
          type: string
          description: Primary identifier of the account.
    Industry:
      type: object
      required:
        - classification_identifier
        - code
      properties:
        classification_identifier:
          type: string
          description: >-
            The system identifier of the industry, such as MCC (Merchant
            Category Code),

            SIC (Standard Industrial Classification), ISIC (International
            Standard Industrial Classification), or similar industry
            classification systems.
        code:
          type: string
          description: The specific code associated with the industry.
    schemas-Metadata:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: Metadata that describes the data
      additionalProperties:
        oneOf:
          - type: string
          - type: number
      example:
        some_property: some_value
    schemas-LegalEntity:
      type: object
      properties:
        object:
          type: string
          example: LEGAL_ENTITY
        id:
          type: string
          description: Primary identifier of the legal entity.
        name:
          type: string
          description: Name of the legal entity.
        registration_date:
          type: string
          format: date
          description: >-
            The date when the legal entity was registered (in ISO-8601 format).
            Example: 2023-01-31
        postal_addresses:
          type: array
          items:
            $ref: '#/components/schemas/schemas-PostalAddress'
          description: List of postal addresses of the legal entity.
        account_info:
          $ref: '#/components/schemas/AccountInfo'
          description: Account information
        industry:
          $ref: '#/components/schemas/Industry'
          description: The industry classification code and value
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object's attributes.

            - `identifiable_as_actor` If this counterparty is a known actor in
            the system set this to `true` and the `id` should contain the actors
            id.
    Individual:
      type: object
      properties:
        object:
          type: string
          example: INDIVIDUAL
        id:
          type: string
          description: Primary identifier of the individual.
        name:
          type: string
          description: Full name of the individual
        birth_date:
          type: string
          format: date
          description: Date when the individual was born. ISO-8601 YYYY-MM-DD
        postal_addresses:
          description: List of postal addresses of the individual.
          type: array
          items:
            $ref: '#/components/schemas/schemas-PostalAddress'
        account_info:
          description: Account information
          $ref: '#/components/schemas/AccountInfo'
        industry:
          description: The industry classification code and value
          $ref: '#/components/schemas/Industry'
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object.

            - `identifiable_as_actor` If this counterparty is a known actor in
            the system set this to `true` and the `id` should contain the actors
            id.
    NamedEntity:
      type: object
      required:
        - name
      properties:
        object:
          type: string
          example: NAMED_ENTITY
        id:
          type: string
          description: Primary identifier of the entity.
        name:
          type: string
          description: Full name of the entity.
        postal_addresses:
          description: List of postal addresses of the entity.
          type: array
          items:
            $ref: '#/components/schemas/schemas-PostalAddress'
        account_info:
          description: Account information
          $ref: '#/components/schemas/AccountInfo'
        industry:
          description: The industry classification code and value
          $ref: '#/components/schemas/Industry'
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object.

            - `identifiable_as_actor` If this counterparty is a known actor in
            the system set this to `true` and the `id` should contain the actors
            id.
    schemas-CustomData:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: >-
        The `custom_data` property can be used to add data in a key, value
        `<string,string>` format to the objects. This can e.g. be used for
        display purposes. *Maximum length of this property is 5000 characters*.
      additionalProperties:
        oneOf:
          - type: string
      example:
        some_property: some_value
    Device:
      type: object
      x-showSchema: true
      x-groupedUnder: Utility
      description: Information for the device which the transaction was performed on.
      properties:
        id:
          type: string
          description: >-
            Device ID is a unique, anonymized string of numbers and letters that
            identifies the device.
        ip_address:
          type: string
          description: The IP address for the device in either ipv4 or ipv6 format
          example: 2001:db8:85a3::8a2e:370:7334
    schemas-Transaction:
      type: object
      properties:
        id:
          type: string
          description: Primary identifier for the transaction.
        created_at:
          type: number
          description: >-
            The timestamp of when the transaction occurred. Measured in seconds
            in unix epoch timestamp.
        direction:
          type: string
          description: >-
            The direction of a transaction is `OUTBOUND` when funds are sent
            from the account holder, and `INBOUND` when funds are received by
            the account holder.
          enum:
            - INBOUND
            - OUTBOUND
        status:
          type: string
          description: >-
            Status or condition of the transaction. Only `COMPLETED`
            transactions will be included in the Lucinity's Behavioral
            Monitoring and Rule Engine. Possible values:

            - `COMPLETED` The transaction took place and will be included in
            Lucinity's Behavioral Monitoring and Rule Engine.

            - `PENDING` The transaction has not yet been fully processed by the
            merchant.

            - `CANCELLED` The transaction was cancelled or voided before it was
            settled.

            - `FAILED` The transaction failed to be settled.
          enum:
            - COMPLETED
            - PENDING
            - CANCELLED
            - FAILED
        description:
          type: string
          description: Description of the transaction
        channel:
          type: string
          description: >-
            The type of channel that was used to initiate the transaction. If
            this property is not provided it will default to `UNKNOWN`.

            - `BRANCH` Represents a transaction initiated through a physical
            branch location of the financial institution, where the customer
            interacts with a bank representative in person.

            - `ONLINE` Represents a transaction initiated through an online
            channel, typically through a web-based platform or internet banking
            service provided by the financial institution.

            - `ATM` Represents a transaction initiated through an Automated
            Teller Machine (ATM).

            - `POS` Represents a transaction initiated through a Point of Sale
            (POS) system, typically used in retail environments.

            - `UNKNOWN` The channel used to initiate the transaction is unknown
            or not specified. It can be used when the specific channel
            information is not available or not applicable.
          enum:
            - BRANCH
            - ONLINE
            - ATM
            - POS
            - UNKNOWN
        channel_location_id:
          type: string
          description: >-
            The unique identifier for the channel location associated with the
            transaction. Has to match a location code ingested through
            [/channel_locations](/#operation/CreateChannelLocation).
        account_id:
          type: string
          description: Primary identifier of the account.
        account_owner_id:
          type: string
          description: >
            An actor ID that identifies the primary owner of the account.


            *Transaction Monitoring: The actor the ID belongs to is the one
            monitored for this transaction. The monitoring is not bi-directional
            in case of both the account_owner and the counterparty being
            customers. In such cases, another transaction is required to be sent
            with another account_owner_id and direction.*
        user_name:
          type: string
          description: User name of the entity performing the transaction.
        user_id:
          type: string
          description: User id of the entity performing the transaction.
        amount:
          description: Amount and currency code of the transaction that occurred.
          $ref: '#/components/schemas/Amount'
        standardized_amount:
          type: number
          description: >-
            Value of the transaction in the default currency configured in the
            Lucinity platform.
        account_balance:
          type: number
          description: >-
            The current, settled balance of the account in the currency of the
            account.
        method:
          type: string
          description: >-
            Method of the transaction

            - `CARD` A card was used as the payment method for this transaction.

            - `CASH` The transaction involved the use of physical currency.

            - `CHECK` A paper check was used for the transaction.

            - `VIRTUAL` The transaction utilized a virtual currency or digital
            payment method.

            - `WIRE_TRANSFER` The transaction involved the transfer of funds
            between bank accounts.


            Either `Method` or `Purpose` should be set for transaction
            monitoring to work as intended
          enum:
            - CARD
            - CASH
            - CHECK
            - VIRTUAL
            - WIRE_TRANSFER
        purpose:
          type: string
          description: >-
            Purpose of the transaction.

            - `BILL_PAYMENT` Payment of a bill.

            - `CHARGEBACK` Chargeback, initiated to reverse a previous payment
            made by a cardholder.

            - `CLOSING` Closure or finalization of an account or financial
            arrangement.

            - `CORRECTION` Adjustment to rectify an error or discrepancy in a
            previous transaction.

            - `FEE` Fee charged for a service or transaction.

            - `FUNDING` Provision of funds to an account or financial
            instrument.

            - `INTRA_ACTOR` Movement of funds between internal accounts of the
            same actor within the client's ecosystem.

            - `INTEREST_PAYMENT` Payment of accrued interest.

            - `PAY_IN` Incoming payment or deposit into an account.

            - `PAY_OUT` Outgoing payment or withdrawal from an account.

            - `PRINCIPAL_PAYMENT` Payment of the principal amount owed.

            - `REFUND` Refunding a previous payment.

            - `REVERSE` Reversal or cancellation of a previous transaction.

            - `SETTLEMENT` Finalization or clearing of a transaction or series
            of transactions.
          enum:
            - BILL_PAYMENT
            - CHARGEBACK
            - CLOSING
            - CORRECTION
            - FEE
            - FUNDING
            - INTRA_ACTOR
            - INTEREST_PAYMENT
            - PAY_IN
            - PAY_OUT
            - PRINCIPAL_PAYMENT
            - REFUND
            - REVERSE
            - SETTLEMENT
        counterparty:
          enum:
            - EMPTY
            - INDIVIDUAL
            - ACCOUNT_INFO
            - LEGAL_ENTITY
            - NAMED_ENTITY
          description: >-
            Counterparty represents the creditor or debtor involved in the
            transaction and can be one of the following:

            - `EMPTY` Indicates that there is no counterparty for the
            transaction.

            - `INDIVIDUAL` Represents an individual counterparty, referring to
            an individual person involved in the transaction.

            - `ACCOUNT_INFO` Represents a counterparty identified by account
            information, providing details such as bank name, account number,
            etc.

            - `LEGAL_ENTITY` Represents a legal entity counterparty, referring
            to a legal entity involved in the transaction.

            - `NAMED_ENTITY` Represents an entity counterparty, referring to an
            entity involved in the transaction where it's unknown if it's a
            legal entity or an individual.
          discriminator:
            propertyName: object
            mapping:
              EMPTY: '#/components/schemas/Empty'
              LEGAL_ENTITY: '#/components/schemas/schemas-LegalEntity'
              INDIVIDUAL: '#/components/schemas/Individual'
              ACCOUNT_INFO: '#/components/schemas/AccountInfo'
              NAMED_ENTITY: '#/components/schemas/NamedEntity'
          oneOf:
            - $ref: '#/components/schemas/Empty'
            - $ref: '#/components/schemas/schemas-LegalEntity'
            - $ref: '#/components/schemas/Individual'
            - $ref: '#/components/schemas/AccountInfo'
            - $ref: '#/components/schemas/NamedEntity'
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object's attributes.


            Reserved Metadata Keywords:

            - `exclude_from_monitoring`: When set to `"true"`, this keyword
            excludes the transaction from Lucinity's Behavioral Monitoring, Rule
            Engine, and Actor Intelligence. Excluded transactions will only be
            used for display but not in any calculations or graphs. If this
            keyword is missing or set to `"false"`, the transaction is included.

            - `international`: When set to `"true"` this transaction is marked
            as an international transaction, `"false"` when it is a domestic
            transaction. This needs to be set for transaction monitoring to work
            as intended.

            - `data_source`: An identifier that represents the system from which
            the record is originated.
        custom_data:
          $ref: '#/components/schemas/schemas-CustomData'
        device:
          $ref: '#/components/schemas/Device'
          description: >-
            Device section contains information on the device which the
            transaction was performed on.
      required:
        - id
        - created_at
        - direction
        - status
        - amount
        - standardized_amount
        - account_id
        - counterparty
        - account_owner_id
    Hit:
      type: object
      properties:
        object:
          type: string
    Miss:
      type: object
      properties:
        object:
          type: string
    schemas-Error:
      type: object
      x-showSchema: true
      x-groupedUnder: Error
      description: >-
        Holds the error code and message that is emitted as result from Lucinity
        API.
      properties:
        code:
          type: string
          description: Code
          x-vitalAttribute: true
        message:
          type: string
          description: Message
          x-vitalAttribute: true
      example: 500 Internal Server Error
      required:
        - code
        - message
    Errors:
      type: object
      properties:
        object:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/schemas-Error'
    ScreeningResult:
      type: object
      properties:
        screening_id:
          type: string
        provider_name:
          type: string
        response:
          discriminator:
            propertyName: object
            mapping:
              HIT: '#/components/schemas/Hit'
              MISS: '#/components/schemas/Miss'
              ERRORS: '#/components/schemas/Errors'
          anyOf:
            - $ref: '#/components/schemas/Hit'
            - $ref: '#/components/schemas/Miss'
            - $ref: '#/components/schemas/Errors'
    ScreeningResults:
      type: object
      properties:
        transaction_id:
          type: string
        request_id:
          type: string
        screening_results:
          type: array
          items:
            $ref: '#/components/schemas/ScreeningResult'
    schemas-ChannelLocation:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the channel location.
        type:
          type: string
          description: Defines the type of the location.
          enum:
            - ATM
            - BRANCH
            - OTHER
        address:
          type: object
          properties:
            street:
              type: array
              items:
                type: string
              description: Array of street address lines.
            city:
              type: string
              description: City name.
            state:
              type: string
              description: State, province, or region.
            postal_code:
              type: string
              description: Postal or ZIP code.
            country:
              type: string
              description: Country name.
          required:
            - street
            - city
            - country
      required:
        - id
        - type
        - address
    AuditLogType:
      type: string
      enum:
        - ALL
        - READ
        - UPDATE
    AuditLogEntry:
      type: object
      properties:
        json_:
          type: object
          properties:
            id:
              type: string
              example: 3c16ebce-7e7b-49ef-b815-3d4cf310aad7
              description: The Lucinity id for the audit log entry.
            notes:
              type: string
              example: 'Level: 1 to 2'
              description: A concise summary of the action, can be empty or not included.
            action:
              type: string
              example: VIEW_CASE
              description: The action made in the Lucinity Platform.
            caseId:
              type: string
              example: CLC2023112100000000
              description: The id of the case the action was performed on.
            domain:
              type: string
              example: CaseManager
              description: The domain origin of the audit log entry.
            params:
              type: array
              items:
                type: string
                description: Parameters when `userAction` property is included.
            userIP:
              type: string
              example: 127.0.0.1
              description: The IP address of the user performing the action.
            userId:
              type: string
              example: 1b08d5b4-defc-4385-afc3-87602adabf0c
              description: The Lucinity id of the user performing the action.
            logType:
              $ref: '#/components/schemas/AuditLogType'
              description: The action type for the entry.
            newValue:
              type: string
              description: |-
                If the `logType` is `UPDATE` then this shows the updated value.
                If the `logType` is `READ` then this field is not included.
            objectId:
              type: string
              description: The entity id the action affects.
            oldValue:
              type: string
              description: >-
                If the `logType` is `UPDATE` then this shows the value before
                update.

                If the `logType` is `READ` then this field is not included.
            envFields:
              type: object
              properties:
                localIP:
                  type: string
                  example: 127.0.0.1
                  description: The user's local IP address.
                podAuditName:
                  type: string
                  example: podName
                  description: The pod that processed the request.
            timestamp:
              type: string
              format: date-time
              example: '2023-11-21T00:00:00'
              description: The timestamp of the audit log in ISO 8601.
            objectType:
              type: string
              description: >-
                The name of the entity that the action affects. Is related to
                `objectId`.
            systemName:
              type: string
              description: The name of the system the action originates from.
            userAction:
              type: string
              example: ESCALATE
              description: For certain `UPDATE` actions this is recorded.
            objectField:
              type: string
              description: |-
                Describes what field was updated.
                Only included if `logType` is `UPDATED`.
            actionResult:
              type: string
              enum:
                - ALLOWED
                - DENIED
              description: Indicates if the action was allowed or denied.
        timestamp:
          type: string
          format: date-time
          example: '2023-11-21T00:00:00'
          description: The timestamp of the audit log in ISO 8601.
    AuditLogResponse:
      type: object
      properties:
        offset:
          type: number
          example: 0
          description: The offset used in the query
        limit:
          type: number
          example: 200
          description: The limit used in the query
        number_of_values:
          type: number
          example: 10
          description: The number of entries returned
        values:
          type: array
          items:
            $ref: '#/components/schemas/AuditLogEntry'
    UpdateCaseRequest:
      type: object
      properties:
        communication_ids:
          type: array
          items:
            type: string
          example:
            - COMMS2023010300001
            - COMMS2023010300002
          description: >-
            List of ids of the communications that should be associated with the
            case
        communications:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: comms1
                description: The communication id of the communication
              created_at:
                type: integer
                format: int64
                example: 1672723200000
                description: >-
                  When the communication was created, represented as
                  milliseconds since the Unix epoch
              sent_at:
                type: integer
                format: int64
                example: 1672723294000
                description: >-
                  When the communication was sent, represented as milliseconds
                  since the Unix epoch
              sender_id:
                type: string
                example: sender123
                description: The unique identifier for the sender of the communication
              receiver_id:
                type: string
                example: receiver456
                description: The unique identifier for the receiver of the communication
              subject:
                type: string
                example: 'Urgent: Update Required'
                description: The subject of the communication
              type:
                type: string
                example: email
                description: The type of communication
              channel:
                type: string
                example: email
                description: The channel through which the communication was sent
              content:
                type: string
                example: Please update your account information.
                description: The content of the communication
              metadata:
                $ref: '#/components/schemas/schemas-Metadata'
                description: >-
                  Metadata describing the object. This field is not intended to
                  add additional information to the object, rather add
                  information about the object's attributes.


                  Reserved Metadata Keywords:

                  - `external_reference_id`: An identifier that represents the
                  case in the an external system. For instance if an
                  investigation is being tracked in external system.

                  - `data_source`: An identifier that represents the system from
                  which the record is originated.
              custom_data:
                type: object
                additionalProperties:
                  type: string
                description: Custom data associated with the communication.
            example:
              - id: comms1
                created_at: 1715729952
                sent_at: 1715729952
                subject: Blabla
                sender_id: sender@somewhere.com
          description: List of communication objects to create and associate with the case
    UpdateCaseResponse:
      type: object
      properties:
        case_id:
          type: string
          example: CASE25618010303001
          description: >-
            The unique identifier of the case in the system. Can be used to
            search for the case.
        communicationIds:
          type: array
          items:
            type: string
          example:
            - comms1
            - comms2
          description: List of ids of communications added to the case.
    ValidationError:
      type: object
      properties:
        field:
          type: string
          example: focal_actor_id
          description: The field that has the validation error
        message:
          type: string
          example: Invalid actor id
          description: A message describing the error
      description: >-
        Validation error object that contains the field and the message
        describing the error.
    UnprocessableEntityResponse:
      type: object
      properties:
        message:
          type: string
          example: Invalid input
          description: A message describing the error
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: A list of validation errors
      description: >-
        Unprocessable Entity response is returned when the request is valid but
        the server is unable to process the request. The response will contain a
        message and a list of errors.
    CaseActor:
      type: object
      description: An actor in a case.
      required:
        - id
      properties:
        id:
          type: string
          example: ACT00001
          description: The id of the actor.
        type:
          type: string
          description: |-
            The role that the actor has in the case.

            Defaults to `FOCAL`.
          enum:
            - FOCAL
            - CONNECTION
    Communication:
      type: array
      description: >-
        List of communications that are part of the case. Each communication
        should include detailed information such as the type, sender, receiver,
        subject, and content.
      items:
        type: object
        properties:
          communication_type:
            type: string
            example: email
            description: The type of communication (e.g., email, SMS).
          communication_id:
            type: string
            example: 2928938-29892-92983-923892839
            description: The unique identifier for the communication.
          sender_id:
            type: string
            example: sender@mycompany.com
            description: >-
              Identifies the sender uniquely in the system where the
              communications originates.

              For example if this is an email it could be the email address.

              If it is from a messaging system it could be the user handle in
              that system.

              Alternatively can be provided as Actor/Entity id, as provided in
              the Actor endpoint.

              If so then metadata should be used.
              metadata.sender_identifiable_as_actor=true
          receiver_id:
            type: string
            example: receiver@mycompany.com
            description: >-
              Identifies the receiver uniquely in the system where the
              communications originates.

              For example if this is an email it could be the email address, if
              it is from a messaging system

              it could be the user handle in that system.

              Alternatively can be provided as Actor/Entity id, as provided in
              the Actor endpoint,

              If so then metadata should be used.
              metadata.receiver_identifiable_as_actor=true
          subject:
            type: string
            example: 'Urgent: Update Required'
            description: The subject title of the message in the communication.
          content:
            type: string
            example: Please update your account information.
            description: The content of the communication.
          metadata:
            $ref: '#/components/schemas/schemas-Metadata'
            description: >-
              Metadata describing the communication. This field is not intended
              to add additional information to the communication, rather add
              information about the communication's attributes.
          custom_data:
            type: object
            additionalProperties:
              type: string
            description: Custom data associated with the communication.
    AnalysisCase:
      type: object
      properties:
        focal_actor_id:
          type: string
          example: 2928938-29892-92983-923892839
          description: The actor id of the focal actor of the case
          deprecated: true
        actors:
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/CaseActor'
          description: List of actor ids associated with the case.
        observation_ids:
          type: array
          items:
            type: string
          example:
            - 929298-2929110-11-292-1212
          description: List of ids for observations that are part of the case
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object's attributes.


            Reserved Metadata Keywords:

            - `external_reference_id`: An identifier that represents the case in
            the an external system. For instance if an investigation is being
            tracked in external system.

            - `data_source`: An identifier that represents the system from which
            the record is originated.

            - `legacy_workflow_id`: **[DEPRECATED]** Used to override the
            workflow assignment for the case. Warning! This should only be used
            if user knows exact id of the workflow intended to be used for the
            case. If the id is not valid, the case might be created but not
            visible.
        communications:
          $ref: '#/components/schemas/Communication'
          description: >-
            List of communications that are part of the case. Each communication
            should include detailed information such as the type, sender,
            receiver, subject, and content.
        type:
          type: string
          description: >-
            The type of case being created. If the property is not provided it
            will default to `ANALYSIS`.


            - `ANALYSIS`: A case focused on examining and evaluating data for
            potential financial crimes.

            - `FILING`: A case involving the preparation and submission of
            regulatory reports.
          enum:
            - ANALYSIS
            - FILING
    FilingCase:
      type: object
      required:
        - analysis_case_id
      properties:
        focal_actor_id:
          type: string
          example: 2928938-29892-92983-923892839
          description: The actor id of the focal actor of the case
          deprecated: true
        actors:
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/CaseActor'
          description: List of actor ids associated with the case.
        observation_ids:
          type: array
          items:
            type: string
          example:
            - 929298-2929110-11-292-1212
          description: List of ids for observations that are part of the case
        metadata:
          $ref: '#/components/schemas/schemas-Metadata'
          description: >-
            Metadata describing the object. This field is not intended to add
            additional information to the object, rather add information about
            the object's attributes.


            Reserved Metadata Keywords:

            - `external_reference_id`: An identifier that represents the case in
            the an external system. For instance if an investigation is being
            tracked in external system.

            - `data_source`: An identifier that represents the system from which
            the record is originated.

            - `legacy_workflow_id`: Providing the legacy_workflow_id can be used
            to override the workflow assignment for the case. Warning! This
            should only be used if user knows exact id of the workflow intended
            to be used for the case. If the id is not valid, the case might be
            created but not visible.
        communications:
          $ref: '#/components/schemas/Communication'
          description: >-
            List of communications that are part of the case. Each communication
            should include detailed information such as the type, sender,
            receiver, subject, and content.
        type:
          type: string
          description: >-
            The type of case being created. If the property is not provided it
            will default to `ANALYSIS`.


            - `ANALYSIS`: A case focused on examining and evaluating data for
            potential financial crimes.

            - `FILING`: A case involving the preparation and submission of
            regulatory reports.
          enum:
            - ANALYSIS
            - FILING
        analysis_case_id:
          type: string
          description: >-
            The case id the filing case was created from. Must exist in the
            Lucinity system.
        jurisdiction:
          type: string
          description: >-
            The jurisdiction where the case should be filed.


            If not provided the jurisdiction from the default filing regulator
            defined in Lucinity is used.
          enum:
            - AUS
            - CAN
            - DNK
            - HKG
            - HUN
            - IND
            - IRL
            - ISL
            - JPN
            - SGP
            - SWE
            - GBR
            - USA
    CreateCaseRequest:
      type: object
      descriminator:
        propertyName: type
        mapping:
          ANALYSIS: '#/components/schemas/AnalysisCase'
          FILING: '#/components/schemas/FilingCase'
      oneOf:
        - $ref: '#/components/schemas/AnalysisCase'
        - $ref: '#/components/schemas/FilingCase'
    CreateCaseResponse:
      type: object
      allOf:
        - properties:
            case_id:
              type: string
              example: 5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74
              description: >-
                The unique identifier of the case in Lucinity system. Can you
                used to search for the case.
    SegmentationCategory:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the Category.
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: The name of the Category, e.g. "Age" or "Annual Turnover".
          example: Age
        description:
          type: string
          description: The description of the Category, e.g. "Segmentation by age".
          example: Segmentation by age
        created_at:
          type: integer
          description: The timestamp when the Category was created.
          example: 1637539200
        changed_at:
          type: integer
          description: The timestamp when the Category was last changed.
          example: 1637539200
        created_by:
          type: string
          description: The user who created the Category.
          example: John Doe
        changed_by:
          type: string
          description: The user who last changed the Category.
          example: Jane Smith
        type:
          type: string
          description: >-
            The type of the Category, either COMPUTED_BY_CUSTOMER or
            COMPUTED_BY_SYSTEM.
          example: COMPUTED_BY_CUSTOMER
    SegmentationCategories:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/SegmentationCategory'
        offset:
          type: integer
          description: The offset for pagination.
          example: 2
        limit:
          type: integer
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          example: 3
    PostSegmentationCategory:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: >-
            This is a unique field. The name of the Category, e.g. "Age" or
            "Annual Turnover".
          example: Age
        description:
          type: string
          description: The description of the Category, e.g. "Segmentation by age".
          example: Segmentation by age
    PostSegmentationCategoryResponse:
      type: object
      properties:
        id:
          type: string
          description: The Segmentation Category id that was created.
          example: 12345678-1234-1234-1234-123456789012
    PatchSegmentationCategory:
      type: object
      properties:
        name:
          type: string
          description: >-
            This is a unique field. The name of the Category, e.g. "Age" or
            "Annual Turnover".
          example: Age
        description:
          type: string
          description: The description of the Category, e.g. "Segmentation by age".
          example: Segmentation by age
    SegmentationGroup:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the Segmentation Group .
          example: 12345678-1234-1234-1234-123456789012
        category_id:
          type: string
          description: The Segmentation Category id.
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: The name of the Segmentation Group .
          example: Age Group
        description:
          type: string
          description: The description of the Segmentation Group .
          example: 'Segmentation by age Group '
        created_at:
          type: integer
          description: The timestamp when the Segmentation Group was created.
          example: 1637539200
        changed_at:
          type: integer
          description: The timestamp when the Segmentation Group was last changed.
          example: 1637539200
        created_by:
          type: string
          description: The user who created the Segmentation Group .
          example: John Doe
        changed_by:
          type: string
          description: The user who last changed the Segmentation Group .
          example: Jane Smith
    SegmentationGroups:
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/SegmentationGroup'
        offset:
          type: integer
          description: The offset for pagination.
          example: 2
        limit:
          type: integer
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          example: 3
    GetSegmentationActorsResponse:
      type: object
      properties:
        actor_ids:
          type: array
          items:
            type: string
          description: The Actor ids.
        offset:
          type: integer
          description: The offset for pagination.
          example: 2
        limit:
          type: integer
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          example: 3
    PostSegmentationGroup:
      type: object
      required:
        - name
        - category_id
      properties:
        category_id:
          type: string
          description: The Segmentation Category id.
          example: 12345678-1234-1234-1234-123456789012
        name:
          type: string
          description: >-
            This field is unique per Category id. The name of the Segmentation
            Group.
          example: Ages 0-25
        description:
          type: string
          description: The description of the Segmentation Group .
          example: This Group contains Actors aged 0-25.
    PostSegmentationGroupResponse:
      type: object
      properties:
        id:
          type: string
          description: The Segmentation Group id that was created.
          example: 12345678-1234-1234-1234-123456789012
    PatchSegmentationGroup:
      type: object
      properties:
        name:
          type: string
          description: >-
            This field is unique per Category id. The name of the Segmentation
            Group.
          example: Ages 0-25
        description:
          type: string
          description: The description of the Segmentation Group .
          example: This Group contains Actors aged 0-25.
    ActorGroups:
      type: object
      properties:
        groupIds:
          type: array
          items:
            type: string
            example: 12345678-1234-1234-1234-123456789012
          description: The Group ids that the Actor contains to.
        offset:
          type: integer
          description: The offset for pagination.
          example: 2
        limit:
          type: integer
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          example: 3
    WebhookEvent:
      type: object
      properties:
        id:
          type: string
          example: '1'
          description: The id for the event created by Lucinity
        name:
          type: string
          description: The type of the event
          example: case.assigned
        createdAt:
          type: integer
          format: int64
          example: 1711360775327
          description: The timestamp this event was created
    CaseAssignedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.assigned
        data:
          type: object
          description: Detail event data for case claimed
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            assignedToUserId:
              type: string
              example: 846d5c88-5296-4972-92bf-cf43730a4184
              format: uuid
              description: The user id assigned to the case after the event
            assignedToUserEmail:
              type: string
              'example:': anotheruser@lucinity.com
              description: The user email assigned to the case after the event
            metadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                case has been created with the Case endpoint and the metadata is
                not empty. See more information in Create a new case API
                endpoint.
              example:
                exampleProperty: example value
    CaseClosedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.closed
        data:
          type: object
          description: Detail event data for case case closed
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            resolution:
              type: string
              example: Suspicious
              description: Chosen resolution for the case
            dispositionNarrative:
              type: string
              example: Summary of the Investigation
              description: The reasoning of the case being closed
            comment:
              type: string
              example: This is a comment
              description: >-
                Comment added when closing a case, if no comment is provided
                then field will not show
            closeReason:
              type: string
              example: Manual
              description: >-
                One of `Manual`, `Merge` or `Bulk`. Identifies how the case was
                closed, manually, by merging cases or bulk closing.
            metadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                case has been created with the Case endpoint and the metadata is
                not empty. See more information in Create a new case API
                endpoint.
              example:
                exampleProperty: example value
    CaseCreatedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.created
        data:
          type: object
          description: Detail event data for case case created
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            processId:
              type: string
              example: 2df50b47-20cc-4b19-b9b5-68eb4bd68620
              description: The ID of the workflow in which the case resides.
            metadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                case has been created with the Case endpoint and the metadata is
                not empty. See more information in Create a new case API
                endpoint.
              example:
                exampleProperty: example value
    CaseWorkflowActionedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.workflow.actioned
        data:
          type: object
          description: >-
            Detailed event data for when an action on a workflow is performed in
            a case.
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            actionName:
              type: string
              example: SET_ON_HOLD
              description: The name of the action as it is defined in the workflow.
            comment:
              type: string
              example: Setting this case on hold, waiting for external data.
              description: The user can comment on an action when working a case
            metadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                case has been created with the Case endpoint and the metadata is
                not empty. See more information in Create a new case API
                endpoint.
              example:
                exampleProperty: example value
    CaseCommentedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.commented
        data:
          type: object
          description: Detailed event data for when a comment is added to a case
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            comment:
              type: string
              example: This is a comment
              description: A comment added by a user when working a case
            metadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                case has been created with the Case endpoint and the metadata is
                not empty. See more information in Create a new case API
                endpoint.
              example:
                exampleProperty: example value
    TransanctionDecisionUpdatedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.transaction.decision.updated
        data:
          type: object
          description: Detail event data for transaction decision update
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            transactionId:
              type: string
              format: uuid
              description: The transaction id
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            decision:
              type: string
              enum:
                - RELEASE
                - BLOCK
                - CANCEL
    CaseObservationFeedbackEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.observations.feedback.updated
        data:
          type: object
          description: Detail event data for observation added
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            observationId:
              type: string
              example: cc00jCLAC00001
              description: The observation id being assigned to the case
            feedback:
              type: string
              description: The feedback
    ObservationActionedEventData:
      type: object
      properties:
        name:
          type: string
          enum:
            - case.observations.actioned
        data:
          type: object
          description: Detail event data for observation actioned.
          properties:
            id:
              type: string
              example: CLC2020010100000001
              description: The case id the event is for
            observationId:
              type: string
              example: OBS2020010100000001
              description: The observation id the event is for
            actionName:
              type: string
              example: WHITELIST
              description: >-
                What action was made for the observation, Currently only
                supports "WHITELIST" action.
            userId:
              type: string
              format: uuid
              example: 95dc44d7-a615-41f3-9bf2-2b8093696dc9
              description: The user id that triggers the event
            userEmail:
              type: string
              example: user@lucinity.com
              description: The user email that triggers the event
            comment:
              type: string
              example: Test comment
              description: Any comments made for the action
            metadata:
              type: object
              description: >-
                This is the case metadata. Placeholder object that can carry
                additional information that is not part of the original schema,
                providing additional data describing this object. This object is
                only populated if the case has been created with the metadata
                not empty.
              example:
                exampleProperty: example value
            observationMetadata:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                observation has been created with the metadata not empty.
              example:
                exampleProperty: example value
            observationCustomData:
              type: object
              description: >-
                Placeholder object that can carry additional information that is
                not part of the original schema, providing additional data
                describing this object. This object is only populated if the
                observation has been created with the customData not empty.
              example:
                exampleProperty: example value
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: |2-
         - Authentication to the API is performed via HTTP with an Api key
        schema.
         - The client must send the key in a x-api-key header when making request to protected resources. `headers = { 'x-api-key': '{API_KEY}' }`
    BearerToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |-
        - Authentication using JWT token as authentication header
        - `headers = { 'Authorization': 'Bearer <JWTTOKEN>'}`
  responses:
    '400':
      description: Bad request
      content:
        application/json:
          schema:
            properties:
              errors:
                type: array
                description: The errors.
          example:
            errors:
              - value
    '401':
      description: Unauthorized
    '403':
      description: Forbidden
    '404':
      description: Not found
    '415':
      description: Unsupported Media Type
      content:
        application/json:
          schema:
            properties:
              type:
                type: string
                description: The type of the error.
              title:
                type: string
                description: The title of the error.
              status:
                type: integer
                description: The status code of the error.
              errors:
                type: object
                description: The errors.
              traceId:
                type: string
                description: The trace id of the error.
          example:
            type: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5.16
            title: Unsupported Media Type
            status: 415
            traceId: string
    BadRequest:
      x-showSchema: true
      x-groupedUnder: Error
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequestFinalize:
      description: Bad Request
      x-showSchema: true
      x-groupedUnder: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FinalizedResult'
    BadRequestBatchInitializeFailure:
      description: Bad request
      x-showSchema: true
      x-groupedUnder: Error
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/BatchInitializeFailure'
              - $ref: '#/components/schemas/BatchInitializeFailureNoTransactions'
    NotFound:
      description: The specified resource was not found
      x-showSchema: true
      x-groupedUnder: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      x-groupedUnder: Error
      x-showSchema: true
      description: >-
        Could not process entity, some required fields could be missing or of
        invalid type
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnprocessableEntityError'
    InternalServerError:
      description: Something bad happened
      x-showSchema: true
      x-groupedUnder: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  examples:
    ActorIndividual:
      summary: Individual
      value:
        id: LUCINITY_ACTOR_ID_0002221233984
        dataSource: Lucinity
        references:
          - id: LUCINITY_INTERNAL_ID_123047124890
            systemName: LucinityInternalService
        metadata:
          someProperty: SomeValue
        type: INDIVIDUAL
        subType:
          - EMPLOYEE
        gender: FEMALE
        name: Wendy Byrde
        displayName: Wendy Byrde
        firstName: Wendy
        middleName: null
        lastName: Byrde
        status: ACTIVE
        monitored: 'YES'
        addresses:
          - type: HOME
            line1: 6818 Gaines Ferry Rd
            line2: ''
            postcode: '94109'
            city: Flowery Branch
            state: GA
            country: USA
        phones:
          - type: HOME
            number: '6135854487'
        emails:
          - type: HOME
            address: wendybyrde@example.com
        nationality: US
        domicile: US
        taxResidency: US
        asOfDate: '2023-01-01'
        govermentIds:
          - id: '9423480129034'
            type: SSN
            issuingAuthority: US
            expirationDate: null
        relatedLinks:
          - link: https://linkedin.com/u/wendy
            description: LinkedIn profile
        validationStatus: VALIDATED
        customData:
          someProperty: some value
          otherProperty: other value
    ActorLegalEntity:
      summary: Legal Entity
      value:
        id: LUCINITY_ACTOR_ID_0912344390744
        dataSource: Lucinity
        references:
          - id: LUCINITY_INTERNAL_ID_782352340871208
            systemName: LucinityInternalService
        metadata:
          someProperty: SomeValue
        type: LEGAL_ENTITY
        subType:
          - CUSTOMER
        legalEntity:
          dateOfRegistration: '1987-04-24'
          type: PARTNERSHIP_LIMITED
          url: https://example.asktech.com
          industry:
            - type: NAICS
              code: '423430'
          countryOfIncorporation: US
        name: Ask Technologies
        displayName: Ask Technologies
        firstName: null
        middleName: null
        lastName: null
        status: TERMINATED
        monitored: 'NO'
        dateOfBirth: null
        addresses:
          - type: HOME
            line1: Oxford Court 123
            line2: ''
            postcode: '12345'
            city: New York City
            state: New York
            country: USA
        phones:
          - type: WORK
            number: '9952886115'
        emails:
          - type: WORK
            address: asktechnologies@example.com
        nationality: US
        domicile: US
        taxResidency: US
        asOfDate: '2023-01-01'
        govermentIds:
          - id: '1248243701284'
            type: SSN
            issuingAuthority: US
            expirationDate: '2029-04-24'
        relatedLinks:
          - link: https://linkedin.com/u/ask_technologies
            description: LinkedIn Profile
        validationStatus: UNVALIDATED
        customData:
          someProperty: some value
          otherProperty: other value
    TransactionCounterpartyIndividual:
      summary: A transaction where counterparty object is an individual
      value:
        id: 1b9c926d-52d1-4c2f-bc1d-8a1d8f9d5e89
        created_at: 1654236000
        direction: OUTBOUND
        status: COMPLETED
        description: Payment for goods
        channel: ONLINE
        channel_location_id: 3121f4a3-e89b-12d3-a456-426618394724
        account_id: 5f1bcb7e-7e39-42e0-9d4c-d10be236cd28
        amount:
          value: 100.15
          currency: USD
        standardized_amount: 200.25
        account_balance: 500.25
        account_owner_id: 1deb5316-cd35-4fe9-bce9-08a8bd3933b1
        method: CARD
        purpose: BILL_PAYMENT
        metadata:
          international: 'true'
          exclude_from_monitoring: 'true'
        custom_data:
          custom_field: custom_value
        device:
          id: 123e4567-e89b-12d3-a456-426614174000
          ip_address: 2001:db8:85a3::8a2e:370:7334
        counterparty:
          object: INDIVIDUAL
          id: fa9e7f3c-9b62-45c2-bb64-9a8e06e366be
          name: John Doe
          birth_date: '1985-10-15'
          postal_addresses:
            - lines:
                - 123 Main Street
              postal_code: '12345'
              city: Cityville
              state: Stateville
              country: USA
              location: HOME
          account_info:
            bank_name: Bank of America
            bic: BOFAUS3N
            bank_code: '123456'
            account_number: '1234567890'
            iban: US1234567890
          industry:
            classification_identifier: MCC
            code: '1234'
          metadata:
            identifiable_as_actor: 'false'
    TransactionCounterpartyLegalEntity:
      summary: A transaction where counterparty object is a legal_entity
      value:
        id: 64f2c3a6-0a4f-4de4-b37f-1c0e8b8d2853
        created_at: 1678405200
        direction: INBOUND
        status: PENDING
        description: Payment for products
        channel: ONLINE
        channel_location_id: 3121f4a3-e89b-12d3-a456-426618394724
        account_id: 2c8c8312-3c61-4e60-99db-4324f45033f1
        amount:
          value: 2500.1
          currency: EUR
        standardized_amount: 300.1
        account_balance: 750.23
        account_owner_id: 1deb5316-cd35-4fe9-bce9-08a8bd3933b1
        method: WIRE_TRANSFER
        purpose: BILL_PAYMENT
        custom_data:
          international: 'false'
        device:
          id: 123e4567-e89b-12d3-a456-426614174000
          ip_address: 2001:db8:85a3::8a2e:370:7334
        counterparty:
          object: LEGAL_ENTITY
          id: a50c6712-1b76-4a7c-99b6-fbdf65e3f0c2
          name: XYZ Corporation
          registration_date: '2022-05-01'
          postal_addresses:
            - lines:
                - 789 Oak Avenue
              postal_code: '54321'
              city: Cityville
              state: Stateville
              country: USA
              location: HEADQUARTERS
          account_info:
            bank_name: Citibank
            bic: CITIUS33
            bank_code: '987654'
            account_number: '123456789'
            iban: US123456789
            country: USA
          industry:
            classification_identifier: MCC
            code: '1234'
          metadata:
            identifiable_as_actor: 'true'
    TransactionCounterpartyEmpty:
      summary: A transaction where counterparty object is empty
      value:
        id: 8a5b6d09-0eab-422a-b79d-4e47edf7d6a3
        created_at: 1678330200
        direction: INBOUND
        status: PENDING
        description: Transfer from another account
        channel: UNKNOWN
        channel_location_id: 3121f4a3-e89b-12d3-a456-426618394724
        account_id: 4c93b3df-10ff-4b65-8e83-1f7b141fe2e9
        account_owner_id: 1deb5316-cd35-4fe9-bce9-08a8bd3933b1
        amount:
          value: 500.15
          currency: EUR
        standardized_amount: 500.25
        account_balance: 100.15
        method: WIRE_TRANSFER
        purpose: PRINCIPAL_PAYMENT
        custom_data:
          international: 'false'
        device:
          id: 123e4567-e89b-12d3-a456-426614174000
          ip_address: 2001:db8:85a3::8a2e:370:7334
        counterparty:
          object: EMPTY
    TransactionCounterpartyAccountInfo:
      summary: A transaction where counterparty object is an account_info
      value:
        id: cc93e2f0-0c92-4b0a-9e7d-6f6f15dfb098
        created_at: 1654242000
        direction: INBOUND
        status: PENDING
        description: Payment for goods
        channel: POS
        channel_location_id: 3121f4a3-e89b-12d3-a456-426618394724
        account_id: 9e34e764-09ed-4d0b-8e1e-74118fcf60bc
        account_owner_id: 1deb5316-cd35-4fe9-bce9-08a8bd3933b1
        amount:
          value: 500.1
          currency: USD
        standardized_amount: 830.1
        account_balance: 250.25
        method: CARD
        purpose: BILL_PAYMENT
        custom_data:
          international: 'false'
        device:
          id: 123e4567-e89b-12d3-a456-426614174000
          ip_address: 2001:db8:85a3::8a2e:370:7334
        counterparty:
          object: ACCOUNT_INFO
          bank_name: Chase Bank
          bic: CHASUS33
          bank_code: '987654'
          account_number: '1234567890'
          iban: US1234567890
          country: USA
          id: '1234567890'
  parameters:
    ParameterHookId:
      name: id
      in: path
      description: Unique Webhook Id
      required: true
      schema:
        type: string
        format: uuid
paths:
  /batches/{id}/bulkClose: {}
  /sourceSystems:
    post:
      summary: Add Source system
      operationId: AddSourceSystem
      x-productName: Transaction Monitoring
      x-groupedUnder:
        - Detect
      x-requestPayloadSample: sample-payloads/system/add-source-system-request.payload
      x-responsePayloadSample: sample-payloads/system/add-source-system-response.payload
      x-showEndpoint: true
      description: >-
        Data from multiple internal client systems may be published to the APIs.
        Defining these source systems enables maintaining lineage of data.
      tags:
        - SourceSystems
        - Detect
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceSystem'
        required: true
      responses:
        '200':
          description: SourceSystem ingested by Lucinity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceSystem'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /observations:
    post:
      tags:
        - Observations
      summary: Add Observation
      operationId: AddObservation
      x-productName: Core Data
      x-groupedUnder: Observations
      x-requestPayloadSample: sample-payloads/observation/add-observation-request.payload
      x-responsePayloadSample: sample-payloads/observation/add-observation-response.payload
      x-showEndpoint: true
      description: >-
        Add observation To Lucinity. Observations are vital information to
        deduce signals.
      parameters:
        - in: query
          name: create_case
          schema:
            type: string
          description: >-
            Optional parameter, if create_case=true is set, then attempt will be
            made to create cases using the provided observations.

            This may result in a different response structure, particularly if a
            case is successfully created.

            Currently this option is available for all observation types except
            ALERT_AML.
          deprecated: true
      requestBody:
        description: The observation object to be sent to Lucinity.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AmlObservationRequest'
                - $ref: '#/components/schemas/AmlV2ObservationRequest'
                - $ref: '#/components/schemas/FraudObservationRequest'
                - $ref: '#/components/schemas/SanctionsObservationRequest'
                - $ref: '#/components/schemas/RuleObservationRequest'
                - $ref: '#/components/schemas/GenericObservationRequest'
                - $ref: '#/components/schemas/ObservationRequestList'
      responses:
        '200':
          description: A list of observation objects ingested by Lucinity.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CaseCreationResponse'
                  - $ref: '#/components/schemas/AmlObservation'
                  - $ref: '#/components/schemas/AmlV2Observation'
                  - $ref: '#/components/schemas/FraudObservation'
                  - $ref: '#/components/schemas/SanctionsObservation'
                  - $ref: '#/components/schemas/RuleObservation'
                  - $ref: '#/components/schemas/GenericObservation'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /observations/{id}:
    get:
      tags:
        - Observations
      summary: Get Observation
      operationId: GetObservation
      x-productName: Core Data
      x-groupedUnder: Observations
      x-responsePayloadSample: sample-payloads/observation/add-observation-response.payload
      x-showEndpoint: true
      description: Retrieves a single observation by identifier.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: The observation ID.
      responses:
        '200':
          description: A list of observation objects ingested by Lucinity.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/RuleObservation'
                  - $ref: '#/components/schemas/GenericObservation'
                  - $ref: '#/components/schemas/CaseCreationResponse'
                  - $ref: '#/components/schemas/AmlObservation'
                  - $ref: '#/components/schemas/AmlV2Observation'
                  - $ref: '#/components/schemas/FraudObservation'
                  - $ref: '#/components/schemas/SanctionsObservation'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /observations/{id}/actors:
    post:
      tags:
        - Observations
      summary: Add Actors to Observation
      operationId: AddActorstoObservation
      x-productName: Core Data
      x-groupedUnder: Observations
      x-requestPayloadSample: sample-payloads/observation/add-actor-to-observation-request.payload
      x-responsePayloadSample: sample-payloads/observation/add-actor-to-observation-response.payload
      x-showEndpoint: true
      description: Add actors to observation.
      parameters:
        - in: path
          name: id
          required: true
          description: Observation id
          schema:
            type: string
      requestBody:
        description: Actors to be added for a given observation.
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ObservationActor'
      responses:
        '200':
          description: Actors added to Observation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObservationActorsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '500':
          $ref: '#/components/responses/InternalServerError'
  /observations/{id}/activities:
    post:
      tags:
        - Review
      summary: Add Activities to Observation
      operationId: AddActivitiestoObservation
      x-productName: Transaction Monitoring
      x-groupedUnder:
        - Review
        - Observation
      x-requestPayloadSample: >-
        sample-payloads/observation/add-activities-to-observation-request.payload
      x-responsePayloadSample: >-
        sample-payloads/observation/add-activities-to-observation-response.payload
      x-showEndpoint: true
      description: Add activities to observation.
      parameters:
        - in: path
          name: id
          required: true
          description: Observation id
          schema:
            type: string
      requestBody:
        description: Activities to be added for a given id.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObservationActivities'
      responses:
        '200':
          description: Activities that were added during the given transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObservationActivities'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /transactions: {}
  /observations/{id}/finalize:
    post:
      tags:
        - Review
      summary: Finalize an Observation
      operationId: FinalizeanObservation
      x-productName: Transaction Monitoring
      x-groupedUnder:
        - Review
        - Process
      x-requestPayloadSample: sample-payloads/observation/finalize-observation-request.payload
      x-responsePayloadSample: sample-payloads/observation/finalize-observation-response.payload
      x-showEndpoint: true
      description: >-
        Call when the observation is fully created. This operation validates all
        the data associated with the observation.
      parameters:
        - in: path
          name: id
          required: true
          description: Observation id
          schema:
            type: string
      responses:
        '200':
          description: Finalization response
          content:
            application/json:
              schema:
                type: string
                description: id of case created
        '400':
          $ref: '#/components/responses/BadRequestFinalize'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /batches/{id}/finalize:
    post:
      tags:
        - Batches
        - Review
      summary: Finalize all Observations in Batch
      operationId: FinalizeallObservationsinBatch
      x-productName: Transaction Monitoring
      x-groupedUnder:
        - Review
      x-requestPayloadSample: sample-payloads/observation/finalize-observation-request.payload
      x-responsePayloadSample: sample-payloads/observation/finalize-observation-response.payload
      x-showEndpoint: true
      description: >-
        Call when all observations in a batch are fully created. This operation
        validates all the data associated with the observations.
      parameters:
        - in: path
          name: id
          required: true
          description: Batch id
          schema:
            type: string
        - in: query
          name: atomic
          required: false
          description: >-
            When true the batch will be finalized if all observations pass
            verification of references. When false, observations with missing
            references are returned as well as the list of caseIds created.
          schema:
            type: boolean
          example: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinalizedResult'
        '400':
          $ref: '#/components/responses/BadRequestFinalize'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts:
    post:
      tags:
        - Accounts
      summary: Add Account
      x-productName: Core Data
      x-groupedUnder: Accounts
      x-requestPayloadSample: sample-payloads/account/add-account-request.payload
      x-responsePayloadSample: sample-payloads/account/add-account-response.payload
      x-showEndpoint: true
      description: >-
        Add single account to Lucinity. The same API can be used to update
        accounts as well.

        The 'ID' property derived from BaseEntity usually maps to the uniquely
        identifiable record.

        Lucinity ingests input and emits the same account object for reference.
      operationId: AddAccount
      parameters: []
      requestBody:
        description: Account JSON passed in request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
      responses:
        '200':
          description: The Account ingested in Lucinity during the current transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{account-id}/balances:
    post:
      tags:
        - Accounts
      summary: Add Account Balance
      operationId: AddAccountBalance
      x-productName: Core Data
      x-groupedUnder: Accounts
      x-requestPayloadSample: sample-payloads/account/add-account-balance-request.payload
      x-responsePayloadSample: sample-payloads/account/add-account-balance-response.payload
      x-showEndpoint: true
      description: Add balance for an account.
      parameters:
        - in: path
          name: id
          required: true
          description: The account id.
          schema:
            type: string
      requestBody:
        description: A balance for the account
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Balance'
      responses:
        '200':
          description: The balance object that was added to the account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{account-id}/actors:
    post:
      tags:
        - Accounts
      summary: Add Actor to Account
      operationId: AddActortoAccount
      x-productName: Core Data
      x-groupedUnder: Accounts
      x-requestPayloadSample: sample-payloads/account/add-actor-to-account-request.payload
      x-responsePayloadSample: sample-payloads/account/add-actor-to-account-response.payload
      x-showEndpoint: true
      description: >-
        Add actor/actors to account by ID. This provides association between the
        two entities.
      parameters:
        - in: path
          name: id
          required: true
          description: The account id to add the actors.
          schema:
            type: string
      requestBody:
        description: >-
          The Actor (single or multiple) object that needs to be associated to
          the account
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountActors'
      responses:
        '200':
          description: Actors added to the given account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountActors'
        '400':
          description: Bad Request
          $ref: '#/components/responses/BadRequest'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors:
    post:
      tags:
        - Actors
      summary: Add Actor
      operationId: AddActor
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/add-actor-request.payload
      x-responsePayloadSample: sample-payloads/actor/add-actor-response.payload
      x-showEndpoint: true
      description: Add actor to Lucinity.
      parameters: []
      requestBody:
        description: The Actor to be added to Lucinity.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Actor'
            examples:
              example1:
                $ref: '#/components/examples/ActorIndividual'
              example2:
                $ref: '#/components/examples/ActorLegalEntity'
      responses:
        '200':
          description: The Actor ingested in Lucinity during the current transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Actor'
              examples:
                example1:
                  $ref: '#/components/examples/ActorIndividual'
                example2:
                  $ref: '#/components/examples/ActorLegalEntity'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors/{id}:
    get:
      tags:
        - Actors
      summary: Get Actor
      operationId: GetActor
      x-productName: Core Data
      x-groupedUnder: Actors
      x-responsePayloadSample: sample-payloads/actor/add-actor-response.payload
      x-showEndpoint: true
      description: Retrieves a single actor by identifier.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      responses:
        '200':
          description: The Actor matching the provided identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Actor'
              examples:
                example1:
                  $ref: '#/components/examples/ActorIndividual'
                example2:
                  $ref: '#/components/examples/ActorLegalEntity'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '404':
          description: Not found
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: The requested actor could not be found.
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors/{id}/associates:
    post:
      tags:
        - Actors
      summary: Add Actor Associates
      operationId: AddActorAssociates
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/add-actor-associates-by-id-request.payload
      x-responsePayloadSample: sample-payloads/actor/add-actor-associates-by-id-response.payload
      x-showEndpoint: true
      description: Add associates to actors by ID.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      requestBody:
        description: Associates to be tagged to an actor.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActorAssociates'
      responses:
        '200':
          description: Associates that were tagged to an actor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActorAssociates'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors/{id}/exclusion:
    post:
      tags:
        - Actors
      summary: Add Actor Exclusion
      operationId: AddActorExclusion
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/add-actor-exclusion-request.payload
      x-responsePayloadSample: sample-payloads/actor/add-actor-exclusion-response.payload
      x-showEndpoint: true
      description: Add actor exclusion.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      requestBody:
        required: true
        description: Exclusion to be added for an actor.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExclusionType'
      responses:
        '200':
          description: Exclusion created for an actor
          content:
            application/json:
              schema:
                type: string
                example: ACTOR_ID_100000
                description: id of the actor that an exclusion was created for
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors/{id}/riskAssessments:
    post:
      tags:
        - Actors
        - Actor Risk Assessment
      summary: Add Actor RiskAssessment
      operationId: AddActorRiskAssessment
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/add-actor-riskassesment-request.payload
      x-responsePayloadSample: sample-payloads/actor/add-actor-riskassesment-response.payload
      x-showEndpoint: true
      description: Add actor risk assessment.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      requestBody:
        required: true
        description: Risk Assessment to be added for an actor.
        content:
          application/json:
            schema:
              type: array
              items:
                required:
                  - asOfDate
                  - type
                  - value
                $ref: '#/components/schemas/RiskAssessment'
      responses:
        '200':
          description: Risk Assessment added for an actor in the current transaction.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RiskAssessment'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
        - Actors
        - Actor Risk Assessment
      summary: Get Actor RiskAssessment
      operationId: GetActorRiskAssessment
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/get-actor-riskassesment-request.payload
      x-responsePayloadSample: sample-payloads/actor/get-actor-riskassesment-response.payload
      x-showEndpoint: true
      description: Get actor risk assessment.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      responses:
        '200':
          description: Risk Assessments for the Actor matching the provided identifier.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RiskAssessment'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /actors/{id}/extendedInfo:
    post:
      tags:
        - Actors
      summary: Add Actor Extended Info
      operationId: PostActorExtendedInfo
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/get-actor-extended-info-request.payload
      x-responsePayloadSample: sample-payloads/actor/get-actor-extended-info-response.payload
      x-showEndpoint: true
      description: Add actor extended information.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      requestBody:
        description: >-
          Summary information on balances, number of products the actor has with
          the institution and dates when products were acquired
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActorExtendedInfoRequest'
      responses:
        '200':
          description: Extended information added for the given actor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActorExtendedInfoResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Bad request
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
        - Actors
      summary: Get Actor Extended Info
      operationId: GetActorExtendedInfo
      x-productName: Core Data
      x-groupedUnder: Actors
      x-requestPayloadSample: sample-payloads/actor/get-actor-extended-info-request.payload
      x-responsePayloadSample: sample-payloads/actor/get-actor-extended-info-response.payload
      x-showEndpoint: true
      description: Get actor extended information.
      parameters:
        - in: path
          name: id
          required: true
          description: Actor ID
          schema:
            type: string
      responses:
        '200':
          description: Extended information returned for the given actor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActorExtendedInfoResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: The requested actor could not be found.
        '500':
          $ref: '#/components/responses/InternalServerError'
  /detection/initialize:
    post:
      tags:
        - Actor Intelligence
        - Detect
      summary: InitializeBatch
      operationId: InitializeBatch
      description: >-
        Initialize a batch. To initialize a Transaction Monitoring batch, set
        the `"processType"` parameter to `"AML"`. To initialize an Actor
        Intelligence batch, set the `"processType"` parameter to `"ACTOR"`. If
        when initializing, the specified batch period fails to contain any valid
        transactions, the API will respond with a `400` error containing the
        batch details, along with a `"NO_TXN"` failure reason.
      x-showEndpoint: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DetectionBatchInitialization'
      responses:
        '200':
          description: Success response for initializing detection batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetectionBatch'
        '400':
          $ref: '#/components/responses/BadRequestBatchInitializeFailure'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /webhooks:
    get:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: List registered webhooks
      description: List registered webhooks.
      operationId: ListHooks
      responses:
        '200':
          description: A JSON array of Webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: NotFound
    post:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: Create and register a new Webhook
      operationId: CreateHook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
              required:
                - name
                - url
                - events
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          $ref: '#/components/responses/401'
        '422':
          description: Unprocessable Entity
  /webhooks/{id}:
    get:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: Retrieve a Webhook by Id
      operationId: GetHook
      parameters:
        - name: id
          in: path
          description: Unique Webhook Id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookResponse'
        '404':
          description: Not Found
    delete:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: Remove a Webhook by Id
      operationId: RemoveHook
      parameters:
        - $ref: '#/components/parameters/ParameterHookId'
      responses:
        '200':
          description: Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookResponse'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
    put:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: Update Webhook
      operationId: UpdateWebhook
      parameters:
        - $ref: '#/components/parameters/ParameterHookId'
      requestBody:
        description: >-
          The status update object. If omitted it will attempt to toggle the
          status.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookUpdateRequest'
      responses:
        '200':
          description: Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
  /webhooks/{id}/test:
    post:
      security:
        - BearerToken: []
      tags:
        - Webhook
      x-productName: Webhooks
      x-groupedUnder:
        - Webhook
      x-showEndpoint: true
      summary: Test a Webhook
      operationId: TestHook
      parameters:
        - $ref: '#/components/parameters/ParameterHookId'
      responses:
        '202':
          description: Accepted
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
  /v2/transactions:
    post:
      parameters:
        - in: query
          name: blocking
          schema:
            type: string
          description: |-
            If the screening process is synchronous or asynchronous,
            currently `blocking=true` is only supported and *MUST* be set.
            `example: blocking=true`
        - in: query
          name: operations
          schema:
            type: string
          description: >-
            Comma-separated list of what kind of screening the transaction
            should return.

            Supported values FRAUD and SANCTIONS. example:
            `operations=FRAUD,SANCTIONS`
        - in: header
          name: idempotency-key
          example: 96760494-8c70-4279-a7c3-0d11e3c9aa6c
          description: >-
            Unique value generated by the client which the resource server uses
            to

            recognize subsequent retries of the same request
          schema:
            type: string
      tags:
        - Transactions
      x-productName: Core Data
      x-groupedUnder:
        - Transactions
      x-showEndpoint: true
      summary: Add Transaction
      description: >-
        **Note:** Transaction screening is a feature that is configured by
        Lucinity,

        and may not be configured for your environment.

        Please contact Lucinity support for more information.
      operationId: AddTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/schemas-Transaction'
            examples:
              example1:
                $ref: '#/components/examples/TransactionCounterpartyIndividual'
              example2:
                $ref: '#/components/examples/TransactionCounterpartyLegalEntity'
              example3:
                $ref: '#/components/examples/TransactionCounterpartyEmpty'
              example4:
                $ref: '#/components/examples/TransactionCounterpartyAccountInfo'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreeningResults'
              examples:
                example1:
                  summary: Transaction with no hit
                  value:
                    transaction_id: 1b9c926d-52d1-4c2f-bc1d-8a1d8f9d5e89
                    request_id: ccb3f54c-4aa2-47cf-8a0b-c1b34a43a520
                    screening_results:
                      - provider_name: SEON
                        response: MISS
                      - provider_name: NETERIUM
                        response: MISS
                example2:
                  summary: Transaction with one hit
                  value:
                    transaction_id: 1b9c926d-52d1-4c2f-bc1d-8a1d8f9d5e89
                    request_id: ccb3f54c-4aa2-47cf-8a0b-c1b34a43a520
                    screening_results:
                      - provider_name: SEON
                        response: MISS
                      - provider_name: NETERIUM
                        response: HIT
                example3:
                  summary: Transaction without screening
                  value:
                    transaction_id: 1b9c926d-52d1-4c2f-bc1d-8a1d8f9d5e89
                    request_id: ccb3f54c-4aa2-47cf-8a0b-c1b34a43a520
                    screening_results: []
        '400':
          description: Bad request
          content:
            application/json:
              example:
                value:
                  - code: invalid_type
                    expected: string
                    received: undefined
                    path:
                      - body
                      - direction
                    message: Required
        '401':
          description: Unauthorized
          content:
            html/text:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Invalid api key
        '500':
          description: Something bad happened
          x-showSchema: true
          x-groupedUnder: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-Error'
  /v2/transactions/{id}:
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: The identifier for the transaction.
      tags:
        - Transactions
      x-productName: Core Data
      x-groupedUnder:
        - Transactions
      x-showEndpoint: true
      summary: Get Transaction
      operationId: GetTransaction
      description: Retrieves a single transaction by identifier.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-Transaction'
              examples:
                example1:
                  $ref: '#/components/examples/TransactionCounterpartyIndividual'
                example2:
                  $ref: '#/components/examples/TransactionCounterpartyLegalEntity'
                example3:
                  $ref: '#/components/examples/TransactionCounterpartyEmpty'
                example4:
                  $ref: '#/components/examples/TransactionCounterpartyAccountInfo'
        '400':
          description: Bad request
          content:
            application/json:
              example:
                value:
                  - code: invalid_type
                    expected: string
                    received: undefined
                    path:
                      - body
                      - direction
                    message: Required
        '401':
          description: Unauthorized
          content:
            html/text:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Invalid api key
        '500':
          description: Something bad happened
          x-showSchema: true
          x-groupedUnder: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-Error'
  /channel_locations:
    post:
      security:
        - BearerToken: []
      tags:
        - Transactions
      x-productName: Core Data
      x-groupedUnder:
        - Transactions
      x-showEndpoint: true
      summary: Create Channel Location
      description: >-
        Allows customers to add new locations to the platform. This method is
        used to populate the location information that will later be referenced
        in transactions.
      operationId: CreateChannelLocation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/schemas-ChannelLocation'
            examples:
              example1:
                value:
                  id: location-123
                  type: ATM
                  address:
                    street:
                      - 123 Main St
                      - Suite 200
                    city: Springfield
                    state: IL
                    postal_code: '62701'
                    country: USA
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                type: object
    get:
      security:
        - BearerToken: []
      tags:
        - Transactions
      x-productName: Core Data
      x-groupedUnder:
        - Transactions
      x-showEndpoint: true
      summary: Get All Channel Locations
      description: >-
        Retrieves a list of all channel locations in the platform, with optional
        parameters for pagination, filtering, and sorting.
      operationId: GetAllChannelLocations
      parameters:
        - in: query
          name: offset
          schema:
            type: integer
            default: 0
          description: >-
            The zero-based offset index in the result set. For example, an
            offset of `10` skips the first 10 items.
        - in: query
          name: limit
          schema:
            type: integer
            default: 200
            minimum: 1
            maximum: 1000
          description: The maximum number of items to return in this query.
        - in: query
          name: filter_type
          schema:
            type: string
            enum:
              - ATM
              - BRANCH
              - OTHER
          description: Filters the list by location type.
        - in: query
          name: sort_by
          schema:
            type: string
          description: Sorts the results by a specified field (e.g., `id`, `type`).
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  locations:
                    type: array
                    items:
                      $ref: '#/components/schemas/schemas-ChannelLocation'
              examples:
                example1:
                  value:
                    locations:
                      - id: location-123
                        type: ATM
                        address:
                          street:
                            - 123 Main St
                            - Suite 200
                          city: Springfield
                          state: IL
                          postal_code: '62701'
                          country: USA
                      - id: location-124
                        type: BRANCH
                        address:
                          street:
                            - 321 Main St
                            - Suite 400
                          city: Springfield
                          state: IL
                          postal_code: '62701'
                          country: USA
  /auditsLogs:
    get:
      parameters:
        - in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date-time
            example: '2023-11-21T00:00:00'
          description: Is in ISO 8601 datetime format and must proceed endDate.
        - in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date-time
            example: '2023-11-21T23:59:59'
          description: Is in ISO 8601 datetime format and must be after startDate.
        - in: query
          name: logType
          required: false
          schema:
            $ref: '#/components/schemas/AuditLogType'
          description: The audit log type. If not provided the default is `ALL`
        - in: query
          name: offset
          required: false
          schema:
            type: number
          description: >-
            Number of rows to skip before returning results. Must be a positive
            number.

            If not provided the default is `0`
        - in: query
          name: limit
          required: false
          schema:
            type: number
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.

            If not provided the default is `200`
        - in: query
          name: caseId
          required: false
          schema:
            type: string
          description: Get audit logs for a single case
      tags:
        - Audit Logs
      x-productName: Reporting
      x-groupedUnder:
        - Audit Logs
      x-showEndpoint: true
      summary: Get Audit Logs
      description: Get audit logs within certain criteria.
      operationId: GetAuditLogs
      responses:
        '200':
          description: A JSON object with the audit log entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogResponse'
        '401':
          $ref: '#/components/responses/401'
  /observations/feedback:
    get:
      x-showEndpoint: true
      operationId: GetObservationFeedback
      summary: Get Observation Feedback
      x-productName: Reporting
      x-groupedUnder:
        - Observation Reporting
      tags:
        - Observation Reporting
      parameters:
        - in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date-time
            example: '2023-11-21'
          description: Is in ISO 8601 date format and must be after startDate.
        - in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date-time
            example: '2023-11-21'
          description: Is in ISO 8601 date format and must be after startDate.
      responses:
        '200':
          description: Success response for observation reporting
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObservationReporting'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Must provide both startDate and endDate
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /signals/suppressed:
    get:
      x-productName: Reporting
      x-groupedUnder: Signals Reporting
      tags:
        - Signals Reporting
      summary: Get Suppressed Signals
      operationId: GetSuppressedSignals
      description: >-
        Retrieve signals that were suppressed due to actor exclusion
        (suppression) or alert management (snooze) in a detection rule.
      x-showEndpoint: true
      parameters:
        - in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date
            example: '2023-11-21'
          description: Is in ISO 8601 date format and must predate or equal endDate.
        - in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date
            example: '2023-11-21'
          description: Is in ISO 8601 date format and must postdate or equal startDate.
        - in: query
          name: limit
          required: false
          schema:
            type: integer
            example: 100
          description: >-
            The maximum number of suppressed signals that will be returned. The
            default setting is 100, with a maximum limit of 1000.
        - in: query
          name: offset
          required: false
          schema:
            type: integer
            example: 0
          description: >-
            The offset of the suppressed signals that will be returned. The
            default setting is 0.
      responses:
        '200':
          description: Success response for suppressed signals
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuppressedSignalsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                example:
                  message: Must provide both startDate and endDate
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /cases:
    post:
      security:
        - BearerToken: []
      tags:
        - Cases
      x-productName: Cases
      x-groupedUnder:
        - Core Data
      x-showEndpoint: true
      summary: Create a new Case
      description: |-
        Create a new Case in the Lucinity platform.
        The Case will be created with the provided details.
      operationId: CreateCase
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCaseRequest'
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCaseResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
    put:
      security:
        - BearerToken: []
      tags:
        - Cases
      x-productName: Cases
      x-groupedUnder:
        - Core Data
      x-showEndpoint: true
      summary: Update a Case
      description: |-
        Update an existing Case in the Lucinity platform.
        The Case will be updated with the provided details.
      operationId: UpdateCase
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCaseRequest'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCaseResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
  /segmentation/categories:
    post:
      security:
        - BearerToken: []
      requestBody:
        description: The Segmentation Category to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSegmentationCategory'
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Create a Segmentation Category
      description: Create a single Segmentation Category.
      operationId: CreateSegmentationCategory
      responses:
        '200':
          description: Category successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSegmentationCategoryResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
    get:
      security:
        - BearerToken: []
      parameters:
        - name: offset
          in: query
          required: false
          description: The offset for pagination.
          schema:
            type: integer
            format: int32
          example: 2
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          schema:
            type: integer
            format: int32
          example: 3
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Get Segmentation Categories
      description: Get all Segmentation Categories.
      operationId: GetSegmentationCategories
      responses:
        '200':
          description: A list of Segmentation Categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationCategories'
        '401':
          $ref: '#/components/responses/401'
  /segmentation/categories/{id}:
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Category to fetch.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Get Segmentation Category
      description: Get a single Segmentation Category by id.
      operationId: GetSegmentationCategory
      responses:
        '200':
          description: A detail of the Segmentation Category relating to the id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationCategory'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
    patch:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Category to update.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      requestBody:
        description: The Segmentation Category to update.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSegmentationCategory'
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Update Segmentation Category
      description: Update a single Segmentation Category by id.
      operationId: UpdateSegmentationCategory
      responses:
        '200':
          description: Successfully updated Category.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '415':
          $ref: '#/components/responses/415'
    delete:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Category to delete.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Delete a Segmentation Category
      description: Delete a single Segmentation Category by id.
      operationId: DeleteSegmentationCategory
      responses:
        '200':
          description: Successfully deleted Category.
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /segmentation/categories/{id}/groups:
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Category to fetch Groups from.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
        - name: offset
          in: query
          required: false
          description: The offset for pagination.
          schema:
            type: integer
            format: int32
          example: 2
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          schema:
            type: integer
            format: int32
          example: 3
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Get all Segmentation Groups under a Segmentation Category
      description: Get all Segmentation Groups under a Segmentation Category.
      operationId: GetSegmentationCategoryGroups
      responses:
        '200':
          description: A list of Segmentation Groups under a Segmentation Category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationGroups'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /segmentation/categories/{id}/actors:
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Category to get Actors from.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
        - name: offset
          in: query
          required: false
          description: The offset for pagination.
          schema:
            type: integer
            format: int32
          example: 2
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          schema:
            type: integer
            format: int32
          example: 3
      tags:
        - Categories
      x-productName: Segmentation
      x-groupedUnder:
        - Categories
      x-showEndpoint: true
      summary: Get all Actors that belong to a Segmentation Category
      description: Get all Actors that belong to a Segmentation Category.
      operationId: GetSegmentationCategoryActors
      responses:
        '200':
          description: A list of Actor ids that are tied to the Category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSegmentationActorsResponse'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /segmentation/groups:
    post:
      security:
        - BearerToken: []
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Create a Segmentation Group
      description: Create a Segmentation Group.
      operationId: Create a Segmentation Group
      requestBody:
        description: The Segmentation Group to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSegmentationGroup'
      responses:
        '200':
          description: Successfully created Group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSegmentationGroupResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '415':
          $ref: '#/components/responses/415'
  /segmentation/groups/{id}:
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Group to get.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Get a single Segmentation Group
      description: Get a single Segmentation Group.
      operationId: GetSegmentationGroup
      responses:
        '200':
          description: A Segmentation Group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationGroup'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
    patch:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Group to update.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      requestBody:
        description: The Segmentation Group to update.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSegmentationGroup'
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Update a Segmentation Group
      description: Update a Segmentation Group.
      operationId: PatchSegmentationGroup
      responses:
        '200':
          description: Successfully updated Group.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '415':
          $ref: '#/components/responses/415'
    delete:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Group to delete.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Delete a Segmentation Group
      description: Delete a Segmentation Group.
      operationId: DeleteSegmentationGroup
      responses:
        '200':
          description: Successfully deleted Group.
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /segmentation/groups/{id}/actors:
    post:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Group to add Actors to.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      requestBody:
        description: >-
          The Actor ids to add to the Group. This has an upper limit of 1000
          Actors.
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                example:
                  - 12345678-1234-1234-1234-123456789012
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Add Actors to a Segmentation Group
      description: Add Actors to a Segmentation Group.
      operationId: PostSegmentationGroupActors
      responses:
        '200':
          description: >-
            A map where the key is the Actor id and the value is whether the
            Actor was added to the Group or not.
          content:
            application/json:
              schema:
                type: object
                properties:
                  actor_id:
                    type: boolean
                    description: >-
                      True if the Actor was added to the Group, false if the
                      Actor already belonged in the Group.
                    example: true
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '415':
          $ref: '#/components/responses/415'
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Groups to get Actors for.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
        - name: offset
          in: query
          required: false
          description: The offset for pagination.
          schema:
            type: integer
            format: int32
          example: 2
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          schema:
            type: integer
            format: int32
          example: 3
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Get all Actors for a Segmentation Group
      description: Get all Actors for a Segmentation Group.
      operationId: GetSegmentationGroupActors
      responses:
        '200':
          description: A list of Actor ids that are tied to the Group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSegmentationActorsResponse'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
    delete:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Segmentation Group to remove the Actors from.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
      requestBody:
        description: The Actor ids to remove from the Group. Limit of 1000 Actors.
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Remove Actors from a Segmentation Category
      description: Remove Actors from a Segmentation Category.
      operationId: DeleteSegmentationGroupActors
      responses:
        '200':
          description: Actors successfully deleted.
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /segmentation/actors/{id}:
    get:
      security:
        - BearerToken: []
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the Actor to get Segmentation Groups for.
          schema:
            type: string
          example: 12345678-1234-1234-1234-123456789012
        - name: offset
          in: query
          required: false
          description: The offset for pagination.
          schema:
            type: integer
            format: int32
          example: 2
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of retrived entries. Must be a positive number not
            greater than 1000.
          schema:
            type: integer
            format: int32
          example: 3
      tags:
        - Groups
      x-productName: Segmentation
      x-groupedUnder:
        - Groups
      x-showEndpoint: true
      summary: Get Segmentation Groups responding to an Actor
      description: Get all Segmentation Groups that an Actor belongs to.
      operationId: GetSegmentationActor
      responses:
        '200':
          description: >-
            An object containing Actor id and segment ids that the Actor is part
            of.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActorGroups'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
