diff --git a/api/v3/Mjwpayment.php b/api/v3/Mjwpayment.php
index 8b297983dde79da2d6391af5ffcd649a43f690c1..c9e90d37baf687ecf762eac2c8c606bc8fb066ff 100644
--- a/api/v3/Mjwpayment.php
+++ b/api/v3/Mjwpayment.php
@@ -160,17 +160,12 @@ function _civicrm_api3_mjwpayment_get_payment_spec(&$params) {
       'type' => CRM_Utils_Type::T_INT,
       'api.aliases' => ['payment_id', 'id'],
     ],
-    'is_payment' => [
-      'title' => ts('Is Payment'),
-      'description' => ts('Is this entry a payment (is_payment=1) or a reversal of a payment (is_payment=0)?'),
-      'type' => CRM_Utils_Type::T_BOOLEAN,
-      'api.default' => TRUE,
-    ],
   ];
 }
 
 /**
  * Retrieve a set of financial transactions which are payments.
+ * @todo This matches Payment.Get following https://github.com/civicrm/civicrm-core/pull/17071 which will be in CiviCRM 5.26
  *
  * @param array $params
  *  Input parameters.
@@ -180,56 +175,38 @@ function _civicrm_api3_mjwpayment_get_payment_spec(&$params) {
  * @throws \CiviCRM_API3_Exception
  */
 function civicrm_api3_mjwpayment_get_payment($params) {
-  $ftParams = [];
+  $params['is_payment'] = TRUE;
+  $contributionID = $params['entity_id'] ?? NULL;
 
-  // To get by contribution ID we need to "join" civicrm_financial_trxn.id on civicrm_entity_financial_trxn.financial_trxn_id
-  // But this is a pseudo API so we can't do that directly (FinancialTrxn can).
-  if (isset($params['entity_id']) && ($params['entity_table'] === 'civicrm_contribution')) {
+  // In order to support contribution id we need to do an extra lookup.
+  if ($contributionID) {
     $eftParams = [
-      'entity_id' => $params['entity_id'],
-      'entity_table' => $params['entity_table'],
+      'entity_id' => $contributionID,
+      'entity_table' => 'civicrm_contribution',
       'options' => ['limit' => 0],
+      'financial_trxn_id.is_payment' => 1,
     ];
     $eft = civicrm_api3('EntityFinancialTrxn', 'get', $eftParams)['values'];
-    $eftIds = [];
-    foreach ($eft as $efts) {
-      if (empty($efts['financial_trxn_id'])) {
-        continue;
-      }
-      $eftIds[] = $efts['financial_trxn_id'];
-      $map[$efts['financial_trxn_id']] = $efts['entity_id'];
+    if (empty($eft)) {
+      return civicrm_api3_create_success([], $params, 'Payment', 'get');
     }
-    if (!empty($eftIds)) {
-      $ftParams = [
-        'id' => ['IN' => $eftIds],
-        'is_payment' => $params['is_payment'],
-      ];
+    foreach ($eft as $entityFinancialTrxn) {
+      $params['financial_trxn_id']['IN'][] = $entityFinancialTrxn['financial_trxn_id'];
     }
   }
 
-  // If we have IDs from EntityFinancialTrxn merge them here.
-  $ftParams = array_merge($params, $ftParams);
-  $ftParams['return'] = array_values(CRM_Utils_Array::collect('name', civicrm_api3('FinancialTrxn', 'getfields')['values']));
-  $ftParams['return'][] = 'id.entity_id';
-  $ftParams['sequential'] = 0;
-  $financialTrxn = civicrm_api3('FinancialTrxn', 'get', $ftParams)['values'];
-  if (empty($eftIds) && !empty($financialTrxn)) {
-    $eftParams = [
-      'financial_trxn_id' => ['IN' => array_keys($financialTrxn)],
-      'entity_table' => 'civicrm_contribution',
-    ];
-    $eft = civicrm_api3('EntityFinancialTrxn', 'get', $eftParams)['values'];
-    foreach ($eft as $efts) {
-      if (empty($efts['financial_trxn_id'])) {
-        continue;
-      }
-      $map[$efts['financial_trxn_id']] = $efts['entity_id'];
+  $financialTrxn = civicrm_api3('FinancialTrxn', 'get', array_merge($params, ['sequential' => FALSE]))['values'];
+  if ($contributionID) {
+    foreach ($financialTrxn as &$values) {
+      $values['contribution_id'] = $contributionID;
     }
   }
-  // Map contribution_id from id.entity_id
-  foreach ($financialTrxn as &$values) {
-    $values['contribution_id'] = $map[$values['id']] ?? NULL;
+  elseif (!empty($financialTrxn)) {
+    $entityFinancialTrxns = civicrm_api3('EntityFinancialTrxn', 'get', ['financial_trxn_id' => ['IN' => array_keys($financialTrxn)], 'entity_table' => 'civicrm_contribution', 'options' => ['limit' => 0]])['values'];
+    foreach ($entityFinancialTrxns as $entityFinancialTrxn) {
+      $financialTrxn[$entityFinancialTrxn['financial_trxn_id']]['contribution_id'] = $entityFinancialTrxn['entity_id'];
+    }
   }
 
-  return civicrm_api3_create_success($financialTrxn ?? [], $params, 'Mjwpayment', 'get_payment');
+  return civicrm_api3_create_success($financialTrxn, $params, 'Mjwpayment', 'get_payment');
 }