Contract Service
List of all options:
- Contracts management
- Contract's Parties management
- Party's Signers management
- Party's Contacts management
- Appendix management
- Contract body's file management
- Appendix file management
Contract Status
- DRAFT - new contract has been created.
- SIGNABLE - contract has been finalized. NB! Even if the allowed action *modifyFinalised *is True, after contract is finalized user can modify only notes.
- SIGNED - every signer has signed.
- EXPIRED - contract passes expiration dates.
- TERMINATED - contract termination conditions are passed
- ARCHIVED - expired or terminated contract will eventually be archived
Contract Actions
- Finalize - to finalize contract following conditions should be
fulfilled:
- current user must have read access to contract
- current user must be owner of contract
- contract's state must be DRAFT
- contract must have an owner
- contract must have at least one party
- each party must have at least one signer
- Sign
- Terminate
Initialize service
TrivoreID sdk = TrivoreID.openIdClient();
ContractServiceImpl contractService = new ContractServiceImpl(sdk.contractService());
Contracts management
// Get list of all contracts
Page<Contract> page = contractService.getAll();
// Apply filter
Filter filter = Filter.equal("id", contractId);
page = contractService.getAll(new Criteria(filter));
// Add new Contract
Contract contract = new Contract();
contract.setValidFrom("2018-04-26T08:38:02.730Z");
contract.setValidTo("2022-04-26T08:38:02.730Z");
contract.setCode("exampleCode");
contract.getFinancialTerms().setBillingTerms("Example Billing Terms");
// This method returns new contract object with the generated ID
contract = contractService.create(contract);
String contractId = contract.getId();
// Get one and Update
contract = api.contract_service.get(contractId)
contract.setScope("modified scope");
contract.setTitle("Modified Title");
contractService.update(contract);
// Get all allowed actions, finalise, sign and terminate the contract
// returns dictionary with all actions
AllowedActions actions = contractService.getAllowedActions(contractId);
contractService.finalise(contractId);
contractService.sign(contractId);
contractService.terminate(contractId, "Example reason.");
// Delete
contractService.delete(contract);
Contract's Party management
// Get list of all contract's parties.
// Instead of Page returns list of parties. No pagination or filter can be applied.
List<Party> parties = contractService.getAllParties(contractId);
// Add new Party
Party party = new Party();
party.setName("Example Name");
party.setAddress("Example Address");
// This method returns new party object with the generated ID
party = contractService.createParty(contractId, party);
String partyId = party.getId();
// Get one, Update and Delete
party.setMobile("+358401234567");
party.setEmail("[email protected]");
contractService.updateParty(contractId, party);
party = contractService.getParty(contractId, partyId);
contractService.deleteParty(contractId, partyId);
Party's Signer management
// Get list of all contract's signers.
// Instead of Page returns list of signers. No pagination or filter can be applied.
List<Signer> signers = contractService.getAllPartySigners(contractId, partyId);
// Add new Signer
Signer signer = new Signer();
signer.setName("Example Name");
signer.setAddress("Example Address");
// This method returns new signer object with the generated ID
signer = contractService.createPartySigner(contractId, partyId, signer);
String signerId = signer.getId();
// Get one, Update and Delete
signer.setMobile("+358401234567");
signer.setEmail("[email protected]");
contractService.updatePartySigner(contractId, partyId, signer);
signer = contractService.getPartySigner(contractId, partyId, signerId);
contractService.deletePartySigner(contractId, partyId, signerId);
Party's Contact management
// Get list of all contract's contacts.
// Instead of Page returns list of contacts. No pagination or filter can be applied.
List<Contact> contacts = contractService.getAllPartyContacts(contractId, partyId);
// Add new Contact
Contact contact = new Contact();
contact.setName("Example Name");
contact.setAddress("Example Address");
// This method returns new contact object with the generated ID
contact = contractService.createPartyContact(contractId, partyId, contact);
String contactId = contact.getId();
// Get one, Update and Delete
contact.setMobile("+358401234567");
contact.setEmail("[email protected]");
contractService.updatePartyContact(contractId, partyId, contact);
contact = contractService.getPartyContact(contractId, partyId, contactId);
contractService.deletePartyContact(contractId, partyId, contactId);
Contract's Appendix management
// Get list of all contract's appendices.
// Instead of Page returns list of appendices. No pagination or filter can be applied.
List<Appendix> appendices = contractService.getAllAppendices(contractId);
// Add new Appendix
Appendix appendix = new Appendix();
appendix.setText("Example text.");
appendix.setTitle("Example Title");
// This method returns new appendix object with the generated ID
appendix = contractService.createAppendix(contractId, appendix);
appendixId = appendix.getId();
// Get one and Update
appendix.setText("Modified appendix text.");
contractService.updateAppendix(contractId, appendix);
appendix = contractService.getAppendix(contractId, appendixId);
// Change appendix order
contractService.changeAppendixOrder(contractId, iDsList);
// Delete
contractService.deleteAppendix(contractId, appendixId);