
#set page(paper: "us-letter", margin: 2.5cm)
#set text(font: "Times", size: 11pt, fill: rgb("#111827"))
#align(center)[
#text(size: 16pt, weight: "bold")[#data.title] \
#v(5pt)
#text(size: 10pt, fill: luma(100))[Effective Date: #data.effective_date]
]
#v(1cm)
This Service Contract ("Agreement") is entered into by and between:
#v(0.5cm)
*Provider:* #data.provider.name, located at #data.provider.address ("Provider"), and \
*Client:* #data.client.name, located at #data.client.address ("Client").
#v(1cm)
#set heading(numbering: "1.")
#show heading: it => [
#v(0.5em)
#text(weight: "bold", size: 11pt)[#it]
#v(0.5em)
]
= Services Provided
The Provider agrees to perform the following services for the Client:
#data.services
= Payment Terms
The Client agrees to pay the Provider a total fee of *#data.payment.amount*. Payment shall be made according to the following schedule: #data.payment.schedule.
= Term and Termination
This Agreement shall commence on the Effective Date and shall continue until #data.termination_date, unless terminated earlier by either party upon #data.notice_period days written notice.
= Confidentiality
Both parties agree to maintain the confidentiality of any proprietary information shared during the term of this Agreement.
#v(2cm)
*IN WITNESS WHEREOF*, the parties have executed this Agreement as of the Effective Date.
#v(1cm)
#grid(
columns: (1fr, 1fr),
[
#line(length: 6cm)
#v(5pt)
*Provider Signature* \
#data.provider.name \
Date: __________________
],
[
#line(length: 6cm)
#v(5pt)
*Client Signature* \
#data.client.name \
Date: __________________
]
)
{
"title": "SOFTWARE DEVELOPMENT CONTRACT",
"effective_date": "August 15, 2026",
"provider": {
"name": "DevStudio LLC",
"address": "123 Code Lane, Developer City, DC 12345"
},
"client": {
"name": "Acme Startup Inc.",
"address": "456 Innovation Blvd, Tech Town, TT 67890"
},
"services": "Development of a custom mobile application as outlined in Appendix A.",
"payment": {
"amount": "$25,000.00",
"schedule": "50% upfront, 50% upon final delivery"
},
"termination_date": "December 31, 2026",
"notice_period": "30"
}
# 1. Save the Typst code from the tab above as 'template.typ'
# 2. Save the JSON data from the tab above as 'data.json'
# 3. Combine them and call the API (requires jq)
jq -n \
--arg t "$(cat template.typ)" \
--argjson d "$(<data.json)" \
'{ "data": $d, "template": $t }' > request.json
curl -X POST https://api.pdfdyno.com/v1/pdf/generate \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json \
--output contract.pdf