Index: main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- main/waeup.kofa/trunk/CHANGES.txt	(revision 16525)
+++ main/waeup.kofa/trunk/CHANGES.txt	(revision 16526)
@@ -4,4 +4,6 @@
 1.7.2.dev0 (unreleased)
 =======================
+
+* Extend `IPayer` adapter.
 
 * Adjust `ApplicantOnlinePaymentProcessor.getMapping` (2nd bugfix).
Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py	(revision 16525)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py	(revision 16526)
@@ -94,4 +94,9 @@
 
     @property
+    def payer(self):
+        "The payer object"
+        return self.context.__parent__
+
+    @property
     def display_fullname(self):
         "Name of  payer"
@@ -140,4 +145,8 @@
         return 'N/A'
 
+    def doAfterPayment(self):
+        "Do after payment was made."
+        return self.context.__parent__.doAfterApplicantPayment()
+
 # Applicant online payments must be importable. So we might need a factory.
 class ApplicantOnlinePaymentFactory(grok.GlobalUtility):
Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 16525)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 16526)
@@ -1018,4 +1018,5 @@
         self.assertEqual(payment.amount_auth,200.0)
         # Applicant is payer of the payment ticket.
+        self.assertEqual(IPayer(payment).payer, self.applicant)
         self.assertEqual(
             IPayer(payment).display_fullname, 'John Anthony Tester')
Index: main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py	(revision 16525)
+++ main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py	(revision 16526)
@@ -167,7 +167,8 @@
 class IPayer(IKofaObject):
     """An interface for an adapter to publish student and applicant data
-    through a simple webservice.
+    through a simple webservice. Also used in payment modules.
 
     """
+    payer = Attribute("The payer object")
     display_fullname = Attribute('Name of payer')
     id = Attribute('Id of payer')
@@ -180,2 +181,5 @@
     current_mode= Attribute('Current study mode of payer')
     current_level= Attribute('Current level of payer')
+
+    def doAfterPayment():
+        "Do after payment was made."
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py	(revision 16525)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py	(revision 16526)
@@ -182,4 +182,9 @@
 
     @property
+    def payer(self):
+        "The payer object"
+        return self.context.student
+
+    @property
     def display_fullname(self):
         "Name of  payer"
@@ -230,4 +235,8 @@
         "Current level of payer"
         return self.context.student.current_level
+
+    def doAfterPayment(self):
+        "Do after payment was made."
+        return self.context.student.doAfterStudentPayment()
 
 # Student online payments must be importable. So we might need a factory.
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 16525)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 16526)
@@ -3408,4 +3408,5 @@
         # Student is the payer of the payment ticket.
         payer = IPayer(self.student['payments'][value])
+        self.assertEqual(payer.payer, self.student)
         self.assertEqual(payer.display_fullname, 'Anna Tester')
         self.assertEqual(payer.id, self.student_id)
