diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteComplianceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteComplianceExtensions.cs
new file mode 100644
index 00000000..5a8fb9e0
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteComplianceExtensions.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
+{
+ public static class WechatTenpayClientExecuteComplianceExtensions
+ {
+ ///
+ /// 异步调用 [POST] /compliance/inactive-merchant-identity-verification/merchants 接口。
+ /// REF: https://pay.weixin.qq.com/docs/partner/apis/inactive-merchant-identity-verification/inactive-mch-identity-verification/create-inactive-merchant-identity-verification.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateComplianceInactiveMerchantIdentityVerificationAsync(this WechatTenpayClient client, Models.CreateComplianceInactiveMerchantIdentityVerificationRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(request, HttpMethod.Post, "compliance", "inactive-merchant-identity-verification", "merchants");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /compliance/inactive-merchant-identity-verification/merchants/{sub_mchid}/verifications/{verification_id} 接口。
+ /// REF: https://pay.weixin.qq.com/docs/partner/apis/inactive-merchant-identity-verification/inactive-mch-identity-verification/query-inactive-merchant-identity-verification.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetComplianceInactiveMerchantIdentityVerificationByVerificationIdAsync(this WechatTenpayClient client, Models.GetComplianceInactiveMerchantIdentityVerificationByVerificationIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(request, HttpMethod.Get, "compliance", "inactive-merchant-identity-verification", "merchants", request.SubMerchantId, "verifications", request.VerificationId);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.cs
new file mode 100644
index 00000000..ac9c74f6
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /compliance/inactive-merchant-identity-verification/merchants 接口的请求。
+ ///
+ public class CreateComplianceInactiveMerchantIdentityVerificationRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置微信二级商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.cs
new file mode 100644
index 00000000..f22ca9db
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /compliance/inactive-merchant-identity-verification/merchants 接口的响应。
+ ///
+ public class CreateComplianceInactiveMerchantIdentityVerificationResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置核实单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("verification_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("verification_id")]
+ public string VerificationId { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdRequest.cs
new file mode 100644
index 00000000..ded897e9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /compliance/inactive-merchant-identity-verification/merchants/{sub_mchid}/verifications/{verification_id} 接口的请求。
+ ///
+ public class GetComplianceInactiveMerchantIdentityVerificationByVerificationIdRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置微信二级商户号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string SubMerchantId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置核实单号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string VerificationId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.cs
new file mode 100644
index 00000000..94d9f666
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.cs
@@ -0,0 +1,56 @@
+using System;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /compliance/inactive-merchant-identity-verification/merchants/{sub_mchid}/verifications/{verification_id} 接口的响应。
+ ///
+ public class GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置微信二级商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = default!;
+
+ ///
+ /// 获取或设置核实单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("verification_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("verification_id")]
+ public string VerificationId { get; set; } = default!;
+
+ ///
+ /// 获取或设置核实单状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("state")]
+ [System.Text.Json.Serialization.JsonPropertyName("state")]
+ public string State { get; set; } = default!;
+
+ ///
+ /// 获取或设置失败原因。
+ ///
+ [Newtonsoft.Json.JsonProperty("fail_reason")]
+ [System.Text.Json.Serialization.JsonPropertyName("fail_reason")]
+ public string? FailReason { get; set; }
+
+ ///
+ /// 获取或设置创建时间。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_time")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("create_time")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
+ public DateTimeOffset CreateTime { get; set; }
+
+ ///
+ /// 获取或设置完成时间。
+ ///
+ [Newtonsoft.Json.JsonProperty("finish_time")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("finish_time")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ public DateTimeOffset? FinishTime { get; set; }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.json
new file mode 100644
index 00000000..654b0957
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationRequest.json
@@ -0,0 +1,3 @@
+{
+ "sub_mchid": "1900000000"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.json
new file mode 100644
index 00000000..d82be159
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/CreateComplianceInactiveMerchantIdentityVerificationResponse.json
@@ -0,0 +1,3 @@
+{
+ "verification_id": "28011678863778000000123124312"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.json
new file mode 100644
index 00000000..acd28b1d
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/Compliance/GetComplianceInactiveMerchantIdentityVerificationByVerificationIdResponse.json
@@ -0,0 +1,8 @@
+{
+ "sub_mchid": "1900000000",
+ "verification_id": "28011678863778000000123124312",
+ "state": "PROCESSING",
+ "fail_reason": "MATERIALS_ABNORMAL",
+ "create_time": "2020-01-01T00:00:00+08:00",
+ "finish_time": "2020-01-01T00:00:00+08:00"
+}