How can we help?

Sales Billing — Invoices, Contracts & E-Signatures

Sales Billing — Invoices, Contracts & E-Signatures

Velaro includes a built-in billing product that lets your team send professional invoices, collect digital signatures on service agreements, and manage contract amendments — all without leaving the platform. Payment is processed through your Stripe account.

Getting Started — Connect Stripe

Go to Billing → Stripe Settings and enter your Stripe Secret Key and Publishable Key. Click Test Connection to verify. Once connected, Velaro can:

  • Search and create Stripe customers
  • Create and send invoices charged to your customers' cards
  • Generate Stripe payment links after a contract is signed
  • Sync payment status back to Velaro automatically via webhook

Your Stripe keys are encrypted at rest. Velaro never stores or logs plaintext keys.

Creating and Sending Invoices

Go to Billing → Invoices and click New Invoice. You can:

  • Search for an existing Stripe customer or create one on the spot
  • Pick products from your Stripe product catalog or type custom line items
  • Set net terms (Net 7, 15, 30, 45, 60) — the due date is calculated automatically
  • Load a saved invoice template for repeated billing scenarios
  • Add a footer note that appears on the invoice PDF

Click Send Invoice to finalize and deliver via Stripe. The customer receives a Stripe-hosted invoice with a payment link. Once they pay, status updates automatically.

Invoice Templates

Go to Billing → Invoice Templates to save reusable line item sets. Templates are useful for recurring billing scenarios (monthly retainers, annual contracts, project phases). Applying a template pre-fills the line items; you can still edit before sending.

Contracts and E-Signatures

Go to Billing → Contracts → New Contract to create a service agreement. You can:

  • Write the contract body in Markdown with live preview
  • Use {{placeholders}} that are auto-filled at signing time: {{customer_name}}, {{monthly_value}}, {{start_date}}, {{end_date}}, {{net_terms}}
  • Attach a line-item pricing table (same fields as invoices)
  • Load a saved contract template

Click Send for Signature to generate a unique signing link. Share the link with your customer — they can sign on any device, no account required. The signing page captures:

  • Their email and full name (typed as confirmation)
  • IP address and timestamp (for E-SIGN compliance)

Signed contracts show a Signed badge and the signer's email and timestamp.

Post-Signing Payment Collection

If the contract includes a setup fee, a Pay Now button appears on the customer's signing page immediately after they sign. Clicking it opens a Stripe Checkout page where they can pay by card (Apple Pay and Google Pay auto-enabled by Stripe where supported). Payment confirmation is sent back to Velaro via webhook.

Contract Templates

Go to Billing → Contracts → Templates to save reusable agreement templates. Templates support all {{placeholders}} and custom net terms. Apply a template when creating a new contract and the body is pre-filled — you can still customize it before sending.

Amendments — Upgrades and Plan Changes

When a signed customer upgrades their plan, click Upgrade on their contract row. Enter:

  • New plan name
  • New monthly value
  • Effective date

Velaro auto-generates an amendment draft with a pre-filled change table showing old vs. new pricing, the proration amount, and effective date. If the customer has a Stripe subscription, the proration is calculated exactly by Stripe.

The amendment gets its own signing token. Review and edit the draft, then click Send Amendment to deliver the signing link. Signed amendments are linked to the original contract and recorded in the amendment history.

Subscription Management

Go to Billing → Subscriptions to view and manage your customers' recurring Stripe subscriptions:

  • Upgrade or downgrade plans (proration previewed before applying)
  • Cancel at period end or immediately
  • Open the Stripe Customer Portal for customers to self-manage payment methods

Where to Find Payment Links

Every finalized Stripe invoice has a hosted invoice URL. On the Invoice detail page, you'll find a Customer Payment Link panel with a copy button and direct open link. Share this with customers who prefer to pay outside of the signing flow.

Webhook Setup (Required for Auto-Status Updates)

To have payment status sync automatically (invoice paid → status updated in Velaro):

1. In Stripe Dashboard → Developers → Webhooks, add an endpoint pointing to your Velaro instance: https://your-velaro-domain.com/api/BillingPayment/webhook

2. Select events: checkout.session.completed, invoice.paid, invoice.payment_failed

3. Copy the webhook signing secret

4. In Velaro, add BillingWebhookSecret = your signing secret to your Azure App Settings

Without webhook setup, you can still use the manual Mark Paid button on invoice records.

Frequently Asked Questions

Can customers sign on mobile? Yes — the signing page is fully responsive. E-SIGN compliance is maintained regardless of device.

Are contracts legally binding? The signing page collects email, full name (typed), IP address, and timestamp in compliance with the Electronic Signatures in Global and National Commerce Act (E-SIGN Act). Consult your legal counsel for jurisdiction-specific requirements.

Can I brand the invoices and contracts? Invoice and contract document styling uses your configured company name and colors. Logo upload and full white-labeling are on the roadmap.

What happens if a customer wants to cancel a contract? Void the contract from the Contracts list. Voided contracts are archived (not deleted) and the signing link returns an "inactive" page.

How are invoice numbers assigned? Velaro assigns sequential invoice numbers (e.g. INV-2026-00001) independently of Stripe's numbering. You can customize the prefix in Billing → Brand Settings.

Is there a limit on how many contracts or invoices I can create? Limits depend on your Velaro plan. Contact your account manager if you need higher limits.

Was this article helpful?