Skip to content

11 × 8.5 in

Certificates

Award and recognition certificate

A landscape US Letter certificate for awards and volunteer or staff recognition. Serif typography on a cream sheet, a Markdown citation, two signature lines and a gold seal drawn in inline SVG with a generated scalloped edge and the organisation name set on a circle.

Letter landscapeLocale en-GBHTML + Jinja

Opens Dynamic Document API with this template preloaded in a free workspace.

Template language features

  • Loops
  • Conditionals
  • Filters
  • Markdown
  • Date formatting

Filters such as format_currency and qrcode are described in the template language reference.

Variables

Derived from the sample data: 5 top-level fields, 19 paths in total. Send the same shape as data.

PathTypeExample
organisationobject
organisation.namestring"Glasshouse Arts Collective"
organisation.locationstring"Leith, Edinburgh"
organisation.websitestring"glasshousearts.example.org"
awardobject
award.titlestring"Community Impact Award"
award.programmestring"Annual Recognition Awards"
award.yearnumber2026
award.presented_ondate"2026-09-19"
award.presented_atstring"the Autumn Gathering, Leith"
award.referencestring"GAC-AWD-2026-07"
award.localestring"en-GB"
recipientobject
recipient.namestring"Ayodele Brennan-Hartley"
recipient.rolestring"Volunteer lead, open print workshops"
citationstring"For four years of leading the **Saturday open …"
signatoriesarray<object> · 2
signatories[].namestring"Fionnuala Strachan"
signatories[].titlestring"Chair of Trustees"

Sample data

Fictional records used for previews. Replace them with your own data when you call the API.

data.json
{
  "organisation": {
    "name": "Glasshouse Arts Collective",
    "location": "Leith, Edinburgh",
    "website": "glasshousearts.example.org"
  },
  "award": {
    "title": "Community Impact Award",
    "programme": "Annual Recognition Awards",
    "year": 2026,
    "presented_on": "2026-09-19",
    "presented_at": "the Autumn Gathering, Leith",
    "reference": "GAC-AWD-2026-07",
    "locale": "en-GB"
  },
  "recipient": {
    "name": "Ayodele Brennan-Hartley",
    "role": "Volunteer lead, open print workshops"
  },
  "citation": "For four years of leading the **Saturday open print workshops**, welcoming more than six hundred first-time printmakers, and for bringing neighbours from across Leith together to create the collective's first community-made exhibition, *Pressed Together*.",
  "signatories": [
    { "name": "Fionnuala Strachan", "title": "Chair of Trustees" },
    { "name": "Idris Kemal-Rowe", "title": "Artistic Director" }
  ]
}

Source

The body markup with Jinja, the stylesheet placed in <head>.

