openapi: 3.1.0 info: title: Temenos Financial Crime Mitigation API description: >- API for anti-money laundering, fraud detection, and compliance including KYC risk scoring, sanctions screening, PEP matching, transaction monitoring, and alert management. Used by over 300 banks globally for comprehensive financial crime prevention covering watchlist screening, customer risk assessment, and regulatory compliance reporting. version: '1.0.0' contact: name: Temenos Developer Support url: https://developer.temenos.com/ email: api.support@temenos.com license: name: Temenos Terms of Service url: https://www.temenos.com/legal-information/website-terms-and-conditions/ termsOfService: https://www.temenos.com/legal-information/website-terms-and-conditions/ externalDocs: description: Temenos Financial Crime Mitigation API Documentation url: https://developer.temenos.com/fcm servers: - url: https://api.temenos.com/fcm/v1 description: Temenos FCM API - Production security: - bearerAuth: [] tags: - name: Alert Management description: >- Manage and investigate alerts generated by screening and monitoring processes including case management and disposition workflows. - name: Customer Risk Assessment description: >- APIs for KYC risk scoring and customer form submission to facilitate risk computation based on customer attributes and behavior patterns. - name: Sanction Screening description: >- Screen customers and transactions against sanctions lists, PEP databases, and watchlists with alert generation and management. - name: Transaction Monitoring description: >- Monitor transactions for suspicious activity patterns including AML detection rules and fraud indicators. paths: /kyc/customers/{customerId}/riskScore: get: operationId: getCustomerRiskScore summary: Get Customer Risk Score description: >- Retrieve the computed risk score for a given customer based on KYC attributes, transaction history, and risk factor analysis. Returns the overall risk rating and contributing risk factors. tags: - Customer Risk Assessment parameters: - $ref: '#/components/parameters/customerId' responses: '200': description: Successful retrieval of risk score content: application/json: schema: $ref: '#/components/schemas/RiskScore' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /kyc/customers/{customerId}/riskScore/compute: post: operationId: computeCustomerRiskScore summary: Compute Customer Risk Score description: >- Trigger risk score computation for a customer based on their current KYC data, transaction patterns, and configured risk scoring models. Updates the stored risk score. tags: - Customer Risk Assessment parameters: - $ref: '#/components/parameters/customerId' responses: '200': description: Risk score computed successfully content: application/json: schema: $ref: '#/components/schemas/RiskScore' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /kyc/customers/formSubmission: post: operationId: submitCustomerForm summary: Submit Customer KYC Form description: >- Submit customer KYC form data for risk scoring evaluation. The submitted data is processed against configured risk models to generate or update the customer risk assessment. tags: - Customer Risk Assessment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KycFormSubmission' responses: '201': description: Form submitted and processed successfully content: application/json: schema: $ref: '#/components/schemas/RiskScore' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /screening/customers/{customerId}/alerts: get: operationId: getCustomerSanctionAlerts summary: Get Customer Sanction Alerts description: >- Retrieve all sanctions screening alerts for a specific customer including matches against sanctions lists, PEP databases, and adverse media sources. tags: - Sanction Screening parameters: - $ref: '#/components/parameters/customerId' responses: '200': description: Successful retrieval of customer alerts content: application/json: schema: type: object properties: body: type: array items: $ref: '#/components/schemas/SanctionAlert' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /screening/customers/alerts: get: operationId: getAllCustomersSanctionAlerts summary: List All Customer Sanction Alerts description: >- Retrieve the list of outstanding sanctions screening alerts across all customers, indexed by customer identifier. Supports filtering by alert status and severity. tags: - Sanction Screening parameters: - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageStart' - name: status in: query description: Filter by alert status schema: type: string enum: - OPEN - UNDER_REVIEW - ESCALATED - CLOSED_TRUE_MATCH - CLOSED_FALSE_POSITIVE - name: severity in: query description: Filter by alert severity schema: type: string enum: - HIGH - MEDIUM - LOW responses: '200': description: Successful retrieval of alerts content: application/json: schema: type: object properties: header: $ref: '#/components/schemas/PaginationHeader' body: type: array items: $ref: '#/components/schemas/SanctionAlert' '401': $ref: '#/components/responses/Unauthorized' /screening/onboarding: post: operationId: screenOnboardingCustomer summary: Screen Onboarding Customer description: >- Screen a new customer during onboarding against sanctions lists, PEP databases, and adverse media to verify they are not sanctioned individuals, entities, or politically exposed persons. tags: - Sanction Screening requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OnboardingScreenRequest' responses: '200': description: Screening completed content: application/json: schema: $ref: '#/components/schemas/ScreeningResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /screening/transactions: post: operationId: scanTransactionMessage summary: Scan Payment Message description: >- Scan a payment message against sanctions lists and screening rules to identify potential matches in beneficiary names, addresses, and other payment details. tags: - Sanction Screening requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionScanRequest' responses: '200': description: Transaction scan completed content: application/json: schema: $ref: '#/components/schemas/ScreeningResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /monitoring/alerts: get: operationId: listMonitoringAlerts summary: List Transaction Monitoring Alerts description: >- Retrieve alerts generated by AML transaction monitoring rules including suspicious activity patterns and threshold breaches. tags: - Transaction Monitoring parameters: - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageStart' - name: status in: query description: Filter by alert status schema: type: string enum: - OPEN - UNDER_INVESTIGATION - ESCALATED - CLOSED - name: ruleId in: query description: Filter by monitoring rule identifier schema: type: string responses: '200': description: Successful retrieval of monitoring alerts content: application/json: schema: type: object properties: header: $ref: '#/components/schemas/PaginationHeader' body: type: array items: $ref: '#/components/schemas/MonitoringAlert' '401': $ref: '#/components/responses/Unauthorized' /alerts/{alertId}: get: operationId: getAlert summary: Get Alert Details description: >- Retrieve detailed information for a specific alert including match details, investigation notes, and disposition history. tags: - Alert Management parameters: - name: alertId in: path required: true description: Unique alert identifier schema: type: string responses: '200': description: Successful retrieval of alert details content: application/json: schema: $ref: '#/components/schemas/AlertDetail' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateAlert summary: Update Alert Disposition description: >- Update the disposition of an alert including status changes, investigation notes, and closure decisions. tags: - Alert Management parameters: - name: alertId in: path required: true description: Unique alert identifier schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlertUpdate' responses: '200': description: Alert updated successfully content: application/json: schema: $ref: '#/components/schemas/AlertDetail' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: pageSize: name: page_size in: query description: Number of records to return per page schema: type: integer minimum: 1 maximum: 100 default: 25 pageStart: name: page_start in: query description: Starting record number schema: type: integer minimum: 0 default: 0 customerId: name: customerId in: path required: true description: Unique customer identifier schema: type: string responses: BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' schemas: PaginationHeader: type: object description: Pagination metadata properties: page_size: type: integer description: Records per page page_start: type: integer description: Starting record total_size: type: integer description: Total records RiskScore: type: object description: Customer risk score assessment properties: customerId: type: string description: Customer identifier overallRiskRating: type: string description: Overall risk classification enum: - LOW - MEDIUM - HIGH - VERY_HIGH riskScore: type: number format: double description: Numeric risk score minimum: 0 maximum: 100 riskFactors: type: array description: Contributing risk factors items: type: object properties: factor: type: string description: Risk factor name contribution: type: number format: double description: Factor contribution to overall score details: type: string description: Factor details assessmentDate: type: string format: date-time description: Date of risk assessment KycFormSubmission: type: object description: KYC form submission for risk scoring required: - customerId properties: customerId: type: string description: Customer identifier customerType: type: string description: Customer type enum: - INDIVIDUAL - CORPORATE countryOfResidence: type: string description: Country of residence code nationality: type: string description: Nationality code occupation: type: string description: Occupation or business type sourceOfFunds: type: string description: Declared source of funds expectedTransactionVolume: type: string description: Expected monthly transaction volume range pepStatus: type: boolean description: Whether customer is a politically exposed person SanctionAlert: type: object description: Sanctions screening alert properties: alertId: type: string description: Unique alert identifier customerId: type: string description: Associated customer identifier matchType: type: string description: Type of screening match enum: - SANCTIONS - PEP - ADVERSE_MEDIA - WATCHLIST matchScore: type: number format: double description: Match confidence score minimum: 0 maximum: 100 matchedEntity: type: string description: Name of matched entity on list listSource: type: string description: Source list for the match severity: type: string description: Alert severity enum: - HIGH - MEDIUM - LOW status: type: string description: Alert status enum: - OPEN - UNDER_REVIEW - ESCALATED - CLOSED_TRUE_MATCH - CLOSED_FALSE_POSITIVE createdDate: type: string format: date-time description: Alert creation timestamp OnboardingScreenRequest: type: object description: Onboarding screening request required: - name properties: customerId: type: string description: Customer identifier if available name: type: string description: Full name to screen dateOfBirth: type: string format: date description: Date of birth nationality: type: string description: Nationality code address: type: string description: Address information idDocument: type: string description: Identity document number TransactionScanRequest: type: object description: Transaction message scan request required: - transactionId - beneficiaryName properties: transactionId: type: string description: Transaction identifier originatorName: type: string description: Originator name beneficiaryName: type: string description: Beneficiary name beneficiaryAddress: type: string description: Beneficiary address amount: type: number format: double description: Transaction amount currency: type: string description: Transaction currency messageType: type: string description: Message format type enum: - MT103 - MT202 - PACS008 - PACS009 ScreeningResult: type: object description: Screening result properties: screeningId: type: string description: Screening identifier status: type: string description: Screening outcome enum: - CLEAR - MATCH_FOUND - POTENTIAL_MATCH matches: type: array description: Found matches items: $ref: '#/components/schemas/SanctionAlert' MonitoringAlert: type: object description: Transaction monitoring alert properties: alertId: type: string description: Alert identifier customerId: type: string description: Customer identifier ruleId: type: string description: Triggered monitoring rule ruleName: type: string description: Rule description severity: type: string description: Alert severity enum: - HIGH - MEDIUM - LOW status: type: string description: Alert status transactionIds: type: array description: Related transaction identifiers items: type: string totalAmount: type: number format: double description: Total amount involved createdDate: type: string format: date-time description: Alert creation timestamp AlertDetail: type: object description: Detailed alert information properties: alertId: type: string description: Alert identifier alertType: type: string description: Alert classification enum: - SANCTIONS - PEP - AML - FRAUD customerId: type: string description: Customer identifier severity: type: string description: Alert severity status: type: string description: Current status assignedTo: type: string description: Assigned investigator investigationNotes: type: array description: Investigation notes items: type: object properties: noteDate: type: string format: date-time description: Note timestamp author: type: string description: Note author content: type: string description: Note content createdDate: type: string format: date-time description: Creation timestamp lastUpdated: type: string format: date-time description: Last update timestamp AlertUpdate: type: object description: Alert disposition update properties: status: type: string description: Updated status enum: - UNDER_REVIEW - ESCALATED - CLOSED_TRUE_MATCH - CLOSED_FALSE_POSITIVE assignedTo: type: string description: Assigned investigator note: type: string description: Investigation note Error: type: object description: Error response properties: errorCode: type: string description: Error code errorMessage: type: string description: Error description