Create Contract

Purpose

To create a contract.

Request Details

Request URL

https://contracts.zoho.com/api/v1/contracts

Authorization

Authorization: Zoho-oauthtoken 1000.67013ab3960787bcf3affae67e649fc0.83a789c859e040bf11e7d05f9c8b5ef6

Scope

contracts.contracts.CREATE, contracts.contracts.ALL

Possible Operation Types

ALL - Full access to contract details
CREATE - Create contract

Sample Request

Copiedcurl "https://contracts.zoho.com/api/v1/contracts"
-X POST
-H "Authorization: Zoho-oauthtoken 1000.67013ab3960787bcf3affae67e649fc0.83a789c859e040bf11e7d05f9c8b5ef6"

Input JSON Keys

  • sourcenumber

    Represents the origin of the contract.

  • inputfieldsJSON Array

    Represents all the fields used to create the contract.

  • metaApiNamestring

    Represents the API name of the field used to create a contract. The field can be a particular field or a field and its related fields.

  • inputsJSON Array

    The array represents the API names of the fields and its value used to create a contract.

  • inputApiNamestring

    Represents the API name of the field used to create a contract. Refer to the inputApiNames List below that lists all the values of the inputApiName key.

  • inputValue

    Represents the value of a field used to create a contract. Regarding the data type, refer to the data type of each of the inputApiNames' values in the inputApiNames List below.

  • clauseOverridesJSON Array

    Represents the array of default clauses to deselect and the alternative languages of the selected clauses with their selection or deselection status.

  • apiNamestring

    Represents the API name of a clause or a clause's alternative language.

  • alternativesJSON Array

    Represents the array of the alternative languages of a clause where each item contains their API name and the selection or deselection status.

  • actionnumber

    Represents the selection status of the clause to deselect and the alternative languages of a selected clause to select or deselect. 

    ValueDescription
    0Deselect
    1Select
inputApiNames List

This section lists all the values of the inputApiName key that indeed are the API names of each field used to create a contract.

  • contract-typestring

    Represents the API name of the contract type.

  • titlestring

    Represents the contract title.

  • descriptionstring

    Represents the description of the contract.

  • requester-namestring

    Represents the name of the person who requested the contract.

  • requester-departmentstring

    Represents the API name of the department to which the requested person belongs to.

  • party-b-namestring

    Represents the API name of the counterparty.

  • counterparty-primary-contactstring

    Represents the email ID of the counterparty's primary contact.

  • contract-termboolean

    Represents whether the contract's term is definite or indefinite.

    ValueDescription
    TrueDefinite
    FalseIndefinite
  • contract-effective-datenumber

    Represents the effective date options of the contract.

    ValueDescription
    0Specific Date
    1Execution
  • effective-specific-datestring

    Represents the specific date on which the contract's term begins.

  • contract-end-datenumber

    Represents the end date options of the contract.

    ValueDescription
    0Specific Date
    1On Condition
    2On Event
    3N Months/Years 
    4On Fulfillment Of Order/Service 
  • end-specific-datestring

    Represents the specific date on which the contract's term ends.

  • n-monthsyears-termnumber

    Represents whether the contract period ends by Months or Years (i.e., N Months/Years).

    ValueDescription
    0Months
    1Years
  • n-monthsyears-valuenumber

    Represents the number of months or years after which the contract will end from the start date.

  • end-on-conditionstring

    Represents the description of the condition on which the contract's term ends.

  • end-on-eventstring

    Represents the description of the event on which the contract's term ends.

  • end-on-fulfillment-of-orderservicestring

    Represents the description of the order/service that when fulfilled will end the contract.

  • termination-notice-periodnumber

    Represents the minimum number of days required before the contract's end date to send/receive a termination notice. For example, 20 Days.

  • is-renewableboolean

    Represents whether the contract is renewable or not.

    ValueDescription
    TrueRenewable
    FalseNon-Renewable
  • renewal-typenumber

    Represents whether the contract is of manual or evergreen renewal type.

    ValueDescription
    0Manual Renewal
    1Evergreen Renewal 
  • notice-period-before-expirationnumber

    Represents the minimum number of days required before the manually renewable contract's end date to initiate the renewal. For example, 5 Days. 

  • send-expiration-remindernumber

    Represents the number of days before the contract's end date on which the renewal reminder notification has to be sent for manually renewable contracts. For example, 15 Days.

  • renewal-termnumber

    Represents the consecutive renewal term period of an evergreen contract after the end of each term in months or years.

    ValueDescription
    0Months
    1Years 
  • renewal-term-periodnumber

    Represents the number of months or years of the renewal term period of an evergreen contract. For example, 10 Months.

  • non-renewal-notice-periodnumber

    Represents the minimum number of days required before the evergreen contract's end date to send/receive a non-renewal notice. For example, 10 Days.

  • amountBigDecimal

    Represents the contract amount to be paid or received, which is based on the contract type's intent (i.e., Buy or Sell).

  • taxnumber

    Represents whether the contract amount is inclusive of tax or the tax is as per the payment terms.

    ValueDescription
    0All Taxes Included
    1As Per Payment Terms

Sample Input

Copied{
"source": 1,
"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
            }
         ]
      }
   ],
"clauseOverrides": [
    { 
        "apiName": "late-payments",
        "alternatives": [
{ 
            "apiName": "Rig15496356725421254",
                "action": 1   
}
        ]
    },
 { 
        "apiName": "management", 
        "action": 0    
    }
]
}

Response JSON Keys

Refer to Get Contract API to view the Sample Response and its corresponding Response JSON Keys section to know the details.

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”,
      "counterParty": {
        "organizationApiName": “zylker”,
        "name": “Zylker”
      },
      "requesterDepartment": {
        "apiName": “accounts”,
        "name": “Accounts”
      }
    }
  ]
}

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 create

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.