Use Cases

Documents your users actually need.

Kamy is used by engineering teams shipping documents in fintech, e-commerce, legal, HR, SaaS, healthcare, education, and logistics. Each industry has different requirements — encryption, archival, RTL, batch scale, or custom branding. Kamy covers all of them.

BY INDUSTRY

Fintech & Payments

Compliant financial documents at transaction speed

Render branded invoices, receipts, and bank statements the moment a transaction settles. AES-256 encryption keeps sensitive data private; PDF/A tagging satisfies audit-trail requirements.

What you render

  • Invoices with line-item tax breakdowns
  • Payment receipts
  • Bank & account statements
  • Wire transfer confirmations

Key feature

AES-256 encryption

Owner + user passwords with per-action permission flags (print, copy, fill-forms).

typescript
const pdf = await kamy.render({
  template: "invoice",
  data: { invoiceId: "INV-2024-0091", total: 4_850.00 },
  options: {
    encrypt: {
      userPassword: customer.pin,
      ownerPassword: process.env.MASTER_KEY,
      permissions: ["print"],
    },
    metadata: { author: "Acme Finance", subject: "Invoice INV-2024-0091" },
  },
});

E-commerce

Receipts and shipping docs on every order

Fire a single batch API call at checkout and get 50–100 PDFs back in one round-trip — order receipts, packaging slips, and return authorizations in the customer's language.

What you render

  • Order receipts
  • Packaging slips
  • Return / exchange authorizations
  • Shipping labels

Key feature

Batch rendering

Up to 100 PDFs per call. One request, one response, no polling loop.

typescript
const results = await kamy.renderBatch(
  orders.map((order) => ({
    template: "receipt",
    data: order,
    options: { format: "a4", margin: { top: "1.5cm" } },
  }))
);
// results[i].pdf — base64-encoded PDF for orders[i]

Legal & Compliance

Signed contracts and audit-ready records

Generate Handlebars-templated contracts with party-specific data, stamp a diagonal watermark on drafts, and lock down final versions with owner passwords that prevent editing.

What you render

  • NDAs and mutual agreements
  • Service agreements
  • Employment contracts
  • Terms of service

Key feature

Watermark + encryption

Draft watermarks auto-removed on finalization; owner password prevents PDF editing.

typescript
const draft = await kamy.render({
  template: "service-agreement",
  data: { partyA: company, partyB: vendor, effectiveDate: today },
  options: {
    watermark: { text: "DRAFT", opacity: 0.12, angle: -45 },
  },
});

// On execution — remove watermark, encrypt final
const final = await kamy.render({
  template: "service-agreement",
  data: { ...signedData, signedAt: new Date().toISOString() },
  options: {
    encrypt: { ownerPassword: vaultKey, permissions: ["print"] },
  },
});

HR & Payroll

Offer letters, payslips, and onboarding kits

Merge employee data into branded offer letters and payslips in seconds. RTL support handles Arabic and Hebrew names correctly without any extra configuration.

What you render

  • Offer letters
  • Employment contracts
  • Monthly payslips
  • Termination / offboarding letters

Key feature

RTL & localization

Auto-detects Arabic, Hebrew, Persian, Urdu — correct block-level mirroring, no extra config.

typescript
const payslip = await kamy.render({
  template: "payslip",
  data: {
    employee: { name: "رنا العلمي", id: "EMP-0042" },
    period: "March 2025",
    gross: 8_500,
    deductions: 1_200,
  },
  options: {
    direction: "auto",   // detects Arabic → RTL
    header: { html: '<div style="text-align:right">{{date}}</div>' },
    pageNumbers: true,
  },
});

SaaS & Billing

Usage reports and subscription invoices

Let Kamy's async queue absorb end-of-month billing spikes. Kick off thousands of invoice renders with a webhook callback — your server is free the moment you POST.

What you render

  • Subscription invoices
  • Usage & metering reports
  • Renewal notices
  • Plan upgrade confirmations

Key feature

Async + webhooks

Submit a job, get a webhook when it's ready. Handles burst traffic without blocking your API.

typescript
// Fire and forget — webhook delivers the PDF URL
const job = await kamy.renderAsync({
  template: "subscription-invoice",
  data: { customerId: sub.customerId, period: "2025-03" },
  options: { format: "letter" },
  webhook: {
    url: "https://app.example.com/webhooks/invoice-ready",
    events: ["job.completed", "job.failed"],
  },
});
console.log("Job queued:", job.id);

Healthcare

Clinical documents with PDF/A archival

