В работе с модулем имеется возможность использования следующих обработчиков событий:
| Константа класса nc_payment_system | Описание события | 
|---|---|
| EVENT_ON_INIT | инициализация класса платёжной системы | 
| EVENT_BEFORE_PAY_REQUEST | перед отправкой формы платежа | 
| EVENT_AFTER_PAY_REQUEST | после отправки формы платежа | 
| EVENT_ON_PAY_REQUEST_ERROR | ошибка отправки формы | 
| EVENT_BEFORE_PAY_CALLBACK | перед обработкой ответа от платёжной системы | 
| EVENT_AFTER_PAY_CALLBACK | после обработки ответа от платёжной системы | 
| EVENT_ON_PAY_CALLBACK_ERROR | ошибка в ответе от платёжной системы | 
| EVENT_ON_PAY_SUCCESS | платеж прошёл успешно | 
| EVENT_ON_PAY_FAILURE | ошибка при оплате на стороне платёжной системы | 
Методы-слушатели должны принимать следующие параметры: nc_payment_system $payment_system, [nc_payment_invoice $invoice].
Заготовка класса для обработки событий модуля «Приём платежей»:
/**
 * Класс обработки событий модуля «Приём платежей»
 */
class my_payment_event_listener {
    /**
     * При создании экземпляра класса он будет зарегистрирован в качестве
     * обработчика событий «успешная оплата» и «ошибка при оплате»
     */
    public function __construct() {
        $event = $nc_core = nc_core::get_object()->event;
        $event->bind($this, array(nc_payment_system::EVENT_ON_PAY_SUCCESS => 'on_payment_success'));
        $event->bind($this, array(nc_payment_system::EVENT_ON_PAY_FAILURE => 'on_payment_failure'));
    }
    /**
     * Обработчик события «успешная оплата»
     * @param nc_payment_system $payment_system    экземпляр класса платёжной системы
     * @param nc_payment_invoice|null $invoice     счёт на оплату
     */
    public function on_payment_success(nc_payment_system $payment_system, nc_payment_invoice $invoice = null) {
        // действия после оплаты
        // дополнительные сведения о счёте можно получить из $invoice:
        if ($invoice) {
            $invoice->get_id(); // идентификатор счёта
            $invoice->get('order_source'); // источник счёта, указанный при его создании
            $invoice->get('order_id'); // идентификатор оплачиваемого объекта, указанный при создании счёта
        }
    }
    /**
     * Обработчик события «ошибка при оплате»
     * @param nc_payment_system $payment_system    экземпляр класса платёжной системы
     * @param nc_payment_invoice|null $invoice     счёт на оплату
     */
    public function on_payment_failure(nc_payment_system $payment_system, nc_payment_invoice $invoice = null) {
        // действия в случае если оплата не удалась
    }
}
Для инициализации класса-слушателя используйте событие AFTER_MODULES_LOADED:
// например, в /netcat/modules/default/function.inc.php:
// инициализация слушателя событий модуля «Приём платежей»
nc_core::get_object()->event->add_listener(nc_event::AFTER_MODULES_LOADED, function() {
    new my_payment_event_listener();
});
