diff --git a/build.gradle b/build.gradle
index ee3f503..c99d533 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,6 @@
     id 'com.palantir.docker' version '0.22.1' apply false
 }
 
-group = 'com.supwisdom'
 
 allprojects {
     repositories {
@@ -24,6 +23,8 @@
     apply plugin: 'java'
     apply plugin: 'io.spring.dependency-management'
 
+    group = 'com.supwisdom'
+    
     sourceCompatibility = JavaVersion.VERSION_1_8
     targetCompatibility = JavaVersion.VERSION_1_8
 
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/types/ShopTypes.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/types/ShopTypes.java
index 32bb010..99ab41f 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/types/ShopTypes.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/types/ShopTypes.java
@@ -4,7 +4,10 @@
   GROUP("group", "商户组"),
   ROOT("root", "根商户"),
   NORMAL("normal", "结算商户"),
-  ALL("all", new ShopTypes[]{ROOT, GROUP, NORMAL});
+  DEPOSIT("deposit", "充值商户"),
+  ALL("all", new ShopTypes[]{
+      ROOT, GROUP, NORMAL, DEPOSIT
+  });
 
   ShopTypes(String t, Object data) {
     this.id = t;
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
index 76ee122..1e9ee1e 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
@@ -8,9 +8,9 @@
 @Entity
 @Table(name = "TB_SHOP",
     indexes = {@Index(name = "shop_shopaccno_idx", columnList = "shopaccno")})
+@SequenceGenerator(name = "shopid", sequenceName = "SEQ_SHOP", allocationSize = 1, initialValue = 10)
 public class TShop {
   @Id
-  @SequenceGenerator(name = "shopid", sequenceName = "SEQ_SHOP", allocationSize = 1, initialValue = 10)
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "shopid")
   @Column(name = "SHOPID", nullable = false, precision = 9)
   private Integer shopid;
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
index 943b4e5..820ba54 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
@@ -1,8 +1,9 @@
 package com.supwisdom.dlpay.framework.domain;
 
 import com.supwisdom.dlpay.framework.util.MoneyUtil;
-import com.supwisdom.dlpay.framework.util.Sign;
 import com.supwisdom.dlpay.framework.util.Signature;
+import org.hibernate.annotations.LazyToOne;
+import org.hibernate.annotations.LazyToOneOption;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
@@ -51,6 +52,11 @@
   @NotNull
   private String tenantId;
 
+  @OneToOne(targetEntity = TShop.class, fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
+  @JoinColumn(name = "shopid", referencedColumnName = "shopid")
+  @LazyToOne(value = LazyToOneOption.NO_PROXY)
+  private TShop shop;
+
   public String getShopaccno() {
     return shopaccno;
   }
@@ -164,4 +170,12 @@
   public void setTenantId(String tenantId) {
     this.tenantId = tenantId;
   }
+
+  public TShop getShop() {
+    return shop;
+  }
+
+  public void setShop(TShop shop) {
+    this.shop = shop;
+  }
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java
deleted file mode 100644
index c0053f7..0000000
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.supwisdom.dlpay.framework.util;
-
-public class TradeSummary {
-  public static final String POS_PAY = "刷卡消费";
-  public static final String WX_PAYCODE = "微信付款码消费";
-}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java
deleted file mode 100644
index 83b16e8..0000000
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.supwisdom.dlpay.framework.util;
-
-public class TranstypeCode {
-
-  public static final int TT_CONSUUME_MANAGE_FEE = 301;
-}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
index 7423036..4a6009a 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
@@ -7,6 +7,7 @@
 import com.supwisdom.dlpay.api.service.ChargeApiService
 import com.supwisdom.dlpay.api.service.TransactionServiceProxy
 import com.supwisdom.dlpay.api.service.UserService
+import com.supwisdom.dlpay.api.types.ShopTypes
 import com.supwisdom.dlpay.exception.TransactionCheckException
 import com.supwisdom.dlpay.exception.TransactionProcessException
 import com.supwisdom.dlpay.framework.ResponseBodyBuilder
@@ -160,6 +161,10 @@
         }
 
         val shopacc = accountUtilServcie.readShopbyShopaccno(param.merchant)
+        if (shopacc.shop.shoptype != ShopTypes.DEPOSIT.value()) {
+            return ResponseBodyBuilder.failEntity(response, TradeErrorCode.INPUT_DATA_ERROR,
+                    "该商户不能充值")
+        }
 
         val capitalType = chargeApiService.getDepositCapital(param.capitalType)
 
