All Resources
Feature Spotlight 6 min read October 29, 2026

PandaDoc Is Now Opt-In: What the $2 API Credit Problem Taught Us

PandaDoc's prepaid $0.12/document plan expired. Every document now costs a $2 API credit. We gated PandaDoc behind a per-zone config flag and fixed a latent bug that would have turned a receipt failure into a payment error.

PandaDoc had a prepaid plan. You paid $0.12 per document. You could buy a block of credits upfront and draw them down as you generated estimates, invoices, and receipts. It was a fixed, predictable cost. MoveRight used it for years — every receipt, every invoice, every estimate went through PandaDoc.

The plan was not renewed. Every document now costs a $2 API credit. The prepaid balance is gone. And the $2 credit the new plan grants is zero.

That’s not a price increase. That’s a different pricing model. The old plan was a prepaid meter — you paid for what you used, in advance. The new plan is a per-document API credit — you pay for what you use, on demand, at $2 a pop. The per-document cost went from $0.12 to $2.00. That’s a 1,567% increase.

Here’s what we did about it.


The Fix: PandaDoc Is Now Opt-In

As of the September 2026 hotfix (Changelog_2609.md !2307), PandaDoc document creation is blocked by default via a per-zone config flag: pandadoc.documentCreationEnabled, default false.

If your zone has an Aegis template for every document type you need — and at this point, most do — you never need to toggle this on. AegisDoc generates the document. No PandaDoc API call is made. No $2 credit is consumed.

If your zone still needs PandaDoc for a specific document type that doesn’t have an Aegis template yet, a zone admin can toggle pandadoc.documentCreationEnabled to true temporarily. PandaDoc is available for that document type. When the Aegis template ships, you toggle it back off.

The default is off. That’s the point. You don’t pay for PandaDoc unless you explicitly choose to.


The Latent Bug: A Receipt Failure Could Have Failed a Payment

Here’s the bug that would have bitten us if we hadn’t caught it. When a customer pays — through Square, through BlueSagePay, through any payment processor — MoveRight generates a receipt. If the payment was processed through PandaDoc, the receipt generation happened inside the transactions.create and transactions.update endpoints. The same endpoints that process the payment.

If the receipt generation failed — PandaDoc API down, credits exhausted, network timeout — the payment endpoint threw an error. The payment had already succeeded. The money had moved. But the endpoint returned a failure because the receipt couldn’t be generated.

The customer’s card was charged. The system said it failed. The dispatcher sees a failed payment. The customer sees a charge on their statement. The ops team has to reconcile manually.

That bug was latent — it hadn’t fired in production because PandaDoc was still on the prepaid plan and receipts were generating fine. But the moment the plan expired and credits ran out, every payment that triggered a PandaDoc receipt would have failed at the endpoint level.

We fixed it in !2307. PandaDoc receipt generation in transactions.create and transactions.update is now guarded. A receipt failure cannot fail the payment itself. The payment succeeds. The receipt fails gracefully. The system logs the receipt failure and moves on. The customer’s card is charged once. The dispatcher sees a successful payment. The receipt can be regenerated later.

Before !2307After !2307
PandaDoc receipt generationRuns inside the payment endpointGuarded — failure doesn’t fail the payment
Payment endpoint on receipt failureThrows error, payment appears failedReturns success, receipt failure logged separately
PandaDoc document creationDefault on, costs $2/documentDefault off via pandadoc.documentCreationEnabled
Document generation enginePandaDoc by defaultAegisDoc by default, PandaDoc opt-in

The Bigger Story: This Is Why We Built AegisDoc

This is not a story about a pricing change. This is a story about a dependency.

PandaDoc charges per document. The old plan was $0.12. The new plan is $2.00. But the model is the same: you pay for every document you generate. The more documents you generate, the more you pay. Your success — more jobs, more estimates, more invoices — is their revenue.

AegisDoc is ours. We built it in-house. It runs on Cloudflare Workers. The templates are sandboxed QuickJS. The PDFs are rendered server-side. There is no per-document fee. There is no API credit. There is no prepaid plan that can expire. The cost of generating the 10,000th document is the same as the cost of generating the first: the compute time on a Cloudflare Worker, which rounds to zero.

When PandaDoc’s plan changed, we didn’t have to negotiate. We didn’t have to eat the cost. We didn’t have to pass it to customers. We turned PandaDoc off. AegisDoc was already running. Every zone that had an Aegis template kept generating documents without interruption. The zones that didn’t have Aegis templates yet got the config flag, and a zone admin toggled it on until the template shipped.

That’s the value of owning the document engine. You are not at the mercy of a vendor’s pricing model. You are not at the mercy of a plan renewal. You generate the document. The cost is the compute. The compute is yours.


Where AegisDoc Stands Today

As of September 2026, AegisDoc has templates for:

  • Receipts (all zones)
  • Invoices (standard, YMM Vancouver Island, Movers Assistance, single-unit variants)
  • Estimates (standard, Calgary, Vancouver, Charlotte, Interstate USA, Kitchener-Waterloo, Vancouver Island, Movers Assistance, single-unit variants)
  • Bills of lading (FVP, Released Value, PVP)
  • Moving contracts (standard, state-specific for Washington and Oregon)
  • Customer packets (OTR)
  • Release of liability, claims release, customer satisfaction release
  • MoveBuddha inventory documents
  • Walkthrough acknowledgements, additional valuation, damage reports
  • Crew navigator document generation
  • Sixteen PandaDoc template families ported in the August release alone (!2288)

Every zone that has an Aegis template for a given document type uses Aegis by default. PandaDoc is the fallback, and the fallback is now opt-in.


MoveRight is the moving company CRM that built its own document engine so a vendor’s pricing change can’t tax your success — and gated the old vendor behind a config flag so you only pay for it if you choose to.

See how it works


References:

MR

MoveRight Team

MoveRight

pandadoc aegisdoc engineering documents cost

Ready to put this into practice?

Start a 5-day free trial and see how MoveRight handles this in your business.