This POST API can be used to save the Contract details received from the ERP to GEP Quantum.
URL Format for starting process:
https://<instance>/leo-bulkprocess-api/api/BulkProcess
URL Format for getting the async status of contracts:
https://<instance>/leo-bulkprocess-api/api/BulkProcess/GetResult?BulkProcessId=3ecee755-ad76-4b1b-b151-543512e52864
For starting process:
{
"FileId": "HIXt2cGfGixqmRJMflxnFQ3fPJWRpxw96U2Uhyr*o+JuYUPJisGzUZvyDGkvglj5",
"TemplateId": "CLMExcelTemp"}
Template ID is for specific contract metadata.
For Checking upload status, query string with BulkProcessId param received as a response from the above call.
[
{
"operation": "create",
"basicDetail": {
"contractSponsor": {
"clientContactCode": "CC-2022.000122"
},
"description": "Final Contracts Bulk API Test in UAT",
"contractType": {
"name": "Main Agreement"
},
"contractSubType": {
"name": "Consulting"
},
"owner": {
"clientContactCode": "CC-2021.9232021"
},
"signedOn": "0001-01-01T00:00:00Z",
"executedOn": "0001-01-01T00:00:00Z",
"author": {
"clientContactCode": "CC-2021.9232021"
},
"mode": 2,
"parentDocument": {
"documentNumber": "CDR0001179.0"
}
},
"legalTerm": {
"effectiveDate": "2021-09-05T09:49:55.376Z",
"expiryDate": "2028-08-04T09:49:55.376Z",
"currency": {
"code": "USD"
},
"value": "2305",
"renewelTerm": 24,
"renewelTermType": {
"name": "Monthly"
},
"renewelFrequency": 3,
"isPerpetual": false,
"isAutoRenew": true,
"isCoterminous": false
},
"internalParties": [
{
"clientCode": "LED-000001"
}
],
"externalParties": [
{
"clientPartnerCode": "PC-2022.000170",
"isPrimary": true
}
],
"regions": [
{
"code": "US"
},
{
"code": "IN"
}
],
"categories": [
{
"clientCode": "2744669"
}
],
"orgEntities": [
{
"entityCode": "ORG",
"lobName": "Default"
}
],
"customAttributes": [
{
"fieldName": "addGetProcurementExecutive",
"FieldValue": "Office of CAO"
}
],
"initialLiveDate": "2022-04-14T13:03:32.047Z",
"currentLiveDate": "2022-04-20T13:03:32.047Z",
"documentName": "Final Contracts Bulk API Test in UAT",
"documentNumber": "CLM-005-07282022",
"documentStatus": {
"stateName": "Draft Amendment"
}
}
]
{
"statusCode": 202,
"url": "https://<instance>/leo-bulkprocess-api/api/BulkProcess/GetResult?BulkProcessId=e9a4c39e-4310-4275-9dcd-bd6eb2e4abb2&IsSuccessRequired=true",
"batchId": "e9a4c39e-4310-4275-9dcd-bd6eb2e4abb2",
"interval": 0,
"intervalType": "",
"receivedCount": 1
}
Payload/Request - CLM Details |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation can be CREATE / UPDATE |
|
|
Contract Number | Yes | String | The document number | Contract Number should not be null or empty. Revised contract number (Contract Number + . + Revision number) should not already exist in the system in case of CREATE and should exist in case of UPDATE | clmDetails.documentNumber |
Contract Name | Yes | String | The document name | Contract Name should not be null or empty | clmDetails. documentName |
Status | Yes | String | Document status name | In case of CREATE operation, Document status should not be null and should be a valid status as per master data. Document status should not be passed in case of UPDATE | clmDetails .documentStatus.stateName |
Stage | Yes | String | Document stage name | Stage should not be null and should be a valid stage as per master data. | clmDetails .stage.name |
Category | No | Array | List of category objects | category. clientCode should not be null and should be valid as per master | clmDetails .categories |
Region | No | Array | List of region objects | region.code should not be null and should be valid as per master | clmDetails .regions |
Is Amendment | No | Boolean | Flag to highlight if the contract is amended |
| clmDetails .isAmendent |
Terminated On | No | Date / Time | Date and time on which contract was terminated | Should be a Valid DateTime | clmDetails .terminatedOn |
Cancelled On | No | Date / Time | Date and time on which contract was cancelled | Should be a Valid DateTime | clmDetails .cancelledOn |
Live date | No | Date / Time | Date and time on which contract moved to live status | Should be a Valid DateTime | clmDetails.currentLiveDate |
Initial Live date | No | Date / TIme | Initial live date of contract | Should be a Valid DateTime | clmDetails .initialLiveDate |
Risk assessment ID | No | Integer |
|
| clmDetails .masterRiskAssessmentId |
Reinstate Before | No | Date / Time | Date and time before which the contract is to be reinstated | Should be a Valid DateTime | clmDetails .reinstateBefore |
Revision Number | No | String | The contract revision number | Revision number will be 0 in case of non amendment. In case contract is an amendment, revision number should be previous revision number + 1 and the original contract should be in live or executed status | clmDetails .basicDetail. revisionNo |
Contract Type | Yes | String | The contract type name | Contract type name should not be null and should be valid as per master | clmDetails .basicDetail.contractType.name |
Contract Sub Type | No | String | Contract subtype name | Contract Sub Type should not be null and combination with contract type id should be valid | clmDetails .basicDetail.contractSubType.name |
Is Confidential | Yes | Boolean | Flag to highlight if a contract is confidential | Accepted values are true or false | clmDetails .basicDetail.isConfidential |
Description | No | String | The contract description |
| clmDetails .basicDetail.description |
Contract Owner | Yes | String | Client contact code for the contract owner user | clientContactCode should be valid | clmDetails .basicDetail.owner.clientContactCode |
Contract Author | No | String | Client contact code for the contract author user | clientContactCode should be valid
| clmDetails .basicDetail.author.clientContactCode |
Contract Mode | Yes | Integer | Number to identify if contract is created in Authoring mode or Pre- Signed mode | Accepted values are – 1 for Pre-Signed and 2 for Authoring mode | clmDetails .basicDetail.mode |
Parent Contract Number | No | String | Document number for the parent contract | Should be a valid document number | clmDetails .basicDetail.parentDocument.documentNumber |
Signed On | No | Date / Time | Date and time on which contract was signed | Should be a Valid DateTime | clmDetails .basicDetail.signedOn |
Executed On | No | Date / Time | Date and time on which contract was executed | Should be a Valid DateTime | clmDetails .basicDetail.executedOn |
Contract Sponsor | No | String | Client contact code for the contract author user | clientContactCode should be valid | clmDetails .basicDetail.contractSponsor.clientContactCode |
Closed On | No | Date / Time | Date and time on which contract was closed | Should be a Valid DateTime | clmDetails .basicDetail.closedOn |
Amendment Type | No | Object | Amendment type for the contract | AmendmentType.name should not be null and be valid as per master | clmDetails .basicDetail.amendmentType |
Approved On | No | Date / Time | Date and time on which contract was approved | Should be a Valid DateTime | clmDetails .basicDetail.approvedOn |
Effective Date | No | Date / Time | Date and time from which contract is in effect | Should be a Valid DateTime. Effective date should not be greater than expiry date | clmDetails .legalTerm.effectiveDate |
Expiry Date | Yes | Date / Time | Date and time on which the contract gets expired | Should be a Valid DateTime and greater than effective date. In case of UPDATE this should be empty if isPerpetual flag is set as true | clmDetails .legalTerm.expiryDate |
Currency Conversion Date | No | Date / Time | Date and time as of which the converted currency value is calculated | Should be a Valid DateTime | clmDetails legalTerm.currencyConversionDate |
Payment Term | No | String | The payment term code as per master | Payment term code should not be null and be valid as per master | clmDetails .legalTerm.paymentTerm.code |
Currency | No | String | The currency code as per master
| Currency code should not be null and be valid as per master | clmDetails .legalTerm.currency.code |
Contract Value | No | Decimal | The contract value |
| clmDetails .legalTerm.value |
Is Coterminious | No | Boolean | Flag to highlight if the contract is coterminious | Accepted values are true / false | clmDetails .legalTerm.isCoterminous |
Renewal Term | No | Integer | The contract renewal term | Renewel Term is mandatory when auto renew is TRUE | clmDetails .legalTerm.renewelTerm |
Renewal Term Type | No | String | The renewal term type name | Renewel Term Type is mandatory when auto renew is TRUE. | clmDetails .legalTerm.renewelTermType.name |
Renewal Frequency | No | Integer | Integer value to denote renewal frequency | Should be a Valid integer. | clmDetails .legalTerm.renewelFrequency |
Renewal counter | No | Integer | Integer value to denote how many times contract is renewed | Should be a Valid integer. | clmDetails .legalTerm.renewelCounter |
Is Perpetual | No | Boolean | Flag to highlight if contract is perpetual | Accepted values are TRUE / FALSE | clmDetails .legalTerm.isPerpetual |
Is Auto Renew | Yes | Boolean | Flag to highlight if auto renew is enabled for the contract | Accepted values are TRUE / FALSE.
| clmDetails .legalTerm.isAutoRenew |
Payload/Request – Team members |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation can be CREATE / UPDATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | This should be a valid contract number | documentNumber |
Client Contact Code | Yes | String | Client contact code for the team member user | Client contact code should not be null and should be a valid as per user master | clientContactCode |
Group Name | No | String | Name of the group |
| group.name |
Term Reviewer | No | Boolean | Flag to highlight if added team member is term reviewer | Accepted values are TRUE / FALSE | TermReviewer |
Role | No | String | Name of the role assigned to the team member | Should be a valid value as defined in the role master data | role.name |
Is Co Author | No | Boolean | Flag to highlight if the team member is co author | Accepted values are TRUE / FALSE | coAuthor |
Payload/Request – Org Entities |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document |
| clmDetails .documentNumber |
Entity Code | Yes | String | Entity code for the org Entity to be added. | EntityCode cannot be null or empty and should be a valid value as per master data | ClmDetails.orgEntities[*].entityCode |
LOB Name | Yes | String | Lob name for the given org entity | LobName cannot be null or empty against given EntityCode | clmDetails.orgEntities[*].lobName |
Entity Type | No | String | Entity type for the given org entity |
| clmDetails.orgEntities[*]. EntityType |
Parent Entity Code | No | String | Entity code for the parent node for given org entity | Should be a valid entity code as per master data | clmDetails.orgEntities[*]. ParentEntityCode |
Payload/Request – Internal Parties |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number | clmDetails .documentNumber |
Client Code | Yes | String | Client code for the internal party | Client code should not be null and should be valid as per the internal party master data | clmDetails.internalParties[*].clientCode |
Buyer Authorized signatory | No | String | Client contact code for the signatory user | Should be a valid contact code as per user master data | clmDetails.internalParties[*]. signatories.clientContactCode |
Referred As | No | String | Referred as name for the given internal party | Should be a valid value as per referred as master data | clmDetails.internalParties[*]. referredAs.name |
Sequence | No | Integer | Integer denoting the sequence for the given IP |
| clmDetails.internalParties[*]. sequenceId |
Payload/Request – External Parties |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number
| clmDetails .documentNumber |
Client Partner Code | Yes | String | Client partner code for the given external party | Should be a valid client partner code as per the external party master | clmDetails.externalParties[*].clientPartnerCode |
Supplier POC | No | String | ClientContactCode for the supplier contact | Should be valid as per the supplier master data | clmDetails.externalParties[*]. contact.clientContactCode |
Authorized signatories | No | String | ClientContactCode for the authorized signatories | Should be valid as per the supplier master data | clmDetails.externalParties[*]. signatories.clientContactCode |
Referred As | No | String | Referred as name for the given external party | Should be a valid value as per referred as master data | clmDetails.externalParties[*]. referredAs.name |
Is Primary | No | Boolean | Flag to highlight if the given external party is primary | Accepted values are TRUE / FALSE | clmDetails.externalParties[*]. isPrimary |
Sequence Number | No | Integer | Integer denoting the sequence for the given XP |
| clmDetails.externalParties[*]. sequenceId |
Payload/Request – Lines |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number | clmDetails .documentNumber |
Line Type | Yes | Object | Line type name | Accepted values are - | lineType |
Item Name | Yes | String | Item name for the given line item |
| lineItemName |
Item Number | No | String | Item number for the given line item |
| lineItemNumber |
Item Description | Yes | String | Description for the given line item |
| description |
Supplier Item Number | Yes | String | Supplier item number for the given line item |
| supplierItemNumber |
Category | No | String | Category name for the given line item | Should be a valid category name as per the category master | categoryName |
UOM | Yes | String | Unit of measurement name for the given line item | Should be a valid value as per the uom master data | uomName |
Unit Price | Yes | Decimal | Unit price decimal value for the given line item |
| unitPrice |
Quantity | No | Decimal | Quantity decimal value |
| quantity |
Line Total | No | Decimal | Line total decimal value |
| lineTotal |
Lead Time | No | Integer | Lead time for the given line item |
| leadTime |
Start Date | No | Date / Time | Date Time value for the start date | Should be a valid date time value | startDate |
End Date | No | Date / Time | Date Time value for the end date | Should be a valid date time value
| endDate |
Is Tax Exempt | No | Boolean | Flag to highlight if given line item is tax exempt | Accepted values are TRUE / FALSE | taxExempt |
Manufacturer Name | No | String | Manufacturer name for the given line item |
| manufacturerName |
ManufacturerPartName | No | String | Manufacturer part number for the given line item |
| manufacturerPartName |
Manufacturer Part Number | No | String | Manufacturer part number for the given line item |
| manufacturerPartNumber |
GTIN | No | String | GTIN for the given line item |
| gtin |
Max Order Quantity | No | Decimal | Decimal value for the maximum order quantity |
| maxQuantity |
Maximum Value | No | Integer | Integer value for maximum value |
| maxValue |
Banding | No | Integer | Integer value for banding |
| banding |
Payload/Request – Custom Attributes |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number
| clmDetails .documentNumber |
Field Name | Yes | String | The field name |
| clmDetails.customAttributes. fieldName |
Field Value | Yes | String | The field value |
|
|
Payload/Request – Notes |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number
| clmDetails .documentNumber |
Note Name | Yes | String | Name of the note to be added |
| name |
Note Description | No | String | Description for the note to be added |
| description |
Classification | No | Object | Classification type for the given note | Should be valid as per the classification type master | classificationType |
Visiblity | No | String | Visibility name for the given note | Should have valid value as defined in the clmNotesVisibility global code | visibilityName |
Criticality | No | String | Criticality name for the given note | Valid values are defined in the clmNotesCriticality global code | flagName |
Added By | No | String | Client contact code for the added by user | Should be a valid client contact code as per the user master | clientContactCode |
Payload/Request – Linked Documents |
| ||||
Property | Required? | Data type | Description | Validations / Exceptions | JSON Path |
Operation | Yes |
| Operation will be CREATE |
|
|
Contract Number | Yes | String | This will be the document number for the target contract document | Should be a valid contract number
| clmDetails .documentNumber |
Document Number | Yes | String | Document number for the linked document | Should be a valid document number | contractNumber |
Document Type | Yes | String | Document type for the linked document | Should be a valid document type | documentType |