<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Vijay Amalan</title>
    <description>The latest articles on Forem by Vijay Amalan (@vijay_amalan_98).</description>
    <link>https://forem.com/vijay_amalan_98</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3541021%2F899d940f-cb5a-48dc-8da6-a41325de674d.png</url>
      <title>Forem: Vijay Amalan</title>
      <link>https://forem.com/vijay_amalan_98</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vijay_amalan_98"/>
    <language>en</language>
    <item>
      <title>How to Submit a Data Subject Request with BoldSign</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Wed, 15 Apr 2026 05:27:34 +0000</pubDate>
      <link>https://forem.com/boldsign/how-to-submit-a-data-subject-request-with-boldsign-50ag</link>
      <guid>https://forem.com/boldsign/how-to-submit-a-data-subject-request-with-boldsign-50ag</guid>
      <description>&lt;p&gt;For BoldSign users, we now have a streamlined process for submitting a data subject request for those individuals based in the European Economic Area (EEA) and UK.&lt;/p&gt;

&lt;p&gt;Rights provided under the General Data Protection Regulation (GDPR), UK Data Protection Act 2018, and UK GDPR allow individuals to have more control over their data. In this blog, we will outline how BoldSign users in the EEA and UK can exercise these rights.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of data subject rights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Access:&lt;/strong&gt; You have the right to be informed about the personal data we process about you and to request access to it.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Rectification:&lt;/strong&gt; You can ask us to amend or update your personal data if it’s inaccurate or incomplete.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Erasure:&lt;/strong&gt; You may request that we delete certain personal data we hold about you.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Restriction:&lt;/strong&gt; You can ask us to temporarily or permanently stop processing all or some of your personal data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Object:&lt;/strong&gt; You have the right to object to our processing of your personal data at any time, especially if it relates to your specific situation or involves direct marketing.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Data portability:&lt;/strong&gt; You can request a copy of your personal data in electronic format and have the right to transmit that data to another service provider.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to exercise rights with BoldSign
&lt;/h2&gt;

&lt;p&gt;As part of our commitment to data protection and transparency, BoldSign provides clear mechanisms for individuals to exercise their rights under GDPR. If you wish to access, correct, delete, restrict, or transfer your personal data, or object to its processing, you may submit a formal request through our designated channels. We are dedicated to responding promptly and in accordance with applicable legal requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Access the GDPR Request Form&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you wish to exercise your GDPR rights, you can make a request by filling out our &lt;a href="https://boldsign.com/gdpr-request-form-secure-esignature?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;GDPR Request Form&lt;/a&gt;. Our legal team will respond in a timely manner to your request in accordance with GDPR requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; &lt;strong&gt;Fill out the required fields&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Name:&lt;/strong&gt; Enter your full name to help BoldSign identify your account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer email address:&lt;/strong&gt; Provide the email address associated with your BoldSign account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Details:&lt;/strong&gt; Describe your request clearly. Include specific information to ensure timely and accurate handling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requested action&lt;/strong&gt;: Select the GDPR right you wish to exercise from the dropdown menu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Request corrections to your data.&lt;/li&gt;
&lt;li&gt;  Request erasure of your data.&lt;/li&gt;
&lt;li&gt;  Request a copy of your data.&lt;/li&gt;
&lt;li&gt;  Request a restriction on the processing your data.&lt;/li&gt;
&lt;li&gt;  Object to data processing.&lt;/li&gt;
&lt;li&gt;  Exercise your data portability rights.&lt;/li&gt;
&lt;li&gt;  Other: specify what you would like us to provide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Submit the form&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once completed, submit the form securely. BoldSign will acknowledge receipt and begin processing your request.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to expect after submission
&lt;/h2&gt;

&lt;p&gt;Upon submission of the form, our legal team will be notified. You should expect a timely receipt of submission. If any follow-up information is required, our team will reach out to you directly. We review each data subject access request carefully to ensure compliance and consideration.&lt;/p&gt;

&lt;p&gt;BoldSign also maintains a GDPR representative. Individuals in the UK and EU can additionally submit their data subject requests through the following means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EU Representative&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Bird &amp;amp; Bird GDPR Representative Services SRL for EU&lt;/li&gt;
&lt;li&gt;  Avenue Louise 235&lt;/li&gt;
&lt;li&gt;  1050 Bruxelles&lt;/li&gt;
&lt;li&gt;  Belgium &lt;/li&gt;
&lt;li&gt;  &lt;a href="mailto:EUrepresentative.syncfusion@twobirds.com"&gt;EUrepresentative.syncfusion@twobirds.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;UK Representative&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Bird &amp;amp; Bird GDPR Representative Services for UK&lt;/li&gt;
&lt;li&gt;  12 New Fetter Lane&lt;/li&gt;
&lt;li&gt;  London EC4A 1JP&lt;/li&gt;
&lt;li&gt;  United Kingdom&lt;/li&gt;
&lt;li&gt;  &lt;a href="mailto:UKrepresentative.syncfusion@twobirds.com"&gt;UKrepresentative.syncfusion@twobirds.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Sign up for a free 30-day trial&lt;/a&gt; on the &lt;a href="https://boldsign.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign website&lt;/a&gt; or &lt;a href="https://staging.boldsign.com/request-demo/" rel="noopener noreferrer"&gt;request a demo&lt;/a&gt; to see it in action.&lt;/p&gt;

</description>
      <category>esignature</category>
      <category>submission</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>Free Facebook QR Code Generator for Profiles, Pages &amp; Posts</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Tue, 14 Apr 2026 06:15:03 +0000</pubDate>
      <link>https://forem.com/boldsign/free-facebook-qr-code-generator-for-profiles-pages-posts-50ng</link>
      <guid>https://forem.com/boldsign/free-facebook-qr-code-generator-for-profiles-pages-posts-50ng</guid>
      <description>&lt;p&gt;BoldSign is thrilled to introduce our free &lt;a href="https://boldsign.com/facebook-qr-code-generator?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Facebook QR Code Generator&lt;/a&gt; a fast, intuitive, and secure way to turn any Facebook profile, Page, post, or event link into a scannable QR code. Whether you’re a creator growing your audience, a business promoting your Page, or an event host driving RSVPs, this tool is built to simplify how people find you on Facebook at no cost and without complexity.&lt;/p&gt;

&lt;p&gt;With no sign‑up required and unlimited code generation, the BoldSign Facebook QR Code Generator helps you create and customize QR codes online in seconds. Enjoy instant, client‑side processing that keeps your data private, and share your Facebook presence effortlessly across print and digital on any device, securely and with ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features of the BoldSign Facebook QR Code Generator
&lt;/h2&gt;

&lt;p&gt;Our Facebook QR code generator is designed with simplicity, speed, and security at its core. Here’s what makes it exceptional:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Client&lt;/strong&gt;&lt;strong&gt;‑&lt;/strong&gt;&lt;strong&gt;side security&lt;/strong&gt;: All processing happens directly in your browser. Your URL and QR code data never leave your device, ensuring complete privacy.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Zero sign&lt;/strong&gt;&lt;strong&gt;‑&lt;/strong&gt;&lt;strong&gt;ups&lt;/strong&gt;: Create your Facebook QR code instantly, no account creation or registration needed.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Clean, intuitive interface&lt;/strong&gt;: Just paste your Facebook profile, Page, or post link, customize if needed, and generate your QR code with one click.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Cross‑platform compatibility&lt;/strong&gt;: Works smoothly across Windows, macOS, Linux, iOS, and Android, no downloads, no installations.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Customization options&lt;/strong&gt;: Adjust colors, patterns to match your brand or personal style and make your QR code stand out.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Unlimited usage&lt;/strong&gt;: Generate as many Facebook QR codes as you want with no limits on scans, downloads, or usage.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;High&lt;/strong&gt;&lt;strong&gt;‑&lt;/strong&gt;&lt;strong&gt;quality downloads&lt;/strong&gt;: Download crisp, watermark‑free QR codes suitable for print materials, posters, packaging, or online sharing.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Instant preview&lt;/strong&gt;: See your QR code update in real time as you customize it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why use the free BoldSign Facebook QR Code Generator
&lt;/h2&gt;

&lt;p&gt;Choosing our Facebook QR code generator offers a range of valuable benefits that make it the ideal solution for individuals, creators, and businesses looking to increase their visibility on Facebook:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Fast sharing:&lt;/strong&gt; Skip long links-let people reach your Facebook profile or page instantly just by scanning.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Boost engagement:&lt;/strong&gt; Perfect for businesses, creators, and brands looking to drive likes, follows, event responses, or page visits.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Enhanced accessibility:&lt;/strong&gt; Great for printing materials like flyers, menus, business cards, posters, and product packaging.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Time-saving and professional:&lt;/strong&gt; Generate polished, reliable QR codes without extra tools or paid software.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Secure by design:&lt;/strong&gt; Your data stays local because processing is fully client-side, ensuring privacy for both personal and business profiles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to create a Facebook QR code using BoldSign
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Paste your Facebook link:&lt;/strong&gt; Enter the link to your profile, Page, event, or post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Customize your QR code (optional):&lt;/strong&gt; Choose your preferred pattern color, background color, and size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Download instantly:&lt;/strong&gt; Click Generate and download your QR code in seconds-ready to use anywhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllstktk76qlrwx9vfpgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllstktk76qlrwx9vfpgi.png" alt="" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Our free &lt;a href="https://boldsign.com/facebook-qr-code-generator?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Facebook QR Code Generator&lt;/a&gt; is a powerful solution for anyone looking to share their Facebook presence quickly, securely, and without any cost. Designed for creators, professionals, and businesses alike, it offers a smooth, intuitive experience that makes connecting with your audience effortless. With client‑side processing, cross‑platform compatibility, and unlimited, watermark‑free QR code creation, you get a reliable tool that keeps your data private while delivering professional‑grade results.&lt;/p&gt;

&lt;p&gt;Whether you’re growing a Facebook Page, promoting an event, sharing a profile, or driving engagement for a post, this tool ensures your audience can reach you instantly with a simple scan. Start generating your free Facebook QR codes today and simplify how people discover and engage with you online. If you’re ready to enhance your workflow even further, explore more tools in the &lt;a href="https://boldsign.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt; ecosystem designed to support secure, seamless digital interactions.&lt;/p&gt;

&lt;p&gt;Ready to simplify your document workflows? &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Sign up for a free 30-day trial&lt;/a&gt; or connect with our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support team&lt;/a&gt; for a personalized &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-whatsapp-qr-code-online/" rel="noopener noreferrer"&gt;Free WhatsApp QR Code Generator for Instant Chat Links&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-twitter-qr-code-online/" rel="noopener noreferrer"&gt;Introducing BoldSign’s Twitter QR Code Generator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-snapchat-qr-code-online/" rel="noopener noreferrer"&gt;Introducing BoldSign’s Snapchat QR Code Generator&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>qrcode</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>Digital Patient Intake Workflow for Clinics: Faster, Simpler Check-Ins</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Mon, 13 Apr 2026 06:34:20 +0000</pubDate>
      <link>https://forem.com/boldsign/digital-patient-intake-workflow-for-clinics-faster-simpler-check-ins-497l</link>
      <guid>https://forem.com/boldsign/digital-patient-intake-workflow-for-clinics-faster-simpler-check-ins-497l</guid>
      <description>&lt;p&gt;Busy mornings at clinics often look the same, patients lining up, staff flipping through forms, someone asking for a pen, and someone else trying to read handwriting that looks like a treasure map. But the real problem? Everyone is waiting for paperwork that shouldn’t take this long.&lt;br&gt;&lt;br&gt;
