Skip to main content
POST
/
public
/
v1
/
contracts
/
Create Contract
curl --request POST \
  --url https://api.dualentry.com/public/v1/contracts/ \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "custom_fields": [
    {}
  ],
  "memo": "",
  "date": "2023-12-25",
  "start_date": "2023-12-25",
  "end_date": "2023-12-25",
  "company_id": 123,
  "customer_id": 123,
  "name": "",
  "currency_iso_4217_code": "USD",
  "bill_to_address": "",
  "billing_address": {
    "street": "<string>",
    "city": "<string>",
    "postal_code": "<string>",
    "state": "",
    "country": "",
    "second_line": "",
    "name": "<string>"
  },
  "ship_to_address": "",
  "shipping_address": {
    "street": "<string>",
    "city": "<string>",
    "postal_code": "<string>",
    "state": "",
    "country": "",
    "second_line": "",
    "name": "<string>"
  },
  "obligations": [],
  "term_id": 123,
  "default_ar_account_id": 123,
  "contract_template_id": 123,
  "billing_start_date": "2023-12-25",
  "billing_frequency": "monthly",
  "billing_interval": 1,
  "billing_anchor_weekday": 3,
  "recognition_start_date": "2023-12-25",
  "recognition_frequency": "monthly",
  "recognition_interval": 1,
  "recognition_anchor_weekday": 3,
  "recognition_mode": "individual",
  "contract_attachments": [],
  "change_orders_attachments": [],
  "payment": {
    "type": "<string>",
    "id": 123,
    "body": "<string>",
    "link": "<string>"
  },
  "prepared_invoices": [],
  "revenue_recognitions": [],
  "cutover_date": "2023-12-25",
  "prior_recognized_amount": 1,
  "default_early_termination_fee": 1
}
'
import requests

url = "https://api.dualentry.com/public/v1/contracts/"

payload = {
"custom_fields": [{}],
"memo": "",
"date": "2023-12-25",
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"company_id": 123,
"customer_id": 123,
"name": "",
"currency_iso_4217_code": "USD",
"bill_to_address": "",
"billing_address": {
"street": "<string>",
"city": "<string>",
"postal_code": "<string>",
"state": "",
"country": "",
"second_line": "",
"name": "<string>"
},
"ship_to_address": "",
"shipping_address": {
"street": "<string>",
"city": "<string>",
"postal_code": "<string>",
"state": "",
"country": "",
"second_line": "",
"name": "<string>"
},
"obligations": [],
"term_id": 123,
"default_ar_account_id": 123,
"contract_template_id": 123,
"billing_start_date": "2023-12-25",
"billing_frequency": "monthly",
"billing_interval": 1,
"billing_anchor_weekday": 3,
"recognition_start_date": "2023-12-25",
"recognition_frequency": "monthly",
"recognition_interval": 1,
"recognition_anchor_weekday": 3,
"recognition_mode": "individual",
"contract_attachments": [],
"change_orders_attachments": [],
"payment": {
"type": "<string>",
"id": 123,
"body": "<string>",
"link": "<string>"
},
"prepared_invoices": [],
"revenue_recognitions": [],
"cutover_date": "2023-12-25",
"prior_recognized_amount": 1,
"default_early_termination_fee": 1
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
custom_fields: [{}],
memo: '',
date: '2023-12-25',
start_date: '2023-12-25',
end_date: '2023-12-25',
company_id: 123,
customer_id: 123,
name: '',
currency_iso_4217_code: 'USD',
bill_to_address: '',
billing_address: {
street: '<string>',
city: '<string>',
postal_code: '<string>',
state: '',
country: '',
second_line: '',
name: '<string>'
},
ship_to_address: '',
shipping_address: {
street: '<string>',
city: '<string>',
postal_code: '<string>',
state: '',
country: '',
second_line: '',
name: '<string>'
},
obligations: [],
term_id: 123,
default_ar_account_id: 123,
contract_template_id: 123,
billing_start_date: '2023-12-25',
billing_frequency: 'monthly',
billing_interval: 1,
billing_anchor_weekday: 3,
recognition_start_date: '2023-12-25',
recognition_frequency: 'monthly',
recognition_interval: 1,
recognition_anchor_weekday: 3,
recognition_mode: 'individual',
contract_attachments: [],
change_orders_attachments: [],
payment: {type: '<string>', id: 123, body: JSON.stringify('<string>'), link: '<string>'},
prepared_invoices: [],
revenue_recognitions: [],
cutover_date: '2023-12-25',
prior_recognized_amount: 1,
default_early_termination_fee: 1
})
};

