Skip to main content
Cover pages let you generate a dynamic, branded first page for each submission with personalized financial data, company details, and a call-to-action. The cover page is prepended to the template PDF automatically — the original template is never modified.

How it works

  1. You pass a cover_page object when creating a submission
  2. SpitShake generates a single-page PDF with your data
  3. The cover page is prepended to the template as page 1
  4. All existing field positions are automatically shifted by +1 page
  5. The signer sees the cover page first, then scrolls to the signing fields
Each submission gets its own cover page with its own data. The original template is cloned internally — your template is never modified.

API usage

Create a submission with cover page

Add the cover_page object to your POST /api/submissions request. All 14 fields are required when cover_page is present.

Cover page parameters

All fields are required when the cover_page object is present. Omitting cover_page entirely creates a normal submission (backward compatible).
string
required
The company or individual name displayed prominently on the cover page. Long names wrap to multiple lines automatically.
integer
required
Total number of entries in the claim. Displayed in the header subtitle.
string
required
Type of recovery or claim. Displayed in the header subtitle. Example: "IEEPA tariff recovery", "Section 301 recovery".
integer
required
Total estimated net refund in whole dollars (no cents, no decimals). This is the hero number displayed in a large emerald card. Example: 345175 renders as $345,175.
integer
required
Phase 1 net refund amount in whole dollars.
integer
required
Number of entries in Phase 1.
string
required
Phase 1 description. Example: "Filing Immediately".
integer
required
Phase 2 net refund amount in whole dollars.
integer
required
Number of entries in Phase 2.
string
required
Phase 2 description. Example: "After Liquidation".
integer
required
Phase 1 estimated base refund plus interest, before admin fees.
integer
required
Phase 1 admin/broker fee. Must be a negative value. Example: -43125 renders as - $43,125.
integer
required
Phase 2 estimated base refund plus interest, before admin fees.
integer
required
Phase 2 admin/broker fee. Must be a negative value. Example: -11200 renders as - $11,200.

Cover page layout

The generated cover page is a single US Letter (8.5” x 11”) PDF with these sections: All dollar amounts are dynamically centered and scale to fit regardless of digit count — from $500 to $500,000,000.

Combining with Quick Sign

Cover page and Quick Sign work together for a seamless one-click signing experience:
The signer opens the link, sees the cover page with their refund summary, then a carousel modal presents their signature fields with auto-generated signatures. One tap per field and they’re done.

Node.js / TypeScript example

Important notes

All monetary values are integers in whole dollars. No cents, no decimals. 345175 means $345,175.
Admin fees must be negative. Pass -43125, not 43125.
  • The math should be internally consistent:
    • estimated_refund = phase_1_amount + phase_2_amount
    • phase_1_amount = base_interest_1 + admin_fee_1
    • phase_2_amount = base_interest_2 + admin_fee_2
    • SpitShake does not validate the math — it renders whatever you send. But signers will notice if the numbers don’t add up.
  • Omitting cover_page entirely creates a normal submission with no cover page (backward compatible).
  • The cover page is generated per submission. Each signer gets their own personalized page.
  • Field positions on the original template are automatically shifted by +1 page to account for the prepended cover page.

Enabling in the template builder

You can also enable cover pages from the template builder UI:
  1. Open the template in the builder
  2. Go to Template Settings
  3. Toggle Cover Page on
  4. The first page of the first document shows a “Dynamic” badge in the builder
When enabled via the builder, submissions created from the dashboard will prompt for cover page data. API submissions always control cover page inclusion via the cover_page parameter regardless of this setting.

Error handling