diff --git a/beacon-api/pom.xml b/beacon-api/pom.xml
index b362b89..9b7ce1d 100644
--- a/beacon-api/pom.xml
+++ b/beacon-api/pom.xml
@@ -47,6 +47,13 @@
org.springframework.boot
spring-boot-starter-test
+
+
+ javax.validation
+ validation-api
+ 2.0.1.Final
+ compile
+
\ No newline at end of file
diff --git a/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java
new file mode 100644
index 0000000..57e1e74
--- /dev/null
+++ b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java
@@ -0,0 +1,25 @@
+package com.mashibing.api.controller;
+
+import com.mashibing.api.pojo.SingleSendRequest;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author heqijun
+ * @ClassName: SMSController
+ * @Description: SMSController
+ * @date 2025/6/4 18:58
+ */
+
+@RestController
+@RequestMapping("sms")
+public class SMSController {
+
+ @PostMapping("singleSend")
+ public String singleSend(@RequestParam SingleSendRequest request) {
+
+ return null;
+ }
+}
diff --git a/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendRequest.java b/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendRequest.java
new file mode 100644
index 0000000..b0c1cb5
--- /dev/null
+++ b/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendRequest.java
@@ -0,0 +1,52 @@
+package com.mashibing.api.pojo;
+
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author heqijun
+ * @ClassName: SingleSendRequest
+ * @Description: SingleSend接口入参
+ * @date 2025/6/4 19:01
+ */
+
+@Data
+public class SingleSendRequest {
+
+ /**
+ * apikey
+ */
+ @NotBlank(message = "apikey不能为空")
+ private String apikey;
+
+ /**
+ * 目标手机号码
+ */
+ @NotBlank(message = "手机号码mobile不能为空")
+ private String mobile;
+
+ /**
+ * 短信内容
+ */
+ @NotBlank(message = "短信内容text不能为空")
+ private String text;
+
+ /**
+ * 业务系统内的id,回调时会带此参数
+ */
+ private String uid;
+
+ /**
+ * 短信类型 0-验证码短信 1-通知类短信 2-营销类短信
+ */
+ @NotNull(message = "短信类型state不能为空")
+ @Min(value = 0, message = "短信类型state必须在0-2之间")
+ @Max(value = 2, message = "短信类型state必须在0-2之间")
+ private String state;
+
+
+}
diff --git a/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendResponse.java b/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendResponse.java
new file mode 100644
index 0000000..ce8a499
--- /dev/null
+++ b/beacon-api/src/main/java/com/mashibing/api/pojo/SingleSendResponse.java
@@ -0,0 +1,46 @@
+package com.mashibing.api.pojo;
+
+import lombok.Data;
+
+/**
+ * @author heqijun
+ * @ClassName: SingleSendResponse
+ * @Description: SingleSend接口出参
+ * @date 2025/6/4 19:01
+ */
+
+@Data
+public class SingleSendResponse {
+
+ /**
+ * 0代表接收成功,其他code代表出错
+ */
+ private Integer code;
+
+ /**
+ * 例如“接收成功”,代表短信正在发送,或者是响应具体的错误信息
+ */
+ private String msg;
+
+ /**
+ * 短信的计费条数(70个字一条,超出70个字,按照67个字一条发送)
+ */
+ private Integer count;
+
+ /**
+ * 扣费的金额,单位:厘 ,RMB
+ */
+ private Long fee;
+
+ /**
+ * 客户请求携带的uid信息
+ */
+ private String uid;
+
+ /**
+ * 短信id,64位整型
+ */
+ private Long sid;
+
+
+}