What clinics need is a smooth, predictable process where patients fill and sign everything on their phone , even before stepping inside.&lt;br&gt;&lt;br&gt;
Tools like BoldSign simply help collect the signatures and consents in this workflow, without complicating the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why digital patient intake matters now
&lt;/h2&gt;

&lt;p&gt;Clinic front desks are often the most overloaded area. Paper intake multiplies the stress:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  More waiting&lt;/li&gt;
&lt;li&gt;  More missing info&lt;/li&gt;
&lt;li&gt;  More data entry&lt;/li&gt;
&lt;li&gt;  More risk of lost documents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Digital intake flips this around by letting patients:&lt;/p&gt;

&lt;p&gt;✔ Fill forms anytime&lt;br&gt;&lt;br&gt;
✔ Sign consents securely&lt;br&gt;&lt;br&gt;
✔ Upload ID/insurance photos&lt;br&gt;&lt;br&gt;
✔ Reduce lobby congestion&lt;/p&gt;

&lt;p&gt;Front desk staff finally focus on helping patients, not chasing paperwork.&lt;br&gt;&lt;br&gt;
Key Takeaway: Every minute saved at intake reduces delays throughout the rest of the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple real-life scenario
&lt;/h2&gt;

&lt;p&gt;A pediatric clinic started sending parents a link the evening before appointments. Parents complete the child’s history, medication list, and sign the consent on their phone while preparing school bags. When they arrive the next morning, check-in takes under 60 seconds. The doctor has cleaner data, the nurses don’t retype anything, and the clinic runs smoother.&lt;br&gt;&lt;br&gt;
In simple words, “Parent completing a mobile-friendly digital patient intake form on a smartphone before a clinic visit.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Manual workaround
&lt;/h2&gt;

&lt;p&gt;Many clinics think they’re “digital” by emailing a PDF to patients. But in reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Patient needs to print it&lt;/li&gt;
&lt;li&gt;  Fill it manually&lt;/li&gt;
&lt;li&gt;  Scan or photograph each page&lt;/li&gt;
&lt;li&gt;  Send low-quality images back&lt;/li&gt;
&lt;li&gt;  Clinic staff re-type everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This doesn’t save time; it simply moves the same problems to email.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Note:&lt;/strong&gt; If any step requires scanning or printing, it’s not truly digital.&lt;/p&gt;

&lt;h2&gt;
  
  
  Better, simpler approach: A patient-first workflow
&lt;/h2&gt;

&lt;p&gt;Here’s a clean, clinic-friendly workflow almost any practice can adopt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Step 1: Send a pre-visit intake link: 24–48 hours before the appointment, send the intake form via email or SMS.&lt;/li&gt;
&lt;li&gt;  Step 2: Patient fills the form on mobile: Demographics, history, symptoms, all with required fields to prevent missing info.&lt;/li&gt;
&lt;li&gt;  Step 3: Collect digital signatures: General consent, telehealth consent, privacy notices, imaging consent, etc. Tools like BoldSign handle this part smoothly.&lt;/li&gt;
&lt;li&gt;  Step 4: Collect uploads: Patients snap and upload insurance card, ID, Previous reports (optional).&lt;/li&gt;
&lt;li&gt;  Step 5: Automated checks: The system prevents submission if something essential is missing.&lt;/li&gt;
&lt;li&gt;  Step 6: Front desk verifies quickly: No more data entry. No more scrambling. Just a quick confirmation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How BoldSign supports digital intake
&lt;/h2&gt;

&lt;p&gt;BoldSign fits naturally into the intake workflow by handling the signature part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Reusable consent templates&lt;/li&gt;
&lt;li&gt;  Place required signature/date fields&lt;/li&gt;
&lt;li&gt;  Patient signs on mobile&lt;/li&gt;
&lt;li&gt;  Clinic gets a final PDF and audit trail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use no-code templates or add light automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using BoldSign templates (no coding needed)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Upload your consent form to &lt;a href="https://boldsign.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  Drag signature/date fields onto the form.&lt;/li&gt;
&lt;li&gt;  Save as a &lt;a href="https://boldsign.com/electronic-signature-features/templates?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Template&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  For every patient, send only the name and email, done.&lt;/li&gt;
&lt;li&gt;  Patient signs on mobile; you receive the finished document securely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Callout: You don’t need to automate on day one. Start with templates. Add automation only when your workflow is stable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clinic use cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Family Medicine: Digital intake helps collect basic health history and consent forms ahead of time, making check-ins faster and smoother.&lt;/li&gt;
&lt;li&gt;  Eye Clinics: Patients can review imaging and lens‑fitting consents before arriving, reducing delays during busy appointment hours.&lt;/li&gt;
&lt;li&gt;  Dermatology: Photo consent and treatment agreements are completed early, so dermatologists can focus directly on the patient’s condition.&lt;/li&gt;
&lt;li&gt;  Pediatrics: Parents can complete guardian authorization and vaccination consent from home, making the visit less stressful for everyone.&lt;/li&gt;
&lt;li&gt;  Telehealth: Patients sign video‑visit consent and upload ID before the call, ensuring a compliant and hassle‑free virtual appointment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best practices for smooth digital intake
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Keep the form short, ask only what’s necessary.&lt;/li&gt;
&lt;li&gt;  Make the form mobile-first, larger fields, easy taps.&lt;/li&gt;
&lt;li&gt;  Use required fields to prevent missing details.&lt;/li&gt;
&lt;li&gt;  Use templates for all recurring consent types.&lt;/li&gt;
&lt;li&gt;  Send reminders 24 hours before the appointment.&lt;/li&gt;
&lt;li&gt;  Train staff on how to verify digital submissions quickly.&lt;/li&gt;
&lt;li&gt;  Review wording yearly for clarity and legal compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Digital patient intake isn’t complicated, it simply replaces slow paperwork with a smoother, faster check in process. Clinics get accurate information, patients skip the clipboard wait, and everyone moves through the day with less stress. To get started, set up a BoldSign template for your most used consent form, it’s a small change that makes a big difference.&lt;/p&gt;

&lt;p&gt;Start your free &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign trial&lt;/a&gt; today&lt;/p&gt;

&lt;p&gt;Need assistance? Request a &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt; or visit our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;Support Portal&lt;/a&gt; for quick help.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/ai-for-healthcare-claude-openai/" rel="noopener noreferrer"&gt;How Claude and OpenAI Are Redefining AI for Healthcare and eSignature Workflows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-collaborative-fields-api/" rel="noopener noreferrer"&gt;BoldSign Collaborative Fields for Accurate Multi‑Signer API Workflows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/esignature-in-dotnet-sdk-free-live-webinar/" rel="noopener noreferrer"&gt;End-to-End eSignature Workflows in .NET with BoldSign SDK: Webinar&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esignature</category>
      <category>workflow</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>BoldSign Wins 10 G2 Winter 2026 Badges in eSignature</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Fri, 10 Apr 2026 06:40:38 +0000</pubDate>
      <link>https://forem.com/boldsign/boldsign-wins-10-g2-winter-2026-badges-in-esignature-5381</link>
      <guid>https://forem.com/boldsign/boldsign-wins-10-g2-winter-2026-badges-in-esignature-5381</guid>
      <description>&lt;p&gt;We’re thrilled to share that BoldSign has earned 10 badges in &lt;a href="https://www.g2.com/categories/e-signature" rel="noopener noreferrer"&gt;G2’s&lt;/a&gt; Winter 2026 reports for the e-signature category, including multiple Leader and regional recognitions across segments like Small Business and Mid-Market. Being recognized in these grids reinforces what we aim for every release: an e-signature experience that’s powerful, simple to use, and accessible for teams at every stage of growth.&lt;/p&gt;

&lt;p&gt;This isn’t BoldSign’s first time being recognized by G2, but we never take it for granted. Every badge reflects feedback from real users, and it pushes us to keep improving our product month after month.&lt;/p&gt;

&lt;h2&gt;
  
  
  G2 awards overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.g2.com/" rel="noopener noreferrer"&gt;G2&lt;/a&gt; is a leading software review and comparison platform that helps organizations evaluate solutions using verified customer feedback and market signals. It is widely used by buyers to research, compare, and shortlist software with greater confidence.&lt;/p&gt;

&lt;p&gt;G2’s quarterly awards recognize products that demonstrate strong customer satisfaction and market presence across key criteria such as usability, support, and overall performance. Receiving a G2 award reflects consistent customer trust and provides a credible reference point for teams making software decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  BoldSign earns 10 G2 winter 2026 badges
&lt;/h2&gt;

&lt;p&gt;In the Winter 2026 report, BoldSign received recognition across multiple subcategories in the eSignature space.&lt;/p&gt;

&lt;p&gt;Badges received:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Regional Leader – Canada&lt;/li&gt;
&lt;li&gt;  Regional Leader – EMEA&lt;/li&gt;
&lt;li&gt;  Leader&lt;/li&gt;
&lt;li&gt;  Leader – Small Business&lt;/li&gt;
&lt;li&gt;  Regional Leader – Small Business (Canada)&lt;/li&gt;
&lt;li&gt;  Regional Leader – Small Business (EMEA)&lt;/li&gt;
&lt;li&gt;  Regional Leader – Small Business (Europe)&lt;/li&gt;
&lt;li&gt;  Regional Leader – Small Business (Asia Pacific)&lt;/li&gt;
&lt;li&gt;  Momentum Leader&lt;/li&gt;
&lt;li&gt;  Leader – Mid‑Market&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These recognitions reflect strong customer satis&lt;/p&gt;

&lt;h2&gt;
  
  
  Why G2 recognition matters
&lt;/h2&gt;

&lt;p&gt;G2 recognition is based on real user reviews, which makes it meaningful for buyers comparing eSignature tools.&lt;/p&gt;

&lt;p&gt;For teams evaluating eSignature platforms, these badges provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Trusted customer validation.&lt;/li&gt;
&lt;li&gt;  Proof of product usability.&lt;/li&gt;
&lt;li&gt;  Confidence in choosing the right solution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Earning multiple badges signals that BoldSign consistently delivers a strong experience for its users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why businesses choose BoldSign
&lt;/h2&gt;

&lt;p&gt;Organizations use BoldSign to simplify document signing and accelerate approvals.&lt;/p&gt;

