Create Contract with Values for Document Fields
Purpose
To create a contract with values for document fields.
Endpoints
Request Details
Request URL
https://contracts.zoho.com/api/v1/createcontract
Authorization
Authorization: Zoho-oauthtoken 1000.67013ab3960787bcf3affae67e649fc0.83a789c859e040bf11e7d05f9c8b5ef6
Scope
contracts.contracts.CREATE, contracts.contracts.ALL, ZohoWriter.documentEditor.ALL
Possible Operation Types
ALL - Full access to contract details
CREATE - Create Contract
Sample Request
Copiedcurl "https://contracts.zoho.com/api/v1/createcontract
-X POST
-H "Authorization: Zoho-oauthtoken 1000.67013ab3960787bcf3affae67e649fc0.83a789c859e040bf11e7d05f9c8b5ef6"
Input JSON Keys
Refer to Create Contract API to view the corresponding Input JSON Keys and to know the related details. The inputs for document fields follow the same pattern as that of the form fields. You must set the ZohoWriter.documentEditor.ALL scope if the contract type template is an uploaded one.
Refer to the bottom of the sample input for a few document field inputs. Instead of the source key, you should set the externalSource key as true. Also, for the custom date fields in the document, you have to pass their value in the timestamp in milliseconds format. For example, the date and time 2022-12-31 23:59:59 in timestamp milliseconds format is 1672531199000.
Sample Input
Copied{
"externalSource": true,
"inputfields": [
{
"metaApiName": "contract-type",
"inputs":[
{
"inputApiName": "contract-type",
"inputValue": "service-level-agreement"
}
]
},
{
"metaApiName":"title",
"inputs":[
{
"inputApiName":"title",
"inputValue":"SLA with Zylker"
}
]
},
{
"metaApiName":"description",
"inputs":[
{
"inputApiName":"description",
"inputValue":"SLA with Zylker to agree on the service quality and responsibilities."
}
]
},
{
"metaApiName":"requester-name",
"inputs":[
{
"inputApiName":"requester-name",
"inputValue":"Kevin Smith"
}
]
},
{
"metaApiName":"requester-department",
"inputs":[
{
"inputApiName":"requester-department",
"inputValue":"accounts"
}
]
},
{
"metaApiName":"party-b-name",
"inputs":[
{
"inputApiName":"party-b-name",
"inputValue":"laura-holmes"
}
]
},
{
"metaApiName":"counterparty-primary-contact",
"inputs":[
{
"inputApiName":"party-b-primary-contact-name",
"inputValue":"laura.holmes@zylker.com"
}
]
},
{
"metaApiName":"contract-term",
"inputs":[
{
"inputApiName":"contract-term",
"inputValue":true
}
]
},
{
"metaApiName":"contract-effective-date",
"inputs":[
{
"inputApiName":"contract-effective-date",
"inputValue":0
},
{
"inputApiName":"effective-specific-date",
"inputValue":"15/12/2021"
}
]
},
{
"metaApiName":"contract-end-date",
"inputs":[
{
"inputApiName":"contract-end-date",
"inputValue":3
},
{
"inputApiName":"n-monthsyears-value",
"inputValue":2
},
{
"inputApiName":"n-monthsyears-term",
"inputValue":0
}
]
},
{
"metaApiName":"termination-notice-period",
"inputs":[
{
"inputApiName":"termination-notice-period",
"inputValue":20
}
]
},
{
"metaApiName":"is-renewable",
"inputs":[
{
"inputApiName":"is-renewable",
"inputValue":true
}
]
},
{
"metaApiName":"renewal-type",
"inputs":[
{
"inputApiName":"renewal-type",
"inputValue":0
}
]
},
{
"metaApiName":"notice-period-before-expiration",
"inputs":[
{
"inputApiName":"notice-period-before-expiration",
"inputValue":5
}
]
},
{
"metaApiName":"send-expiration-reminder",
"inputs":[
{
"inputApiName":"send-expiration-reminder",
"inputValue":15
}
]
},
{
"metaApiName":"amount",
"inputs":[
{
"inputApiName":"amount",
"inputValue":1200
}
]
},
{
"metaApiName":"tax",
"inputs":[
{
"inputApiName":"tax",
"inputValue":0
}
]
}
{
"metaApiName":"sla-target",
"inputs":[
{
"inputApiName":"sla-target",
"inputValue": 99.99
}
]
}
{
"metaApiName":"initial-response-time",
"inputs":[
{
"inputApiName":"initial-response-time",
"inputValue": 24
}
]
}
],
"clauseOverrides": [
{
"apiName": "late-payments",
"alternatives": [
{
"apiName": "Rig15496356725421254",
"action": 1
}
]
},
{
"apiName": "management",
"action": 0
}
]
}
Response JSON Keys
Refer to Get Contract API to view the corresponding Response JSON Keys section to know the details.
Possible Errors
INVALID_URL_PATTERNHTTP 404
Request URL is incorrect
Resolution: Specify a valid request URL. Refer to the Request URL section above.
OAUTH_SCOPE_MISMATCHHTTP 401
Unauthorized
Resolution: Client does not have contracts.contracts.CREATE scope. Create a new client with valid scope. Refer to the Scope section above.
NO_PERMISSIONHTTP 403
Permission denied to read
Resolution: The user does not have permission to create records. Contact your organization administrator.
INTERNAL_ERRORHTTP 500
Internal Server Error
Resolution: Unexpected and unhandled exception in the server.
INVALID_REQUEST_METHODHTTP 400
The HTTP request method is not a valid one.
Resolution: You have specified an invalid HTTP method to access the API URL. Specify a valid request method. Refer to the Endpoints section above.
AUTHORIZATION_FAILEDHTTP 400
The user does not have sufficient privilege to create module details.
Resolution: The user does not have permission to create module details. Contact your organization administrator.
Sample Response
Copied{
"contracts": [
{
"owner": {
"displayName": “Smith Jones”,
"emailId": “smith.jones@zylker.com”,
"id": 596000000183025
},
"modifiedTime": “Dec 15, 2021 04:26 PM”,
"apiName": “sla-with-zylker”,
"endIn": 1,
"endInType": 0,
"resourceId": “9a57560bbf7b48628acdc2fe41317ee0”,
"contractType": {
"apiName": “sla”,
"name": “SLA”,
},
"description": “SLA with Zylker to agree on the service quality and responsibilities.”,
"amendments": [
{
"number": 4,
"modifiedTime": “Dec 15, 2021 04:26 PM”,
"isCurrent": false,
"stage": {
"apiName": “active”,
"name": “Active”,
},
"systemStatus": 6,
"latestCycleNumber": 1,
"id": “596000000415223”,
"type": 1,
"startOption": 0,
"endOption": 0,
"docSource": 3
}
],
"source": 2,
"isActive": 1,
"partyA": 0,
"isRenewable": true,
"renewalType": 0,
"expirationNoticePeriod": 1,
"expirationReminderPeriod": 2,
"terminationNoticePeriod": 12,
"intent": 1,
"amount": 1200,
"currency": 65
"taxOption": 0,
"resourceUrl": String,
"requesterName": “Kevin Smith”,
"primaryContact": {
"displayName": "Laura Holmes",
"emailId": "laura.holmes@zylker.com",
"id": “200989”
},
"contractTerm": true,
"systemStatus": 1,
"partyB": 1,
"contractId": “596000000413741”,
"name": “SLA with Zylker”,
"sla-target": "99.99",
"initial-response-time": "24"
"counterParty": {
"organizationApiName": “zylker”,
"name": “Zylker”
},
"requesterDepartment": {
"apiName": “accounts”,
"name": “Accounts”
}
}
]
}