Prompt
I'm building a marketplace and need receipts and notifications by email
Latest observation
Oct 5, 2026
OpenAI APIWeb search: off
Absolutely — for a marketplace, you’ll usually want two separate email systems:
- Receipts / transactional emails
- Notifications / operational emails
Here’s a practical way to think about both.
1) Receipts by email
These are transactional and should be sent automatically after a purchase or payment event.
Typical receipt emails include:
- Order number
- Date/time
- Buyer and seller info
- Items purchased
- Quantity, unit price, subtotal
- Tax, shipping, platform fees, discounts
- Total paid
- Payment method used
- Refund/cancellation policy
- Support/contact links
- Download/invoice link if applicable
Common receipt triggers:
- Order completed
- Payment captured
- Subscription renewed
- Refund issued
- Chargeback/failure notice
Best practices:
- Send from a verified domain like
receipts@yourdomain.com - Use a dedicated provider for deliverability
- Keep the email concise and easy to scan
- Include a clear receipt PDF or HTML view if needed
- Make sure the receipt matches the charge exactly
2) Notifications by email
These are also often transactional, but can be more event-driven and vary by user role.
Examples for a marketplace:
Buyer notifications
- Order confirmed
- Item shipped
- Refund approved
- Seller messaged you
- Dispute opened
Seller notifications
- New order received
- Payout sent
- Item approved/rejected
- Buyer message
- Chargeback/dispute
Admin notifications
- New seller application
- Fraud/risk alerts
- High-value order alerts
- Failed payout
- Abandoned checkout
Best practices:
- Let users control which notifications they receive
- Separate critical notifications from optional ones
- Avoid sending marketing content in transactional emails
- Support localization if you have multiple regions
Recommended implementation approach
Use an email service provider
Good options:
- SendGrid
- Postmark
- AWS SES
- Mailgun
- Resend
For marketplaces, Postmark and SES are common for transactional emails.
Structure your system by event
Create internal events such as:
order.paidorder.shippedpayment.failedrefund.createdpayout.sent
Then map each event to:
- Email template
- Recipient(s)
- Conditions for sending
Build template-based emails
Use templates with variables like:
{{buyer_name}}{{order_number}}{{items}}{{total}}
This keeps receipts and notifications consistent and easy to maintain.
Example email types you may need
Receipts
- Order receipt
- Payment receipt
- Refund receipt
- Payout receipt for sellers
- Invoice for B2B buyers
Notifications
- Order confirmation
- Shipping update
- Message alert
- Dispute opened
- Account/security alert
Important technical considerations
- SPF, DKIM, DMARC set up for your sending domain
- Use a queue/background worker so emails don’t slow down checkout
- Make sending idempotent so duplicate events don’t send duplicate emails
- Log email status: sent, delivered, opened, bounced, failed
- Handle retries and failures gracefully
- Store a copy of sent receipts for compliance
If you want a simple architecture
A common setup is:
- Your app creates an event after checkout
- A worker consumes the event
- The worker renders the correct template
- The email provider sends it
- You log the result in your database
If you want, I can help you with any of these next:
- Designing the email event system
- Writing receipt email templates
- Choosing the best email provider
- Creating backend code examples in Node.js, Python, or Rails