fetch('https://api.dualentry.com/public/v1/contracts/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dualentry.com/public/v1/contracts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'custom_fields' => [
[

]
],
'memo' => '',
'date' => '2023-12-25',
'start_date' => '2023-12-25',
'end_date' => '2023-12-25',
'company_id' => 123,
'customer_id' => 123,
'name' => '',
'currency_iso_4217_code' => 'USD',
'bill_to_address' => '',
'billing_address' => [
'street' => '<string>',
'city' => '<string>',
'postal_code' => '<string>',
'state' => '',
'country' => '',
'second_line' => '',
'name' => '<string>'
],
'ship_to_address' => '',
'shipping_address' => [
'street' => '<string>',
'city' => '<string>',
'postal_code' => '<string>',
'state' => '',
'country' => '',
'second_line' => '',
'name' => '<string>'
],
'obligations' => [

],
'term_id' => 123,
'default_ar_account_id' => 123,
'contract_template_id' => 123,
'billing_start_date' => '2023-12-25',
'billing_frequency' => 'monthly',
'billing_interval' => 1,
'billing_anchor_weekday' => 3,
'recognition_start_date' => '2023-12-25',
'recognition_frequency' => 'monthly',
'recognition_interval' => 1,
'recognition_anchor_weekday' => 3,
'recognition_mode' => 'individual',
'contract_attachments' => [

],
'change_orders_attachments' => [

],
'payment' => [
'type' => '<string>',
'id' => 123,
'body' => '<string>',
'link' => '<string>'
],
'prepared_invoices' => [

],
'revenue_recognitions' => [

],
'cutover_date' => '2023-12-25',
'prior_recognized_amount' => 1,
'default_early_termination_fee' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.dualentry.com/public/v1/contracts/"

