Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.4",
"info": {
"title": "Fenergo Nebula Policy Logic Engine",
"description": "Logic Engine API is part of FenX eco-system to evaluate Policy Requirements by logic conditions.All the operations require valid access token obtained from Identity service.",
"version": "1.0"
},
"servers": [
{
"url": "/policylogicengine"
}
],
"paths": {
"/api/cache/flush": {
"delete": {
"tags": [
"Cache"
],
"summary": "Allows clearing the Logic Engine API cache.\nThis is an maintenance endpoint and does not need to be used under normal circumstances.",
"description": "<ul>\n <li>Allows to flush Requirements evaluator cache</li>\n <li>Allows to flush Requirement sets evaluator cache</li>\n <li>Allows to flush DataGroups evaluator cache</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicyConfigurationDelete",
"parameters": [
{
"name": "clearRequirementsCache",
"in": "query",
"description": "If the Requirements cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "clearRequirementSetsCache",
"in": "query",
"description": "If the Requirement sets cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "clearDataGroupsCache",
"in": "query",
"description": "If the DataGroup cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Success. Cache was flushed successfully.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/engine/evaluate": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate requirement",
"description": "<ul>\n <li>Evaluates requirement logic conditions.</li>\n <li>Returns the collection of matching requirements.</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "Evaluate",
"parameters": [
{
"name": "jurisdictions",
"in": "query",
"description": "List of jurisdictions from which we want to return evaluated requirements.\nIf not set Global will be returned",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "requirementTypes",
"in": "query",
"description": "Types of the requirements for each\nwe want to return evaluated requirements. If is not set all requirements will be returned.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Service request with key-value data required for evaluation",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated requirements is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/engine/evaluate-requirement-sets": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate requirement set",
"description": "<ul>\n <li>Evaluates requirement set logic conditions.</li>\n <li>Returns the collection of matching requirement sets.</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateRequirementSets",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Service request with key-value data required for evaluation",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated requirement sets is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/engine/evaluate-data-group-fields": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate data group fields",
"description": "<ul>\n <li>Evaluates data group field logic conditions.</li>\n <li>Returns the collection of matching data group fields.</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateDataGroupFields",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Service request with key-value data required for evaluation",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated data group fields is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AccessLayerDto": {
"type": "object",
"properties": {
"geographic": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"businessRelated": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
"additionalProperties": false
},
"AccountRelatedFundDto": {
"type": "object",
"properties": {
"properties": {
"allOf": [
{
"$ref": "#/components/schemas/PropertiesDto"
}
],
"description": "Generic properties",
"nullable": true
}
},
"additionalProperties": false
},
"AccountRelatedFundsDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"accountRelatedFunds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountRelatedFundDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"AlertAssessmentDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"assessments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertAssessmentDto"
},
"nullable": true
},
"lastAssessment": {
"allOf": [
{
"$ref": "#/components/schemas/AlertAssessmentDto"
}
],
"nullable": true
},
"lastAssessmentOutcome": {
"type": "string",
"nullable": true
},
"lastAssessmentDisposition": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AlertAssessmentDto": {
"type": "object",
"properties": {
"category": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AlertDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"source": {
"type": "string",
"nullable": true
},
"type": {
"type": "string",
"nullable": true
},
"attribute": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditAssessmentDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"autoCreditAssessments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AutoCreditAssessmentDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditAssessmentDto": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/PropertyDto"
},
"description": "Generic properties setup in policy for manual credit assessment",
"nullable": true,
"example": {
"firstName": {
"type": "Single",
"value": "Tom"
},
"dateOfBirth": {
"type": "Single",
"value": "2021-07-15"
},
"address": {
"type": "Collection",
"dataGroupId": "dfde9f06-040a-4127-b9a0-2c802a6502fc",
"collections": {
"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5": {
"properties": {
"country": "Ireland",
"city": "Dublin",
"street": "Mayor Street"
}
},
"47010265-3b85-4407-be61-90d04525f020": {
"properties": {
"country": "Ireland",
"city": "Dublin",
"street": "E Wall Rd"
}
}
}
}
}
},
"assessmentOutcome": {
"type": "string",
"description": "Assessment Outcome of this manual credit assessment",
"nullable": true
},
"providerInternalIdentifier": {
"type": "string",
"description": "Provider Internal Identifier",
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditScreeningDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"creditScreenings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AutoCreditScreeningDto"
},
"nullable": true
},
"relatedPartyCreditScreenings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AutoCreditScreeningDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditScreeningDto": {
"type": "object",
"properties": {
"entityId": {
"type": "string",
"description": "Entity Id",
"format": "uuid"
},
"creditScreeningOutcome": {
"type": "string",
"description": "The outcome recorded for a manual screening task.",
"nullable": true
},
"properties": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/PropertyDto"
},
"description": "Generic properties setup in policy for auto credit screening",
"nullable": true,
"example": {
"firstName": {
"type": "Single",
"value": "Tom"
},
"dateOfBirth": {
"type": "Single",
"value": "2021-07-15"
},
"address": {
"type": "Collection",
"dataGroupId": "dfde9f06-040a-4127-b9a0-2c802a6502fc",
"collections": {
"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5": {
"properties": {
"country": "Ireland",
"city": "Dublin",
"street": "Mayor Street"
}
},
"47010265-3b85-4407-be61-90d04525f020": {
"properties": {
"country": "Ireland",
"city": "Dublin",
"street": "E Wall Rd"
}
}
}
}
}
},
"providerInternalIdentifier": {
"type": "string",
"description": "Provider Internal Identifier",
"nullable": true
}
},
"additionalProperties": false
},
"BasicRule": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"message": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"BasicRuleDto": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Validation rule active flag",
"example": true
},
"message": {
"type": "string",
"description": "Validation rule error message",
"nullable": true,
"example": "Validation error occurred"
}
},
"additionalProperties": false,
"description": "Request DTO representing
# --- truncated at 32 KB (186 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-policylogicengine-v1-0-openapi.json