Create a quote-generated Contract
Creates a Contract from a Quote using templateId and one or more signers. Optional inputs are message, mergeFieldOverrides, and External References. The first customer signer's name fills customer.fullName unless mergeFieldOverrides sets that value.
Creates a Contract from a Quote using templateId and one or more signers. Optional inputs are message, mergeFieldOverrides, and External References. The first customer signer's name fills customer.fullName unless mergeFieldOverrides sets that value.
Create a quote-generated Contract. Use an organization API key with contracts:write. Check the response envelope and meta.requestId before triggering dependent workflow steps.
Required scopes
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Quote identifier returned by the Organization API. |
Request body
| Field | Type | Description |
|---|---|---|
| templateIdrequired | string | Optional unless marked required. |
| signers[]required | array<object> | Optional unless marked required. |
| signers[].namerequired | string | Optional unless marked required. |
| signers[].emailrequired | string | Optional unless marked required. |
| signers[].rolerequired | string | Optional unless marked required. |
| signers[].order | integer | Optional unless marked required. |
| message | string | null | Optional unless marked required. |
| mergeFieldOverrides | object | Optional unless marked required. |
| externalReferences[] | array<object> | Optional unless marked required. |
| externalReferences[].externalSystemrequired | string | Optional unless marked required. |
| externalReferences[].externalObjectrequired | string | Optional unless marked required. |
| externalReferences[].externalIdrequired | string | Optional unless marked required. |
| externalReferences[].metadata | object | Optional unless marked required. |
{
"templateId": "contract_template_123",
"signers": [
{
"name": "Ada Lovelace",
"email": "ada@example.com",
"role": "CUSTOMER",
"order": 0
}
],
"message": "Please review and sign the installation contract."
}Responses
Contract create action envelope
#/components/schemas/OrgApiActionEnvelope
Missing or invalid organization API key
#/components/schemas/OrgApiError
Organization billing access or an endpoint-specific business quota denied the request
#/components/schemas/OrgApiError
Missing required scope: contracts:write
#/components/schemas/OrgApiError
Rate limit exceeded
#/components/schemas/OrgApiError
Errors
Static examples
curl -X POST "$SOLAROS_BASE_URL/api/v1/quotes/$SOLAROS_QUOTE/contracts" \
-H "Authorization: Bearer $SOLAROS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SOLAROS_IDEMPOTENCY_KEY" \
--data '{"templateId":"contract_template_123","signers":[{"name":"Ada Lovelace","email":"ada@example.com","role":"CUSTOMER","order":0}],"message":"Please review and sign the installation contract."}'