{#- Award certificate on one US Letter landscape sheet. The seal is inline SVG: its scalloped edge is
    generated with a loop (24 circles rotated around the centre) and the organisation name runs
    along a circular path. The citation is Markdown, so emphasis and titles can be marked up. -#}
{%- set locale = award.locale | default("en-GB") -%}
{%- set scallops = 24 -%}

<div class="sheet">
  <div class="frame-outer"></div>
  <div class="frame-inner"></div>
  {% for corner in ["tl", "tr", "bl", "br"] %}<span class="corner corner-{{ corner }}"></span>{% endfor %}

  <main class="layout">
    <section class="text">
      <p class="programme">{{ award.programme }} {{ award.year }}</p>
      <h1 class="award-title">{{ award.title }}</h1>
      <div class="rule"></div>

      <p class="presented-to">Presented to</p>
      <p class="recipient">{{ recipient.name }}</p>
      {% if recipient.role %}<p class="recipient-role">{{ recipient.role }}</p>{% endif %}

      <div class="citation">{{ citation | markdown }}</div>

      <p class="occasion">
        Presented on {{ award.presented_on | format_date("full", locale) }}{% if award.presented_at %} at {{ award.presented_at }}{% endif %}
      </p>

      <div class="signatures">
        {% for person in signatories %}
        <div class="signature">
          <div class="sig-line"></div>
          <p class="sig-name">{{ person.name }}</p>
          <p class="sig-title">{{ person.title }}, {{ organisation.name }}</p>
        </div>
        {% endfor %}
      </div>
    </section>

    <aside class="seal-column">
      <svg class="seal" viewBox="0 0 200 250" role="img" aria-label="Seal of {{ organisation.name }}, {{ award.year }}">
        <defs>
          <path id="seal-arc" d="M100 100m-57 0a57 57 0 1 1 114 0a57 57 0 1 1-114 0"/>
        </defs>
        <path d="M80 150L50 240l20-12 16 20 30-92z" fill="#6d1f2f"/>
        <path d="M120 150l30 90-20-12-16 20-30-92z" fill="#4f1421"/>
        <circle cx="100" cy="100" r="80" fill="#b48a3c"/>
        {% for i in range(scallops) %}
        <circle cx="100" cy="21" r="8.5" fill="#b48a3c" transform="rotate({{ (360 / scallops * i) | round(2) }} 100 100)"/>
        {% endfor %}
        <circle cx="100" cy="100" r="76" fill="none" stroke="#e3c98f" stroke-width="1"/>
        <circle cx="100" cy="100" r="70" fill="#6d1f2f"/>
        <circle cx="100" cy="100" r="66" fill="none" stroke="#d9b977" stroke-width="0.8"/>
        <circle cx="100" cy="100" r="46" fill="none" stroke="#d9b977" stroke-width="0.8" stroke-dasharray="2 2.5"/>
        <text font-family="Merriweather, 'Liberation Serif', Georgia, serif" font-size="9.5" font-weight="700" fill="#f3e3bd" letter-spacing="1.5">
          <textPath href="#seal-arc" textLength="352" lengthAdjust="spacing">{{ organisation.name | upper }} · {{ award.year }} ·</textPath>
        </text>
        <path d="M100 66l7.6 16.4 17.9 2.3-13.1 12.4 3.3 17.7L100 106l-15.7 8.8 3.3-17.7-13.1-12.4 17.9-2.3z" fill="#e3c98f"/>
        <text x="100" y="134" text-anchor="middle" font-family="'Playfair Display', 'Liberation Serif', Georgia, serif" font-size="17" font-weight="700" fill="#f3e3bd">{{ award.year }}</text>
      </svg>
      <p class="org-name">{{ organisation.name }}</p>
      <p class="org-meta">{{ organisation.location }}</p>
      <p class="reference">Ref. {{ award.reference }}</p>
    </aside>
  </main>
</div>

Render it with the API

After adding the template to your workspace, render it by ID and pass your data. Arrays are shortened here.

curl -X POST https://api-eu.dynamicdocumentapi.com/v1/renders \
  -H "Authorization: Bearer $DYNAMIC_DOCUMENT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "type": "template",
    "template_id": "tpl_01J9ZK3M7Q8V5W2X4Y6Z8A0B1C"
  },
  "data": {
    "organisation": {
      "name": "Glasshouse Arts Collective",
      "location": "Leith, Edinburgh",
      "website": "glasshousearts.example.org"
    },
    "award": {
      "title": "Community Impact Award",
      "programme": "Annual Recognition Awards",
      "year": 2026,
      "presented_on": "2026-09-19",
      "presented_at": "the Autumn Gathering, Leith",
      "reference": "GAC-AWD-2026-07",
      "locale": "en-GB"
    },
    "recipient": {
      "name": "Ayodele Brennan-Hartley",
      "role": "Volunteer lead, open print workshops"
    },
    "citation": "For four years of leading the **Saturday open print workshops**, welcoming more than six hundred first-time printmakers, and for bringing neighbours from across Leith together to create the collective'\''s first community-made exhibition, *Pressed Together*.",
    "signatories": [
      {
        "name": "Fionnuala Strachan",
        "title": "Chair of Trustees"
      },
      {
        "name": "Idris Kemal-Rowe",
        "title": "Artistic Director"
      }
    ]
  },
  "output": {
    "format": "pdf",
    "filename": "certificate-award-recognition.pdf"
  }
}'