OpenInvoice uses Resend for sending transactional emails including invoices, payment confirmations, and reminders.
re_)RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=noreply@yourdomain.com
RESEND_FROM_NAME=OpenInvoice
http://localhost:3000/api/webhooks/resend (use ngrok)https://yourdomain.com/api/webhooks/resendSelect events:
email.sentemail.deliveredemail.delivery_delayedemail.complainedemail.bouncedemail.openedemail.clickedRESEND_WEBHOOK_KEY=whsec_...
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
from: process.env.RESEND_FROM_EMAIL!,
to: customerEmail,
subject: 'Invoice #123',
html: emailTemplate,
attachments: [
{
filename: 'invoice.pdf',
content: pdfBuffer,
},
],
});
OpenInvoice includes HTML email templates for:
Resend webhooks provide:
Events are stored in the database:
EmailLog - Email recordsEmailEvent - Individual events