Profil : consultant, agence, prestataire B2B qui facture client par client après prestation. Veut envoyer une facture professionnelle par email avec un lien de paiement crypto.
Pattern
Utilisez les Invoices. Chaque invoice :
- Email automatique au client à la création
- Lien de paiement unique (jetable, payable une seule fois)
- Renvoi possible avec nouvelle date d’expiration
- Marquée
paid automatiquement à la complétion du paiement
Via API
const invoice = await izipay.invoices.create({
amount: 250000,
currency: 'XOF',
dueDate: '2026-12-31',
clientEmail: 'compta@grosse-entreprise.com',
clientName: 'Grosse Entreprise SARL',
description: 'Prestation conseil — décembre 2026',
acceptedCoins: ['USDT.TRC20'], // ou laissez vide pour toutes
idempotencyKey: `invoice-2026-12-grosse-entreprise`,
});
console.log('Sent to', invoice.clientEmail, ':', invoice.publicUrl);
Relance automatique
Implémentez côté votre app un cron simple :
// daily
async function remindUnpaidInvoices() {
const list = await izipay.invoices.list({ status: 'pending' });
for (const inv of list.data) {
const daysUntilDue = differenceInDays(new Date(inv.dueDate), new Date());
if (daysUntilDue === 7 || daysUntilDue === 3 || daysUntilDue === 1) {
// L'email automatique à la création contient déjà le lien.
// Pour une relance, vous pouvez :
// 1. Renvoyer la même invoice (resend)
await izipay.invoices.resend(inv.id); // rafraîchit expiresAt (now + 7 jours si dueDate omis)
// 2. Ou envoyer un email personnalisé depuis votre app (Mailgun, SES)
// avec le lien `inv.publicUrl`
}
if (daysUntilDue < -7) {
// Plus de 7 jours après la due date → cancel + ré-émettre avec nouvelle date
await izipay.invoices.cancel(inv.id);
// ... créer une nouvelle invoice avec dueDate étendue
}
}
}
Multi-currency
Vous facturez en EUR pour des clients européens, en XOF pour des clients ouest-africains. Créez les invoices dans la devise du client :
await izipay.invoices.create({
amount: 1500,
currency: 'EUR',
// ...
});
Le client paye en crypto, vous nettez en crypto (puis auto-settle vers votre compte fiat préféré).
Trace pour la compta
Chaque invoice expose un publicUrl, utile pour vos archives de facturation. Le statut et le paiement associé sont consultables via le dashboard ou l’API :
const inv = await izipay.invoices.retrieve(invoiceId);
console.log({
status: inv.status,
paymentIntentId: inv.paymentIntentId, // pour récupérer le détail du paiement
});
Le dashboard permet de télécharger une facture PDF formatée (style cabinet conseil). API équivalente :
GET /v1/sharing/invoices/:id/pdf
Accept: application/pdf
Pour de gros volumes (> 100 invoices/jour), envisagez d’utiliser votre propre système d’envoi d’emails plus complet (templates marketing, A/B test des objets) avec l’URL IzichangePay comme CTA, au lieu du mail automatique.