How it worksFeaturesPricingBlogSign in
Pro & Enterprise

CoA Templates

A Certificate of Analysis (CoA) is a formal document confirming that a batch of product meets its quality and safety specifications. In Meiver, CoA Templates define the set of tests to run — you create them once and reuse them across every batch, generating a branded, print-ready CoA document in seconds.

10 min read
Pro & Enterprise
Settings → CoA Templates

What you'll need

Plan requirement
Pro or Enterprise plan is required to create, edit, and delete templates. All plans can view existing templates.
Permission
coa.create/update/delete or Tenant Admin role. Read-only users can view but not modify templates.
What you'll create
A named template with a list of test parameters (test name, specification, unit, method). Up to 50 parameters per template.

What is a CoA template?

A CoA template is a reusable test parameter set. It answers the question: “What tests does this product need to pass?” Each template holds:

Template details
  • Name — unique identifier (max 120 chars)
  • Description — optional context (max 500 chars)
  • Scope — entity-wide, by category, or by SKU
  • Default flag — pre-selected when generating CoAs
  • Signatory name & title — who signs the CoA
  • Wallet address — optional blockchain DID (future)
Test parameters (up to 50)
  • Test name — e.g. Moisture Content
  • Specification — e.g. ≤ 5.0%
  • Unit — e.g. %, mg/kg, CFU/g
  • Test method — e.g. AOAC 925.10
  • Display order — controls row order in the CoA table
When you generate a CoA from a batch, staff enter the actual result for each parameter. Meiver compares the result against the specification and automatically marks each row as PASS, FAIL, or PENDING.

Create a template

1

Click New Template

On the CoA Templates page, click the + New Template button. A modal dialog opens.
2

Enter template details

Fill in the fields in the modal:

FieldRequired?Notes
Template nameYesUnique per entity, max 120 chars
ScopeYesEntity-wide / By Category / By SKU (see Template scope section)
DescriptionNoUp to 500 characters of context
Signatory nameNoPrinted on the CoA signature line, e.g. Dr. Priya Sharma
Signatory titleNoRole printed below the name, e.g. Head of Quality Control
Set as defaultNoPre-selects this template when generating CoAs
Wallet addressNoBlockchain DID for signatory identity (Advanced — optional)
3

Click Create

Click the green Create button. The template is saved and appears in the template list. You can now add test parameters to it.
You can create multiple templates and assign them to different SKUs or categories. The default template is pre-selected in the batch CoA workflow for quick access.

Add test parameters

Test parameters are the rows of the CoA table — each one defines a single test that must be performed on the batch. Click on any template card to expand it and manage its parameters.

1

Expand the template card

In the template list, click on a template row to expand it. You will see the list of existing parameters and an + Add parameter button.
2

Fill in the parameter form

Click + Add parameter and fill in:

  • Test name (required) — e.g. Moisture Content, Total Plate Count, Heavy Metals — Lead
  • Specification — e.g. ≤ 5.0%, < 10 CFU/g, Not detected
  • Unit — e.g. %, mg/kg, CFU/g, ppm
  • Test method — e.g. AOAC 925.10, ISO 4833-1
  • Display order — number controlling row position in the CoA (lower = higher up)
Each template can hold up to 50 parameters. Parameters are ordered by Display order ascending.
3

Save the parameter

Click Add. The parameter appears in the template's parameter list immediately. Repeat for each test you need.
4

Edit or delete existing parameters

Each parameter row has an Edit (pencil) button to update any field, and a Delete (trash) button to remove it. Deleting a parameter does not affect CoAs already generated.
Removing a parameter from the template only affects future CoAs. Previously generated CoAs are stored documents and are not changed.

Template scope

Scope controls which batches a template appears for when generating a CoA. Templates are filtered at generation time — only relevant templates are offered, making it easy to pick the right one.

Entity-wide
Applies to all batches in the entity
The most general scope. This template is offered for every batch regardless of SKU or category. Use this for tests that apply across your entire product range (e.g. a general microbiology panel).
By Category
Applies to all SKUs in a specific category
Scoped to a single product category (e.g. 'Packaged Foods', 'Beverages'). When a batch is created for any SKU in that category, this template is offered. Type or select an existing category from your SKU catalogue.
By SKU
Applies to one specific SKU only
The most targeted scope. Only offered when generating a CoA for the exact SKU selected. Use this for products with unique test specifications that differ from every other product.
A template cannot be scoped to both a SKU and a Category simultaneously. Choosing one clears the other.

Set a default template

Marking a template as default means it is automatically pre-selected in the CoA generation workflow for each batch — saving staff from having to pick a template every time.

1

Open a template for editing

Click the Edit (pencil) icon on the template you want to set as default. The edit modal opens.
2

Check Set as default template

Tick the Set as default template checkbox and click Save. Any previously marked default template is automatically unset — only one default can exist per entity.
The default template is indicated by a star badge in the template list. It is still possible to select a different template when generating a CoA — the default is just a convenient starting point.

Edit a template

Template metadata (name, description, scope, signatory, default flag) is edited via modal. Test parameters are edited inline inside the expanded template card.

1

Click the Edit icon on the template row

Find the template in the list and click the pencil icon. The edit modal opens with all fields pre-filled.
2

Update the fields you need to change

Any combination of name, description, scope, signatory details, default flag, or wallet address can be updated. Changing scope automatically clears the previous scope value (e.g. switching from By SKU to By Category clears the skuId).
3

Click Save

