Payment link должен быть связан со счетом
Ссылка на оплату не должна быть просто URL с суммой. У нее должен быть счет, срок действия и проверяемый статус.
В B2B продажах менеджер часто выставляет счет и отправляет клиенту ссылку на оплату. Если ссылка не связана с внутренним invoice id, потом сложно понять, какой счет закрыт и кто должен получить уведомление.
Безопаснее создавать payment link на backend, сохранять invoice id, сумму, валюту, срок действия и статус. После оплаты backend проверяет результат и обновляет CRM или ERP.
- одна ссылка привязана к одному счету или одной платежной попытке;
- сумма и валюта не меняются на стороне клиента;
- ссылка имеет срок действия и статус;
- успех подтверждается backend-проверкой.
Какие ограничения нужны для ссылки
Payment link должен быть удобным, но не бесконечным и не редактируемым клиентом.
Ссылка должна иметь срок действия, фиксированную сумму и понятное поведение при повторном открытии. Если счет уже оплачен, повторный переход должен показывать текущий статус, а не создавать новую оплату без проверки.
Для спорных случаев полезен журнал: кто создал ссылку, когда она была отправлена, сколько раз открывалась и какой финальный статус пришел от платежного провайдера.
- expiration date для ссылки;
- фиксированная сумма и валюта;
- запрет повторной оплаты закрытого счета;
- audit trail действий менеджера и клиента.
Как связать payment links с CRM
Менеджеру нужен не raw callback, а понятный статус счета и история попыток оплаты.
CRM должна показывать бизнес-статусы: ссылка создана, отправлена, открыта, ожидает оплаты, оплачена, истекла или ошибка. Эти статусы помогают менеджеру не писать клиенту вручную после каждого события.
Если платеж успешен, CRM получает нормализованное событие, а ERP или бухгалтерский контур может получить отдельное уведомление о закрытии счета.
- обновлять счет только после проверенного статуса;
- хранить payment attempt history;
- разделять уведомления клиенту и внутренние статусы;
- поддерживать ручную повторную отправку ссылки.
FAQ
Можно ли менять сумму после создания payment link?
Лучше не менять сумму существующей ссылки. Если счет изменился, безопаснее создать новую ссылку или новую платежную попытку с новым idempotency key.
Что делать с истекшей ссылкой?
Показывать клиенту статус expired и давать менеджеру возможность создать новую ссылку с новой платежной попыткой.
Нужно ли логировать открытие ссылки?
Да, если это помогает поддержке и продажам. Но оплату все равно подтверждает только платежный статус, а не факт открытия ссылки.