Render lab reports, discharge summaries, and prescription records with PDF/A-2b tagging so documents remain readable and verifiable for decades — a requirement in most healthcare compliance frameworks.

What you render

  • Lab & diagnostic reports
  • Discharge summaries
  • Prescription records
  • Patient consent forms

Key feature

PDF/A archival

Best-effort PDF/A-1b, 2b, or 3b tagging with sRGB ICC OutputIntent + XMP metadata.

typescript
const labReport = await kamy.render({
  template: "lab-report",
  data: {
    patient: { name: "J. Smith", dob: "1985-04-12" },
    results: labValues,
    orderedBy: physician.name,
  },
  options: {
    pdfA: "2b",
    metadata: {
      title: "Lab Report — J. Smith",
      author: "Central Hospital Laboratory",
      keywords: ["lab", "pathology", "2025"],
    },
  },
});

Education

Certificates and transcripts at graduation scale

Print 5,000 graduation certificates in a single batch call. Each certificate gets the student's name, programme, and honours — branded headers and footers included.

What you render

  • Graduation certificates
  • Academic transcripts
  • Course completion certificates
  • Enrolment confirmations

Key feature

Custom headers & footers

Per-page {{page}}/{{pages}} tokens, branded HTML headers, institution seal in the footer.

typescript
const certs = await kamy.renderBatch(
  graduates.map((g) => ({
    template: "certificate",
    data: { name: g.fullName, programme: g.degree, honours: g.honours },
    options: {
      format: "letter",
      orientation: "landscape",
      header: {
        html: '<div style="text-align:center;font-size:10px">University of Example · Class of 2025</div>',
        height: "1cm",
      },
    },
  }))
);

Logistics & Shipping

Labels, manifests, and customs documents

Generate shipping labels sized for Zebra printers, multi-page manifests, and customs declarations — all from a single template push. Inline remote images so carrier barcodes always render.

What you render

  • Shipping labels (4×6, 4×4)
  • Manifests & packing lists
  • Customs declarations
  • Bill of lading

Key feature

inlineImages + custom page size

Pre-fetches barcode <img> tags server-side so slow CDNs never break your label.

typescript
const label = await kamy.renderHtml({
  html: labelTemplate,
  data: {
    trackingNumber: shipment.trackingId,
    barcodeUrl: `https://barcodes.example.com/${shipment.trackingId}.png`,
    destination: shipment.toAddress,
  },
  options: {
    format: "a4",      // crop to 4×6 with CSS @page
    inlineImages: true, // pre-fetch barcode before print
    margin: { top: "0", right: "0", bottom: "0", left: "0" },
    compressImages: true,
  },
});

Kamy Ingest — Documents coming in

Read vendor PDFs with a chain back to the source

Every inbound invoice, claim form, contract, or ID document your agent processes returns structured JSON plus a public verify URL. Recipients re-verify the extraction matches the source PDF byte-for-byte with Kamy's public key — no Kamy account required. The disagreement becomes a fact question.

What you render

  • Vendor invoices for AP automation
  • Insurance claim forms for adjusters
  • Contracts arriving for review
  • Passports / national IDs for KYC
  • Generic forms — every visible field as a key-value pair

Key feature

Ed25519 signature chain

Signature over source_sha256 | extraction_sha256 | model | signed_at. Verifiable offline.

typescript
const result = await kamy.documents.extract({
  template: "invoice",
  source: { url: vendor.invoiceUrl },
});

// What you get back
{
  id: "8f3a...",
  extraction: {
    invoice_number: "INV-2026-0042",
    vendor: { name: "ACME", tax_id: "..." },
    total: { amount: 1234.56, currency: "USD" },
  },
  verifyUrl: "https://kamy.dev/extract/8f3a...",
  sourceSha256: "abc...",
  extractionSha256: "def...",
}
FULL CAPABILITY SET

Full capability set

Everything you need, nothing you don't.

Headers & footers with Handlebars tokensPage numbers (auto or custom HTML)AES-256 encryption + permission flagsPDF/A-1b / 2b / 3b archival taggingDiagonal watermarksRTL & BiDi auto-detectionBatch up to 100 PDFs per callAsync queue + webhook deliveryInline image pre-fetchingImage compressionCustom fonts via brand kitPDF metadata (title, author, keywords)Template versioning & rollbackValidate-only dry-run modePDF merge (combine 2–20 renders)

Every capability is available on all paid plans. Compare plans →

Render your first PDF in under two minutes.

Free plan includes 100 renders/month. No credit card required. Full API access from day one.

Get started free
Use cases — Kamy