ACORD 25 certificates of insurance for US MGAs and wholesale brokers
Automate ACORD 25 insurance certificate creation from policy data
The data you already have fills the form you already use. Each certificate of insurance (COI) comes from your policy data, without retyping.
Policy data filling the mapped fields of your ACORD 25
A stylized certificate, not the ACORD form. Your uploaded ACORD 25 keeps its own layout, form number and edition date.
How to automate ACORD 25 certificate creation.
Bring your ACORD 25
Upload the ACORD 25 edition your organization is licensed or authorized to use, once, as a static PDF template. It stays your form.
Map each field once
Mezdoc reads the form fields already in the PDF, or you draw them. Tie each one to a data key such as insured_name or certificate_holder.
Send the policy data
For each certificate, your PAS, AMS or spreadsheet sends the insured, insurers, policy numbers, dates, limits and holder, through the API or a hosted form.
Get the certificate
Mezdoc fills your original PDF and returns it. The same mapping fills every certificate after that, and a workflow can send it out with endorsements or a packet.
Map once. Every certificate fills the same boxes.
Each piece of data is tied to one field on your form. After that, your system sends the data and the certificate fills itself.
insured_namefills Named insuredpolicy_numberfills Policy numbereach_occurrencefills Each occurrencecertificate_holderfills Certificate holder
Bring the ACORD forms your organization is licensed or authorized to use. Mezdoc maps and fills the forms you upload. Mezdoc does not supply ACORD forms.
A certificate can travel with the rest of the paperwork.
- CertificateCertificate
- Cover letterCover letter
- EndorsementAI endorsement
Field mapping for an ACORD 25, key by key.
Data key insured_namefills the field InsuredType: Short textData key insured_addressfills the field Insured addressType: Long textData key producer_namefills the field ProducerType: Short textDefault value: your agency, so the call can leave it outData key insurer_a_namefills the field Insurer AType: Short textData key insurer_a_naicfills the field Insurer A NAIC numberType: Short textData key gl_policy_numberfills the field Policy numberType: Short textData key gl_effective_datefills the field Policy effectiveType: DateSend 2026-06-01; the certificate shows 6/1/2026Data key gl_expiration_datefills the field Policy expirationType: DateData key gl_each_occurrencefills the field Each occurrenceType: CurrencyData key gl_general_aggregatefills the field General aggregateType: CurrencyData key gl_additional_insuredfills the field Additional insuredType: CheckboxTicked when the value is trueData key gl_waiver_of_subrogationfills the field Subrogation waivedType: CheckboxData key description_of_operationsfills the field Description of operationsType: Long textWraps inside the box you drew, and shrinks to fitData key certificate_holderfills the field Certificate holderType: Long text
Keys use letters, numbers and underscores. Give two fields on the form the same key and both fill from one value, so a name that appears twice can never differ between the two places.
What a static PDF template does with your ACORD 25.
- Reads the PDF's own form fields, with their names and positions. You can also draw a field by hand.
- Gives every field a type, such as text, date, currency or checkbox, from 27 in all.
- Fills your original PDF, so nothing on the form is redrawn.
- Wraps a long description inside the box you drew, and shrinks it to fit.
- Ticks a checkbox when the value is true.
Default values for what rarely changes
A field can carry a default value, used whenever the data leaves it empty. Set your producer name, address and contact once, and your system only sends what changes from one certificate to the next.
generate a COI from your system
One API call per certificate.
- A plain call returns the PDF. Add
?return=urlfor JSON with a link to it. ?async=truereturns a 202 at once, and a signedsubmission.completedwebhook says when it is ready.- An
idempotency_keymeans a retry never issues the same certificate twice. - Staging keys render with a STAGING watermark, so test certificates are marked as tests.
No integration yet? Account managers can fill the same template through a hosted form link, which can ask for an email code and expire.
Building the integration? The technical guide walks through every block on the form, a full render call and patterns for the description of operations: ACORD 25 certificate of insurance API guide.
Read the render API referencecurl -X POST "https://api.mezdoc.com/api/v1/templates/acord_25/render?return=url" \
-H "Authorization: Bearer $MEZDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": {
"insured_name": "Harbor Point LLC",
"gl_policy_number": "GL-2026-00481",
"gl_effective_date": "2026-06-01",
"gl_each_occurrence": 1000000,
"gl_additional_insured": true,
"certificate_holder": "Bayview Properties LLC"
},
"idempotency_key": "coi-GL-2026-00481-bayview"
}'
# 200 OK: JSON with a link to the finished certificateNew ACORD editions, without breaking a live certificate.
- Links and API calls that follow the environment use the new version from then on.
- A link pinned to a version stays on it.
- Every certificate records the template version that made it.
- Test renders from the editor are free, and you can restore an earlier version.
What Mezdoc does with a certificate, and what it does not.
Mezdoc does
- Fills the ACORD 25 you upload, field by field, from the data you send
- Keeps your form's layout, form number and edition date unchanged
- Records each certificate with its template version and a SHA-256 of the PDF
- Returns the PDF, a link to it, or a webhook when it is ready
Mezdoc does not
- Supply ACORD forms, or grant any right to use them
- Verify coverage, or check a holder's certificate requirements
- Choose the wording in the description of operations
- Track certificate holders, or reissue certificates at renewal by itself
Questions about ACORD 25 and COI generation.
- Does Mezdoc provide the ACORD 25 form?
No. Mezdoc does not supply ACORD forms. Bring the ACORD 25 edition your organization is licensed or authorized to use, and Mezdoc maps and fills the form you upload.
- Will the generated certificate look exactly like our ACORD 25?
Yes. Mezdoc fills your original PDF rather than rebuilding it, so the layout, the form number and the edition date stay exactly as they are. Values land where you placed the fields, on every render.
- What data does our system need to send for each COI?
Only what changes per certificate: usually the insured, the insurers, the policy numbers, dates and limits, the holder and the description. Values that rarely change, such as your producer block, can be default values on the template.
- Can the same policy data fill other documents?
Yes. Put the certificate in a workflow with the binder, the endorsements or the rest of the policy packet, and every document fills from the same workflow fields, with include rules deciding which ones go out.
- What happens when ACORD releases a new edition?
Upload the new edition, map its fields, test it on staging and publish it. Links that follow the live version pick it up, a pinned link stays on its version, and certificates already issued keep the version that made them.
- Will every certificate holder accept a generated COI?
Acceptance depends on each holder's requirements, and your team stays responsible for the wording and the endorsements. Mezdoc fills the form your organization provides and records each render with its template version and a SHA-256 of the PDF.
Certificates usually follow a bind. See the quote-to-binder document workflow for the quote letter and binder that come first.
Map your first insurance PDF.
Free plan: 100 documents a month, watermarked