SaaS Services Agreement
A SaaS Sales Agreement based on the YCombinator template.
Use this blueprint to create an agreement with detailed terms and conditions that cover every aspect of the SaaS sale. Payment terms, SLAs, support, warranties, confidentiality and much more!
An envelope using this blueprint may be created via the API or it may be created directly on the web using a form that has a one-to-one correspondence with the API.
The API to use a blueprint is identical from blueprint to blueprint except for two things. First, each blueprint has a unique context
object that's passed in the API call. This is because the information needed to generate a Confidentiality Agreement is different than the information needed to generate an Independent Contractor Agreement, for example.
Second, a blueprint may sometimes call for you to pass in the parties
separately from the context
, but that depends on the shape of that blueprint's context
. This SaaS Services Agreement blueprint does not require a parties
property.
Request Body
- Name
name
- Type
- string required
- Description
The name of the envelope. Limited to 254 characters that are alphanumeric, spaces, numbers, or symbols.
- Name
context
- Type
- object required
- Description
An object containing the specific information required to render the blueprint. The shape of this object depends on which blueprint is being used.
Since this is an official blueprint, the reference on the shape of their
context
is provided in this documentation.
- Name
webhook_url
- Type
- string
- Description
The URL where Magistrate will
POST
webhooks related to this envelope. If this is provided, the API will immediatelyPOST
a webhook of typewebhook_url_verification
to the endpoint, and if it does not return a2xx
response within a couple seconds, the whole API call fail with a400
response.
- Name
autosign
- Type
- boolean
- Description
If
autosign
istrue
, any signatures belonging to the creator of the envelope will be signed automatically. The creator will not receive an email soliciting their signature since they will have already signed.This is ignored if the
action
isdraft
. This is also ignored if the creator of the envelope is not also a signatory.
- Name
suppress_emails
- Type
- string
- Description
If provided, it must be the string
creator
. If this is provided, the creator of the envelope will not receive any emails related to the envelope.
- Name
action
- Type
- string required
- Description
One of the following strings:
send
ordraft
.send
will generate an envelope and send it for signature to all parties in one step.draft
will generate an envelope and save it as a draft. To make any edits or send it for signature, you must log into the web user interface.
Request
curl "https://api.getmagistrate.com/v1/envelopes/blueprint/official/saas-services-agreement/" \
-H "Authorization: Token d0b0b4628e184832b1b0bc1e93fbd487" \
-H "Content-Type: application/json" \
-d '{
"name": "SaaS Services Agreement",
"context": {
"basic": {
"monthly_fee": 10000,
"term": 12,
"favor": "balanced",
"date": "2023-02-01",
"governing_law": "NY"
},
"services": [
"Custom blueprint generation",
"Electronic signatures",
"API access"
],
"company": {
"name": "Magistrate Inc.",
"email": "harry@getmagistrate.com",
"is_entity": true,
"authorized_human": {
"name": "Harry Khanna",
"title": "Chief Executive Officer"
}
},
"customer": {
"name": "BigCorp, Inc.",
"is_entity": true,
"email": "bigcorp@example.com",
"authorized_human": {
"name": "Jane Smith",
"title": "Chief Executive Officer"
}
}
},
"webhook_url": "https://your-domain.example.com/webhooks/",
"action": "send"
}'
Context
context
specific to this blueprint. It is the object that you pass to the context property of the request body.- Name
basic
- Type
- object required
- Description
Basic information about the agreement.
Basic Information Expand
- Name
services
- Type
- list of strings required
- Description
Name and briefly describe the services your SaaS provides. These are not implementation services, which are separately listed.
- Name
service_capacity
- Type
- object
- Description
Are there any limits on the customer's usage?
Service Capacity Limits Expand
- Name
implementation
- Type
- object
- Description
Are there any one-time implementation services the company is doing to set the customer up?
Implementation Expand
- Name
pilot
- Type
- object
- Description
Is there a pilot period where the services are discounted or restricted, and the agreement can be easily terminated by the customer?
Pilot Use Expand
- Name
sla
- Type
- object
- Description
Does the company commit to a certain level of uptime (e.g., 99.9% reliability)?
Service Level Agreement Expand
- Name
support
- Type
- object
- Description
Does the company commit to email or telephone technical support services that are different than its standard practice?
Special Support Terms Expand
- Name
on_prem
- Type
- boolean
- Description
Is any portion of the software deployed or hosted on the customer's premesis or devices?
- Name
press_release
- Type
- boolean
- Description
Should the parties release a joint press release about the relationship within 90 days?
- Name
company
- Type
- object required
- Description
Information about the company providing the SaaS services.
Company Expand
- Name
customer
- Type
- object required
- Description
Information about the customer purchasing the SaaS services.
Customer Expand
{
"basic": {
"monthly_fee": 10000,
"term": 12,
"favor": "balanced",
"date": "2023-02-01",
"governing_law": "NY"
},
"services": ["Custom blueprint generation", "Electronic signatures", "API access"],
"company": {
"name": "Magistrate Inc.",
"email": "harry@getmagistrate.com",
"is_entity": true,
"authorized_human": {
"name": "Harry Khanna",
"title": "Chief Executive Officer"
}
},
"customer": {
"name": "BigCorp, Inc.",
"is_entity": true,
"email": "bigcorp@example.com",
"authorized_human": {
"name": "Jane Smith",
"title": "Chief Executive Officer"
}
}
}
Response
If the request is successful, the endpoint will return a status code of 201 Created
.
The response body will be the new envelope object.