&lt;p&gt;Key features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Fast document-signing workflows.&lt;/li&gt;
&lt;li&gt;  Reusable &lt;a href="https://boldsign.com/electronic-signature-features/templates?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;template&lt;/a&gt;s for common agreements.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/electronic-signature-features/bulk-send?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Bulk sending&lt;/a&gt; for high‑volume workflows.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/in-person-signing?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;In‑person signing&lt;/a&gt; support.&lt;/li&gt;
&lt;li&gt;  Multiple &lt;a href="https://support.boldsign.com/kb/article/151/add-authentication-after-sending-document" rel="noopener noreferrer"&gt;signer authentication&lt;/a&gt; options.&lt;/li&gt;
&lt;li&gt;  Detailed &lt;a href="https://support.boldsign.com/kb/article/14647/information-the-audit-trail-document-contains" rel="noopener noreferrer"&gt;audit trails&lt;/a&gt; for regulatory compliance.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/esignature-mobile-app?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Mobile‑optimized&lt;/a&gt; signer experience.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/integrations?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Integrations&lt;/a&gt; with popular business tools.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://support.boldsign.com/kb/article/14637/conditional-logic-how-it-works" rel="noopener noreferrer"&gt;Conditional fields&lt;/a&gt; with smart logic.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/esignature-ai-form-field-detection?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;AI-powered&lt;/a&gt; document features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features help teams reduce paperwork delays and simplified document processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you to our users
&lt;/h2&gt;

&lt;p&gt;This recognition wouldn’t be possible without the valuable feedback shared by our customers.&lt;/p&gt;

&lt;p&gt;Your reviews help us continue improving BoldSign to delivering a better document-signing experience.&lt;/p&gt;

&lt;p&gt;If you are not yet a BoldSign subscriber, please check out our &lt;a href="https://www.g2.com/products/boldsign/reviews" rel="noopener noreferrer"&gt;reviews&lt;/a&gt; to see why our customers believe our e-signature platform is a leader in the market. Take a look at our &lt;a href="https://boldsign.com/electronic-signature-features?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;features&lt;/a&gt; and &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;start a free trial&lt;/a&gt; or &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;schedule a live demo&lt;/a&gt; to see what BoldSign can do for your company.&lt;/p&gt;

&lt;p&gt;Leave or read a review &lt;a href="https://www.g2.com/products/boldsign/reviews" rel="noopener noreferrer"&gt;BoldSign Reviews 2025: Details, Pricing, &amp;amp; Features | G2&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-secures-crozdesk-quality-choice-happiest-users-award" rel="noopener noreferrer"&gt;BoldSign Wins Crozdesk’s Quality Choice Award and Happiest Users Award!&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-wins-postman-developers-choice-award/" rel="noopener noreferrer"&gt;BoldSign Honored with Postman Developer’s Choice Award&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-wins-no1-dev-choice-postcon-2025/" rel="noopener noreferrer"&gt;BoldSign Takes Home Postman Developer’s Choice Award 2025&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esignature</category>
      <category>g2awards</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>Webinar Show Notes: Find Contracts in Seconds with BoldSign AI Search</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Thu, 09 Apr 2026 05:25:17 +0000</pubDate>
      <link>https://forem.com/boldsign/webinar-show-notes-find-contracts-in-seconds-with-boldsign-ai-search-2fmb</link>
      <guid>https://forem.com/boldsign/webinar-show-notes-find-contracts-in-seconds-with-boldsign-ai-search-2fmb</guid>
      <description>&lt;p&gt;In this webinar, Gayathri Annamalai, Software Developer at BoldSign, demonstrates how BoldSign AI Search helps you find what you need in seconds using conversational search. Instead of relying on multiple manual filters, you can type a request that includes details such as status, signer, owner, or date, and AI Search returns relevant results quickly.&lt;/p&gt;

&lt;p&gt;If you missed the webinar or would like to watch it again, the recording is available on our &lt;a href="https://www.youtube.com/watch?v=0n1P43-pytM?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;YouTube channel&lt;/a&gt; and is embedded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Webinar recap
&lt;/h2&gt;

&lt;p&gt;The webinar opened with a look at common challenges users face when searching with traditional filter-based methods, especially when multiple conditions are needed or when users do not remember where a document is stored.&lt;/p&gt;

&lt;p&gt;Gayathri then introduced BoldSign AI Search and shared practical examples showing how it interprets intent, combines conditions automatically, and returns accurate results across your BoldSign account. The session also covered how you can refine or broaden results by adjusting your query without resetting filters and starting over.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Search using &lt;strong&gt;simple, conversational queries&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Combine conditions&lt;/strong&gt; such as &lt;strong&gt;status, date, signer, owner, and type&lt;/strong&gt; in a single search&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Quickly locate&lt;/strong&gt; &lt;strong&gt;pending, viewed, stalled, or recently updated&lt;/strong&gt; items&lt;/li&gt;
&lt;li&gt;  Search &lt;strong&gt;both documents and templates&lt;/strong&gt; from one place&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Refine results&lt;/strong&gt; naturally by &lt;strong&gt;adding or removing words&lt;/strong&gt; in your query&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Get more accurate results&lt;/strong&gt; by including clear details such as &lt;strong&gt;status or signer&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Use conversational search to find documents faster&lt;/li&gt;
&lt;li&gt;  Combine multiple conditions in a single query&lt;/li&gt;
&lt;li&gt;  Quickly identify items by status, date, signer, or owner&lt;/li&gt;
&lt;li&gt;  Refine results without manual filtering&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Learn more about &lt;a href="https://boldsign.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Learn more about &lt;a href="/https://boldsign.com/electronic-signature-features/ai-search?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs"&gt;AI Search&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Contact &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Get started for free&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/ai-search-for-contracts-free-live-webinar/" rel="noopener noreferrer"&gt;Join Our Webinar: Find Any Contract in Seconds with BoldSign’s AI Search&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-new-features-webinar-recap/" rel="noopener noreferrer"&gt;Webinar Show Notes: What’s New in BoldSign&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/embed-esignature-workflows-dotnet-app/" rel="noopener noreferrer"&gt;Webinar Show Notes: Embed eSignature Workflows in .NET App&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>aisearch</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>Convert PDF to PNG Easily with Our Free Online Converter</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Wed, 08 Apr 2026 09:01:40 +0000</pubDate>
      <link>https://forem.com/boldsign/convert-pdf-to-png-easily-with-our-free-online-converter-28e1</link>
      <guid>https://forem.com/boldsign/convert-pdf-to-png-easily-with-our-free-online-converter-28e1</guid>
      <description>&lt;p&gt;We are excited to introduce another powerful addition to the BoldSign free tools collection, the PDF to PNG converter. It is fast, secure, and designed to turn PDF pages into crisp PNG images in just seconds.&lt;/p&gt;

&lt;p&gt;Use this free online tool to convert PDF pages into high quality PNG images for previews, documentation, blog posts, social media, presentations, thumbnails, and UI mockups. No installations, no signups, and no watermarks.&lt;/p&gt;

&lt;p&gt;To help you begin right away, here is a quick step by step guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use this tool
&lt;/h2&gt;

&lt;p&gt;It’s super easy to use. Just follow these four simple steps to convert your PDFs into PNG images:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Go to the online converter&lt;/strong&gt;: Open the BoldSign PDF to PNG converter in your web browser.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Upload your PDF&lt;/strong&gt;: Drag and drop your PDF or click to select it from your device.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Customize PNG quality&lt;/strong&gt;: Choose your preferred DPI to set the exact clarity and image sharpness you want.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Download your images&lt;/strong&gt;: Click Download as ZIP to save all PNG pages to your device.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi14e91a3ucs9b53htedm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi14e91a3ucs9b53htedm.png" alt="" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do with this tool
&lt;/h2&gt;

&lt;p&gt;BoldSign’s PDF to PNG converter includes simple but powerful customization options to give you full control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;PNG image quality:&lt;/strong&gt; Pick the DPI you need for crisp, high resolution PNG output that is ideal for graphics, reports, thumbnails, and documentation.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Multi page conversion&lt;/strong&gt;: Convert every page automatically. Great for reports, slide decks, illustrated guides, and scanned documents.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Download convenience:&lt;/strong&gt; Save everything as a single ZIP for quick sharing and storage.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Cross platform compatibility:&lt;/strong&gt; Use PNGs anywhere images are required, including sites that do not accept PDFs and apps that only allow image uploads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why you should use this tool
&lt;/h2&gt;

&lt;p&gt;Our PDF to PNG converter is built for everyone, whether you’re a student, freelancer, designer, marketer, or corporate team member. Here’s why it’s the best choice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;100% free for everyone:&lt;/strong&gt; Convert unlimited PDFs with no fees, no subscriptions, and no hidden charges.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;No sign up and no installation:&lt;/strong&gt; Open the tool in your browser and start converting instantly.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Safe and secure:&lt;/strong&gt; All processing happens in your browser. Your files never leave your device and are never uploaded or stored on servers.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;No watermarks or limits:&lt;/strong&gt; Download clean PNG images and convert as many PDFs as you want.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Works on any device:&lt;/strong&gt; Use it on Windows, Mac, Linux, iOS, or Android with no software required.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Fast and easy:&lt;/strong&gt; Drag and drop, set DPI, and download. The interface is built for speed and simplicity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Part of the BoldSign free tools collection
&lt;/h2&gt;

&lt;p&gt;This converter is part of a growing set of free, browser-based utilities that simplify document workflows. No downloads and no signups required.&lt;/p&gt;

&lt;p&gt;Explore more in our  &lt;a href="https://boldsign.com/free-tools?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;free tools collection&lt;/a&gt; and enhance your workflow with BoldSign.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to try it out?
&lt;/h2&gt;

&lt;p&gt;Use BoldSign’s Free &lt;a href="https://boldsign.com/pdf-to-png-converter?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;PDF to PNG converter&lt;/a&gt; now. Convert your PDF pages into pixel perfect PNG images quickly and securely on any device.&lt;/p&gt;

&lt;p&gt;Need to sign PDFs instead? Use &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign e-signature&lt;/a&gt; to add secure, legally binding signatures with a complete audit trail.&lt;/p&gt;

&lt;p&gt;Need assistance? Request a &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt; or visit our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support portal&lt;/a&gt; for quick help.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/convert-pdf-to-images-online-free/" rel="noopener noreferrer"&gt;Introducing BoldSign’s free PDF to Image converter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/free-pdf-organize-tool-boldsign/" rel="noopener noreferrer"&gt;Introducing BoldSign’s Free Organize PDF Tool&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/why-browser-based-pdf-tools-are-safer/" rel="noopener noreferrer"&gt;Why are Browser-Based PDF Tools Safer for Everyone?&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt; &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>onlineconverter</category>
      <category>pdftopng</category>
      <category>documents</category>
    </item>
    <item>
      <title>Controllers vs Minimal APIs in .NET 8: What to Choose and Why</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Mon, 06 Apr 2026 05:46:37 +0000</pubDate>
      <link>https://forem.com/boldsign/controllers-vs-minimal-apis-in-net-8-what-to-choose-and-why-143c</link>
      <guid>https://forem.com/boldsign/controllers-vs-minimal-apis-in-net-8-what-to-choose-and-why-143c</guid>
      <description>&lt;p&gt;Controller-based APIs (ASP.NET Core Web API with [ApiController]) are the strongest default for large, long-lived APIs because they ship with conventions, discoverability, and mature MVC extension points for enforcing cross-cutting policies consistently. &lt;/p&gt;

