Trade Agreement Guide

Require buyers to accept or sign your wholesale trade agreement as a condition of approval. You publish your own counsel-supplied terms; B2B Onboard helps you present, record, and retain the buyer’s acceptance. The terms are yours — the app records the event.

Available on Growth and Pro.

What it is — and what it isn’t

The trade agreement is a dedicated acceptance step, separate from your registration form. The buyer opens a secure link, reviews your published terms, ticks a click-to-accept box, types their name, selects their position (Director, Company Secretary, Owner and so on), confirms they are authorised to sign for the company, and (optionally) draws a signature. The app captures the moment of acceptance and stores one signed PDF, the application pack — the application as it was reviewed, your terms, the signer page(s) and a certificate page (see What the signed record contains).

  • You supply the terms. Upload your agreement as a PDF with a version label in Settings › Agreement.
  • The app records the event. It captures the signer name, their position, their confirmation that they are authorised to sign for the company, the version accepted, the date/time, the buyer’s IP address, and their browser user-agent string, alongside the drawn signature when provided. The signed PDF’s signer page prints the position and that declaration, and the record keeps a fingerprint (SHA-256) of the signed PDF so any later alteration of the file is detectable.
  • Every signer reviews the application first. Above the signature fields, the signing page shows the application details the agreement is for: the registration answers, the credit application (when there is one), the wording the buyer accepted and the terms version. The buyer who applied sees the full application; a signer the buyer named and a second signer see the company-level details (without other people’s names, email addresses, phone numbers or uploaded files). Each signer ticks “I have reviewed the application details shown above and confirm they are the details this agreement is for.” before signing, and the signed PDF records that review and which view they saw.
  • It retains the artifact. A signed PDF is generated and kept against the company; you can preview or download it any time from the company’s Agreement card.

Decision support only. B2B Onboard does not write, infer, or summarise legal or contract wording, and it does not assess whether your agreement is enforceable. This is click-to-accept plus a drawn signature with an audit trail — it is not a qualified e-signature (eIDAS/ESIGN) flow and uses no third-party signature provider. Whether your terms are binding is a matter for you and your own counsel.

What the signed record contains

Every signing creates one PDF, the application pack, with its own pack id (for example BO-YOURSTORE-20261004-AGR-0001) printed in the footer of every page. In order it contains:

  • A cover page with your store name, the company name, the pack id and the agreement version.
  • The application as it was reviewed — the registration answers, the credit application (when there is one) and the wording the buyer accepted, each with its version. These are the same details the signing page showed above the signature fields. The pack holds the full application (your record); the certificate page says which view each signer saw.
  • Your terms — every page of the agreement PDF you published, unchanged.
  • One page per signer — name, position, the address a named signer’s link was sent to, the authority declaration, every sentence they ticked (word for word, with its version), which view of the application they reviewed, the time of signing, IP address, browser, and the drawn or typed signature.
  • A certificate page — the pack id, the artefact and renderer versions, the content fingerprint, the fingerprint of your terms PDF and the related records (application, credit application, Shopify company).

Two fingerprints. The content SHA-256 is a fingerprint of the application details the signers reviewed; it is printed on the certificate page. The file SHA-256 is a fingerprint of the finished PDF file itself; a file cannot contain its own fingerprint, so it is stored with the record and shown in the app instead. Both appear in the Record block on the company’s Agreement card and on the application page. To check a copy of the PDF, compare its SHA-256 (any SHA-256 tool can compute it) with the file SHA-256 shown in the app, and compare the content SHA-256 on its certificate page with the one shown in the app.

When two people sign and the application details change between the first and the second signature, the app records that: the certificate page prints both content fingerprints and the app shows a warning on the Agreement card and the application page.

Agreements signed earlier. Agreements signed before application packs were introduced keep their original PDF (your terms plus an acceptance-certificate page) and are never regenerated. The app labels them “Signed before application packs: contains terms and acceptance certificate only; application answers were not part of the signed document.” A second signer who completes a signing that started before packs also gets that earlier format.

When someone else needs to sign

