openapi: 3.0.1 info: title: Kayla pKYC Coordinator (4.3.4) description: >- A Know Your Customer (KYC) program is a set of policies and procedures implemented by financial institutions to verify and understand the identity and background of their customers. The main purpose of a KYC program is to prevent and detect money laundering, terrorist financing, fraud, and other illicit activities within the financial system. Introduction to Kayla: In traditional KYC, the KYC information and process are reviewed periodically according to a schedule based on the customer's risk categorization. Today, regulators and financial institutions (FI) are eager to adopt the event-driven approach. However, distinguishing signals from noise remains challenging and is often cost-prohibitive due to the manual nature of traditional KYC processes. Moreover, banks and FIs often have heavy integrations with KYC or contract lifecycle management tools, such as Pega or Fenergo. From the time and cost perspective, the bulk of their overhead is sourcing and reconciling the data according to their approved policies and procedures. Perpetual KYC (or pKYC) helps banks and FIs monitor their customers for key changes without incurring significant overhead and manual labor. These solutions enable reacting to events as they occur. This way, important changes are investigated promptly rather than waiting for a fixed refresh date. Plus, clients with no changes are not refreshed unnecessarily—just because time has passed. Kayla, your personified digital pKYC Coordinator, brings the following capabilities to the table: Coordination of periodic event-driven KYC review activities for entities and associated parties Continuous monitoring of corporate and government registries for KYC-triggering events, such as changes in beneficiaries, boards or officers, addresses, and so on Investigations, gathering of data and records from internal systems, Internet, and commercial databases Accumulation of facts from compliance investigations and internal audits to ensure adherence to regulatory policies for customers and transactions contact: name: WorkFusion Inc url: https://www.workfusion.com/digital-workers/kayla-ai-pkyc-review-analyst/ version: '1.0' servers: - url: https://example-workfusion.workfusion.io description: Production server variables: {} security: - oauth: [] paths: /input-connector-rest/start-record-json/{signalId}: post: tags: - Kayla pKYC summary: Submit entityRequest for screening operationId: start-record-json parameters: - name: signalId in: path description: signal ID for the BP where the record is to be sent required: true schema: type: string requestBody: description: >- EntityRequest to be screened. Entity_id is required. All other fields can be sent as empty unless it is a required search parameter for a source, or it is used for a requirement. content: application/json: schema: $ref: '#/components/schemas/PKYCRequest' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PKYCProcessingResponse' /input-connector-rest/check-record-status/{requestId}: get: tags: - Kayla pKYC summary: Check record processing status description: >- Checks a record status based on the specified `requestId`. Returns the record processing status. operationId: check-record-status parameters: - name: requestId in: path description: Request UUID to track a request required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/PKYCProcessingResponse' /input-connector-rest/get-record-result/{requestId}: get: tags: - Kayla pKYC summary: Get decision description: >- Gets a decision based on the specified `requestId`. Returns the record results. operationId: get-record-result parameters: - name: requestId in: path description: Request UUID to track a request required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PKYCResponse' components: schemas: PKYCProcessingResponse: type: object properties: request_id: type: string description: Unique identifier assigned to the request. status: type: string description: >- • SUCCESS: indicates that the requirement was completed. Refer to the change_type, evidence, source_of_evidence and straight_through_process parameters for additional information. These parameters are used to determine the automation rate as well as what and when to update the downstream system • NEEDS_REVIEW: indicates that the requirement was not able to be completed automatically by Kayla.It only occurs in the output if the manual task / HITL was disabled in all cases. • PARTIALLY_COMPLETE: indicates that the requirement was partially completed and requires a manual update in a downstream system.For example, a company now operates in a new jurisdiction which triggers additional requirements to be verified that Kayla is not able to complete before closing the periodic review. • FAILED: indicates that the requirement was not met and requires a manual update in a downstream system.These are typically more serious cases.For example, a company is no longer registered with a governing body, no longer listed on an exchange, was merged with another company or was dissolved for a different reason. enum: - SUCCESS - NEEDS_REVIEW - PARTIALLY_COMPLETE - FAILED status_details: type: string description: >- Status details: error details for FAILED status. etc. Empty for COMPLETED status. example: Record Processing Started PKYCRequest: type: object properties: FenX_journey_id: type: string description: Fenx journey id FenX_journey_reason: type: string description: Fenx journey reason case_id: type: string description: Case id entity_id: type: string description: Entity id (or) Unique identifier entity_type: type: string description: Entity Type entity_name: type: string description: Entity Name registered_business_address: type: string description: Registered business address physical_business_address: type: string description: Physical business address is_regulated: type: string description: Is regulated regulated_by: type: string description: Regulated by listed_on_exchange: type: string description: Listed on exchange stock_exchange: type: string description: Stock exchange ein: type: string description: Employer Identification Number cik: type: string description: Central Index Key from the US Securities and Exchange Commission series_code: type: string description: Series Code from the US Securities and Exchange Commission ticker: type: string description: Stock exchange ticker symbol isin_code: type: string description: International Securities Identification Number lei: type: string description: Legal Entity Identifier cssf_code: type: string description: Commission de Surveillance du Secteur Financier code cusip: type: string description: Committee on Uniform Security Identification Procedures code company_number: type: string description: Companies House company number jurisdiction: type: string description: Jurisdiction username: type: string description: User Name market_identifier_code: type: string description: Market Identifier Code alt_entity_id: type: string description: Alternate Entity Id eva_required: type: string description: Eva Required platform_url: type: string description: Platform Url registration_number: type: string description: Registration Number plan_number: type: string description: Plan Number firm_reference_number: type: string description: Firm Reference Number regulator_id: type: string description: Regulator Id alt_plan_name: type: string description: Alt Plan Name products_and_services: type: string description: Products and Services geographies: type: string description: Geographies PKYCResponse: type: object properties: case_id: type: string description: case id entity_review_status: type: string description: entity review status entity_review_document: type: string description: entity review document current_risk_rating: type: string description: current risk rating previous_risk_rating: type: string description: previous risk rating alt_entity_id: type: string description: alt entity id eva_required: type: string description: eva required platform_url: type: string description: platform url username: type: string description: username worker_email: type: string description: worker email timestamp: type: string description: timestamp requirements: type: array description: requirements items: $ref: '#/components/schemas/Requirement' Requirement: type: object properties: requirements_status: type: string description: requirements status document_link: type: string description: >- Created per requirement. Contains a sourced document or the requirement audit trail. evidence: type: string description: The evidence used to complete the requirement. source_of_evidence: type: string description: >- Is either existing_evidence or the name of the source which had the final evidence to be used. The name of the source is variable. straight_through_process: type: string description: >- Indicates whether the requirement was completed automatically by the digital worker. The values are either true or false. requirement_id: type: string description: >- Is the identifier for the requirement. Many choose to use the requirement id from a KYC matrix but it is a free text field and will vary. change_type: type: string description: |- NONE: indicates that there was no change to the data verified. MANUAL: indicates that a change was found and it requires a manual update. Typically, this occurs if there downstream implications. For example, a company is no longer active because it was dissolved. IMMATERIAL: indicates that a change was found but it is considered immaterial in nature and does not warrant manual review enum: - NONE - MANUAL - IMMATERIAL description: requirements securitySchemes: bearer: type: http description: >- Bearer API token to authorize requests. This scheme may be useful for testing, when bearer token has been already generated and available to use. scheme: bearer bearerFormat: JWT oauth: type: oauth2 description: >- This API uses OAuth 2 with password grant flow. This is default and recommended authentication mechanism. flows: password: tokenUrl: >- https://example-keycloak.workfusion.io/auth/realms/WorkfusionRealm/protocol/openid-connect/token scopes: openid: ''