&lt;p&gt;Minimal APIs are a great fit for smaller or focused services (microservices/internal APIs) when you want an endpoint-first model and you’re willing to enforce structure intentionally with route groups, conventions, endpoint filters, and feature modules. &lt;/p&gt;

&lt;p&gt;In most real workloads, this choice impacts maintainability and team consistency more than raw performance (see Microsoft’s controller-based Web API guidance at “Create web APIs with ASP.NET Core” on &lt;a href="https://learn.microsoft.com/aspnet/core/web-api/?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/a&gt; and &lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Minimal APIs&lt;/a&gt;). &lt;/p&gt;

&lt;h2&gt;
  
  
  What’s the difference between controllers and Minimal APIs in .NET 8?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are controllers in .NET 8 Web API terms?
&lt;/h3&gt;

&lt;p&gt;Controllers map routes to controller action methods inside the MVC pipeline: controller discovery, model binding conventions, MVC filters, and action results, described in &lt;a href="https://learn.microsoft.com/aspnet/core/web-api/?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Microsoft Learn’s Web API documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Minimal APIs in .NET 8 terms?
&lt;/h3&gt;

&lt;p&gt;Minimal APIs map routes directly to handlers via MapGet/MapPost/… using the same ASP.NET Core fundamentals such as hosting, routing, DI, auth, middleware, just composed explicitly per endpoint or per route group (&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/a&gt;). &lt;/p&gt;

&lt;h2&gt;
  
  
  When should you choose controllers in .NET 8?
&lt;/h2&gt;

&lt;p&gt;Pick controllers when most of these are true: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You expect many endpoints across multiple domains/resources. &lt;/li&gt;
&lt;li&gt;  You want conventions by default (routing patterns, binding behavior, action results). &lt;/li&gt;
&lt;li&gt;  You rely on MVC patterns like filters and want onboarding/discoverability to be easy (&lt;a href="https://learn.microsoft.com/aspnet/core/mvc/controllers/filters?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;MVC filters reference&lt;/a&gt;). &lt;/li&gt;
&lt;li&gt;  You need strong governance (consistent responses, versioning approach, cross-cutting policies) with less custom glue. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If your API will have lots of endpoints and lots of contributors, controllers reduce the amount of “team-invented framework.”&lt;/p&gt;

&lt;h2&gt;
  
  
  When should you choose Minimal APIs in .NET 8?
&lt;/h2&gt;

&lt;p&gt;Pick Minimal APIs when most of these are true: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Your API is a focused service (microservice/edge/internal) with a smaller surface area. &lt;/li&gt;
&lt;li&gt;  You prefer configuring behavior fluently per endpoint or per route group (auth, metadata, conventions). &lt;/li&gt;
&lt;li&gt;  You’ll keep handlers thin and enforce boundaries using feature modules + route groups. &lt;/li&gt;
&lt;li&gt;  You want endpoint-specific cross-cutting behavior via endpoint filters (&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/min-api-filters?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;endpoint filters reference&lt;/a&gt;). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If you choose Minimal APIs, commit to structure (route groups + modules). “Minimal” should mean less ceremony, not less discipline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What pipeline mental model helps you compare them quickly?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How does a controller request flow?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Controllers:&lt;/strong&gt; Routing → controller selection → MVC filters → action → result &lt;br&gt;&lt;br&gt;
(&lt;a href="https://learn.microsoft.com/aspnet/core/mvc/controllers/filters?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;MVC filters are a built-in extension point&lt;/a&gt;) &lt;/p&gt;
&lt;h3&gt;
  
  
  How does a Minimal API request flow?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Minimal APIs:&lt;/strong&gt; Routing → handler → (optional) endpoint filters → result &lt;br&gt;&lt;br&gt;
(&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/min-api-filters?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Endpoint filters&lt;/a&gt;) &lt;/p&gt;
&lt;h2&gt;
  
  
  How do you implement the same endpoint in both styles?
&lt;/h2&gt;

&lt;p&gt;Below are equivalent “GET widget by id” examples&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task: Create the controller endpoint&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.AspNetCore.Mvc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ApiController&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"api/widgets"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; 
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WidgetsController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ControllerBase&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;_service&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;WidgetsController&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_service&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;HttpGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{id:guid}"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; 
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Guid&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;_service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nf"&gt;NotFound&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Task: Create the Minimal API endpoint&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/api/min/widgets/{id:guid}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; 
        &lt;span class="n"&gt;Guid&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NotFound&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="p"&gt;});&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; The main architectural similarity: both should be thin HTTP layers calling services. &lt;/p&gt;

&lt;h2&gt;
  
  
  How do DI and testability compare between controllers and Minimal APIs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Outcome: Both use the same DI container, so keep handlers/actions thin either way&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;ASP.NET Core’s DI fundamentals apply equally to controllers and Minimal APIs (&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;fundamentals&lt;/a&gt;). &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Controllers&lt;/strong&gt; commonly use constructor injection; this encourages thin controllers by default.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Minimal APIs&lt;/strong&gt; commonly inject services via handler parameters; handlers should still be thin, and push logic into services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If you can unit-test your business logic without HTTP, you’re doing it right.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should you handle validation and consistent errors in each style?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do controllers typically do validation?
&lt;/h3&gt;

&lt;p&gt;Controllers commonly rely on model binding + validation conventions (&lt;a href="https://learn.microsoft.com/aspnet/core/mvc/models/model-binding?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;model binding&lt;/a&gt;). Many teams also standardize error responses using Problem Details (&lt;a href="https://learn.microsoft.com/aspnet/core/web-api/handle-errors?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;Problem Details&lt;/a&gt;). &lt;/p&gt;

&lt;h3&gt;
  
  
  How do Minimal APIs typically enforce validation and consistent errors? 
&lt;/h3&gt;

&lt;p&gt;Minimal APIs can use the same validation approaches, but endpoint filters are especially useful to enforce consistent validation + error policies across a route group (&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/min-api-filters?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;endpoint filters&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task: Return ProblemDetails from a Minimal API validation filter (consistent error shape)&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.AspNetCore.Http&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="k"&gt;group&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGroup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/api/min/widgets"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

    &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapPost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CreateWidgetRequest&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CreateAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Created&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/api/min/widgets/..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="p"&gt;})&lt;/span&gt; 
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddEndpointFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetArgument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Problem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
                &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Validation failed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;detail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Name is required."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;statusCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;StatusCodes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Status400BadRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"https://www.rfc-editor.org/rfc/rfc9110"&lt;/span&gt; 
            &lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="p"&gt;});&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If consumers get the same error format from every endpoint, you’ve reduced client bugs and support costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Built-in Swagger/OpenAPI setup is required for both styles?
&lt;/h2&gt;

&lt;p&gt;Both Controllers and Minimal APIs support OpenAPI/Swagger generation in .NET 8.&lt;/p&gt;

&lt;p&gt;Add this to Program.cs:&lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddEndpointsApiExplorer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddSwaggerGen&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;IsDevelopment&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UseSwagger&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
        &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UseSwaggerUI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;  AddEndpointsApiExplorer() enables endpoint discovery (especially important for Minimal APIs).&lt;/li&gt;