payload := strings.NewReader("{\n \"custom_fields\": [\n {}\n ],\n \"memo\": \"\",\n \"date\": \"2023-12-25\",\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"company_id\": 123,\n \"customer_id\": 123,\n \"name\": \"\",\n \"currency_iso_4217_code\": \"USD\",\n \"bill_to_address\": \"\",\n \"billing_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"ship_to_address\": \"\",\n \"shipping_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"obligations\": [],\n \"term_id\": 123,\n \"default_ar_account_id\": 123,\n \"contract_template_id\": 123,\n \"billing_start_date\": \"2023-12-25\",\n \"billing_frequency\": \"monthly\",\n \"billing_interval\": 1,\n \"billing_anchor_weekday\": 3,\n \"recognition_start_date\": \"2023-12-25\",\n \"recognition_frequency\": \"monthly\",\n \"recognition_interval\": 1,\n \"recognition_anchor_weekday\": 3,\n \"recognition_mode\": \"individual\",\n \"contract_attachments\": [],\n \"change_orders_attachments\": [],\n \"payment\": {\n \"type\": \"<string>\",\n \"id\": 123,\n \"body\": \"<string>\",\n \"link\": \"<string>\"\n },\n \"prepared_invoices\": [],\n \"revenue_recognitions\": [],\n \"cutover_date\": \"2023-12-25\",\n \"prior_recognized_amount\": 1,\n \"default_early_termination_fee\": 1\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.dualentry.com/public/v1/contracts/")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"custom_fields\": [\n {}\n ],\n \"memo\": \"\",\n \"date\": \"2023-12-25\",\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"company_id\": 123,\n \"customer_id\": 123,\n \"name\": \"\",\n \"currency_iso_4217_code\": \"USD\",\n \"bill_to_address\": \"\",\n \"billing_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"ship_to_address\": \"\",\n \"shipping_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"obligations\": [],\n \"term_id\": 123,\n \"default_ar_account_id\": 123,\n \"contract_template_id\": 123,\n \"billing_start_date\": \"2023-12-25\",\n \"billing_frequency\": \"monthly\",\n \"billing_interval\": 1,\n \"billing_anchor_weekday\": 3,\n \"recognition_start_date\": \"2023-12-25\",\n \"recognition_frequency\": \"monthly\",\n \"recognition_interval\": 1,\n \"recognition_anchor_weekday\": 3,\n \"recognition_mode\": \"individual\",\n \"contract_attachments\": [],\n \"change_orders_attachments\": [],\n \"payment\": {\n \"type\": \"<string>\",\n \"id\": 123,\n \"body\": \"<string>\",\n \"link\": \"<string>\"\n },\n \"prepared_invoices\": [],\n \"revenue_recognitions\": [],\n \"cutover_date\": \"2023-12-25\",\n \"prior_recognized_amount\": 1,\n \"default_early_termination_fee\": 1\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.dualentry.com/public/v1/contracts/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"custom_fields\": [\n {}\n ],\n \"memo\": \"\",\n \"date\": \"2023-12-25\",\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"company_id\": 123,\n \"customer_id\": 123,\n \"name\": \"\",\n \"currency_iso_4217_code\": \"USD\",\n \"bill_to_address\": \"\",\n \"billing_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"ship_to_address\": \"\",\n \"shipping_address\": {\n \"street\": \"<string>\",\n \"city\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"state\": \"\",\n \"country\": \"\",\n \"second_line\": \"\",\n \"name\": \"<string>\"\n },\n \"obligations\": [],\n \"term_id\": 123,\n \"default_ar_account_id\": 123,\n \"contract_template_id\": 123,\n \"billing_start_date\": \"2023-12-25\",\n \"billing_frequency\": \"monthly\",\n \"billing_interval\": 1,\n \"billing_anchor_weekday\": 3,\n \"recognition_start_date\": \"2023-12-25\",\n \"recognition_frequency\": \"monthly\",\n \"recognition_interval\": 1,\n \"recognition_anchor_weekday\": 3,\n \"recognition_mode\": \"individual\",\n \"contract_attachments\": [],\n \"change_orders_attachments\": [],\n \"payment\": {\n \"type\": \"<string>\",\n \"id\": 123,\n \"body\": \"<string>\",\n \"link\": \"<string>\"\n },\n \"prepared_invoices\": [],\n \"revenue_recognitions\": [],\n \"cutover_date\": \"2023-12-25\",\n \"prior_recognized_amount\": 1,\n \"default_early_termination_fee\": 1\n}"

