diff --git a/accessEntity/data.go b/accessEntity/data.go
index e709445..0039c1f 100644
--- a/accessEntity/data.go
+++ b/accessEntity/data.go
@@ -276,8 +276,12 @@
 }
 
 func (d *DbManager) GetAppCredentials(org, priKey, priVal, secKey, secVal string) (appCredentials []common.AppCredential, err error) {
-	if priKey == IdentifierConsumerKey {
+
+	switch priKey {
+	case IdentifierConsumerKey:
 		return d.getAppCredentialByConsumerKey(priVal, org)
+	case IdentifierAppId:
+		return d.getAppCredentialByAppId(priVal, org)
 	}
 	return
 }
@@ -458,6 +462,20 @@
 	return
 }
 
+func (d *DbManager) getAppCredentialByAppId(appId, org string) (appCredentials []common.AppCredential, err error) {
+	cols := []string{"*"}
+	query := selectAppCredentialByConsumerKey(
+		selectAppCredentialMapperByAppId(
+			"'"+appId+"'",
+			"appcred_id",
+		),
+		cols...,
+	) + " AND ac.tenant_id IN " + sql_select_tenant_org
+	//log.Debugf("getAppCredentialByAppId: %v", query)
+	err = d.GetDb().QueryStructs(&appCredentials, query, org)
+	return
+}
+
 func (d *DbManager) getCompanyByAppId(appId, org string) (companies []common.Company, err error) {
 	cols := []string{"*"}
 	query := selectCompanyByComId(