&lt;li&gt;  AddSwaggerGen() generates the OpenAPI specification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Controllers automatically expose metadata via MVC conventions. &lt;br&gt;&lt;br&gt;
Minimal APIs expose metadata via endpoint mapping and attributes or fluent configuration. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; OpenAPI support is equal in capability. Controllers rely more on conventions; Minimal APIs rely more on explicit metadata.&lt;/p&gt;
&lt;h2&gt;
  
  
  How does authorization differ between controllers and Minimal APIs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Outcome: Same underlying authorization system; different syntax&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ASP.NET Core authorization works the same underneath (&lt;a href="https://learn.microsoft.com/aspnet/core/security/authorization/introduction?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;authorization overview&lt;/a&gt;). &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Controllers: use [Authorize] attributes.&lt;/li&gt;
&lt;li&gt;  Minimal APIs: use .RequireAuthorization() at endpoint or route-group level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; Prefer policy at the highest sensible level (controller or route group), then override only where needed.&lt;/p&gt;
&lt;h2&gt;
  
  
  What does [ApiController] automatically do that Minimal APIs do not?
&lt;/h2&gt;

&lt;p&gt;When you use controllers with [ApiController], ASP.NET Core enables several opinionated behaviors automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Automatic 400 Bad Request responses when model validation fails&lt;/li&gt;
&lt;li&gt;  Automatic ProblemDetails formatting for validation errors&lt;/li&gt;
&lt;li&gt;  Inferred [FromBody], [FromRoute], and [FromQuery] binding sources&lt;/li&gt;
&lt;li&gt;  Parameter binding source inference&lt;/li&gt;
&lt;li&gt;  Consistent error response behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ApiController&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"api/widgets"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; 
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WidgetsController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ControllerBase&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;HttpPost&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IActionResult&lt;/span&gt; &lt;span class="nf"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CreateWidgetRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="c1"&gt;// If ModelState is invalid, &lt;/span&gt;
            &lt;span class="c1"&gt;// framework automatically returns 400 with ProblemDetails &lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt;     
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Minimal APIs do not automatically enforce model validation unless you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Manually validate&lt;/li&gt;
&lt;li&gt;  Use endpoint filters&lt;/li&gt;
&lt;li&gt;  Use validation libraries&lt;/li&gt;
&lt;li&gt;  Add custom middleware&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkpoin&lt;/strong&gt;t: Controllers provide governance by default. Minimal APIs require explicit enforcement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should performance influence your choice between controllers and Minimal APIs?
&lt;/h2&gt;

&lt;p&gt;Minimal APIs may reduce some framework overhead, but in many real APIs the dominant cost is I/O (DB/network), authentication, and serialization, so choose based on maintainability and measure bottlenecks before migrating. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If you haven’t measured p50/p95 latency and DB round-trips, you don’t yet know whether “API style” matters for your performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you keep Minimal APIs maintainable as the codebase grows?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Task: Use a route-group + feature-module pattern (avoid Program.cs sprawl)&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;A common maintainable pattern is: Program.cs wires things; feature modules map endpoints (&lt;a href="https://learn.microsoft.com/aspnet/core/fundamentals/?view=aspnetcore-8.0" rel="noopener noreferrer"&gt;ASP.NET Core fundamentals&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WidgetEndpoints&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;RouteGroupBuilder&lt;/span&gt; &lt;span class="nf"&gt;MapWidgetEndpoints&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="n"&gt;IEndpointRouteBuilder&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="k"&gt;group&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGroup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/api/min/widgets"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
                           &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RequireAuthorization&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

            &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/{id:guid}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GetById&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
            &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapPost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 

        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;GetById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Guid&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
            &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NotFound&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

        &lt;span class="c1"&gt;// Small credibility nit: show a REST-ish Location header pattern &lt;/span&gt;
        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CreateWidgetRequest&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IWidgetService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CreateAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Created&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"/api/min/widgets/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If you can find all “Widget” endpoints in one place without scrolling Program.cs, your Minimal API organization is working.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you make Minimal APIs Production-Grade in large codebases?
&lt;/h2&gt;

&lt;p&gt;If you choose Minimal APIs, commit to structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use route groups per feature&lt;/li&gt;
&lt;li&gt;  Move mappings into feature modules&lt;/li&gt;
&lt;li&gt;  Apply authorization at group level&lt;/li&gt;
&lt;li&gt;  Use endpoint filters consistently&lt;/li&gt;
&lt;li&gt;  Centralize error handling&lt;/li&gt;
&lt;li&gt;  Standardize response types&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example pattern:&lt;/p&gt;

&lt;p&gt;.NET&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WidgetEndpoints&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;RouteGroupBuilder&lt;/span&gt; &lt;span class="nf"&gt;MapWidgetEndpoints&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="n"&gt;IEndpointRouteBuilder&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="k"&gt;group&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGroup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/api/min/widgets"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
                           &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RequireAuthorization&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

            &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/{id:guid}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GetById&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
            &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapPost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;group&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“Minimal” should mean less ceremony, not less discipline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Checkpoint:&lt;/strong&gt; If you can locate all widget endpoints without searching Program.cs, your structure is healthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What practical decision matrix can help you choose quickly?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Recommended Approach&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Large enterprise API&lt;/td&gt;
&lt;td&gt;Controllers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Many teams contributing&lt;/td&gt;
&lt;td&gt;Controllers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heavy use of filters&lt;/td&gt;
&lt;td&gt;Controllers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strict governance requirements&lt;/td&gt;
&lt;td&gt;Controllers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Small microservice&lt;/td&gt;
&lt;td&gt;Minimal APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Focused internal API&lt;/td&gt;
&lt;td&gt;Minimal APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explicit per-endpoint composition preferred&lt;/td&gt;
&lt;td&gt;Minimal APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Very lean edge service&lt;/td&gt;
&lt;td&gt;Minimal APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is not about capability, both are fully capable.&lt;/p&gt;

&lt;p&gt;It’s about default structure vs explicit composition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: Should you choose Controllers or Minimal APIs in .NET 8?
&lt;/h2&gt;

&lt;p&gt;Controllers and Minimal APIs are both fully supported, production-ready approaches in .NET 8. The choice is not about capability, it’s about structure and team needs. &lt;/p&gt;

&lt;p&gt;Controllers provide conventions by default. With [ApiController], built-in validation behavior, and mature MVC patterns, they are a strong default for large, long-lived APIs with multiple contributors.&lt;/p&gt;

&lt;p&gt;Minimal APIs offer explicit, endpoint-first composition. They work especially well for focused services, microservices, or teams that prefer fluent configuration, as long as structure is enforced through route groups, modules, and consistent policies.&lt;/p&gt;

&lt;p&gt;Performance differences are usually negligible compared to database, network, and serialization costs. Maintainability and governance should drive the decision.&lt;/p&gt;

&lt;p&gt;In short:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Choose &lt;strong&gt;Controllers&lt;/strong&gt; when you want built-in structure and consistency.&lt;/li&gt;
&lt;li&gt;  Choose &lt;strong&gt;Minimal APIs&lt;/strong&gt; when you want lean composition and are willing to design structure intentionally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both approaches are valid. The right choice depends on your team, domain complexity, and long-term ownership model.&lt;/p&gt;

&lt;p&gt;Start today and unlock all features of BoldSign.&lt;/p&gt;

&lt;p&gt;Need assistance? Request a &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt; or visit our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;Support Portal&lt;/a&gt; for quick help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ready to future‑proof your API strategy? Explore the right choice between Controllers and Minimal APIs now.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://account.boldsign.com/signup?planId=1076&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Try BoldSign API Free&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/edit-template-api/" rel="noopener noreferrer"&gt;Programmatic Template Editing Using the BoldSign Edit Template API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/visual-studio-enterprise-boldsign-growth/" rel="noopener noreferrer"&gt;Select Visual Studio Enterprise Subscribers: Get 12 Months of BoldSign Growth Plan + 50 API Credits&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/common-signature-api-challenges/" rel="noopener noreferrer"&gt;What Are the Common Challenges When Using Signature APIs in Software Development&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt; &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>dotnet</category>
      <category>api</category>
      <category>documents</category>
    </item>
    <item>
      <title>Programmatic Template Editing Using the BoldSign Edit Template API</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Wed, 01 Apr 2026 09:44:55 +0000</pubDate>
      <link>https://forem.com/boldsign/programmatic-template-editing-using-the-boldsign-edit-template-api-1lmg</link>
      <guid>https://forem.com/boldsign/programmatic-template-editing-using-the-boldsign-edit-template-api-1lmg</guid>
      <description>&lt;p&gt;Templates often serve as living configuration in production eSignature workflows. As businesses scale, these templates change frequently, such as adding new approval steps, updated policies, branding refreshes, or additional required fields. When such updates are handled manually through dashboards, templates can drift across environments and introduce inconsistencies that break automated processes.&lt;/p&gt;

&lt;p&gt;The BoldSign Edit Template API solves this by allowing developers to update existing or draft templates programmatically. You can modify metadata, signer roles, and form fields directly from your backend or CI/CD pipelines, keeping templates synchronized with application logic while reducing operational overhead and human error.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why edit templates programmatically
&lt;/h2&gt;

&lt;p&gt;Templates often act as “living configuration” in production workflows. Over time, teams update templates due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  New approval steps (HR, finance)&lt;/li&gt;
&lt;li&gt;  Policy changes (legal, compliance)&lt;/li&gt;
&lt;li&gt;  Branding refreshes (marketing)&lt;/li&gt;
&lt;li&gt;  New mandatory fields (operations)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If these updates happen manually in the dashboard, templates can drift across environments (sandbox vs production) and become inconsistent. With the Edit Template API, you can apply controlled updates from your backend or CI/CD pipelines, keeping templates synchronized with your application logic while reducing operational overhead and human error.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you update using the Edit Template API
&lt;/h2&gt;

&lt;p&gt;You can update common template configuration elements, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Template title:&lt;/strong&gt; Rename the template to reflect its updated purpose.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Template description:&lt;/strong&gt; Add or revise the summary of what the template is for.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Document title:&lt;/strong&gt; Change the title that signers see on the document.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Document message:&lt;/strong&gt; Update the message that accompanies the request to sign.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Signer roles:&lt;/strong&gt; Add, remove, reorder, or rename roles (e.g., “Manager”, “Client”).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Form fields:&lt;/strong&gt; Edit or add input elements (signature, text, date, checkbox) bound to pages and roles.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Signing order settings:&lt;/strong&gt; Toggle and adjust signer order behavior when relevant.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What can’t you change using the Edit Template API
&lt;/h2&gt;

&lt;p&gt;The following changes are not supported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The document file itself (PDF or DOCX): If the underlying document needs to change, you must create a new template.&lt;/li&gt;
&lt;li&gt;  Template ID&lt;/li&gt;
&lt;li&gt;  Sent documents: Edits only apply to templates, not documents already sent for signing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Partial updates vs nested updates
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1) Top-level fields support partial updates&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;For simple changes like title, description, &lt;code&gt;documentTitle&lt;/code&gt;, &lt;code&gt;documentMessage&lt;/code&gt;, or &lt;code&gt;enableSigningOrder&lt;/code&gt;, you can send only the fields you want to change.&lt;/p&gt;

&lt;p&gt;Result: Unspecified top-level fields remain unchanged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Nested objects must be complete (roles and form fields)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you update nested objects (like roles or a role’s formFields), you should assume you are replacing the existing array.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Updating roles&lt;/strong&gt; replaces the entire roles list
Include every role you want to keep, not only the one you changed.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Updating formFields&lt;/strong&gt; for a role replaces that role’s field list
Include the full set you want to keep, preserving field IDs when updating existing fields.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Safe pattern&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Fetch Template Properties&lt;/li&gt;
&lt;li&gt; Edit the JSON in memory&lt;/li&gt;
&lt;li&gt; PUT the updated structure back&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Field naming note:&lt;/strong&gt; &lt;br&gt;&lt;br&gt;
Template Properties responses may not match the exact request field names used by Edit Template in every SDK/version. Don’t copy/paste the Template Properties JSON directly into the Edit Template payload, map fields as needed (especially for form fields).&lt;/p&gt;
&lt;h2&gt;
  
  
  What you’ll need before calling the Edit Template API
&lt;/h2&gt;

&lt;p&gt;Make sure you have the following in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A &lt;a href="https://account.boldsign.com/signup?planId=1076&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign account&lt;/a&gt; (sandbox or production).&lt;/li&gt;
&lt;li&gt;  An &lt;a href="https://developers.boldsign.com/authentication/api-key" rel="noopener noreferrer"&gt;API key&lt;/a&gt; (or &lt;a href="https://developers.boldsign.com/authentication/oauth-2-0" rel="noopener noreferrer"&gt;OAuth2 access token&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; to call BoldSign APIs over HTTPS.&lt;/li&gt;
&lt;li&gt;  A REST client such as cURL, Postman, or your preferred HTTP library.&lt;/li&gt;
&lt;li&gt;  The TemplateId of the template you want to update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Authentication headers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use one of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;API Key&lt;/strong&gt;: X-API-KEY: &lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;OAuth2&lt;/strong&gt;: Authorization: Bearer &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How do you safely edit a template step by step
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Retrieve Template Properties&lt;/strong&gt;
Get the full structure of the template, especially important before nested edits. You can refer to the following link to access the template properties : &lt;a href="https://developers.boldsign.com/template/template-details" rel="noopener noreferrer"&gt;Get Template Properties&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Plan minimal changes&lt;/strong&gt;
Decide whether a top-level partial update is enough (e.g., title only) or whether you must update roles/fields.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Prepare the payload&lt;/strong&gt; 
For nested edits, start from fetched JSON, modify only what’s needed, and keep unchanged roles/fields intact. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Send the update&lt;/strong&gt;
PUT /v1/template/edit?templateId= with your chosen auth header.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Verify&lt;/strong&gt;
Fetch Template Properties again or run a &lt;a href="https://account.boldsign.com/signup?planId=1076&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;sandbox&lt;/a&gt; send to confirm behavior.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  How do you update only the template title (top-level partial update)
&lt;/h2&gt;

&lt;p&gt;When you only need to change the template title, send just the title field. Everything else remains unchanged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Below is an example code snippet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;cURL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;    curl &lt;span class="nt"&gt;-X&lt;/span&gt; &lt;span class="s1"&gt;'PUT'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="s1"&gt;'https://api.boldsign.com/v1/template/edit?templateId={YOUR_TEMPLATE_ID}'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'accept: */*'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'X-API-KEY: YOUR_API_KEY'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{ 
      "title": "Title of the template" 
    }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;c#&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://api.boldsign.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"YOUR_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;templateClient&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;TemplateClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"YOUR_TEMPLATE_ID"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;Title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"A new title for template"&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;templateClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;EditTemplateAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt; 
    &lt;span class="n"&gt;configuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
        &lt;span class="n"&gt;template_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="n"&gt;edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;    
            &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A new title for template&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="n"&gt;template_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;edit_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;template_id&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_TEMPLATE_ID&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;edit_template_request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;     
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PHP&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="nf"&gt;setApiKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'YOUR_API_KEY'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$apiInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$template_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'YOUR_TEMPLATE_ID'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Updated Template Title'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$apiInstance&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;editTemplate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$template_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Java&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;    &lt;span class="nc"&gt;ApiClient&lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getDefaultApiClient&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setApiKey&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"YOUR_API_KEY"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt; &lt;span class="n"&gt;templateApi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setTitle&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"A new title for template"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;templateId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_TEMPLATE_ID"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;templateApi&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;editTemplate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;templateId&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Node js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;TemplateApi&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;boldsign&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;EditTemplateRequest&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;boldsign&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;templateApi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;templateApi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setApiKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Updated Template Title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;templateId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOUR_TEMPLATE_ID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;templateApi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;editTemplate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;templateId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How do you update roles and form fields (nested update pattern)
&lt;/h2&gt;

&lt;p&gt;Key rule: Include &lt;code&gt;enableSigningOrder&lt;/code&gt; whenever roles are present.&lt;br&gt;&lt;br&gt;
When your request includes roles, always include &lt;code&gt;enableSigningOrder&lt;/code&gt; explicitly (true or false). This ensures signer sequencing is unambiguous.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended approach&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Fetch Template Properties&lt;/li&gt;
&lt;li&gt; Modify roles/fields in memory (keep unchanged roles/fields)&lt;/li&gt;
&lt;li&gt; Send the updated roles along with &lt;code&gt;enableSigningOrder&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Below is an example code snippet&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;cURL C# Python PHP Java Node js&lt;/p&gt;

&lt;p&gt;cURL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;    curl &lt;span class="nt"&gt;-X&lt;/span&gt; &lt;span class="s1"&gt;'PUT'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="s1"&gt;'https://api.boldsign.com/v1/template/edit?templateId={YOUR_TEMPLATE_ID}'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'accept: */*'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'X-API-KEY: YOUR_API_KEY'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
      &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{ 
      "enableSigningOrder": true, 
      "roles": [ 
        { 
          "name": "Customer", 
          "index": 1, 
          "signerOrder": 1, 
          "defaultSignerName": "Alex", 
          "defaultSignerEmail": "alexgayle@boldsign.dev", 
          "signerType": "Signer", 
          "locale": "EN", 
          "formFields": [ 
            { 
              "id": "Signature1", 
              "fieldType": "Signature", 
              "pageNumber": 1, 
              "bounds": { 
                "x": 100, 
                "y": 100, 
                "width": 200, 
                "height": 20 
              }, 
              "isRequired": true  
            } 
          ] 
        } 
      ] 
    }'&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;C#&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;            &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://api.boldsign.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"YOUR_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;templateClient&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;TemplateClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;formFields&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;FormField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Signature1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;FieldType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Signature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;pageNumber&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;isRequired&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;150&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;150&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;templateRoles&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;TemplateRole&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Manager"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;Index&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;DefaultSignerName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;" Alex"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;DefaultSignerEmail&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"alexgayle@boldsign.dev"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;SignerType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SignerType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Signer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;FormFields&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;formFields&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;SignerOrder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;AllowRoleEdit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;AllowRoleDelete&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"YOUR_TEMPLATE_ID"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;EnableSigningOrder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;Roles&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;templateRoles&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;templateClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;EditTemplateAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt; 
    &lt;span class="n"&gt;configuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
        &lt;span class="n"&gt;template_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="n"&gt;form_fields&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; 
            &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;FormField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
                &lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Signature1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sign&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;fieldType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Signature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;pageNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;font&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Helvetica&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                &lt;span class="n"&gt;bounds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
                &lt;span class="n"&gt;isRequired&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt; 
            &lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;]&lt;/span&gt; 
        &lt;span class="n"&gt;role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TemplateRole&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
            &lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Manager&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;defaultSignerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alex Gayle&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;defaultSignerEmail&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;alexgayle@boldsign.dev&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;signerType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Signer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;formFields&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;form_fields&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="n"&gt;edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boldsign&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;    
            &lt;span class="n"&gt;enableSigningOrder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="n"&gt;roles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
        &lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="n"&gt;template_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;edit_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;template_id&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_TEMPLATE_ID&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;edit_template_request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PHP&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="nf"&gt;setApiKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'YOUR_API_KEY'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$apiInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$template_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'YOUR_TEMPLATE_ID'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="c1"&gt;// Create form field &lt;/span&gt;
    &lt;span class="nv"&gt;$signatureField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormField&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nv"&gt;$signatureField&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFieldType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Signature'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$signatureField&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setPageNumber&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$bounds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; 
    &lt;span class="nv"&gt;$signatureField&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setBounds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$bounds&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
    &lt;span class="c1"&gt;// Create role and assign form field &lt;/span&gt;
    &lt;span class="nv"&gt;$role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateRole&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Signer'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setDefaultSignerEmail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'alexgayle@boldsign.dev'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setDefaultSignerName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Alex Gayle'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setSignerOrder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFormFields&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nv"&gt;$signatureField&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; 
    &lt;span class="c1"&gt;// Create edit template request &lt;/span&gt;
    &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setEnableSigningOrder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setRoles&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nv"&gt;$role&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; 
    &lt;span class="nv"&gt;$apiInstance&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;editTemplate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$template_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$edit_template_request&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Java&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;    &lt;span class="nc"&gt;ApiClient&lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getDefaultApiClient&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setApiKey&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"YOUR_API_KEY"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt; &lt;span class="n"&gt;templateApi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apiClient&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;Rectangle&lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Rectangle&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setX&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setY&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setWidth&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setHeight&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;FormField&lt;/span&gt; &lt;span class="n"&gt;formField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormField&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;formField&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setFieldType&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;FormField&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;FieldTypeEnum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;SIGNATURE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;formField&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setPageNumber&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;formField&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setBounds&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bounds&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;TemplateRole&lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateRole&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setIndex&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setName&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Manager"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setDefaultSignerName&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Alex"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
        &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setDefaultSignerEmail&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"alexgayle@boldsign.dev"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setSignerOrder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setSignerType&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;TemplateRole&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;SignerTypeEnum&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;SIGNER&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setFormFields&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asList&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;formField&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setEnableSigningOrder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setRoles&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asList&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;templateId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_TEMPLATE_ID"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; 
    &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;templateApi&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;editTemplate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;templateId&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Node js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;TemplateRole&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;FormField&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;boldsign&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;templateApi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateApi&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;templateApi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setApiKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bounds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;formField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormField&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;formField&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fieldType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;FormField&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;FieldTypeEnum&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TextBox&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;formField&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pageNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;formField&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bounds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bounds&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EditTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;enableSigningOrder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TemplateRole&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;defaultSignerEmail&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;alexgayle@boldsign.dev&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;defaultSignerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Alex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Signer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;signerOrder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;formFields&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;formField&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; 
    &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;roles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; 
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;templateId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOUR_TEMPLATE_ID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;templateApi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;editTemplate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;templateId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;editTemplateRequest&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Real-world use cases of the Edit Template API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1) HR offer letters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; A candidate’s role changes from “Developer” to “Engineer” right before sending the offer.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Update the template roles/messages instantly without recreating or editing in the dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Sales contracts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; High-value deals require an additional “Legal Reviewer” role.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Add/reorder roles and enforce signing order programmatically for compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Operations &amp;amp; compliance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; A new checkbox/date field becomes mandatory across agreements.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Update form fields programmatically across templates to align with policy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Marketing agreements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; Campaign names or project titles change frequently.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Update template metadata dynamically so documents remain current and professional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary: Managing templates with BoldSign APIs
&lt;/h2&gt;

