Skip to main content
POST
/
v1
/
contracts
Create Contract
curl --request POST \
  --url https://api.monk.com/v1/contracts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "planId": "plan-uuid-1234",
  "customerId": "cust-uuid-5678",
  "startDate": "2026-03-01",
  "endDate": "2027-03-01",
  "overrides": [
    {
      "basePricingId": "price-usage-5678",
      "unitAmount": "0.008"
    }
  ]
}
'
{
  "data": {
    "id": "contract-uuid-1234",
    "customerId": "cust-uuid-5678",
    "planId": "plan-uuid-1234",
    "name": "Pro Plan",
    "startDate": "2026-03-01",
    "endDate": "2027-03-01",
    "isActive": true,
    "createdAt": "2026-02-27T10:00:00.000Z"
  }
}
Omit endDate for a rolling month-to-month contract. Draft invoices are pre-generated automatically. Scope: contracts:write

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
planId
string
required
customerId
string
required
startDate
string<date>
required
endDate
string<date>

Omit for rolling month-to-month

netTerms
integer

Override plan default

overrides
object[]
creditGrantCents
integer | null

Omit = plan default, null = disable

creditSettings
object

Response

Contract created

data
object