response = http.request(request)
puts response.read_body
{
  "id": 123,
  "number": 123,
  "name": "<string>",
  "memo": "<string>",
  "date": "2023-12-25",
  "start_date": "2023-12-25",
  "bill_to_address": "<string>",
  "ship_to_address": "<string>",
  "is_incomplete": true,
  "is_locked": true,
  "revenue_recognitions": [
    {
      "id": 123,
      "number": 123,
      "contract_id": 123,
      "date": "2023-12-25",
      "transaction_date": "2023-12-25",
      "amount": "<string>",
      "transaction_id": 123,
      "income_account_id": 123,
      "deferrered_revenue_account_id": 123,
      "performance_obligation_id": 123,
      "is_reversal": false
    }
  ],
  "invoices": [
    {
      "id": 123,
      "number": 123,
      "date": "2023-12-25",
      "due_date": "2023-12-25",
      "amount": "<string>",
      "tax_amount": "<string>",
      "paid_total": "<string>",
      "source": "<string>",
      "term_id": 123
    }
  ],
  "obligations": [
    {
      "position": 123,
      "memo": "<string>",
      "billing_start_date": "2023-12-25",
      "billing_interval": 123,
      "recognition_start_date": "2023-12-25",
      "recognition_interval": 123,
      "is_incomplete": true,
      "amount": "<string>",
      "discount_amount": "<string>",
      "net_amount": "<string>",
      "qualifies_for_mrr": true,
      "id": 123,
      "item_id": 123,
      "item_type": "<string>",
      "item_name": "<string>",
      "hsn_sac_code": "<string>",
      "quantity": "<string>",
      "rate": "<string>",
      "standalone_selling_price": "<string>",
      "term_id": 123,
      "billing_group": 1,
      "recognition_strategy": "straight_line",
      "obligation_conditions": {},
      "classifications": [],
      "billing_end_date": "2023-12-25",
      "sync_billing_with_recognition": false,
      "skip_invoice_generation": false,
      "recognition_end_date": "2023-12-25",
      "discount_value": "<string>",
      "allocated_amount": "<string>",
      "selected_vat_rate_id": 123,
      "selected_gst_tax_rate_id": 123,
      "is_auto_renewable": false,
      "auto_renewal_date": "2023-12-25",
      "renewed_from_id": 123,
      "changed_from_id": 123,
      "change_lineage_root_id": 123
    }
  ],
  "obligation_usage": [
    {
      "id": 123,
      "contract_id": 123,
      "obligation_id": 123,
      "usage_date": "2023-12-25",
      "quantity": "<string>",
      "amount": "<string>",
      "effective_rate": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "rate": "<string>",
      "revenue_recognition_id": 123,
      "invoice_status": "<string>",
      "memo": "",
      "classifications": []
    }
  ],
  "amount": "<string>",
  "metrics": {
    "mrr": "<string>",
    "arr": "<string>",
    "amount_invoiced": "<string>",
    "invoices_paid": "<string>",
    "revenue_recognized": "<string>",
    "unbilled_revenue": "<string>",
    "unrecognized_revenue": "<string>",
    "deferred_revenue": "<string>",
    "total_contract_value": "<string>",
    "amount_invoiced_percentage": "<string>",
    "invoices_paid_percentage": "<string>",
    "revenue_recognized_percentage": "<string>",
    "next_invoice_date": "2023-12-25",
    "total_discount_amount": "0",
    "total_tax_amount": "0"
  },
  "custom_fields": [],
  "completed_approvals_count": 0,
  "total_approvals_count": 0,
  "integration_remote_records": [],
  "company_id": 123,
  "company_name": "<string>",
  "customer_id": 123,
  "customer_name": "<string>",
  "term_id": 123,
  "default_ar_account_id": 123,
  "contract_template_id": 123,
  "end_date": "2023-12-25",
  "billing_address": {
    "street": "<string>",
    "city": "<string>",
    "postal_code": "<string>",
    "state": "",
    "country": "",
    "second_line": "",
    "name": "<string>"
  },
  "shipping_address": {
    "street": "<string>",
    "city": "<string>",
    "postal_code": "<string>",
    "state": "",
    "country": "",
    "second_line": "",
    "name": "<string>"
  },
  "billing_anchor_weekday": 123,
  "recognition_anchor_weekday": 123,
  "cutover_date": "2023-12-25",
  "prior_recognized_amount": "<string>",
  "default_early_termination_fee": "<string>",
  "recognition_mode": "individual",
  "workflow_status": "<string>",
  "pending_approvers_count": 0,
  "payment": {
    "type": "<string>",
    "id": 123,
    "body": "<string>",
    "link": "<string>"
  },
  "renewed_end_date": "2023-12-25",
  "next_renewal_date": "2023-12-25",
  "days_till_expiry": 123,
  "termination": {
    "id": 123,
    "number": 123,
    "contract_id": 123,
    "termination_type": "<string>",
    "termination_date": "2023-12-25",
    "transaction_id": 123,
    "memo": "<string>",
    "date": "2023-12-25",
    "early_termination_fee": "<string>",
    "early_termination_fee_item_id": 123,
    "fee_invoice_id": 123,
    "refund_amount": "<string>",
    "refund_credit_account_id": 123
  },
  "change_orders": [],
  "customer_credits": [],
  "cached_metrics": {
    "tcv": "<string>",
    "mrr": "0",
    "arr": "0",
    "amount_invoiced_percentage": "<string>",
    "revenue_recognized": "0",
    "revenue_recognized_percentage": "<string>",
    "next_invoice_date": "2023-12-25"
  },
  "has_usage_obligations": false,
  "has_usages": false,
  "approval_info": {
    "workflow_name": "<string>",
    "workflow_version": 123,
    "step_name": "<string>",
    "current_substep": 123,
    "substeps": [
      {
        "order": 123,
        "approvers": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ],
        "approved_by": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ],
        "rejected_by": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ]
      }
    ]
  },
  "approval_chain": {
    "workflow_name": "<string>",
    "workflow_version": 123,
    "steps": [
      {
        "order": 123,
        "name": "<string>",
        "substeps": [
          {
            "order": 123,
            "approvers": [
              {
                "id": 123,
                "first_name": "<string>",
                "last_name": "<string>",
                "email": "<string>",
                "full_name": "<string>",
                "avatar_url": "<string>"
              }
            ],
            "approved_by": [
              {
                "id": 123,
                "first_name": "<string>",
                "last_name": "<string>",
                "email": "<string>",
                "full_name": "<string>",
                "avatar_url": "<string>"
              }
            ],
            "rejected_by": [
              {
                "id": 123,
                "first_name": "<string>",
                "last_name": "<string>",
                "email": "<string>",
                "full_name": "<string>",
                "avatar_url": "<string>"
              }
            ]
          }
        ],
        "approvers": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ],
        "approved_by": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ],
        "rejected_by": [
          {
            "id": 123,
            "first_name": "<string>",
            "last_name": "<string>",
            "email": "<string>",
            "full_name": "<string>",
            "avatar_url": "<string>"
          }
        ]
      }
    ]
  },
  "bank_match_status": "<string>",
  "contract_attachments": [],
  "change_orders_attachments": []
}
{
"errors": {},
"success": false
}
{
"errors": {},
"success": false
}

