Article focus
Bind every link to one invoice
A link must retain the commercial context of the invoice it closes.
Create payment links on the backend and store the invoice identifier, amount, currency, expiration and recipient context. The customer must not be able to alter these commercial fields in the browser.
After payment, verify the provider result and update the invoice through the same identifier. This prevents an ambiguous payment from being manually matched to the wrong customer or invoice.
- One link maps to one controlled payment flow.
- Use stable invoice and payment identifiers.
- Verify status before closing an invoice.
Set expiry and repeat-payment rules
A convenient link should still have a clear life cycle.
Define what happens after the expiry date, after an invoice is paid and after a customer opens the link several times. A closed invoice should present its current state, not silently create another payable transaction.
When an invoice changes, issue a new controlled payment attempt rather than editing the amount of a previously shared link. This keeps the audit trail and reconciliation logic understandable.
- Use an explicit expiry.
- Block repeat payment of a closed invoice.
- Issue a new link when commercial terms change.
Give CRM a business view of the lifecycle
Sales teams need clear states, not raw technical callbacks.
CRM should display whether the link was created, sent, pending, paid, expired or failed, together with the verified payment reference. This lets a manager act without interpreting raw provider responses.
Keep delivery tracking and payment confirmation separate. Opening a link may be useful context for sales, but only a verified provider result should change the invoice to paid.
- Normalize status for sales users.
- Keep payment attempts in history.
- Audit manual resend or cancellation actions.
FAQ
Can the amount change after a payment link is created?
It is safer to create a new payment attempt and a new link when invoice terms change.
What should an expired link show?
A clear expired state and a controlled way for the seller to issue a replacement link.
Should opening a link mark an invoice as paid?
No. Only backend verification of the provider result can close the invoice.