The person who fills in the application is not always the person who can sign for the business. Under “Someone else needs to sign?” on the agreement page, the buyer can enter the name, position and email address of the person who is authorised to sign. That person is emailed their own signing link. Nothing to set up on your side — it works with every delivery mode.

  • Whoever signs first completes the agreement. The buyer’s own link keeps working. As soon as either person signs, the other link stops working, so each version is signed exactly once.
  • The application shows “awaiting signer”. The application page names the signer, their position and the address the link was sent to. It still counts as unsigned for the approval gate until someone signs.
  • The evidence names the address. When the named signer signs, their signer page in the signed PDF records the email address their signing link was sent to.
  • Limits. Naming a new signer replaces the previous one (their link stops working). A buyer’s link can be used to send at most three signing links, and a named signer cannot pass the request on to someone else.

The email uses the Trade Agreement Signer Request template, which you can edit under Settings › Email templates. This helps you collect the signature from the right person; whether that person has authority to bind the business remains a matter for you.

Requiring a second signer

Some businesses want the agreement executed by two officers. Turn on “Require a second signer” under Settings › Agreement (off by default). When it is on, it applies to every buyer: the agreement page also asks the first signer for the second signer’s name, position and email address, and the second signer is emailed their own signing link.

  • Who is exempt. When the first signer’s position is Sole Director or Owner / Proprietor, there is no second officer, so no second signer is asked for and one signature completes the agreement as usual.
  • Who can be the second signer. A Director or the Company Secretary, and a different person from the first signer (a different name and email address).
  • The agreement completes only after both have signed. Until then the application shows “awaiting second signer”, the agreement counts as unsigned for the approval gate, and no signed agreement is recorded yet.
  • One pack holds both. The signed PDF has a page for each signer with their name, position, time of signing and signature, and its certificate page lists both and the view of the application each one reviewed. The record keeps both signers.
  • The second link expires after 14 days. If the second signer never signs, their link expires and the first signature is discarded with it. Send a new agreement link from the application to start the signing again — also the way to go if the second signer never received their email.

The second signer’s email uses the same Trade Agreement Signer Request template. This helps you collect two signatures from the people the buyer names; whether they have authority to bind the business remains a matter for you.

Publishing your terms

  1. Go to Settings › Agreement.
  2. Enter a version label (for example v1 or 2026-01). The label lets you track which buyers signed which version.
  3. Upload your agreement terms as a PDF.
  4. Optionally turn on “Require a signed agreement before approval”.
  5. Choose when to send the signature link: Manually (you issue the link from the application or company page), Automatically (the buyer is emailed the link as soon as they submit) or Inline (the buyer is taken straight to the agreement after they submit, with the link also emailed as a backup). Automatic and Inline delivery work whether or not the agreement is required for approval — the requirement only decides whether you can approve before the buyer has signed.
  6. Click Publish new version. The published version becomes the in-force terms; the read-only system form appears under Forms › System forms.

Publishing a new version does not invalidate earlier signatures — it simply sets the current version. Companies that signed an older version are flagged so you can send them a re-sign link.

The approval gate

When “require for approval” is on, an application cannot be approved until the buyer has accepted the current version. On the application’s detail page you will see a banner prompting you to issue an acceptance link. The buyer can accept before you approve; once they do, their acceptance is promoted onto the company automatically when the application is approved.

The company Agreement card

Each company’s detail page has an Agreement card showing the current status:

  • Signed v<version> — the company accepted the current published version.
  • Out of date — the company signed an earlier version; send a re-sign link.
  • Not signed — no acceptance on file yet; send an acceptance link.

From the card you can preview or download the stored signed PDF and send a fresh acceptance or re-sign link to the company’s contact. Companies on an out-of-date version also surface on your Action required worklist as a re-sign item.

  • Two signers. When a second signer signed too, the card names both signers and their positions, shows the address the second signer’s link was sent to, and shows the date of the first signature next to the date the agreement was completed.
  • A named signer. When the buyer named someone else to sign, the card shows the address that person’s signing link was sent to.
  • Awaiting signer. When a re-sign link sent from the card is waiting for someone the buyer named, or for a second signer, the card shows an Awaiting signer notice naming who still has to sign, the address their link was sent to and when. Once that link’s 14 days have passed, the notice turns into a warning so you know to send a new re-sign link. The notice disappears when the agreement is signed.

Finding and checking signed records

