diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/MultiTenantAutoConfig.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/MultiTenantAutoConfig.java
new file mode 100644
index 0000000..f849cea
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/MultiTenantAutoConfig.java
@@ -0,0 +1,16 @@
+package com.supwisdom.dlpay.paysdk;
+
+import com.supwisdom.dlpay.paysdk.tenant.DefaultMultiTenantProviderFactory;
+import com.supwisdom.dlpay.paysdk.tenant.MultiTenantProviderFactory;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MultiTenantAutoConfig {
+  @Bean
+  @ConditionalOnMissingBean(MultiTenantProviderFactory.class)
+  public MultiTenantProviderFactory defaultFactory() {
+    return new DefaultMultiTenantProviderFactory();
+  }
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java
index 1002d52..0a11f39 100644
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java
@@ -1,18 +1,36 @@
 package com.supwisdom.dlpay.paysdk;
 
+import com.supwisdom.dlpay.paysdk.tenant.MultiTenantProviderFactory;
 import com.supwisdom.dlpay.paysdk.utils.Constants;
 import com.supwisdom.dlpay.paysdk.utils.JwtContext;
 import feign.RequestInterceptor;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Component;
 
 @Component
 public class PayAPIRequestInterceptor {
+
+  @Value("${payapi.tenantid:}")
+  private String tenantid;
+
+  private final MultiTenantProviderFactory tenantProviderFactory;
+
+  public PayAPIRequestInterceptor(MultiTenantProviderFactory tenantProviderFactory) {
+    this.tenantProviderFactory = tenantProviderFactory;
+  }
+
   @Bean
   public RequestInterceptor headerInterceptor() {
     return requestTemplate -> {
       // 小示例，没什么卵用
-      requestTemplate.header(Constants.HEADER_TENANT_ID, "{tenantid}");
+      String tenant;
+      if (tenantid != null || "".equals(tenantid)) {
+        tenant = tenantProviderFactory.getProvider().getCurrentTenant();
+      } else {
+        tenant = tenantid;
+      }
+      requestTemplate.header(Constants.HEADER_TENANT_ID, tenant);
       String jwt = JwtContext.getJwt();
       if (jwt != null) {
         requestTemplate.header(Constants.JWT_HEADER, "Bearer " + jwt);
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProvider.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProvider.java
new file mode 100644
index 0000000..95dd221
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProvider.java
@@ -0,0 +1,8 @@
+package com.supwisdom.dlpay.paysdk.tenant;
+
+public class DefaultMultiTenantProvider implements MultiTenantProvider {
+  @Override
+  public String getCurrentTenant() {
+    return "{tenantid}";
+  }
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProviderFactory.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProviderFactory.java
new file mode 100644
index 0000000..0b42fa3
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/DefaultMultiTenantProviderFactory.java
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.paysdk.tenant;
+
+public class DefaultMultiTenantProviderFactory implements MultiTenantProviderFactory {
+  private MultiTenantProvider provider = new DefaultMultiTenantProvider();
+
+  public MultiTenantProvider getProvider() {
+    return provider;
+  }
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProvider.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProvider.java
new file mode 100644
index 0000000..5db786c
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProvider.java
@@ -0,0 +1,5 @@
+package com.supwisdom.dlpay.paysdk.tenant;
+
+public interface MultiTenantProvider {
+  String getCurrentTenant();
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProviderFactory.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProviderFactory.java
new file mode 100644
index 0000000..bc137c7
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/tenant/MultiTenantProviderFactory.java
@@ -0,0 +1,5 @@
+package com.supwisdom.dlpay.paysdk.tenant;
+
+public interface MultiTenantProviderFactory {
+  MultiTenantProvider getProvider();
+}
diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
index 1916f7a..231a684 100644
--- a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
+++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
@@ -294,7 +294,4 @@
 
   }
 
-  public static void main(String[] args) {
-
-  }
 }
diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/MultiTenantProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/MultiTenantProxyTest.java
new file mode 100644
index 0000000..45b1b4c
--- /dev/null
+++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/MultiTenantProxyTest.java
@@ -0,0 +1,56 @@
+package com.supwisdom.dlpay.paysdktest;
+
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
+import com.supwisdom.dlpay.paysdk.tenant.MultiTenantProvider;
+import com.supwisdom.dlpay.paysdk.tenant.MultiTenantProviderFactory;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.cloud.openfeign.FeignAutoConfiguration;
+import org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Primary;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+//@SpringBootTest(properties = {
+//    "payapi.url=http://localhost:8080/payapi"},
+//    classes = MultiTenantProxyTest.class)
+@ImportAutoConfiguration({RibbonAutoConfiguration.class,
+    FeignRibbonClientAutoConfiguration.class, FeignAutoConfiguration.class,
+    HttpMessageConvertersAutoConfiguration.class})
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class MultiTenantProxyTest {
+
+  @Autowired
+  private ApiLoginProxy apiLoginProxy;
+
+  private final static String appid = "700001";
+  private final static String secret = "d6dd7f0d4551419d8d11736d0f28df0d";
+
+
+  @TestConfiguration
+  static class MultiTenantTestBean {
+    @Bean
+    @Primary
+    public MultiTenantProviderFactory newProviderFactory() {
+      return () -> (MultiTenantProvider) () -> "122020";
+    }
+  }
+
+
+  @Test
+  public void testMultiTenant() {
+    ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+    helper.login(appid, secret);
+  }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/CheckFileProviderContext.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/CheckFileProviderContext.java
index ef92fb5..e9b6c43 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/CheckFileProviderContext.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/CheckFileProviderContext.java
@@ -18,7 +18,7 @@
     try {
       return (CheckFileProvider) applicationContext.getBean(name + "CheckFileProvider");
     } catch (BeansException ex) {
-      log.error("未定义 sourcetype <$sourcetype> 对账处理 Provider");
+      log.error("未定义 sourcetype <{}> 对账处理 Provider", name);
       return null;
     }
   }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java
new file mode 100644
index 0000000..3647664
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java
@@ -0,0 +1,71 @@
+package com.supwisdom.dlpay.framework.domain;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "tb_tenant_catalog")
+@SequenceGenerator(name = "tenant_catalog_seq")
+public class TTenantCatalog {
+  @Id
+  @Column(name = "id")
+  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tenant_catalog_seq")
+  private Integer id;
+
+  @Column(name = "tenantid", length = 32)
+  @NotNull
+  private String tenantid;
+
+  @Column(name = "datecenter", length = 10)
+  @NotNull
+  private String dataCenter;
+
+  @Column(name = "expire_date")
+  @NotNull
+  private Timestamp expireDate;
+
+  @Column(name = "enabled")
+  @NotNull
+  private Boolean enabled;
+
+  public Integer getId() {
+    return id;
+  }
+
+  public void setId(Integer id) {
+    this.id = id;
+  }
+
+  public String getTenantid() {
+    return tenantid;
+  }
+
+  public void setTenantid(String tenantid) {
+    this.tenantid = tenantid;
+  }
+
+  public String getDataCenter() {
+    return dataCenter;
+  }
+
+  public void setDataCenter(String dataCenter) {
+    this.dataCenter = dataCenter;
+  }
+
+  public Timestamp getExpireDate() {
+    return expireDate;
+  }
+
+  public void setExpireDate(Timestamp expireDate) {
+    this.expireDate = expireDate;
+  }
+
+  public Boolean getEnabled() {
+    return enabled;
+  }
+
+  public void setEnabled(Boolean enabled) {
+    this.enabled = enabled;
+  }
+}
