diff --git a/.forge/BAIS-CTX-1783821073-attempt-4.md b/.forge/BAIS-CTX-1783821073-attempt-4.md
new file mode 100644
index 0000000..27c880c
--- /dev/null
+++ b/.forge/BAIS-CTX-1783821073-attempt-4.md
@@ -0,0 +1,3 @@
+# BAIS-CTX-1783821073-attempt-4
+
+Forge 이슈 작업 브랜치 `forge/BAIS-CTX-1783821073-attempt-4`.
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d025c7b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,22 @@
+
+
+ 4.0.0
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.5.14
+
+
+ com.klaro.bais
+ bais-platform
+ 1.0-SNAPSHOT
+ pom
+
+
+ services/payments
+
+
+
\ No newline at end of file
diff --git a/services/payments/pom.xml b/services/payments/pom.xml
new file mode 100644
index 0000000..f4d20af
--- /dev/null
+++ b/services/payments/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+
+
+ com.klaro.bais
+ bais-platform
+ 1.0-SNAPSHOT
+ ../../pom.xml
+
+
+ payments
+
+
+ org.apache.commons
+ commons-lang3
+ 3.18.0
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ 3.5.14
+ test
+
+
+
+
\ No newline at end of file
diff --git a/services/payments/src/main/java/com/klaro/bais/payments/PaymentReferenceService.java b/services/payments/src/main/java/com/klaro/bais/payments/PaymentReferenceService.java
new file mode 100644
index 0000000..a349b69
--- /dev/null
+++ b/services/payments/src/main/java/com/klaro/bais/payments/PaymentReferenceService.java
@@ -0,0 +1,9 @@
+package com.klaro.bais.payments;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class PaymentReferenceService {
+ public String normalize(String input) {
+ return StringUtils.trimToEmpty(input);
+ }
+}
\ No newline at end of file
diff --git a/services/payments/src/test/java/com/klaro/bais/payments/PaymentReferenceServiceTest.java b/services/payments/src/test/java/com/klaro/bais/payments/PaymentReferenceServiceTest.java
new file mode 100644
index 0000000..b363d79
--- /dev/null
+++ b/services/payments/src/test/java/com/klaro/bais/payments/PaymentReferenceServiceTest.java
@@ -0,0 +1,24 @@
+package com.klaro.bais.payments;
+
+import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class PaymentReferenceServiceTest {
+
+ private final PaymentReferenceService service = new PaymentReferenceService();
+
+ @Test
+ void testNormalizeNull() {
+ assertEquals("", service.normalize(null));
+ }
+
+ @Test
+ void testNormalizeEmpty() {
+ assertEquals("", service.normalize(" "));
+ }
+
+ @Test
+ void testNormalizeNormalString() {
+ assertEquals("test", service.normalize(" test "));
+ }
+}
\ No newline at end of file