Skip to main content
POST
Create Contract

Authorizations

X-API-KEY
string
header
required

Headers

Idempotency-Key
string

Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422.

Maximum string length: 255

Query Parameters

apply_default_classifications
boolean
default:true

When false, store submitted line classifications, including an empty list. When omitted, organization defaults apply to new lines with omitted or empty classifications only when the organization setting is enabled.

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
unbilled_receivable_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

created_at
string<date-time>
required

Date and time the record was created

updated_at
string<date-time>
required

Date and time the record was last updated

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
RevenueRecognitionListSchemaOut · 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[]
code
string | null
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
unbilled_receivable_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[]