Use this file to discover all available pages before exploring further.
The Billing Intent webhook is sent to banks when merchants want to establish billing agreements with their customers. This webhook notifies the bank that a merchant is requesting permission to bill a customer.
entityId: Your bank’s unique identifier - entityType: Always “bank” for bank webhooks - webhookType: Always “billing.intent” for this webhook - timestamp: ISO 8601 timestamp when webhook was sent - batchId: Unique
identifier for this webhook batch - itemCount: Number of billing intents in this webhook
Customer Information
customerId: Your internal customer identifier - customerEmail: Customer’s email address - lookupPhrase: Phrase used by merchant to find customer - agreementPhrase: Phrase to be used for future billing (if approved)
Merchant Information
merchant.id: Merchant’s unique identifier in Peere Network - merchant.name: Business name displayed to customer - merchant.icon: Logo URL for customer recognition - merchant.email: Merchant contact email -
merchant.website: Merchant website URL
Request Details
currency: Currency code for billing (e.g., “NGN”) - description: Merchant’s description of billing purpose - reference: Unique reference for this billing intent - dueDate: When customer decision is expected
const nodemailer = require('nodemailer');async function sendEmailNotification(customerId, intentData) { const customer = await getCustomer(customerId); const emailContent = ` <h2>Billing Authorization Request</h2> <p>Dear ${customer.name},</p> <p><strong>${intentData.merchant.name}</strong> is requesting permission to bill you for:</p> <p><em>${intentData.description}</em></p> <p>Please review this request in your banking app and decide whether to:</p> <ul> <li>Approve once (requires approval for each transaction)</li> <li>Approve recurring (automatic billing within your limits)</li> <li>Deny (reject this billing agreement)</li> </ul> <a href="${process.env.BANKING_APP_URL}/billing-intents/${intentData.reference}"> Review Request </a> `; await transporter.sendMail({ from: process.env.BANK_EMAIL, to: customer.email, subject: `Billing Request from ${intentData.merchant.name}`, html: emailContent });}