Click Save. Changes take effect immediately for all future CoA generations. Existing generated CoA documents are not affected.
Renaming a template does not update the name on CoAs already generated from it. Generated CoAs are static documents stored as files.

Bulk import via CSV

If you have many templates or are migrating from a LIMS or spreadsheet, the CSV import lets you load templates and all their parameters in one upload.

1

Download the sample CSV

On the CoA Templates page, click Download sample CSV to get a template file with 3 example templates and 15 parameters pre-filled. Use this as your starting point.
2

Prepare your CSV file

Your file must be a .csv with these 10 columns in order:

ColumnNotes
template_nameRequired. Rows with the same name form one template.
descriptionOptional. Template description.
sku_codeOptional. Scopes template to one SKU. Takes priority over category.
categoryOptional. Scopes template to a product category.
signatory_nameOptional. Printed on the CoA signature line.
signatory_titleOptional. Printed below the signatory name.
test_nameRequired per row. Name of the test.
specificationOptional. Pass/fail specification (e.g. ≤ 5.0%).
unitOptional. Measurement unit (e.g. %, mg/kg, CFU/g).
test_methodOptional. Standard or internal method reference.
File size limit is 512 KB. Only .csv format is supported.
3

Click Import CSV and upload

Click Import CSV, select your file. The system parses it client-side first and shows you a preview — you can see how many templates and parameters will be created, any conflicts (template names that already exist), and parse errors before anything is saved.
4

Review conflicts and confirm

If any template names already exist, a conflict warning appears with an Overwrite option. Enabling overwrite replaces the conflicting templates entirely (including all their parameters). Uncheck it to skip conflicting names. Click Import to confirm.
Overwriting a template deletes all its existing parameters and replaces them with the ones from the CSV. Previously generated CoA documents are not affected.

Generate a CoA from a batch

Once you have templates set up, generating a CoA for any batch is a straightforward process.

1

Open the batch

Navigate to Batches in the dashboard, find the relevant batch, and click into it to open the batch detail page.
2

Go to the CoA tab

Inside the batch detail page, click the CoA tab. The system loads all templates scoped to this batch's SKU and entity.
3

Select a template

Choose a template from the dropdown. The default template (if any) is pre-selected. The template's test parameters appear as a table below.
Only templates matching the batch's SKU, category, or entity-wide templates are shown. Templates scoped to a different SKU are filtered out.
4

Enter actual test results

For each parameter row, enter the actual result value obtained from your lab. Meiver compares it against the specification and auto-assigns a status badge: PASS, FAIL, or PENDING (if left blank).
5

Click Generate CoA

Click Generate CoA. Meiver builds a fully formatted A4 PDF document and stores it as a document attached to the batch. The overall status is PASS only if all rows pass; any failure makes the overall status FAIL.
The generated CoA includes your entity's logo and brand colour automatically. Make sure your entity settings have a logo uploaded for the best result.

What the CoA contains

Meiver generates a print-ready, A4 portrait HTML document. Here is what each section contains:

Header
Entity logo and name, CoA number (auto-generated), generation date, and overall status badge (PASS / FAIL / PENDING).
Product info
SKU name, SKU code, product category, and storage requirements.
Batch details
Batch number, lot code, manufacturing date, expiry date, and quantity with unit.
Test results table
One row per parameter: test name, specification, actual result entered by staff, status badge, test method, and tested date.
Signatory section
Signature line with the signatory name and title from the template. Includes a declaration statement.
Footer
Page numbers and document reference.

Permissions & plan

Plan requirement

Creating, editing, and deleting templates requires a Pro or Enterprise plan. Users on the free plan can view templates but cannot create or modify them. If you see a plan upgrade prompt on the CoA Templates page, contact your account owner to upgrade.

PermissionWhat it allows
readView CoA templates and their parameters
createCreate new templates, add parameters, bulk import CSV
updateEdit template details and parameters
deleteDelete templates and individual parameters

Troubleshooting & FAQs

I don't see a CoA Templates option in the sidebar.+
Your account either lacks the read permission on the coa module, or your plan does not include CoA features. Contact your Tenant Admin to check permissions. If you are on the free plan, an upgrade to Pro or Enterprise is required.
The New Template button is greyed out or not visible.+
You have read-only access to CoA templates, or your current plan does not allow creating templates. Ask your Tenant Admin to grant you the coa.create permission, or upgrade your plan.
A template I created is not appearing in the batch CoA tab.+
Check the template's scope. If it's scoped to a specific SKU, it only appears for batches linked to that exact SKU. If scoped by Category, the batch's SKU must have that category set. Entity-wide templates always appear.
The generated CoA doesn't show my company logo.+
Make sure your entity has a logo uploaded in Entity Settings. The logo is pulled from your entity profile at generation time.
The CSV import is rejecting my file.+
Only .csv files are accepted (not .xlsx or .xls). Check that you have all 10 required column headers in the correct order. Ensure there are no blank rows at the top of the file.
Can I have more than 50 parameters on one template?+
No. Each template is capped at 50 parameters. If you need more, consider splitting your tests across two templates — for example, one for microbiological tests and one for chemical/physical tests.
I deleted a template — will this affect CoAs already generated from it?+
No. Generated CoAs are static HTML documents stored as files. Deleting the template does not change or remove any previously generated CoA documents.
Can I reuse the same template across multiple entities?+
Not directly — templates are scoped to a single entity. You can recreate a template in another entity manually or use the CSV import to upload the same parameter definitions into each entity.

Ready to create your first CoA template?

Define your test parameters once and generate professional CoA documents for every batch in seconds.

Go to CoA Templates →

Was this article helpful?