Formify can read the internal names of PDF form fields and interpret pipe-separated tink-* attributes. This lets a normal PDF text field become a validated email input, SMS OTP field, BankID-verified organisation number, ID scan trigger, auto-filled date field, searchable value, and more.

How it works

Name the PDF form field with a human-readable label first, then add one or more attributes after pipe characters:

phone|tink-format-mobile|tink-sms-verification

In this example, phone is the field label. tink-format-mobile validates the mobile number format, and tink-sms-verification sends an OTP code by SMS that the signer must enter before continuing.

Syntax rules

Quick examples

PDF field name Result
email|tink-format-email|tink-email-verification Validates email format and sends an email OTP.
phone|tink-format-mobile|tink-sms-verification Validates Swedish mobile format and sends an SMS OTP.
verifyCompany|tink-orgnumber-verification[1] Starts BankID organisation verification for group [1].
companyName|tink-verified-orgnumber-companyname[1] Auto-fills the verified company name from the same verification group.
idScan|tink-scan-id[1] Opens ID scanning and reads MRZ data from a passport or national ID.
date|tink-date-now|tink-style-transparent Auto-fills today's date and makes the field background transparent.

Working with indexed attributes

Use the same [index] value when one field triggers a verification or scan and other fields should receive the result. The index is just a grouping key inside the PDF.

verifyCompany|tink-orgnumber-verification[1]
orgNumber|tink-verified-orgnumber[1]
companyName|tink-verified-orgnumber-companyname[1]
address|tink-verified-orgnumber-addressline1[1]
zip|tink-verified-orgnumber-zipCode[1]
city|tink-verified-orgnumber-city[1]

Before sending

After uploading a PDF through POST /files, use GET /files/{fileId}/fields to inspect the fields Formify detected before creating a document. This is useful when testing new attribute combinations or confirming that the PDF editor saved the expected internal field names.

Some attributes depend on account capabilities such as BankID, ID scanning, attachments, or Sign & Pay. Check GET /account/capabilities before relying on optional features in production.

Attribute reference

Organisation verification

AttributeTypeDescription
tink-orgnumber-verification[index]triggermanual-entry-forbiddenClickable input verifying organisation number and Beneficial Owner via Swedish BankID. Auto-populates verified organisation number and company name fields with the same index.
tink-orgnumber-verification-boardmember[index]triggermanual-entry-forbiddenClickable input verifying organisation number and either Beneficial Owner or Board Member via BankID. Auto-populates verified organisation number and company name fields with the same index.
tink-orgnumber-verification-kyc[index]triggermanual-entry-forbiddenKYC-adapted BankID verification. Results are stored for compliance. Auto-populates verified organisation number and company name fields with the same index.
tink-verified-orgnumber[index]auto-populatedVerified organisation number.
tink-verified-orgnumber-companyname[index]auto-populatedVerified company name.
tink-verified-orgnumber-addressline1[index]auto-populatedVerified company address line 1.
tink-verified-orgnumber-zipCode[index]auto-populatedVerified company zip code.
tink-verified-orgnumber-city[index]auto-populatedVerified company city.

Validation, verification, and styling

AttributeTypeDescription
tink-format-mobileformattingValidates Swedish mobile number format.
tink-format-emailformattingValidates email address format.
tink-sms-verificationtriggermanual-entry-forbiddenTriggers OTP verification by SMS.
tink-email-verificationtriggermanual-entry-forbiddenTriggers OTP verification by email.
tink-email-recipientReceives the completed document by email.
tink-date-nowauto-populatedAutomatically inserts the current date in ISO 8601 format.
tink-style-transparentformattingMakes the field transparent so it blends into a colored or styled PDF background.
tink-input-fullnamePrefills full name for visible signature fields.

ID scanning

Legal responsibility:

Passports and national ID documents contain highly sensitive identification data. In some countries, scanning or copying ID documents is only allowed in limited circumstances. Before enabling ID scanning in a flow, you are responsible for ensuring that you have a valid legal basis and that scanning, storing, and retaining the document is necessary and proportionate for your specific purpose.

Formify provides the technical capability. You remain responsible as data controller for assessing legal requirements, applying appropriate retention periods, and informing signees about how their ID document will be processed.

AttributeTypeDescription
tink-scan-id[index]triggermanual-entry-forbiddenFull ID scan button. Captures and reads a passport or national ID via camera and populates MRZ fields with the same index.
tink-scan-id-basic[index]triggermanual-entry-forbiddenPartial ID scan button. Populates MRZ fields with the same index and uses less strict validation.
tink-scan-id-passport[index]triggermanual-entry-forbiddenFull ID scan button that only allows passports. Populates MRZ fields with the same index.
tink-scan-id-passport-basic[index]triggermanual-entry-forbiddenPartial passport-only ID scan button. Populates MRZ fields with the same index and uses less strict validation.
tink-scanned-id-mrz-firstname[index]auto-populatedFirst name from scanned MRZ.
tink-scanned-id-mrz-lastname[index]auto-populatedLast name from scanned MRZ.
tink-scanned-id-mrz-personalnumber[index]auto-populatedPersonal number from scanned MRZ.
tink-scanned-id-mrz-documentid[index]auto-populatedDocument ID from scanned MRZ.
tink-scanned-id-mrz-nationality[index]auto-populatedNationality from scanned MRZ.
tink-scanned-id-mrz-nationalitycode[index]auto-populatedNationality code from scanned MRZ.
tink-scanned-id-mrz-birthdate[index]auto-populatedBirth date from scanned MRZ.
tink-scanned-id-mrz-expirydate[index]auto-populatedExpiry date from scanned MRZ.
tink-scanned-id-mrz-issuedate[index]auto-populatedIssue date from scanned MRZ.
tink-scanned-id-mrz-issuingstatecode[index]auto-populatedIssuing state code from MRZ.
tink-scanned-id-mrz-issuingstatename[index]auto-populatedIssuing state name from MRZ.
tink-scanned-id-mrz-placeofbirth[index]auto-populatedPlace of birth from MRZ.
tink-scanned-id-mrz-placeofissue[index]auto-populatedPlace of issue from MRZ.

Attachments, Sign & Pay, search, and sharing

AttributeTypeDescription
tink-upload-attachment[index]triggermanual-entry-forbiddenTriggers a client attachment upload dialog.
tink-uploaded-attachmentname[index]auto-populatedmanual-entry-forbiddenAuto-populated after attachment upload.
tink-sign-and-pay-email[index]Prefills Sign & Pay email field.
tink-search-{label}Custom searchable field. Replace {label} with the field label you want to search by.
tink-search-firstnameSearchable first name field.
tink-search-lastnameSearchable last name field.
tink-share-sms-phonenumberPrefills phone number for public link sharing.
tink-share-email-emailaddressPrefills email address for public link sharing.
tink-access-documentactionPublic link access before finalization.