&lt;p&gt;Templates are foundational when your eSignature workflows must evolve with business needs. With the Edit Template API, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Update titles, descriptions, and messages via partial updates&lt;/li&gt;
&lt;li&gt;  Adjust signer roles and form fields via complete nested updates&lt;/li&gt;
&lt;li&gt;  Reduce drift caused by manual edits&lt;/li&gt;
&lt;li&gt;  Keep templates consistent across environments and teams&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developers.boldsign.com/how-to-guides/edit-a-template-using-API" rel="noopener noreferrer"&gt;Editing templates programmatically&lt;/a&gt; is a smart way to keep eSignature workflows flexible and stable at scale. Use partial updates for top-level changes and the fetch–modify–update pattern for roles and fields to prevent accidental overwrites. With a few API calls, your team can keep templates current, reduce operational burden, and maintain consistency across environments.&lt;/p&gt;

&lt;p&gt;If you’d like to learn more about &lt;a href="https://account.boldsign.com/signup?planId=1076&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt;, leave a comment, book a &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt;, or connect with our support team through the &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support portal&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-collaborative-fields-api/" rel="noopener noreferrer"&gt;BoldSign Collaborative Fields for Accurate Multi‑Signer API Workflows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/common-signature-api-challenges/" rel="noopener noreferrer"&gt;What Are the Common Challenges When Using Signature APIs in Software Development&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/visual-studio-enterprise-boldsign-growth/" rel="noopener noreferrer"&gt;Select Visual Studio Enterprise Subscribers: Get 12 Months of BoldSign Growth Plan + 50 API Credits&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt; &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>api</category>
      <category>boldsign</category>
      <category>documents</category>
    </item>
    <item>
      <title>Select Visual Studio Enterprise Subscribers: Get 12 Months of BoldSign Growth Plan + 50 API Credits</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Tue, 31 Mar 2026 07:22:47 +0000</pubDate>
      <link>https://forem.com/boldsign/select-visual-studio-enterprise-subscribers-get-12-months-of-boldsign-growth-plan-50-api-credits-57om</link>
      <guid>https://forem.com/boldsign/select-visual-studio-enterprise-subscribers-get-12-months-of-boldsign-growth-plan-50-api-credits-57om</guid>
      <description>&lt;p&gt;Visual Studio Enterprise subscribers now receive one year of the BoldSign Growth plan as part of their subscriber benefits. This gives developers a low-risk way to embed an eSignature solution, automate document workflows, and test production-ready signing software. SaaS teams can launch native signing experiences without upfront subscription costs for 12 months.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s included in the benefit
&lt;/h2&gt;

&lt;p&gt;When you &lt;a href="https://aka.ms/VSS/ActivateSyncfusion" rel="noopener noreferrer"&gt;activate the BoldSign benefit&lt;/a&gt;, you unlock the full BoldSign Growth Plan along with API credits, which includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Unlimited reusable &lt;a href="https://developers.boldsign.com/template/create-template/?region=us" rel="noopener noreferrer"&gt;templates&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/embedded-request/create-embedded-request-link/?region=us" rel="noopener noreferrer"&gt;Embedded requesting&lt;/a&gt; (send documents from inside your app).&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/embedded-signing/get-embedded-signing-link/?region=us" rel="noopener noreferrer"&gt;Embedded signing&lt;/a&gt; (users sign without leaving your UI).&lt;/li&gt;
&lt;li&gt;  Custom &lt;a href="https://developers.boldsign.com/branding/create-brand/?region=us" rel="noopener noreferrer"&gt;branding&lt;/a&gt; and &lt;a href="https://support.boldsign.com/kb/article/52/configure-email-custom-domain" rel="noopener noreferrer"&gt;custom email domain&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/teams/create-team/?region=us" rel="noopener noreferrer"&gt;Team management&lt;/a&gt; and roles.&lt;/li&gt;
&lt;li&gt;  Full &lt;a href="https://developers.boldsign.com/api-overview/getting-started/?region=us" rel="noopener noreferrer"&gt;API&lt;/a&gt; and &lt;a href="https://developers.boldsign.com/sdks/overview/?region=us" rel="noopener noreferrer"&gt;SDK&lt;/a&gt; access.&lt;/li&gt;
&lt;li&gt;  50 API document credits included.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do API usage and pricing work?
&lt;/h2&gt;

