Payment Receipts (Email / SMS / WhatsApp)
ECOSIRE Payment Receipts automatically sends a customer their receipt over Email, SMS, and/or WhatsApp the moment a customer Payment Entry (type Receive) is submitted — for example, when a tenant's rent payment or a construction client's progress payment is recorded. Every attempted send writes one Payment Receipt Log row (Sent / Failed, provider message id, redacted response).
The engine is fire-and-forget (a receipt failure can never block or roll back the payment), idempotent (a channel already marked Sent for a payment is skipped), and keeps secrets out of logs.
Email works through your ERPNext site's outgoing Email Account. SMS and WhatsApp only send once you supply the relevant provider credentials (an Africa's Talking SMS account, or a Meta WhatsApp Cloud API phone number + token). Enter them in Settings; a channel with no credentials simply stays inactive.
Before you start
- Install
ecosire_payment_receipts, ERPNext v16, andecosire_license_client, and activate the ECOSIRE licence. - For SMS: an Africa's Talking username, API key, and Sender ID / short code.
- For WhatsApp: a WhatsApp Cloud API Phone Number ID, access token, and (optionally) an approved template name + language.
- Contact details on your Customers (email / mobile) so recipients can be resolved.
1. Configure Payment Receipt Settings
Open Payment Receipt Settings as System Manager:
- Tick Enable Payment Receipts.
- Optionally set Limit to Company to scope receipts to one company.
- Choose channels: Send Email Receipt, Send SMS Receipt, Send WhatsApp Receipt.
- Email — pick the From Email Account and the Receipt Print Format (attached as the PDF receipt).
- SMS (Africa's Talking) — set the environment, Sender ID / Short Code, Username, and API Key.
- WhatsApp (Cloud API) — set the Phone Number ID, Access Token, and template name/language if you use a template.
- Save. The app validates the licence on save; enter credentials only in these encrypted Password fields, never in notes or screenshots.
2. How it works day to day
You don't do anything extra:
- An accountant submits a customer Payment Entry (type Receive) — for instance, against a rent or progress invoice.
- A background job resolves the customer's contact, renders the receipt, and dispatches it on every enabled channel.
- One Payment Receipt Log row is written per channel attempt.
3. Review & resend
Open Payment Receipt Log to audit each send: Payment Entry, Customer, Channel, Recipient, Status (Sent / Failed), Provider Message ID, amount, receipt number, and any error (with a redacted provider response).
To re-send a specific channel for a payment, use the whitelisted resend action (System Manager / Accounts Manager only) — the safe operator override for a failed send.
Troubleshooting
| Symptom | Check |
|---|---|
| No receipt sent at all | Enable Payment Receipts off, licence inactive, or the payment isn't type Receive |
| Email sent but SMS/WhatsApp not | That channel's credentials are missing or the toggle is off |
| A channel shows Failed | Read the log row's error + redacted response; fix the credential/template, then resend |
| Duplicate receipt | Cannot happen for a channel already marked Sent — resend is the explicit override |