code: def grant_bonus(self, assignment_id, amount, reason):
          
          assignment = self.get_assignment(assignment_id)
          worker_id = assignment["worker_id"]
          amount_str = "{:.2f}".format(amount)
          try:
              return self._is_ok(
                  self.mturk.send_bonus(
                      WorkerId=worker_id,
                      BonusAmount=amount_str,
                      AssignmentId=assignment_id,
                      Reason=reason,
                      UniqueRequestToken=self._request_token(),
                  )
              )
          except ClientError as ex:
              error = "Failed to pay assignment {} bonus of {}: {}".format(
                  assignment_id, amount_str, str(ex)
              )
              raise MTurkServiceException(error)
docs: Grant a bonus to the MTurk Worker.
          Issues a payment of money from your account to a Worker.  To
          be eligible for a bonus, the Worker must have submitted
          results for one of your HITs, and have had those results
          approved or rejected. This payment happens separately from the
          reward you pay to the Worker when you approve the Worker's
          assignment.