&lt;p&gt;The 12-month benefit period includes full access to BoldSign:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  First 50 API documents are included.&lt;/li&gt;
&lt;li&gt;  Additional API sends cost $0.75 per document.&lt;/li&gt;
&lt;li&gt;  A credit card is required only for verification.&lt;/li&gt;
&lt;li&gt;  You will be charged only if you exceed the included credits.&lt;/li&gt;
&lt;li&gt;  After 12 months, the plan renews at $5 per month (cancel at any time).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This setup is ideal for evaluation, prototyping, and early-stage launches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do developers choose BoldSign for embedded workflows?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Native, in-app signing.&lt;/li&gt;
&lt;li&gt;  Seamless experience with no redirects or external signing pages.&lt;/li&gt;
&lt;li&gt;  Fast developer onboarding.&lt;/li&gt;
&lt;li&gt;  Sandbox, templates, embedded signing, and webhooks setup can be completed in a single day.&lt;/li&gt;
&lt;li&gt;  Consistent product experience.&lt;/li&gt;
&lt;li&gt;  Unified branding across signer pages, emails, and workflows.&lt;/li&gt;
&lt;li&gt;  Scalable automation.&lt;/li&gt;
&lt;li&gt;  Flexible mix of manual, template-based, and API-driven flows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Do all users need a BoldSign account?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Required:&lt;/strong&gt; Anyone who sends, manages, or requests signatures.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Not required:&lt;/strong&gt; People who only sign documents. (Signers do not need an account, which reduces friction.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What should I know about BoldSign security and compliance?
&lt;/h2&gt;

&lt;p&gt;BoldSign is built with enterprise-grade security:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  End-to-end encryption.&lt;/li&gt;
&lt;li&gt;  Secure, regulatory-compliant document storage.&lt;/li&gt;
&lt;li&gt;  Detailed audit logs.&lt;/li&gt;
&lt;li&gt;  SOC 2-aligned processes.&lt;/li&gt;
&lt;li&gt;  Fine-grained organization access controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All document actions are fully traceable and tamper evident.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is a valuable one-year opportunity
&lt;/h2&gt;

&lt;p&gt;The included 12-month access period gives developers enough time to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Build complete, embedded eSignature workflows. &lt;/li&gt;
&lt;li&gt;  Automate recurring document processes. &lt;/li&gt;
&lt;li&gt;  Test signing inside their apps. &lt;/li&gt;
&lt;li&gt;  Validate API integrations. &lt;/li&gt;
&lt;li&gt;  Scale usage without upfront subscription commitments. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a practical, low-risk way to integrate eSignatures into SaaS products or internal workflows. &lt;/p&gt;

&lt;h2&gt;
  
  
  Want to build embedded eSignature workflows in minutes? Start here:
&lt;/h2&gt;

&lt;p&gt;If you want to get started on building an end-to-end embedded signing experience, our technical guides cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/api-overview/developer-sandbox-account/?region=us" rel="noopener noreferrer"&gt;Sandbox setup&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/template/create-template/?region=us" rel="noopener noreferrer"&gt;Template creation and management&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/how-to-guides/integrate-embedded-signing-in-your-website-or-application/" rel="noopener noreferrer"&gt;Generating embedded signing URLs&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.boldsign.com/webhooks/introduction/?region=us" rel="noopener noreferrer"&gt;Handling callbacks, events, and webhooks&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to activate your BoldSign account through the Visual Studio subscriber benefits portal:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Open your &lt;a href="https://aka.ms/VSS/ActivateSyncfusion" rel="noopener noreferrer"&gt;Visual Studio Subscriber Benefits&lt;/a&gt; page.&lt;/li&gt;
&lt;li&gt; Find the BoldSign benefit tile.&lt;/li&gt;
&lt;li&gt; Select Activate.&lt;/li&gt;
&lt;li&gt; Complete the signup.&lt;/li&gt;
&lt;li&gt; Start sending documents immediately.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/common-signature-api-challenges" rel="noopener noreferrer"&gt;What Are the Common Challenges When Using Signature APIs in Software Development&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-collaborative-fields-api/" rel="noopener noreferrer"&gt;BoldSign Collaborative Fields for Accurate Multi‑Signer API Workflows&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/free-esignature-plan-a-win-win-strategy-for-both-users-and-boldsign/" rel="noopener noreferrer"&gt;Free eSignature Plan: A Win-Win Strategy for Both Users and BoldSign&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>api</category>
      <category>visualstudio</category>
      <category>boldsign</category>
    </item>
    <item>
      <title>Introducing BoldSign’s Snapchat QR Code Generator</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Mon, 30 Mar 2026 09:32:36 +0000</pubDate>
      <link>https://forem.com/boldsign/introducing-boldsigns-snapchat-qr-code-generator-1o01</link>
      <guid>https://forem.com/boldsign/introducing-boldsigns-snapchat-qr-code-generator-1o01</guid>
      <description>&lt;p&gt;A Snapchat QR code allows anyone to open your profile instantly with a single scan. With BoldSign’s free Snapchat QR code generator, you can convert any Snapchat link into a scannable QR code within seconds with no signup, no watermark, and no usage limits.&lt;/p&gt;

&lt;p&gt;Whether you are boosting your brand, growing a creator audience, connecting with customers, or adding Snapchat to your digital identity, this guide covers how Snapchat QR codes work and how to use them effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Snapchat QR code
&lt;/h2&gt;

&lt;p&gt;A Snapchat QR code is a scannable code that opens your Snapchat profile, public account, or Snap-specific link when someone points their smartphone camera at it. You can link to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A Snapchat profile&lt;/li&gt;
&lt;li&gt;  A public creator page&lt;/li&gt;
&lt;li&gt;  A Snap code URL&lt;/li&gt;
&lt;li&gt;  A direct add me link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; It removes the friction of searching usernames manually or dealing with typos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use a Snapchat QR code
&lt;/h2&gt;

&lt;p&gt;A Snapchat QR code makes sharing your profile faster, simpler, and more effective across social media, marketing materials, and offline channels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Benefits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Instant audience growth- People can follow your Snapchat account in one scan.&lt;/li&gt;
&lt;li&gt;  Better engagement – Useful at events, booths, stores, or meetups where quick access matters.&lt;/li&gt;
&lt;li&gt;  Stronger digital identity – Add it to websites, posters, product packaging, portfolios, or social bios.&lt;/li&gt;
&lt;li&gt;  Smartphone friendly – Modern cameras scan QR codes natively without any extra apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to create a Snapchat QR code for free
&lt;/h2&gt;

&lt;p&gt;Creating your Snapchat QR code takes less than a minute. Just follow these steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you will need&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Your Snapchat link&lt;/li&gt;
&lt;li&gt;  Any desktop or mobile browser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step by step&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Copy your Snapchat URL&lt;/strong&gt;
Use your profile link, public page URL, or Snap code link.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Paste it into BoldSign’s Snapchat QR code generator&lt;/strong&gt;
Your QR code appears instantly.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Customize your QR code&lt;/strong&gt;
Adjust options such as:

&lt;ul&gt;
&lt;li&gt;  Pattern color &lt;/li&gt;
&lt;li&gt;  Background color &lt;/li&gt;
&lt;li&gt;  QR code size &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;em&gt;&lt;strong&gt;&lt;em&gt;Download and share&lt;/em&gt;&lt;/strong&gt;&lt;/em&gt;
Export your QR code as*&lt;em&gt;:&lt;/em&gt;*

&lt;ul&gt;
&lt;li&gt;  PNG&lt;/li&gt;
&lt;li&gt;  JPEG&lt;/li&gt;
&lt;li&gt;  SVG&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyszv0rz2vzi6gqu5tj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyszv0rz2vzi6gqu5tj3.png" alt="" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why choose BoldSign’s Snapchat QR code generator
&lt;/h2&gt;

&lt;p&gt;BoldSign’s tool is built for privacy, speed, and clean professional output.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;100% free forever:&lt;/strong&gt; No fees, no watermarks, no limits.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Privacy first:&lt;/strong&gt; Your Snapchat link never leaves your browser. We do not store or track your data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Instant results:&lt;/strong&gt; Create high-quality QR codes in seconds.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Works on any device:&lt;/strong&gt; Compatible with Windows, macOS, Linux, iOS, and Android.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best ways to use a Snapchat QR code
&lt;/h2&gt;

&lt;p&gt;Snapchat QR codes can elevate your digital presence across both online and physical spaces. Here are powerful ways to use them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Business cards:&lt;/strong&gt; Make your contact card instantly scannable.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Product packaging:&lt;/strong&gt; Let customers access offers, tutorials, or behind-the-scenes content.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Websites and landing pages:&lt;/strong&gt; Add it to your portfolio, link in bio, or homepage.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Events and pop ups:&lt;/strong&gt; Display it at booths, banners, or digital screens for instant audience connection.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Print marketing:&lt;/strong&gt; Add it to posters, flyers, menus, brochures, or store signage.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Creator branding:&lt;/strong&gt; Great for merch, stickers, giveaways, and creator kits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;A Snapchat QR code makes it easier for people to find and follow you instantly. It boosts visibility, enhances your brand identity, and removes the friction of searching usernames manually.&lt;/p&gt;

&lt;p&gt;Create your &lt;a href="https://boldsign.com/snapchat-qr-code-generator?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Snapchat QR Code&lt;/a&gt; with BoldSign today and start building stronger, smarter connections.&lt;/p&gt;

&lt;p&gt;Ready to simplify your document workflows? Start your free &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt; trial or connect with our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support team&lt;/a&gt; for a personalized &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-whatsapp-qr-code-online/" rel="noopener noreferrer"&gt;Free WhatsApp QR Code Generator for Instant Chat Links&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-twitter-qr-code-online/" rel="noopener noreferrer"&gt;Introducing BoldSign’s Twitter QR Code Generator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/generate-qr-code-for-wifi/" rel="noopener noreferrer"&gt;Generate a Wi-Fi QR Code: Free, Simple, and Secure&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt; &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>qrcode</category>
      <category>snapchat</category>
      <category>boldsign</category>
    </item>
    <item>
      <title>Electronic Signature in Healthcare: Where They Help Most</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Fri, 27 Mar 2026 06:21:46 +0000</pubDate>
      <link>https://forem.com/boldsign/electronic-signature-in-healthcare-where-they-help-most-1gn6</link>
      <guid>https://forem.com/boldsign/electronic-signature-in-healthcare-where-they-help-most-1gn6</guid>
      <description>&lt;p&gt;A busy clinic receptionist needs a patient’s signed consent before a simple procedure, but the paper consent form is missing from the file. Filling, printing, chasing signatures, and scanning eat-up time and frustrate patients. What they really need is a quick, secure way to collect signatures digitally that fit into clinical workflows without extra hassle. Tools like BoldSign can step in as a simple helper to collect, track, and store those signatures securely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why e‑signatures matter in healthcare
&lt;/h2&gt;

&lt;p&gt;Health providers handle lots of forms that must be signed correctly and stored securely. Paper slows care, increases errors, and makes audits harder. E-signatures reduce friction, improve traceability, and support faster patient flow, helpful for clinics, hospitals, telehealth providers, and billing teams. &lt;/p&gt;

&lt;h2&gt;
  
  
  Simple real-life scenario
&lt;/h2&gt;

&lt;p&gt;A small dental practice sees six patients per hour. Each patient must sign an intake form, a consent for treatment, and a privacy notice. The clinic currently uses paper forms on a clipboard. Sometimes forms are illegible, sometimes a printed form is misplaced, and staff must reprint or call patients. The practice needs a simple, secure digital signing flow so patients can sign a tablet in the waiting room or finish at home before the appointment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common paper-based workflow
&lt;/h3&gt;

&lt;p&gt;Some clinics try to solve this by scanning signed paper into a shared folder or emailing PDFs back and forth. Problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Extra manual steps: scan, rename, move files. &lt;/li&gt;
&lt;li&gt;  Hard to track whether a form is signed or which version is current. &lt;/li&gt;
&lt;li&gt;  Security and access control are inconsistent. &lt;/li&gt;
&lt;li&gt;  Audits become time-consuming because records are scattered. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A better digital workflow
&lt;/h3&gt;

&lt;p&gt;Design a simple e-sign workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Create a single template for each form type (intake, consent, release). &lt;/li&gt;
&lt;li&gt; Collect patient data once and send a secure link or present a tablet for on-site signing.&lt;/li&gt;
&lt;li&gt; Save the signed document directly into the patient’s record with access logs. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Faster check-in. &lt;/li&gt;
&lt;li&gt;  Fewer filing errors and lost forms. &lt;/li&gt;
&lt;li&gt;  Clear audit trail (who signed, when, where). &lt;/li&gt;
&lt;li&gt;  Patients can sign remotely before their appointment. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How tools like BoldSign support this workflow
&lt;/h2&gt;

&lt;p&gt;E-signature platforms provide the building blocks for the workflow above, templating, field pre-fill, signer authentication, secure storage, and audit logs. Below is a simple, generic example of workflow:&lt;/p&gt;

&lt;p&gt;Typical steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Upload or create a template for consent forms. &lt;/li&gt;
&lt;li&gt;  Send a secure signing link to the patient (or open on a clinic tablet). &lt;/li&gt;
&lt;li&gt;  Receive the signed document and store it in the patient’s record with an audit trail. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key Takeaway: Use templates and pre-fill fields to cut patient time-to-sign and avoid manual data entry. &lt;/p&gt;

&lt;h2&gt;
  
  
  Security and privacy considerations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Use secure authentication for accessing e-sign tools. &lt;/li&gt;
&lt;li&gt;  Limit who can view or send sensitive forms. &lt;/li&gt;
&lt;li&gt;  Ensure transport (HTTPS) and storage are encrypted.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Create reusable templates for each form type. &lt;/li&gt;
&lt;li&gt;  Pre-fill fields from the EHR to reduce typing and errors. &lt;/li&gt;
&lt;li&gt;  Provide multiple signing options. Ex: on-tablet, email link. &lt;/li&gt;
&lt;li&gt;  Use signer authentication appropriate to the risk level (Email OTP, SMS OTP, Access code). &lt;/li&gt;
&lt;li&gt;  Keep an audit trail, signer identity, timestamp, IP address, etc. &lt;/li&gt;
&lt;li&gt;  Train staff on the new workflow so they can assist patients quickly. &lt;/li&gt;
&lt;li&gt;  Test the signing process on common device types (phones, tablets) before rolling out.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;E-signatures simplify many administrative tasks in healthcare by cutting down waiting times, reducing errors, and giving a clear audit trail. When combined with templates and proper authentication, they fit naturally into clinical workflows, improving patient experience and freeing staff to focus on care. &lt;/p&gt;

&lt;p&gt;Get started today! Sign up for a free &lt;a href="https://account.boldsign.com/signup?planId=1018&amp;amp;utm_source=boldsignblogs&amp;amp;utm_medium=redirect&amp;amp;utm_campaign=boldsign&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;BoldSign&lt;/a&gt; account and begin managing tasks with just a few steps. For questions or assistance, visit our &lt;a href="https://support.boldsign.com/support/tickets/create" rel="noopener noreferrer"&gt;support portal&lt;/a&gt; or book a &lt;a href="https://boldsign.com/request-demo?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/electronic-signatures-for-healthcare-consent-forms/" rel="noopener noreferrer"&gt;Electronic Signatures for Healthcare Consent Forms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/esignatures-for-healthcare-digitizing-medical-records/" rel="noopener noreferrer"&gt;Digitizing Medical Records: Secure and HIPAA-Compliant eSignatures for Healthcare Providers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/ai-for-healthcare-claude-openai/" rel="noopener noreferrer"&gt;How Claude and OpenAI Are Redefining AI for Healthcare and eSignature Workflows&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>healthcare</category>
      <category>privacy</category>
      <category>documents</category>
    </item>
    <item>
      <title>Join Our Webinar: Find Any Contract in Seconds with BoldSign’s AI Search</title>
      <dc:creator>Vijay Amalan</dc:creator>
      <pubDate>Wed, 25 Mar 2026 09:27:31 +0000</pubDate>
      <link>https://forem.com/boldsign/join-our-webinar-find-any-contract-in-seconds-with-boldsigns-ai-search-1a6a</link>
      <guid>https://forem.com/boldsign/join-our-webinar-find-any-contract-in-seconds-with-boldsigns-ai-search-1a6a</guid>
      <description>&lt;p&gt;As document volume grows, teams spend more time filtering and searching instead of moving work forward. AI Search solves this by understanding natural language queries, applying the correct filters automatically, and ranking results so the most relevant documents appear first.&lt;/p&gt;

&lt;p&gt;Led by Gayathri Annamalai, a Software Developer at Syncfusion, this session will walk you through real-world examples of how AI Search helps teams follow up faster, reduce manual checks, and work more efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Webinar details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Date: March 27, 2026&lt;/li&gt;
&lt;li&gt;  Time: 10:00 AM ET&lt;/li&gt;
&lt;li&gt;  Duration: 40 minutes + live Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;  Speaker: Gayathri Annamalai&lt;/li&gt;
&lt;li&gt;  Registration: &lt;a href="https://boldsign.com/webinars/find-contracts-instantly-with-ai-search/register?utm_source=webinar_boldsign_blog_pt&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Register now&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who this webinar is for
&lt;/h2&gt;

&lt;p&gt;This session is ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Operations teams managing process efficiency and document throughput&lt;/li&gt;
&lt;li&gt;  Sales and customer success leaders who depend on fast follow ups and SLA driven workflows&lt;/li&gt;
&lt;li&gt;  Legal and contract teams handling agreements, reviews, and high volumes of documents&lt;/li&gt;
&lt;li&gt;  BoldSign administrators who oversee user management, workflow setup, and organization-wide search&lt;/li&gt;
&lt;li&gt;  High volume teams that need quick access to pending, expiring, or time sensitive documents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your work depends on finding the right documents quickly and minimizing manual filtering, this webinar is for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agenda: What we will cover
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why AI Search now
&lt;/h3&gt;

&lt;p&gt;How traditional filtering breaks down as document volume increases, and why teams need a smarter way to locate contracts.&lt;/p&gt;

&lt;h3&gt;
  
  
  How AI Search works
&lt;/h3&gt;

&lt;p&gt;A simple overview of how natural language intent becomes automatically applied filters and ranked results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natural language query examples&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here are some examples of real queries you can type directly into AI Search:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Documents waiting for my signature&lt;/li&gt;
&lt;li&gt;  Contracts sent last month that are still pending&lt;/li&gt;
&lt;li&gt;  Show completed contracts from last month&lt;/li&gt;
&lt;li&gt;  Find agreements updated in the last 7 days&lt;/li&gt;
&lt;li&gt;  NDA documents sent by John this month&lt;/li&gt;
&lt;li&gt;  Expired documents between January 1 and January 15&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Live demo
&lt;/h3&gt;

&lt;p&gt;Real examples showing how teams can use everyday language to find what they need in seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best practices
&lt;/h3&gt;

&lt;p&gt;How to write effective queries for accuracy, speed, and better prioritization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q&amp;amp;A
&lt;/h3&gt;

&lt;p&gt;Get your questions answered live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why attend?
&lt;/h2&gt;

&lt;p&gt;You will get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A clear understanding of how AI Search reduces manual filtering&lt;/li&gt;
&lt;li&gt;  Live, practical examples of everyday queries across teams&lt;/li&gt;
&lt;li&gt;  Simple techniques to make searching faster and more accurate&lt;/li&gt;
&lt;li&gt;  Insights from BoldSign experts who work directly on product and engineering&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What you will be able to do after the webinar
&lt;/h2&gt;

&lt;p&gt;After this session, you should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Search in plain English to find documents by status, date, signer, template, and more&lt;/li&gt;
&lt;li&gt;  Combine multiple conditions in a single query, including status, date range, owner, and document type&lt;/li&gt;
&lt;li&gt;  Prioritize work faster using AI ranked results that surface what matters most&lt;/li&gt;
&lt;li&gt;  Accelerate follow ups by instantly finding pending, expiring, or stalled documents&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reserve your spot
&lt;/h2&gt;

&lt;p&gt;Don’t miss this opportunity to experience the new AI Search capabilities in BoldSign.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://boldsign.com/webinars/find-contracts-instantly-with-ai-search/register?utm_source=webinar_boldsign_blog_pt&amp;amp;utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=repurposed_blogs" rel="noopener noreferrer"&gt;Register now&lt;/a&gt; to see how natural language queries and AI-driven ranking can dramatically speed up your daily workflows.&lt;/p&gt;

&lt;p&gt;For questions, contact us at &lt;a href="mailto:support@boldsign.com"&gt;support@boldsign.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Related blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/embed-esignature-workflows-dotnet-app/" rel="noopener noreferrer"&gt;Webinar Show Notes: Embed eSignature Workflows in .NET App&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-new-features-webinar-recap/" rel="noopener noreferrer"&gt;Webinar Show Notes: What’s New in BoldSign&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://boldsign.com/blogs/boldsign-zapier-integration-webinar-recap/" rel="noopener noreferrer"&gt;Webinar Show Notes – Automate Google Sheets with BoldSign &amp;amp; Zapier&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This blog was originally published at &lt;a href="https://boldsign.com/blogs" rel="noopener noreferrer"&gt;boldsign.com&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>esignature</category>
      <category>aisearch</category>
      <category>contract</category>
      <category>documentsigning</category>
    </item>
  </channel>
</rss>
