Domain NOVA Contract

Planned Breaking Changes

Element Details Description Active with
ch.voev.nova.contract.servicemodel.ContractPosition subscriptionContractTemplate Class now references a concrete version of a VersionedObject (type of property changed from VersionedObjectID to EntityVersionID) 1.0.21
ch.voev.nova.contract.servicemodel.SubscriptionContract subscriptionContractTemplate Class now references a concrete version of a VersionedObject (type of property changed from VersionedObjectID to EntityVersionID) 1.0.21
ch.voev.nova.contract.datatypes.SubscriptionContractFamilyType HTA_PLUS Adjusted naming from internal project to official naming. 1.0.22 / 0.3.22
ch.voev.nova.contract.servicemodel.ContractPositionState TERMINATED New literal for terminated contracts PI 17
ch.voev.nova.contract.servicemodel.ContractPositionState PHASED_OUT New literal for fixed-term contracts that expired PI 17
ch.voev.nova.contract.servicemodel.SubscriptionContractState TERMINATED New literal for terminated contracts PI 17
ch.voev.nova.contract.servicemodel.SubscriptionContractState PHASED_OUT New literal for fixed-term contracts that expired PI 17
ch.voev.nova.contract.datatypes.TerminationType Enumeration TerminationType was changed to an extensible enum as it is very likely that additional literals will be added in the future.

To ensure backward compatibility and a transition phase new literals will not be introduced before PI 17.
PI 17
ch.voev.nova.contract.masterdata.PaymentInterval Enumeration PaymentInterval was changed to an extensible enum as it is expected that there will be additional literals in the future.

To ensure backward compatibility and a transition phase new literals will not be introduced before PI 17.
PI 17
ch.voev.nova.contract.servicemodel.SubscriptionContractState FAILED New state for contracts that encountered an error during the creation process in the backend systems PI 18
ch.voev.nova.contract.servicemodel.ContractDocumentLink contractPositionID Contract position ID can now be optional since not every contract document is related to a contract position. PI 18
ch.voev.nova.contract.servicemodel.ContractPositionState CANCELLED Will be replaced by "CANCELED" PI 19
ch.voev.nova.contract.servicemodel.SubscriptionContractState CANCELLED Will be replaced by "CANCELED" PI 19
ch.voev.nova.contract.servicemodel.ContractPosition endDate Field was optional before already. For consistency this still has to be documented as a breaking change. PI 2024-10
ch.voev.nova.contract.servicemodel.SubscriptionContract endDate Field was optional before already. For consistency this still has to be documented as a breaking change. PI 2024-10

Diagrams

NOVA Contract Data Types NOVA Contract Service Model NOVA Contract Master Data NOVA Contract Master Data
- Contract Data Types OpenAPI - Contract Service Model
- Contract Service Model - OpenAPI
- Contract Service Model - Response
- Contract Service Model - Roles
- NOVA Subscription Contract Documents
- NOVA Subscription Contract ModificationService
- NOVA Subscription Contract Service Requests
- NOVA Subscription Contract Termination Service
- Contract Master Data - Data Unit
- Contract Master Data - Domain
- Contract Master Data - OpenAPI
- Contract Master Data - Taxonomy
- Contract Events OpenAPI
- Subscription Contract Events

Artifacts

Artifact Icon Maturity Level since
NOVA Contract Data Types 🐦 Early Bird 2.0.0
NOVA Contract Service Model 🐦 Early Bird 2.0.0
NOVA Contract Master Data 🐦 Early Bird 2.0.0
NOVA Contract Events 🐦 Early Bird 2.0.0

Dependencies

Artifact Outgoing Dependencies Incoming Dependencies
NOVA Contract Data Types - NOVA Travel Authorization Control Service Model
- NOVA Coupon Master Data
- NOVA Coupon Service Model
- NOVA Payment Service Model
- NOVA Contract Events
- NOVA Contract Service Model
- NOVA Contract Master Data
NOVA Contract Service Model - NOVA Common Data Types
- NOVA Contract Data Types
- NOVA Customer Data Types
- NOVA Master Data Data Types
- NOVA Payment Data Types
- NOVA Reseller Data Types
- NOVA System Problem
- NOVA Contract Events
NOVA Contract Master Data - NOVA Common Data Types
- NOVA Contract Data Types
- NOVA Finance Data Types
- NOVA Master Data Data Types
NOVA Contract Events - NOVA Common Data Types
- NOVA Common Events
- NOVA Contract Data Types
- NOVA Contract Service Model
- NOVA Organization Data Types
- NOVA Reseller Data Types
- NOVA Service Point Data Types

Provided REST Endpoints / Services

SubscriptionContractModificationService

Service provides endpoint to manage contract modifications.

The general process is expected as follows: 1. Request contract modifications that are applicable for a contract. Please be aware that the possible contract modifications depend on the individual contract and its state. So, the applicable modifications have to be requested for every contract again. 1. Get an offer for a contract modification by calling prepareContractModification(...). This operation will return all possible contract modifications of the passed ContractModificationType. 1. Confirm the contract modification


