Guides

Text tags

Place signature, initials, date, text and checkbox fields by writing tags such as {signature:Client} in your PDF.

Text tags let you place fields without coordinates: write a tag in the document (in Word, Google Docs, your PDF generator…) and Macaaw turns it into a field for the recipient whose role matches. The syntax is compatible with PandaDoc-style tags, so existing templates keep working.

Syntax#

Text
{type:Role}      field for the recipient with this role
{type:Role*}     the same, required
TagFieldRequired by default
{signature:Client}SignatureYes
{initials:Client}InitialsNo
{name:Client}Full name (filled from the recipient)No
{date:Client}Date signedNo
{text:Client}Free text the recipient typesNo
{checkbox:Client}CheckboxNo

Add * after the role to make any field required: {text:Client*}. Signatures are always required. Roles match the role of a recipient in the create call, ignoring case.

How tags become fields#

  • Macaaw reads the PDF's text layer, so the tag must be real text — not part of an image or a scan.
  • The field is placed where the tag starts, at least 120 × 30 pt for a signature, 50 × 24 pt for initials and 100 × 14 pt (name, text) or 80 × 14 pt (date). Leave that much room after the tag. A tag split over several text runs is still found.
  • The tag text is covered with a white box in the final PDF, so it does not show on the signed copy. Use white or very light text if you want it invisible in the original too.
  • Tags are on by default ("parse_text_tags": true). Send false to ignore them.

Errors#

A tag for a role that has no recipient is refused at creation; info.roles lists the roles that did not match:

400 Bad Request
{
  "type": "request_error",
  "code": "VALIDATION",
  "detail": "Please check what you entered. (unknown_role)",
  "info": {
    "reason": "unknown_role",
    "roles": [
      "Witness"
    ]
  }
}
Form fields work the same way: with "parse_form_fields": true, the PDF's own signature, text and checkbox fields named Role.something (for example Client.signature) become fields for that role; text fields named Role.name…, Role.date… or Role.initials… get that type. Converted form fields are removed from the stored PDF. Fields without a matching role prefix are listed in a 400.
Text tags · Macaaw API