diff --git a/CRM/Contribute/Form/CancelSubscription.php b/CRM/Contribute/Form/CancelSubscription.php
index 75ae5a1c05e204a5baff4b41df9348d4eff2858e..ef9dbe32ca320958f900300b95a09e3ac76a658e 100644
--- a/CRM/Contribute/Form/CancelSubscription.php
+++ b/CRM/Contribute/Form/CancelSubscription.php
@@ -220,7 +220,6 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib
 
     if (CRM_Utils_Array::value('send_cancel_request', $params) == 1) {
       $cancelParams = ['subscriptionId' => $this->_subscriptionDetails->subscription_id];
-      $this->_paymentProcessorObj->setContributionRecurID($this->contributionRecurID);
       $cancelSubscription = $this->_paymentProcessorObj->cancelSubscription($message, $cancelParams);
     }
 
diff --git a/CRM/Core/Payment.php b/CRM/Core/Payment.php
index 089dffc822152ac165381bb8f703411f07a2fbc0..91a7c0be8c53f059a4b5334125b1c43ab43a5ef8 100644
--- a/CRM/Core/Payment.php
+++ b/CRM/Core/Payment.php
@@ -149,381 +149,6 @@ abstract class CRM_Core_Payment {
    */
   protected $backOffice = FALSE;
 
-  /**
-   * Contribution that is being paid.
-   *
-   * @var int
-   */
-  protected $contributionID;
-
-  /**
-   * Contact ID for payment.
-   *
-   * @var int
-   */
-  protected $contactID;
-
-  /**
-   * Recurring contribution that is being paid.
-   *
-   * @var int
-   */
-  protected $contributionRecurID;
-
-  /**
-   * Description of purchase.
-   *
-   * @var string
-   */
-  protected $description;
-
-  /**
-   * CiviCRM generated Invoice ID.
-   *
-   * @var string
-   */
-  protected $invoiceID;
-
-  /**
-   * Is this a recurring contribution.
-   *
-   * @var bool
-   */
-  protected $isRecur;
-
-  /**
-   * Payment processor generated string for charging.
-   *
-   * A payment token could be a single use token (e.g generated by
-   * a client side script) or a token that permits recurring or on demand charging.
-   *
-   * The key thing is it is passed to the processor in lieu of card details to
-   * initiate a payment.
-   *
-   * Generally if a processor is going to pass in a payment token generated through
-   * javascript it would add 'payment_token' to the array it returns in it's
-   * implementation of getPaymentFormFields. This will add a hidden 'payment_token' field to
-   * the form. A good example is client side encryption where credit card details are replaced by
-   * an encrypted token using a gateway provided javascript script. In this case the javascript will
-   * remove the credit card details from the form before submitting and populate the payment_token field.
-   *
-   * A more complex example is used by paypal checkout where the payment token is generated
-   * via a pre-approval process. In that case the doPreApproval function is called on the processor
-   * class to get information to then interact with paypal via js, finally getting a payment token.
-   * (at this stage the pre-approve api is not in core but that is likely to change - we just need
-   * to think about the permissions since we don't want to expose to anonymous user without thinking
-   * through any risk of credit-card testing using it.
-   *
-   * If the token is not totally transient it would be saved to civicrm_payment_token.token.
-   *
-   * @var string
-   */
-  protected $paymentToken;
-
-  /**
-   * Three digit currency code.
-   *
-   * @var string
-   */
-  protected $currency;
-
-  /**
-   * Payment processor generated string for the transaction ID.
-   *
-   * Note some gateways generate a reference for the order and one for the
-   * payment. This is for the payment reference and is saved to
-   * civicrm_financial_trxn.trxn_id.
-   *
-   * @var string
-   */
-  protected $transactionID;
-
-  /**
-   * Amount of money charged in fees by the payment processor.
-   *
-   * This is notified by (some) payment processers.
-   *
-   * @var float
-   */
-  protected $feeAmount;
-
-  /**
-   * Additional information returned by the payment processor regarding the payment outcome.
-   *
-   * This would normally be saved in civicrm_financial_trxn.trxn_result_code.
-   *
-   * @var string
-   */
-  protected $trxnResultCode;
-
-  /**
-   * Combined with recurFrequencyUnit this gives how often billing will take place.
-   *
-   * e.g every if this is 1 and recurFrequencyUnit is 'month' then it is every 1 month.
-   *
-   * @var int
-   */
-  protected $recurFrequencyInterval;
-
-  /**
-   * Combined with recurFrequencyInterval this gives how often billing will take place.
-   *
-   * e.g every if this is 'month' and recurFrequencyInterval is 1 then it is every 1 month.
-   *
-   * @var string
-   *   month|day|year
-   */
-  protected $recurFrequencyUnit;
-
-  /**
-   * Passed in parameters.
-   *
-   * Using individual getters & setters is preferred but these will be used if
-   * they are not available.
-   *
-   * @var array
-   */
-  protected $inputParams = [];
-
-  /**
-   * @return int
-   */
-  public function getContactID(): int {
-    return $this->contactID ?? $this->inputParams['contactID'];
-  }
-
-  /**
-   * @param int $contactID
-   */
-  public function setContactID(int $contactID) {
-    $this->contactID = $contactID;
-  }
-
-  /**
-   * Getter for contributionRecurID.
-   *
-   * Ideally this would always be set by the calling function using the setting
-   * but we need to fall back to the historical passing on inputParams as a transition.
-   *
-   * In time we can add a notice if it's set in input params & not via a setter.
-   *
-   * @return int
-   */
-  public function getContributionRecurID(): int {
-    return $this->contributionRecurID ?? $this->inputParams['contributionRecurID'];
-  }
-
-  /**
-   * @param int $contributionRecurID
-   */
-  public function setContributionRecurID(int $contributionRecurID) {
-    $this->contributionRecurID = $contributionRecurID;
-  }
-
-  /**
-   * Getter for Payment Token.
-   *
-   * @return string
-   */
-  public function getPaymentToken(): string {
-    return $this->paymentToken ?? $this->inputParams['token'];
-  }
-
-  /**
-   * Setter for Payment Token.
-   *
-   * @param string $paymentToken
-   */
-  public function setPaymentToken(string $paymentToken) {
-    $this->paymentToken = $paymentToken;
-  }
-
-  /**
-   * Get gateway generated transaction ID.
-   *
-   * @return string
-   */
-  public function getTransactionID(): string {
-    return $this->transactionID;
-  }
-
-  /**
-   * Set gateway generated transaction ID for the payment.
-   *
-   * Note some gateways generate a reference for the order and one for the
-   * payment. This is for the payment reference and is saved to
-   * civicrm_financial_trxn.trxn_id.
-   *
-   * @param string $transactionID
-   */
-  public function setTransactionID(string $transactionID) {
-    $this->transactionID = $transactionID;
-  }
-
-  /**
-   * Get additional result information received from gateway.
-   *
-   * This is saved to civicrm_financial_trxn.trxn_result_code.
-   *
-   * @return string
-   */
-  public function getTrxnResultCode(): string {
-    return $this->trxnResultCode;
-  }
-
-  /**
-   * Set additional result information from gateway.
-   *
-   * This is saved to civicrm_financial_trxn.trxn_result_code.
-   *
-   * @param string $resultCode
-   */
-  public function setTrxnResultCode(string $resultCode) {
-    $this->trxnResultCode = $resultCode;
-  }
-
-  /**
-   * Get recurring frequency interval.
-   *
-   * @return int
-   */
-  public function getRecurFrequencyInterval(): int {
-    return $this->recurFrequencyInterval ?? $this->inputParams['frequency_interval'];
-  }
-
-  /**
-   * Set recurring frequency interval.
-   *
-   * @param int $recurFrequencyInterval
-   */
-  public function setRecurFrequencyInterval(int $recurFrequencyInterval) {
-    $this->recurFrequencyInterval = $recurFrequencyInterval;
-  }
-
-  /**
-   * Get recurring frequency unit.
-   *
-   * @return string
-   */
-  public function getRecurFrequencyUnit(): string {
-    return $this->recurFrequencyUnit;
-  }
-
-  /**
-   * Set recurring frequency unit.
-   *
-   * @param string $recurFrequencyUnit
-   */
-  public function setRecurFrequencyUnit(string $recurFrequencyUnit) {
-    $this->recurFrequencyUnit = $recurFrequencyUnit ?? $this->inputParams['frequency_unit'];
-  }
-
-  /**
-   * Get invoice ID (CiviCRM generated invoice reference).
-   *
-   * @return string
-   */
-  public function getInvoiceID(): string {
-    return $this->invoiceID ?? $this->inputParams['invoiceID'];
-  }
-
-  /**
-   * Set invoice ID (CiviCRM generated invoice reference).
-   *
-   * @param string $invoiceID
-   */
-  public function setInvoiceID(string $invoiceID) {
-    $this->invoiceID = $invoiceID;
-  }
-
-  /**
-   * Get whether the payment is recurring.
-   *
-   * @return bool
-   */
-  public function isRecur(): bool {
-    return $this->isRecur;
-  }
-
-  /**
-   * Set whether the payment is recurring.
-   *
-   * @param bool $isRecur
-   */
-  public function setIsRecur(bool $isRecur) {
-    $this->isRecur = $isRecur ?? $this->inputParams['is_recur'];
-  }
-
-  /**
-   * Get the description.
-   *
-   * This generates a description string from params if one has been passed in but
-   * ideally calling functions would use the setDescription function.
-   *
-   * @return string
-   */
-  public function getDescription(): string {
-    if ($this->description) {
-      return $this->description;
-    }
-    if (isset($this->inputParams['description'])) {
-      $uninformativeStrings = [
-        ts('Online Event Registration: '),
-        ts('Online Contribution: '),
-      ];
-      $this->description = str_replace($uninformativeStrings, '', $this->inputParams['description']);
-    }
-    return $this->description;
-  }
-
-  /**
-   * Set description.
-   *
-   * Generally this should be called when instantiating the processor to override
-   * getPaymentDescription, if desired.
-   *
-   * @param string $description
-   */
-  public function setDescription(string $description) {
-    $this->description = $description;
-  }
-
-  /**
-   * Get fee amount returned by processor.
-   *
-   * @return float
-   */
-  public function getFeeAmount(): float {
-    return $this->feeAmount;
-  }
-
-  /**
-   * Set fee amount returned by processor.
-   *
-   * @param float $feeAmount
-   */
-  public function setFeeAmount(float $feeAmount) {
-    $this->feeAmount = $feeAmount;
-  }
-
-  /**
-   * Get the contribution ID.
-   *
-   * We prefer the one set by the setter but traditional forms just pass in 'contributionID'.
-   *
-   * @return int
-   */
-  public function getContributionID(): int {
-    return $this->contributionID ?? $this->inputParams['contributionID'];
-  }
-
-  /**
-   * @param int $contributionID
-   */
-  public function setContributionID(int $contributionID) {
-    $this->contributionID = $contributionID;
-  }
-
   /**
    * @return bool
    */
@@ -1060,8 +685,6 @@ abstract class CRM_Core_Payment {
    * Get the metadata of all the fields configured for this processor.
    *
    * @return array
-   *
-   * @throws \CiviCRM_API3_Exception
    */
   protected function getAllFields() {
     $paymentFields = array_intersect_key($this->getPaymentFormFieldsMetadata(), array_flip($this->getPaymentFormFields()));
@@ -1104,8 +727,6 @@ abstract class CRM_Core_Payment {
    *
    * @return array
    *   field metadata
-   *
-   * @throws \Exception
    */
   public function getPaymentFormFieldsMetadata() {
     //@todo convert credit card type into an option value
@@ -1445,9 +1066,8 @@ abstract class CRM_Core_Payment {
    *
    * @return string
    */
-  protected function getCurrency($params = []) {
-    $params = array_merge($params, (array) $this->inputParams);
-    return $this->currency ?? CRM_Utils_Array::value('currencyID', $params, CRM_Utils_Array::value('currency', $params));
+  protected function getCurrency($params) {
+    return CRM_Utils_Array::value('currencyID', $params, CRM_Utils_Array::value('currency', $params));
   }
 
   /**
@@ -1455,14 +1075,12 @@ abstract class CRM_Core_Payment {
    *
    * Handle any inconsistency about how it is passed in here.
    *
-   * @param array $params
+   * @param $params
    *
    * @return string
-   * @throws \CRM_Core_Exception
    */
-  protected function getAmount($params = []) {
-    $amount = $this->amount ?? $params['amount'];
-    return CRM_Utils_Money::format($amount, NULL, NULL, TRUE);
+  protected function getAmount($params) {
+    return CRM_Utils_Money::format($params['amount'], NULL, NULL, TRUE);
   }
 
   /**
@@ -1624,7 +1242,6 @@ abstract class CRM_Core_Payment {
    * @throws \Civi\Payment\Exception\PaymentProcessorException
    */
   public function doPayment(&$params, $component = 'contribute') {
-    $this->inputParams = $params;
     $this->_component = $component;
     $statuses = CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id', 'validate');
 
@@ -2010,7 +1627,7 @@ INNER JOIN civicrm_contribution con ON ( con.contribution_recur_id = rec.id )
    *
    * @return string
    */
-  protected function getPaymentDescription($params = [], $length = 24) {
+  protected function getPaymentDescription($params, $length = 24) {
     $parts = [
       'contactID',
       'contributionID',
@@ -2019,7 +1636,13 @@ INNER JOIN civicrm_contribution con ON ( con.contribution_recur_id = rec.id )
       'billing_last_name',
     ];
     $validParts = [];
-    $params['description'] = $this->getDescription();
+    if (isset($params['description'])) {
+      $uninformativeStrings = [
+        ts('Online Event Registration: '),
+        ts('Online Contribution: '),
+      ];
+      $params['description'] = str_replace($uninformativeStrings, '', $params['description']);
+    }
     foreach ($parts as $part) {
       if ((!empty($params[$part]))) {
         $validParts[] = $params[$part];
diff --git a/CRM/Core/Payment/PayPalImpl.php b/CRM/Core/Payment/PayPalImpl.php
index 04ee47e496fe24e82bc438746d934c235bcc2ec6..b2d090a4d99f33a9e06e2667e16072249eeaa4ed 100644
--- a/CRM/Core/Payment/PayPalImpl.php
+++ b/CRM/Core/Payment/PayPalImpl.php
@@ -432,7 +432,6 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment {
       "&m=" .
       "&c={$params['contactID']}" .
       "&r={$params['contributionRecurID']}" .
-      // @todo use $this->getContributionID();
       "&b={$params['contributionID']}" .
       "&p={$params['contributionPageID']}";
 
@@ -570,7 +569,6 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment {
       $args['PROFILEREFERENCE'] = "" .
         "i=" . $params['invoiceID'] . "&m=" . $component .
         "&c=" . $params['contactID'] . "&r=" . $params['contributionRecurID'] .
-        // @todo use $this->getContributionID();
         "&b=" . $params['contributionID'] . "&p=" . $params['contributionPageID'];
     }
 
@@ -882,7 +880,6 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment {
     $notifyParameters = ['module' => $component];
     $notifyParameterMap = [
       'contactID' => 'contactID',
-      // @todo use $this->getContributionID();
       'contributionID' => 'contributionID',
       'eventID' => 'eventID',
       'participantID' => 'participantID',
@@ -906,7 +903,6 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment {
 
     $cancelUrlString = "$cancel=1&cancel=1&qfKey={$params['qfKey']}";
     if (!empty($params['is_recur'])) {
-      // @todo use $this->getContributionID();
       $cancelUrlString .= "&isRecur=1&recurId={$params['contributionRecurID']}&contribId={$params['contributionID']}";
     }
 
diff --git a/api/v3/PaymentProcessor.php b/api/v3/PaymentProcessor.php
index 8373cc7ec7c8174995f81830715f85980aba15a9..c2e5e4e16327e911c2a9963fe8160c164b127912 100644
--- a/api/v3/PaymentProcessor.php
+++ b/api/v3/PaymentProcessor.php
@@ -131,15 +131,6 @@ function civicrm_api3_payment_processor_pay($params) {
   $processor = Civi\Payment\System::singleton()->getById($params['payment_processor_id']);
   $processor->setPaymentProcessor(civicrm_api3('PaymentProcessor', 'getsingle', ['id' => $params['payment_processor_id']]));
   try {
-    $processor->setContributionID($params['contribution_id']);
-    $processor->setInvoiceID($params['invoice_id'] ?? '');
-    if (!empty($params['contact_id'])) {
-      $processor->setContactID((int) $params['contact_id']);
-    }
-    if (!empty($params['contribution_recur_id'])) {
-      $processor->setContributionRecurID((int) $params['contribution_recur_id']);
-    }
-
     $result = $processor->doPayment($params);
   }
   catch (\Civi\Payment\Exception\PaymentProcessorException $e) {
@@ -150,7 +141,7 @@ function civicrm_api3_payment_processor_pay($params) {
     }
     throw new API_Exception('Payment failed', $code, $errorData, $e);
   }
-  return civicrm_api3_create_success([$result], $params);
+  return civicrm_api3_create_success(array($result), $params);
 }
 
 /**
diff --git a/tests/phpunit/api/v3/PaymentProcessorTest.php b/tests/phpunit/api/v3/PaymentProcessorTest.php
index 6c54af7867b30e9bf7e1cdbf7528e20b7d283701..60ccd4e5ceacb8cf1607e4d1f7b92d6242637e00 100644
--- a/tests/phpunit/api/v3/PaymentProcessorTest.php
+++ b/tests/phpunit/api/v3/PaymentProcessorTest.php
@@ -35,11 +35,6 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
   protected $_apiversion = 3;
   protected $_params;
 
-  /**
-   * Set up for class.
-   *
-   * @throws \CRM_Core_Exception
-   */
   public function setUp() {
     parent::setUp();
     $this->useTransaction(TRUE);
@@ -74,8 +69,6 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
 
   /**
    * Create payment processor.
-   *
-   * @throws \Exception
    */
   public function testPaymentProcessorCreate() {
     $params = $this->_params;
@@ -95,8 +88,6 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
 
   /**
    * Update payment processor.
-   *
-   * @throws \CRM_Core_Exception
    */
   public function testPaymentProcessorUpdate() {
     $params = $this->_params;
@@ -140,8 +131,6 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
 
   /**
    * Check payment processor delete.
-   *
-   * @throws \CRM_Core_Exception
    */
   public function testPaymentProcessorDelete() {
     $result = $this->callAPISuccess('payment_processor', 'create', $this->_params);
@@ -154,8 +143,6 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
 
   /**
    * Check with valid params array.
-   *
-   * @throws \CRM_Core_Exception
    */
   public function testPaymentProcessorsGet() {
     $params = $this->_params;
@@ -171,33 +158,4 @@ class api_v3_PaymentProcessorTest extends CiviUnitTestCase {
     $this->assertEquals('test@test.com', $results['values'][$results['id']]['user_name']);
   }
 
-  /**
-   * Test the processor passed to the hook can access the relevant variables.
-   *
-   * @throws \CRM_Core_Exception
-   * @throws \CiviCRM_API3_Exception
-   */
-  public function testPaymentProcessorPay() {
-    $this->hookClass->setHook('civicrm_alterPaymentProcessorParams', [$this, 'hook_civicrm_alterPaymentProcessorParams']);
-    $processor = $this->dummyProcessorCreate();
-    $this->callAPISuccess('PaymentProcessor', 'pay', [
-      'payment_processor_id' => $processor->getID(),
-      'contribution_id' => 10,
-      'invoice_id' => 2,
-      'contribution_recur_id' => 3,
-      'amount' => 6,
-    ]);
-  }
-
-  /**
-   * Implements civicrm_alterPaymentProcessorParams hook.
-   *
-   * @param \CRM_Core_Payment_Dummy $paymentObject
-   */
-  public function hook_civicrm_alterPaymentProcessorParams($paymentObject) {
-    $this->assertEquals(10, $paymentObject->getContributionID());
-    $this->assertEquals(2, $paymentObject->getInvoiceID());
-    $this->assertEquals(3, $paymentObject->getContributionRecurID());
-  }
-
 }