REST Path / Operation Description
/subscription-contracts/{contract-id}/applicable-modifications [GET]

getApplicableContractModifications(SubscriptionContractID, SalesContext)
Operations returns all contract modification that are applicable for the contract with passed ID.
/subscription-contracts/{contract-id}/modifications [POST]

prepareContractModification(PrepareContractModificationRequest, SubscriptionContractID, SalesContext)
Operation prepares a contract modification of the passed type. Operation returns 0..* contract position objects where each of the represents an offer for a contract modification.
/subscription-contracts/{contract-id}/modifications/{modification-id}:confirm-modification [POST]

confirmContractModification(SubscriptionContractID, ContractPositionID, SalesContext)
Operation confirms the contract modification with the passed ID.
/subscription-contracts/{contract-id}/modifications/{modification-id}:cancel-modification [POST]

cancelContractModification(SubscriptionContractID, ContractPositionID, SalesContext)
Operation can be used to cancel an already confirmed contract modification.


SubscriptionContractService


REST Path / Operation Description
/subscription-contracts [POST]

createContractOffers(SubscriptionContractOfferRequest, SalesContext)
Creates subscription contracts based on the input parameters. Returns the created subscription contract resources.
/subscription-contracts/{contract-id}:sign [POST]

signContract(SubscriptionContractID, SalesContext)
Signs a subscription contract in state OFFERED, identified by its ID. Returns the modified subscription contract resource.
/subscription-contracts/{contract-id} [GET]

getContract(SubscriptionContractID, SalesContext)
Retrieves a single subscription contract by its ID
/subscription-contracts [GET]

queryContracts(SubscriptionContractQuery, SalesContext)
Searches and retrieves subscription contracts based on the input parameters
/subscription-contracts/{contract-id} [DELETE]

cancelContract(SubscriptionContractID, SalesContext)
Cancels a contract due to technical problems on client side. Returns the deleted subscription contract resource.
/subscription-contracts/{contract-id}/documents [GET]

getContractDocumentLinks(SubscriptionContractID, SalesContext)


SubscriptionContractTerminationService


REST Path / Operation Description
/subscription-contracts/{contract-id}/applicable-terminations [GET]

getApplicableTerminations(SubscriptionContractID, SalesContext)
Returns a list of applicable termination cases that are possible on the existing contract.
/subscription-contracts/{contract-id}/terminations [POST]

prepareTermination(PrepareTerminationRequest, SubscriptionContractID, SalesContext)
Prepares a termination case on an existing contract with the given parameters. This will not make the termination effective yet. It will have to be confirmed by calling the "confirmTermination" operation afterwards.
/subscription-contracts/{contract-id}/terminations/{termination-offer-id}:confirmTermination [POST]

confirmTermination(SubscriptionContractID, TerminationOfferID, SalesContext)
Confirms a prepared termination case on the given SubscriptionContract. This will make the termination of the contract effective. Depending on the specific case of termination, the contract will stay in state "ACTIVE" for as long as the termination date has not been reached.

This operation will fail, if the prepared termination case on the contract has expired in the meantime.
/subscription-contracts/{contract-id}/terminations [DELETE]

cancelTermination(SubscriptionContractID, SalesContext)
Cancels a confirmed transaction on a SubscriptionContract. This is only possible as long as the contract is not yet in an end-state like TERMINATED, CANCELLED or PHASED_OUT.


Deprecations

Package ch.voev.nova.contract.datatypes

No deprecations published.


Package ch.voev.nova.contract.servicemodel


Classes with Deprecations


Type Attribute Description Deprecated since Planned to be removed
ContractDocumentLink
documentUrl Replaced by url property using the correct type PI 20


Package ch.voev.nova.contract.masterdata


Classes with Deprecations


Type Attribute Description Deprecated since Planned to be removed
SubscriptionContractDataUnit
subscriptionContractTemplateMasterData Please use direct association subscriptionContractTemplates to versioned object SubscriptionContractTemplate instead. 2.0 PI 22
subscriptionContractTermsMasterData Please use direct association subscriptionContractTerms to versioned object SubscriptionContractTerms instead. 2.0 PI 22
subscriptionContractTemplateTaxonomyMasterData Please use direct association subscriptionContractTemplateTaxonomie to versioned object SubscriptionContractTemplateTaxonomie instead. 2.0 PI 22
SubscriptionContractTemplateMasterData Type will be removed completely without a successor. 2.0 PI 22
SubscriptionContractTemplateTaxonomyMasterData Type will be removed completely without a successor. 2.0 PI 22
SubscriptionContractTermsMasterData Type will be removed completely without a successor. 2.0 PI 22
TerminationCondition
terminationFee Value was never used 1.5.0 PI 19


Package ch.voev.nova.contract.events

No deprecations published.