Skip to content

Sending a contract

A contract is sent as a public link tied to a service: /contract/<slug>, where <slug> is the service (for example custom-web-design). The client opens the link and walks through a multi-step flow that generates the agreement, collects their details, captures the signature, and hands off to payment.

The progress bar shows the steps. With add-ons enabled the steps are Details → Add-ons → Review → Sign → Pay; without add-ons it’s Details → Review → Sign → Pay.

The client enters their name, email, and business name (all required), plus optional phone and current website URL. The form is forgiving about how a URL is pasted — bare domains like example.com are normalized to a full https:// URL automatically.

For eligible services, the client can add:

  • Edge Hosting,
  • one Local SEO tier (Starter / Growth / Pro) or the Hands-Off ongoing-support option — these two are mutually exclusive; picking an SEO tier clears Hands-Off and vice-versa.

VertaFlow generates the service agreement as a PDF and shows it inline. The client reads it before proceeding.

The client provides a legally binding e-signature. On the in-page flow that’s a typed full legal name plus a consent checkbox (ESIGN / UETA). If the service routes to the dedicated signing page, the client is handed a private link instead — see The signing flow.

After signing, the client is taken to the matching Stripe payment link(s) — the build payment plus any add-ons they chose. Nothing is charged until they reach this step and pay.

If a client arrives carrying a promo code (for example from a spin-wheel prize through /checkout), the code follows them through to the payment step so the discount isn’t lost.

Once a client starts a contract, it appears in Contracts (/contracts) as pending, then flips to signed after they sign. See Contracts overview.