Signed records (open Companies and select the Signed records button at the top of the page) lists every signed trade agreement in one place: each company’s signed versions, and signatures given before approval on applications that don’t have a Shopify company yet. The table has five columns: Company (the name, then the Shopify company id and the applicant’s email), Signed (the date, then the signer and their position, plus the second signer when there was one), Record (the short application pack id such as AGR-0002 — hover it for the full id — or Pre-pack record for a record signed before application packs, then the version), Status and Actions. The status is Signed, Out of date (signed on an earlier version than the one you publish now), Void or Superseded (see below); hover a Void badge to see who voided it, when and why. Hovering the badge of a signature given before approval whose applicant later asked for erasure shows Retained after redaction.

The tabs above the table narrow the list to All, Signed, Superseded, Void or Retained records. Search finds a record by company name, company id, application id, the applicant’s email, the Shopify customer id, the signer’s name or the pack id; a tab and a search combine.

  • Preview (the eye icon) opens the stored signed PDF in the app; Download (the arrow icon) saves the same file.
  • Verify a file — drop a PDF onto the Verify card to check whether it is exactly the file that was signed. The app computes the file’s fingerprint (SHA-256) and compares it with the fingerprint recorded for every signed record. The answer is either the matching record (company, version and pack id) or No signed record has this fingerprint. The uploaded file is only fingerprinted; it is not stored. Files up to 4 MB can be checked — a signed pack is usually tens of KB, so use the signed PDF itself, not a scan or a merged bundle. For an application pack the result also shows the content fingerprint printed on the pack, so a copy saved again by another program (same content, different file) can be told apart from an unknown file.
  • Mark void (the ··· More actions menu on the row) — when a record should no longer count (for example, the wrong person signed), mark it void with a reason. Nothing is deleted: the signed PDF and every stored detail stay as they are, and the record is marked void with your reason, your name and the time. The company’s Agreement card and the application page then show Void with the reason, and the re-sign actions stay available.

A voided signature given before approval counts as unsigned: when you require a signed agreement before approval, the application needs a new signature before it can be approved, and a voided signature is not carried over to the company on approval. A signature that was already carried over to a company is voided from that company’s row. When the company signs the same version again, the voided record is kept in the list as Void (archived) next to the new signature. A re-sign of the same version never replaces the earlier signing event either: the earlier record stays in the list as Superseded, with its own signed PDF that you can still preview and download (it cannot be voided — void the current record instead).

The same signed PDFs are also in the data export (Settings → Data Export), in the signed-records/ folder, indexed by signed_records.csv.

On the Shopify company and customer. When a signed application is approved, or a company re-signs from its Agreement card, B2B Onboard writes the signed record onto the Shopify company as metafields (Shopify admin → Companies → the company → Metafields): b2b_onboard.agreement_record_id, b2b_onboard.agreement_status, b2b_onboard.agreement_version, b2b_onboard.agreement_signed_at, b2b_onboard.agreement_signers, b2b_onboard.agreement_content_sha256, b2b_onboard.agreement_file_sha256, b2b_onboard.agreement_record_url. The customer gets a short copy: b2b_onboard.agreement_record_id, b2b_onboard.agreement_status, b2b_onboard.agreement_signed_at, b2b_onboard.agreement_record_url. The record id is the application pack id, or legacy:<version> for a record signed before application packs. The status is signed, out_of_date or void and reflects the last signing event: publishing a new version does not change it until the company signs again, and voiding the company’s current record sets it to void. The content and file fingerprints match the Record block in the app, and the record link opens the record in B2B Onboard. Signer names and positions are recorded; email addresses are not.

Privacy & retention

The acceptance record stores the signer name, their position, the authority declaration they confirmed, version, timestamp, IP address, browser user-agent string, the drawn signature image (when provided), the generated signed PDF, and a fingerprint (SHA-256) of that PDF. It also stores the acceptance sentence the signer ticked, word for word, and a fingerprint (SHA-256) of the terms PDF they were shown, alongside the signed PDF’s own fingerprint. For an application pack it also stores the pack id, the content fingerprint and the renderer version. Retention of signed agreements is driven by your own policy and counsel — the app does not auto-delete them.

If a customer asks for erasure. When Shopify sends a customer’s erasure request, B2B Onboard removes their personal data from the application (name, email, phone, form answers and uploaded documents). A signed trade agreement given before approval is kept as your contractual record: the signed PDF and its details stay as they were, and the record is marked Retained after redaction in Signed records. You receive an email at your notification address listing the retained records by application id, version and pack id. Whether you keep, void or export and remove a retained record follows your own policy; the app keeps it until you act. The notice is the Signed Record Retained After Redaction — Merchant template under Settings → Email templates, where you can edit its wording.