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  |