Dynamically add User into a role
While you could utilize hooks like hook_form_FORM_ID_alter setting custom #validate &amp; #submit functions or hook_webform_submission_insert, I've had better success using the Payment module and writing a custom Payment Method class.