}
         }
     }
     // if we are here, we got the latest transaction
     // We want to worry about only transactions in the New status - because these transactions have not
     // given next cycle's entitlements to the customer - so we want to make
     if ($latestTx != null) {
         print 'Latest Transaction ' . $latestTx->merchantTransactionId . 'has status = ' . $latestTx->statusLog[0]->status . PHP_EOL;
         if ($latestTx->statusLog[0]->status == 'New') {
             print 'Attempting to issue refund against pending transaction ID ' . $latestTx->merchantTransactionId . '.' . PHP_EOL;
             $refund = new Refund();
             $refund->setAmount($latestTx->getAmount());
             $refund->setTransaction($latestTx);
             $refund->setCurrency($latestTx->getCurrency());
             $nowNewYork = new \DateTime('now', new \DateTimeZone('America/New_York'));
             $refund->setNote('Refunding due to subscription cancellation at ' . $nowNewYork->format('Y-m-d_h_i_s') . PHP_EOL);
             $refundAPI = new Refund();
             logCall('refundAPI->perform ' . $latestTx->merchantTransactionId);
             $response = $refundAPI->perform(array($refund));
             if (isCallSuccessful($response)) {
                 $refunds = $response['data']->refunds;
                 print 'Issued refund of ' . $refunds[0]->getAmount() . ' against pending transaction ID ' . $latestTx->getMerchantTransactionId() . PHP_EOL;
             }
         }
     } else {
         // We do not need to do anything since we could not
         // find a transaction in 'New' status for this AutoBill
     }
 } else {
     print 'No transactions found' . PHP_EOL;
 }