Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Fenergo Nebula Deals Command",
"description": "**Deals Command API**:<br/><br/><br/> Deals Command API provides endpoints in order to manage and configure all related models and their versions.<br/><br/>",
"version": "1.0"
},
"servers": [
{
"url": "/dealscommand"
}
],
"paths": {
"/api/deals/{dealId}/drafts": {
"post": {
"tags": [
"DealDrafts"
],
"summary": "Create a Deal Draft",
"description": "<ul>\r\n <li>Creates a new deal draft.</li>\r\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: DealCreate",
"operationId": "CreateDealDraft",
"parameters": [
{
"name": "dealId",
"in": "path",
"description": "Deal id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Update deal draft request. Must contain deal draft properties",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDraftDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDraftDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDraftDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Success. Deal Draft created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CreateDealDraftResponseServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateDealDraftResponseServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateDealDraftResponseServiceResponse"
}
}
}
},
"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"
}
}
}
},
"403": {
"description": "Forbidden. User doesn't have proper permissions"
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"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/deals/{dealId}/drafts/{draftId}": {
"put": {
"tags": [
"DealDrafts"
],
"summary": "Update deal draft",
"description": "\nUpdates an existing deal draft.<br /><br /><b>Required permissions:</b><br />Following permissions are required: DealEdit",
"operationId": "UpdateDealDraft",
"parameters": [
{
"name": "dealId",
"in": "path",
"description": "Deal id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "draftId",
"in": "path",
"description": "Deal draft id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Update deal draft request. Must contain deal draft properties",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"202": {
"description": "Success. Deal draft updated",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
}
}
},
"409": {
"description": "Conflict saving changes in expected version",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "There are conflicts that cannot be resolved automatically, get latest and apply your changes",
"type": "Error",
"errorCode": "CONFLICT"
}
]
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Deal/Deal draft with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"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"
}
]
}
}
}
}
}
},
"delete": {
"tags": [
"DealDrafts"
],
"summary": "Deletes a deal draft",
"description": "\nThis method deletes a deal draft record and all associated drafts.<br /><br /><b>Required permissions:</b><br />Following permissions are required: DealDelete",
"operationId": "DeleteDealDraft",
"parameters": [
{
"name": "dealId",
"in": "path",
"description": "Deal id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "draftId",
"in": "path",
"description": "Deal draft id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": {
"202": {
"description": "Success. Deal Draft deleted",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"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"
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Deal Draft with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"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"
}
]
}
}
}
},
"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/deals/{dealId}/drafts/{draftId}/complete": {
"post": {
"tags": [
"DealDrafts"
],
"summary": "Validate and Update deal draft",
"description": "\nChecks that an update to an existing deal draft is valid. Updates the draft only if valid. Returns Validation Errors if not<br /><br /><b>Required permissions:</b><br />Following permissions are required: DealEdit",
"operationId": "ValidateAndUpdateDealDraft",
"parameters": [
{
"name": "dealId",
"in": "path",
"description": "Deal id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "draftId",
"in": "path",
"description": "Deal draft id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Update deal draft request. Must contain deal draft properties",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDealDraftRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"202": {
"description": "Success. Deal draft updated",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateDealDraftResponseServiceResponse"
}
}
}
},
"409": {
"description": "Conflict saving changes in expected version",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "There are conflicts that cannot be resolved automatically, get latest and apply your changes",
"type": "Error",
"errorCode": "CONFLICT"
}
]
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Deal/Deal draft with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"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/deals": {
"post": {
"tags": [
"Deals"
],
"summary": "Create a Deal",
"description": "<ul>\r\n <li>Creates a new deal.</li>\r\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: DealCreate",
"operationId": "CreateDeal",
"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": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DealDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Success. Deal created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CreateDealResponseServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateDealResponseServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateDealResponseServiceResponse"
}
}
}
},
"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"
}
}
}
},
"403": {
"description": "Forbidden. User doesn't have proper permissions"
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"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/deals/{id}": {
"delete": {
"tags": [
"Deals"
],
"summary": "Deletes a deal",
"description": "\nThis method deletes a deal record and all associated drafts.<br /><br /><b>Required permissions:</b><br />Following permissions are required: DealDelete",
"operationId": "DeleteDeal",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Id of the deal",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": {
"202": {
"description": "Success. Deal deleted",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"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"
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"4
# --- truncated at 32 KB (190 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-dealscommand-v1-0-openapi.json