Authorizations

X-API-KEY
string
header
required

Body

application/json
status
enum<string>
required
Available options:
draft,
active,
completed,
terminated,
archived
custom_fields
Custom Fields · object[] | null
memo
string
default:""
Maximum string length: 512
date
string<date>
start_date
string<date>
end_date
string<date> | null
company_id
integer | null
customer_id
integer | null
name
string
default:""
Maximum string length: 128
currency_iso_4217_code
enum<string>
default:USD
Available options:
AED,
AFN,
ALL,
AMD,
ANG,
AOA,
ARS,
AUD,
AWG,
AZN,
BAM,
BBD,
BDT,
BGN,
BHD,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BTN,
BWP,
BYN,
BZD,
CAD,
CDF,
CHF,
CLF,
CLP,
CNY,
COP,
CRC,
CUP,
CVE,
CZK,
DJF,
DKK,
DOP,
DZD,
EGP,
ERN,
ETB,
EUR,
FJD,
FKP,
GBP,
GEL,
GHS,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HTG,
HUF,
IDR,
ILS,
INR,
IQD,
IRR,
ISK,
JMD,
JOD,
JPY,
KES,
KGS,
KHR,
KMF,
KPW,
KRW,
KWD,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
LYD,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MRU,
MUR,
MVR,
MWK,
MXN,
MYR,
MZN,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
OMR,
PAB,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RSD,
RUB,
RWF,
SAR,
SBD,
SCR,
SDG,
SEK,
SGD,
SHP,
SLL,
SOS,
SRD,
STN,
SVC,
SYP,
SZL,
THB,
TJS,
TMT,
TND,
TOP,
TRY,
TTD,
TWD,
TZS,
UAH,
UGX,
USD,
UYU,
UZS,
VES,
VND,
VUV,
WST,
XAF,
XAG,
XAU,
XCD,
XDR,
XOF,
XPD,
XPF,
XPT,
YER,
ZAR,
ZMW,
ZWL
bill_to_address
string
default:""
billing_address
AddressSchemaIn · object | null
ship_to_address
string
default:""
shipping_address
AddressSchemaIn · object | null
obligations
PerformanceObligationIn · object[]
term_id
integer | null
default_ar_account_id
integer | null
contract_template_id
integer | null
billing_start_date
string<date> | null
billing_frequency
enum<string>
default:monthly
Available options:
one_time,
daily,
weekly,
monthly,
quarterly,
semi_annually,
annually
billing_interval
integer
default:1
Required range: x >= 1
billing_anchor_weekday
integer | null

