# Create a customer contract > POST /api/customers/{id}/contracts on the Vigilbase One API. Source: https://docs.vigilbase.com/one/api/reference/customers/post-customers-id-contracts `POST https://one.vigilbase.com/api/customers/{id}/contracts` ## Authorizations Send one of these: - `Authorization` (string, header, required): Bearer access token from Vigilbase Identity (`auth.vigilbase.com`), sent as `Authorization: Bearer `. The CLI gets one with `vigilbase login`. - `Authorization` (string, header, required): Organisation API key (`vb_one_…`) from **Settings → API keys** in Vigilbase One, sent as `Authorization: Bearer vb_one_…`. Needs a key with write access: read-only keys get `403` with the code `read_only_key`. See [organisation API keys](https://docs.vigilbase.com/one/api#organisation-api-keys). - Permissions checked: `write:contracts` ## Path parameters - `id` (string, required) ## Body (application/json) - `name` (string, required): Min length 1. - `description` (string | null) - `status` (string, required): One of `draft`, `pending`, `active`, `expired`, `terminated`. - `effective_date` (any) - `expiration_date` (any) - `signed_date` (any) - `hubspot_deal_id` (string | null) - `stripe_subscription_id` (string | null) - `commonpaper_agreement_id` (string | null) - `commonpaper_url` (any) - `total_value` (number | null) - `currency` (string): Default `"USD"`. Min length 3, max length 3. - `billing_frequency` (any) - `auto_renewal` (boolean): Default `false`. - `renewal_notice_days` (integer): Default `30`. Minimum 0, maximum 9007199254740991. - `notes` (string | null) - `metadata` (object) - `linked_customer_id` (any) - `renews_contract_id` (any) - `created_by` (string | null) ## Responses ### 200 Success ### 401 Authentication required ### 403 Not permitted ## Example request ```bash # Token from `vigilbase login`, or a write API key (vb_one_…) curl --request POST \ --url 'https://one.vigilbase.com/api/customers/{id}/contracts' \ --header "Authorization: Bearer $VIGILBASE_TOKEN" \ --header 'Content-Type: application/json' \ --data '{"name":"","description":"","status":"draft","effective_date":"","expiration_date":"","signed_date":"","hubspot_deal_id":"","stripe_subscription_id":"","commonpaper_agreement_id":"","commonpaper_url":"","total_value":123,"currency":"USD","billing_frequency":"","auto_renewal":false,"renewal_notice_days":30,"notes":"","metadata":{},"linked_customer_id":"","renews_contract_id":"","created_by":""}' ```