Live react-pdf output1 page
What's inside

PDFx components used

BadgeDividerKey ValuePage FooterPage HeaderStackTableText
Use it in React

How to render a payment receipt PDF in React

Payment confirmations are high-volume and privacy-sensitive. Render the receipt beside your webhook with owned react-pdf code instead of posting cardholder metadata to a hosted PDF API.

  1. Preview the live @react-pdf/renderer output on this page (no signup).
  2. Click Use this template to open it in the visual builder and bind your {{variables}}.
  3. Export the .zip of typed TSX, drop it into your Next.js app, and call renderToBuffer with your data.

Drop the exported folder into your app/ directory, import the template, and pass typed props. Render it server-side with renderToBuffer in a route handler, or stream it to the browser. No headless browser, no runtime to learn.

Related: Stop using HTML-to-PDF for invoices · react-pdf vs Puppeteer

What you get on export

A folder you own

receipt-payment/
├─Template.tsx
├─types.ts
├─sample-data.ts
└─README.md
import { Template } from "./receipt-payment";
import { renderToBuffer } from "@react-pdf/renderer";

const pdf = await renderToBuffer(
  <Template data={data} />
);
FAQ

Questions about this payment receipt template

Is the preview the real PDF?

Yes. The sheet renders through @react-pdf/renderer, the exact engine behind the export and the hosted API. What you preview is what ships.

Do I own the exported code?

Yes. Export is a .zip of typed TSX, sample data, and a README. There is no proprietary runtime and no vendor lock-in. You render PDFs inside your own React or Next.js app.

Does customer payment data leave my app?

Not if you export the code. You render the receipt in your own infrastructure. The optional hosted API is separate and only processes JSON you choose to send.