Как правильно конвертировать полученный объект в XML?

задача: я должен получить json и вернуть ответ в виде xml. чтобы вернуть xml прописал в контроллере MEDAITYPE:

@PostMapping(path = "/save", produces = {"application/xml", "text/xml"}, consumes = MediaType.ALL_VALUE)
public Object pay(@RequestBody Request request) {
    logger.info("Вызван метод: Pay");
    return service.add(request);
}

Я принимаю json:

"request": { "id": 123123123, "supplier_id": 321321, "account": "999777111222", "amount": 100.12, "command": "pay", "date": "2021-04-10 01:01:01" }

что у меня получается обратно отправить:

<SaveResponseDto>
<response_id>777</response_id>
<status>1</status>
<message>PAYMENT CONFIRMED</message>
<date>2021-08-18T00:48:02.4089693</date>

вопрос: как можно правильно реализовать, что бы в ответ вернуть XML в таком виде в точь-точь:

 <?xml version="1.0" encoding="UTF-8" ?>
 <response id="123123123" dts="2021-04-10 01:01:01">
 <p_id>111222</p_id>
  <status>1</status>
    <message>PAYMENT CONFIRMED</message>
   </response>

Ответы (0 шт):