diff --git a/api-webapp/pom.xml b/api-webapp/pom.xml
index 25752af..2053ba1 100644
--- a/api-webapp/pom.xml
+++ b/api-webapp/pom.xml
@@ -154,6 +154,11 @@
commons-lang3
3.12.0
+
+ commons-io
+ commons-io
+ 2.13.0
+
org.pac4j
diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt
index 723cae9..343dfc3 100644
--- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt
+++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt
@@ -1,6 +1,7 @@
package org.jeudego.pairgoth.server
import com.republicate.kson.Json
+import org.apache.commons.io.input.BOMInputStream
import org.jeudego.pairgoth.api.ApiHandler
import org.jeudego.pairgoth.api.PairingHandler
import org.jeudego.pairgoth.api.PlayerHandler
@@ -17,6 +18,7 @@ import org.jeudego.pairgoth.util.toString
import org.slf4j.LoggerFactory
import org.w3c.dom.Element
import java.io.IOException
+import java.io.InputStreamReader
import java.util.*
import java.util.concurrent.locks.ReadWriteLock
import java.util.concurrent.locks.ReentrantReadWriteLock
@@ -194,7 +196,7 @@ class ApiServlet: HttpServlet() {
// some API calls like opengotha import accept xml docs as body
// CB TODO - limit to those calls
try {
- XmlUtils.parse(request.reader).let { payload: Element ->
+ XmlUtils.parse(InputStreamReader(BOMInputStream(request.inputStream))).let { payload: Element ->
request.setAttribute(ApiHandler.PAYLOAD_KEY, payload)
logger.info(blue("<< (xml document)"))