Optional weekday anchor for weekly billing (0=Monday)

Required range: 0 <= x <= 6
recognition_start_date
string<date> | null
recognition_frequency
enum<string>
default:monthly
Available options:
daily,
weekly,
monthly,
quarterly,
semi_annually,
annually
recognition_interval
integer
default:1
Required range: x >= 1
recognition_anchor_weekday
integer | null

Optional weekday anchor for weekly recognition (0=Monday)

Required range: 0 <= x <= 6
recognition_mode
enum<string>
default:individual
Available options:
individual,
subledger
contract_attachments
AttachmentSchemaOut · object[]
change_orders_attachments
AttachmentSchemaOut · object[]
payment
PaymentSchemaIn · object | null

Schema for payment collection configuration input (matches frontend structure).

prepared_invoices
InvoiceSchemaCreateIn · object[]
revenue_recognitions
RevenueRecognitionSchemaCreateIn · object[]
cutover_date
string<date> | null
prior_recognized_amount
Required range: x >= 0
default_early_termination_fee
Required range: x >= 0

Response

Created

Full detail schema — extends list schema with attachments and obligation usage.

id
integer
required
number
integer
required
name
string
required
currency_iso_4217_code
enum<string>
required
Available options:
AED,
AFN,
ALL,
AMD,
ANG,
AOA,
ARS,
AUD,
AWG,
AZN,
BAM,
BBD,
BDT,
BGN,
BHD,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BTN,
BWP,
BYN,
BZD,
CAD,
CDF,
CHF,
CLF,
CLP,
CNY,
COP,
CRC,
CUP,
CVE,
CZK,
DJF,
DKK,
DOP,
DZD,
EGP,
ERN,
ETB,
EUR,
FJD,
FKP,
GBP,
GEL,
GHS,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HTG,
HUF,
IDR,
ILS,
INR,
IQD,
IRR,
ISK,
JMD,
JOD,
JPY,
KES,
KGS,
KHR,
KMF,
KPW,
KRW,
KWD,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
LYD,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MRU,
MUR,
MVR,
MWK,
MXN,
MYR,
MZN,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
OMR,
PAB,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RSD,
RUB,
RWF,
SAR,
SBD,
SCR,
SDG,
SEK,
SGD,
SHP,
SLL,
SOS,
SRD,
STN,
SVC,
SYP,
SZL,
THB,
TJS,
TMT,
TND,
TOP,
TRY,
TTD,
TWD,
TZS,
UAH,
UGX,
USD,
UYU,
UZS,
VES,
VND,
VUV,
WST,
XAF,
XAG,
XAU,
XCD,
XDR,
XOF,
XPD,
XPF,
XPT,
YER,
ZAR,
ZMW,
ZWL
memo
string
required
date
string<date>
required
start_date
string<date>
required
bill_to_address
string
required
ship_to_address
string
required
is_incomplete
boolean
required
status
enum<string>
required
Available options:
draft,
active,
completed,
terminated,
archived
record_status
enum<string>
required
Available options:
draft,
posted,
archived
is_locked
boolean
required
revenue_recognitions
RevenueRecognitionSchemaOut · object[]
required
invoices
ContractInvoiceSchemaOut · object[]
required
obligations
PerformanceObligationOut · object[]
required
obligation_usage
ObligationUsageSchemaOut · object[]
required
amount
string
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
metrics
ContractMetricsSchemaOut · object
required
read-only

