code: def pay(self, transactionAmount, senderTokenId,
              recipientTokenId=None, callerTokenId=None,
              chargeFeeTo="Recipient",
              callerReference=None, senderReference=None, recipientReference=None,
              senderDescription=None, recipientDescription=None,
              callerDescription=None, metadata=None,
              transactionDate=None, reserve=False):
          
          params = {}
          params['SenderTokenId'] = senderTokenId
          # this is for 2008-09-17 specification
          params['TransactionAmount.Amount'] = str(transactionAmount)
          params['TransactionAmount.CurrencyCode'] = "USD"
          #params['TransactionAmount'] = str(transactionAmount)
          params['ChargeFeeTo'] = chargeFeeTo
          
          params['RecipientTokenId'] = (
              recipientTokenId if recipientTokenId is not None
              else boto.config.get("FPS", "recipient_token")
              )
          params['CallerTokenId'] = (
              callerTokenId if callerTokenId is not None
              else boto.config.get("FPS", "caller_token")
              )
          if(transactionDate != None):
              params['TransactionDate'] = transactionDate
          if(senderReference != None):
              params['SenderReference'] = senderReference
          if(recipientReference != None):
              params['RecipientReference'] = recipientReference
          if(senderDescription != None):
              params['SenderDescription'] = senderDescription
          if(recipientDescription != None):
              params['RecipientDescription'] = recipientDescription
          if(callerDescription != None):
              params['CallerDescription'] = callerDescription
          if(metadata != None):
              params['MetaData'] = metadata
          if(callerReference == None):
              callerReference = uuid.uuid4()
          params['CallerReference'] = callerReference
          
          if reserve:
              response = self.make_request("Reserve", params)
          else:
              response = self.make_request("Pay", params)
          body = response.read()
          if(response.status == 200):
              rs = ResultSet()
              h = handler.XmlHandler(rs, self)
              xml.sax.parseString(body, h)
              return rs
          else:
              raise FPSResponseError(response.status, response.reason, body)
docs: Make a payment transaction. You must specify the amount.
          This can also perform a Reserve request if 'reserve' is set to True.