Skip to content

Document template · generic.legal.sow

Statement of Work

  • Render-verified
  • Legal-sensitive
  • Version 1.0.0

Statement of Work (SOW) executed under a Master Services Agreement (MSA). Captures a specific engagement's scope, deliverables with acceptance criteria, fees model, key personnel, assumptions, dependencies and change-control. Governs by reference to the parent MSA.

JSON Schema

Fields in this template

Data sent to the API is validated against the template’s JSON Schema before anything is rendered. This template defines 32 fields:

Field Required Type Description
msa_reference Required object
msa_reference.title Required string
msa_reference.date Required date
msa_reference.parties Required string Short narrative naming both parties to the parent MSA.
msa_reference.reference Optional string
sow_number Required string
effective_date Required date
scope_specific Required string Detailed scope of this engagement, scoping the MSA's service universe down to concrete work.
deliverables Required array of object
deliverables[].id Required string
deliverables[].description Required string
deliverables[].acceptance_criteria Required string Objective, testable criteria for the Client's acceptance of the deliverable.
deliverables[].due_date Required date
fees Required object
fees.model Required enum
fees.amount_or_rate Optional string Prose describing the amount or rate: 'EUR 48,000 fixed', 'EUR 950/day T&M', 'EUR 6,000/month retainer'.
fees.currency Required string ISO 4217.
fees.milestones_optional Optional array of object
expenses_policy Optional string Treatment of travel, lodging and out-of-pocket expenses (pre-approval, caps, receipts, markup).
key_personnel Required array of object
key_personnel[].role Required string
key_personnel[].name Required string
key_personnel[].allocation_pct Required integer
assumptions Optional array of string
dependencies Optional array of string
change_control_summary Optional string How scope changes are raised, impact-assessed and signed off (typically by mutual written amendment to this SOW).
signatories Required array of object
signatories[].party Required enum
signatories[].name Required string
signatories[].role Required string

+2 more fields — the full JSON Schema is available in the dashboard and via the API.

POST /render

Generate it

One POST /render call: send your JSON, get the finished PDF back. Or skip the JSON entirely and describe the document in plain language on chut.app.

curl
curl -X POST https://api.papii.eu/render \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "generic.legal.sow",
    "data": { ... },
    "options": {"language": "en"}
  }' -o sow.pdf

Frequently asked questions

What is “Statement of Work”?

Statement of Work (SOW) executed under a Master Services Agreement (MSA). Captures a specific engagement's scope, deliverables with acceptance criteria, fees model, key personnel, assumptions, dependencies and change-control. Governs by reference to the parent MSA. On papii this document is available as template generic.legal.sow: a JSON Schema plus a deterministic PDF renderer, so the same data always produces the same document.

Can I generate a Statement of Work with AI?

Yes. chut.app — the AI back office papii powers — fills this template from a plain-language description: you describe the document in one sentence, the AI structures the data, papii validates it against the schema and renders the PDF. Developers can also call the papii API directly with structured JSON.

Is the Statement of Work template legally compliant?

This template is render-verified: its schema, sample data and PDF output are automatically tested on every release. It is published with status “ready”, meaning it has not yet been through papii’s final legal review. Where it references specific legislation, that is stated in the template description — always have a professional check documents with legal effect before relying on them.