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.Documentation Index
Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt
Use this file to discover all available pages before exploring further.
How it works
- You pass a
cover_pageobject when creating a submission - SpitShake generates a single-page PDF with your data
- The cover page is prepended to the template as page 1
- All existing field positions are automatically shifted by +1 page
- 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 thecover_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 thecover_page object is present. Omitting cover_page entirely creates a normal submission (backward compatible).
The company or individual name displayed prominently on the cover page. Long names wrap to multiple lines automatically.
Total number of entries in the claim. Displayed in the header subtitle.
Type of recovery or claim. Displayed in the header subtitle. Example:
"IEEPA tariff recovery", "Section 301 recovery".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.Phase 1 net refund amount in whole dollars.
Number of entries in Phase 1.
Phase 1 description. Example:
"Filing Immediately".Phase 2 net refund amount in whole dollars.
Number of entries in Phase 2.
Phase 2 description. Example:
"After Liquidation".Phase 1 estimated base refund plus interest, before admin fees.
Phase 1 admin/broker fee. Must be a negative value. Example:
-43125 renders as - $43,125.Phase 2 estimated base refund plus interest, before admin fees.
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:| Section | Content |
|---|---|
| Header | Company name, entry count, and entry type |
| Hero card | Large emerald card displaying the total estimated_refund |
| Phase cards | Two side-by-side cards showing each phase’s amount and entry count |
| Fee breakdown | Two side-by-side tables: base + interest, admin fee, and net per phase |
| Trust indicators | Three green dots: “Zero cost upfront”, “Broker files under their license”, “90-120 day timeline” |
| CTA | ”Sign below to authorize your refund” |
| Footer | Legal disclaimer and company information |
$500 to $500,000,000.
Combining with Quick Sign
Cover page and Quick Sign work together for a seamless one-click signing experience:Node.js / TypeScript example
Important notes
-
The math should be internally consistent:
estimated_refund=phase_1_amount+phase_2_amountphase_1_amount=base_interest_1+admin_fee_1phase_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_pageentirely 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:- Open the template in the builder
- Go to Template Settings
- Toggle Cover Page on
- The first page of the first document shows a “Dynamic” badge in the builder
cover_page parameter regardless of this setting.
Error handling
| Status | Cause | Fix |
|---|---|---|
400 | Missing required cover_page field | Include all 14 fields listed above. |
404 | Invalid template_id | Verify the template exists and belongs to your account. |
500 | PDF generation failed | Ensure all values are integers (not strings or nulls). |
500 | Template PDF is corrupted or missing | Re-upload the template document. |