Your Contract Already Exists. It's a Word Document.
Almost nobody's first contract starts in a template editor. It starts in Word. A lawyer drafted it, someone added the logo, it went back and forth with tracked changes for three weeks, and now it lives in a shared drive as Agreement_FINAL_v7.docx.
You don't need to rewrite that document to start sending it for signature. You need to bring it in, fix the handful of things that don't survive the trip, and mark the spots where names, amounts, and signatures go.
This is how to do that, including the parts that usually go wrong.
1. Import the document
In the dashboard, go to Templates → Create Template → Import Document and pick your .docx file.
APISign converts the document into markdown, which is what the template editor works in. Markdown sounds technical, but for a contract it's just text with a few symbols: # for a heading, **double asterisks** for bold, 1. for a numbered clause. You'll see your contract on the left and a live preview of how signers will see it on the right.
If your document is an older .doc file, open it in Word and save it as .docx first. We'll tell you if you upload one by mistake.
Images come along
Logos, seals, diagrams, and anything else embedded in the document now come across with it. Word stores pictures inside the file; on import we pull each one out, store it, and put a short link in its place. Your template stays readable instead of being buried under thousands of characters of encoded image data.
You can also add images directly: paste an image into the editor, or drag one in, and it's uploaded and placed right where you put it.
2. Check what came across
Conversion keeps the structure of a document, not its exact look. Here's what to expect:
| In Word | After import |
|---|---|
| Headings using Word's Heading styles | Headings |
| Bold and italic | Kept |
| Numbered and bulleted lists | Kept |
| Embedded images | Kept, stored and linked |
| Tables | Kept, as markdown tables |
| Underline, fonts, colors, text sizes | Dropped |
| Page headers and footers | Dropped — use your letterhead instead (step 5) |
| Page breaks | Dropped |
Two of these deserve a closer look.
Headings that aren't really headings. If the original author made a section title by selecting the text and making it bold and 16pt, Word doesn't know it's a heading, so neither do we. It comes through as bold text. Put a # (or ## for a subsection) in front of it.
Tables. A pricing table or a schedule of payments comes through as a markdown table, which looks like this in the editor:
| Year | Allocation |
| --- | --- |
| 2026 | £5,000 |
| 2027 | £5,500 |
Markdown tables are simpler than Word's, so give them a quick look. The first row always becomes the header. Merged cells are split back into ordinary ones, and a cell with several paragraphs is joined into a single line. The preview updates as you type, so it's easy to tidy up.
3. Turn the blanks into variables
Word contracts are full of spots meant to be filled in by hand: [CLIENT NAME], ________, "the sum of £____". Each one becomes a variable: a name wrapped in double curly braces.
Before:
This agreement is between Acme Ltd and [CLIENT NAME].
The Client agrees to pay the sum of £________ by ________.
Signed: ______________________
After:
This agreement is between Acme Ltd and {{client_name}}.
The Client agrees to pay the sum of £{{total_amount}} by {{payment_due_date}}.
Signed: {{client_signature}}
Use lowercase letters and underscores, and name things for what they are. {{client_name}} will still make sense in a year. {{field_3}} won't.
If the same value appears in several places, use the same variable each time. Fill it in once and it shows up everywhere.
4. Decide who fills in what
Open the Variables tab. Every variable you added is listed there, and each one needs two decisions.
Who completes it?
- Creator: you, when you create a contract from the template. Client names, amounts, dates, project descriptions.
- Signer: the person signing, while they sign. Signatures, initials, their printed name, the time they signed.
What type is it? Creators fill in text, dates, emails, and phone numbers. Signers get signature, initials, signer name (filled in automatically from who they are), and timestamp (filled in automatically when they sign).
There's one rule you can't skip: a template needs at least one signature field. That's a variable of type Signature, completed by the signer. If it's missing, the template won't save, and the error tells you exactly that. It's deliberate: a contract nobody can sign isn't one.
5. Put your letterhead back
Page headers don't survive the import, and that's usually where the letterhead lived. It belongs in your branding settings instead, so it's applied the same way to every document you send.
Go to Account → Branding:
- Letterhead image: runs across the top of every signed PDF. Make it 2550×300 pixels, which is the full width of a letter-size page at print resolution.
- Logo: used at the top of the PDF when you haven't set a letterhead.
- Colors: used in signing emails and on the signing page, so the whole experience looks like it came from you.
Images save the moment they upload. Set this once and every contract picks it up, including the ones you've already built templates for.
6. Send yourself a test
Before a real client sees it, run the whole thing end to end. Create a contract from your new template, fill in the creator fields, and tick Send as a test.
A test contract goes through exactly the same flow as a real one, with three differences:
- The signing request goes to you, not to the signers you listed.
- You're not charged for it, and it works even with no balance on your account.
- The final PDF is stamped TEST on every page, so it can never be mistaken for a binding document once it leaves your inbox.
Sign it the way your client would, then open the PDF. Look for the things a careful reader would notice: a variable you forgot to fill, a heading that's still plain bold text, a table whose first row isn't really a header, a letterhead that's slightly too tall. Fix the template, send another test, and repeat until it's right.
From then on, every new contract is a few fields and a click. The hard part — the drafting, the three weeks of tracked changes — was already done. It was sitting in a Word document all along.
For developers
Everything above works through the API too. If you're connecting an AI agent through our MCP server, template_upload takes a base64-encoded .docx and returns the converted template, and template_update sets the field definitions. Images are pulled out and stored the same way they are in the dashboard, so templates created by an agent stay just as readable as ones created by hand.
For the full details on variables and field types, see the template variables docs and the writing guide.
