Receipts
Automatic payment receipts — configuration, customization, and suppression.
VINR sends an automatic email receipt after a successful payment or refund. This page covers how to control, customize, and suppress those receipts.
Automatic receiptsAsk
By default, VINR sends a receipt when a PaymentIntent reaches succeeded status and a recipient email is available. The receipt includes: your merchant name, the amount and currency, the card last 4 and brand, the transaction date, and your configured support URL.
No code is required — receipts are enabled globally and fire automatically. You only need to ensure a recipient email is set.
Setting the recipient emailAsk
VINR resolves the receipt address in priority order:
receipt_emailon the PaymentIntent — takes highest priority, overrides everything elseemailon the Customer object — used whenreceipt_emailis not explicitly set on the PaymentIntent
If neither is present, no receipt is sent.
import { Vinr } from '@vinr/sdk';
const vinr = new Vinr({ apiKey: process.env.VINR_SECRET_KEY });
const paymentIntent = await vinr.paymentIntents.create({
amount: 4900,
currency: 'usd',
receipt_email: 'customer@example.com',
payment_method: 'pm_...',
confirm: true,
});Customizing receipt contentAsk
Go to Dashboard → Settings → Branding to configure:
- Logo — appears at the top of the receipt email
- Brand color — used as the accent color on buttons and links
- Support phone and URL — displayed in the footer of every receipt
- Custom message — short text appended to every receipt; useful for return policy reminders or order confirmation notes
Changes apply to all future receipts immediately. Existing sent receipts are not retroactively updated.
Suppressing receiptsAsk
To suppress a receipt for a single payment, pass receipt_email: null explicitly on the PaymentIntent:
const paymentIntent = await vinr.paymentIntents.create({
amount: 4900,
currency: 'usd',
receipt_email: null, // suppress for this payment only
payment_method: 'pm_...',
confirm: true,
});To suppress receipts globally, disable automatic receipts in Dashboard → Settings → Email. This is the right approach if you send your own transactional emails from your platform.
Refund receiptsAsk
When a refund is created, VINR sends a refund receipt to the original receipt_email. The refund receipt includes the refund amount, original charge amount, and estimated timeline. Refund receipts are suppressed using the same mechanisms as payment receipts — per-payment via receipt_email: null on the Refund object, or globally via Dashboard settings. See Refunds for the full refund workflow.
Custom receipt pagesAsk
To fully replace VINR receipts with your own:
- Suppress VINR receipts globally in Dashboard settings
- Listen for the
payment_intent.succeededwebhook on your server - Send your own receipt email from your transactional email provider
- Redirect customers to your order confirmation page via the
return_urlset on PaymentIntent confirmation
Receipt emails sent to EU customers are transactional communications under GDPR — the transaction itself provides the legal basis for sending them. Customers can opt out of marketing emails separately; receipts are not affected by marketing opt-outs.
Last updated on