diff --git a/data/templates/affiliations.jats b/data/templates/affiliations.jats
index b6cc4f7d5..93238d22e 100644
--- a/data/templates/affiliations.jats
+++ b/data/templates/affiliations.jats
@@ -25,6 +25,9 @@ $endif$
 $if(affiliation.ror)$
 <institution-id institution-id-type="ROR">$affiliation.ror$</institution-id>
 $endif$
+$for(affiliation.pid)$
+<institution-id institution-id-type="$affiliation.pid.type$">$affiliation.pid.id$</institution-id>
+$endfor$
 </institution-wrap>$if(affiliation.street-address)$,
 $for(affiliation.street-address)$
 <addr-line>$affiliation.street-address$</addr-line>$sep$,
diff --git a/doc/jats.md b/doc/jats.md
index 99de0b3bf..362ae3bef 100644
--- a/doc/jats.md
+++ b/doc/jats.md
@@ -102,6 +102,13 @@ Metadata Values
         [`institution-id-type`](attr:institution-id-type) set to
         `ROR`.
 
+    `pid`
+    :   Array of persistent identifiers which are added as
+        [`<institution-id>`] elements. Each item must contain a map
+        with keys `type`, used as
+        [`institution-id-type`](attr:institution-id-type), and `id`,
+        used as element content.
+
     `street-address`
     :   The organization's street address; each list item is wrapped
         in an [`<addr-line>`] element, separated by a comma and