public function listRecurringContracts($shopperReference, $store = null)
    {

        $recurringContracts = array();
        foreach ($this->_recurringTypes as $recurringType) {
            try {
                // merge ONECLICK and RECURRING into one record with recurringType ONECLICK,RECURRING
                $listRecurringContractByType = $this->listRecurringContractByType(
                    $shopperReference, $store,
                    $recurringType
                );

                foreach ($listRecurringContractByType as $recurringContract) {
                    if (isset($recurringContract['recurringDetailReference'])) {
                        $recurringDetailReference = $recurringContract['recurringDetailReference'];
                        // check if recurring reference is already in array
                        if (isset($recurringContracts[$recurringDetailReference])) {
                            // recurring reference already exists so recurringType is possible for ONECLICK and RECURRING
                            $recurringContracts[$recurringDetailReference]['recurring_type'] = self::RECURRING_TYPE_ONECLICK_RECURRING;
                        } else {
                            $recurringContracts[$recurringDetailReference] = $recurringContract;
                        }
                    }
                }
            } catch (Adyen_Payment_Exception $e) {
                Adyen_Payment_Exception::throwException(
                    Mage::helper('adyen')->__(
                        "Error retrieving the Billing Agreement for shopperReference %s with recurringType #%s Error: %s",
                        $shopperReference, $recurringType, $e->getMessage()
                    )
                );
            }
        }

        return $recurringContracts;
    }