Derived contract metrics (MRR, ARR, TCV, invoiced, recognized, etc.).

custom_fields
CustomFieldValuePairOutputSchema · object[]
completed_approvals_count
integer
default:0
total_approvals_count
integer
default:0
integration_remote_records
IntegrationRemoteRecordSchemaOut · object[]
company_id
integer | null
company_name
string | null
company_currency
enum<string> | null
Available options:
AED,
AFN,
ALL,
AMD,
ANG,
AOA,
ARS,
AUD,
AWG,
AZN,
BAM,
BBD,
BDT,
BGN,
BHD,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BTN,
BWP,
BYN,
BZD,
CAD,
CDF,
CHF,
CLF,
CLP,
CNY,
COP,
CRC,
CUP,
CVE,
CZK,
DJF,
DKK,
DOP,
DZD,
EGP,
ERN,
ETB,
EUR,
FJD,
FKP,
GBP,
GEL,
GHS,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HTG,
HUF,
IDR,
ILS,
INR,
IQD,
IRR,
ISK,
JMD,
JOD,
JPY,
KES,
KGS,
KHR,
KMF,
KPW,
KRW,
KWD,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
LYD,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MRU,
MUR,
MVR,
MWK,
MXN,
MYR,
MZN,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
OMR,
PAB,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RSD,
RUB,
RWF,
SAR,
SBD,
SCR,
SDG,
SEK,
SGD,
SHP,
SLL,
SOS,
SRD,
STN,
SVC,
SYP,
SZL,
THB,
TJS,
TMT,
TND,
TOP,
TRY,
TTD,
TWD,
TZS,
UAH,
UGX,
USD,
UYU,
UZS,
VES,
VND,
VUV,
WST,
XAF,
XAG,
XAU,
XCD,
XDR,
XOF,
XPD,
XPF,
XPT,
YER,
ZAR,
ZMW,
ZWL
customer_id
integer | null
customer_name
string | null
term_id
integer | null
default_ar_account_id
integer | null
contract_template_id
integer | null
end_date
string<date> | null
billing_address
AddressSchemaIn · object | null
shipping_address
AddressSchemaIn · object | null
billing_anchor_weekday
integer | null
recognition_anchor_weekday
integer | null
cutover_date
string<date> | null
prior_recognized_amount
string | null
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
default_early_termination_fee
string | null
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
recognition_mode
enum<string>
default:individual
Available options:
individual,
subledger
workflow_status
string | null
pending_approvers_count
integer
default:0
payment
PaymentSchemaOut · object | null

Schema for payment collection configuration output.

renewed_end_date
string<date> | null
next_renewal_date
string<date> | null
days_till_expiry
integer | null
termination
EmbeddedTerminationSchemaOut · object | null
change_orders
EmbeddedChangeOrderSchemaOut · object[]
customer_credits
ContractCustomerCreditSchemaOut · object[]
cached_metrics
ContractCachedMetricsSchemaOut · object | null

Precomputed contract metrics from the cache table.

has_usage_obligations
boolean
default:false
has_usages
boolean
default:false
approval_info
ApprovalInfoSchema · object | null

Schema for complete approval workflow information.

approval_chain
ApprovalChainSchema · object | null

Full approval chain.

bank_match_status
string | null
contract_attachments
AttachmentSchemaOut · object[]
change_orders_attachments
AttachmentSchemaOut · object[]
Last modified on July 13, 2026