Fala pessoal! Todos bem? Alguém já fez essa implementação no payments?

Eu criei o menu com o retorno que vem da api, após o usuário escolher a opção
function run(billetChosen) {
try {
const { valor, codigoParcela, dataDevencimento, linhaDigitavel, linkBoleto } = JSON.parse(billetChosen)
const menu = {
"type": "interactive",
"interactive": {
"type": "order_details",
"header": {
"type": "document",
"document": {
"link": `${linkBoleto}`,
"filename": "Clique aqui para ver PDF"
}
},
"body": {
"text": "Mas se você preferir efetuar o pagamento pelo *Codigo do boleto*, também funciona, veja como você pode fazer: \n\n1. *Copie o código \n2. Abra o aplicativo do seu banco;\n3. Entre na área do Pagamentos;\n4. Selecione o modo \"PIX Copia e Cola\";\n5. Cole o código que você copiou;\n6. E efetue o pagamento."
},
"footer": {
"text": "❖ Clique no botão abaixo para copiar o código."
},
"action": {
"name": "review_and_pay",
"parameters": {
"reference_id": `${codigoParcela}`,
"type": "digital-goods",
"payment_type": "br",
"payment_settings": <
{
"type": "boleto",
"boleto": {
"digitable_line": `${linhaDigitavel}`
}
}
],
"currency": "BRL",
"total_amount": {
"value": formatPrice(valor),
"offset": 100
},
"order": {
"status": "pending",
"catalog_id": `${codigoParcela}`,
"expiration": {
"timestamp": getExpirationTime().toString(),
"description": "test expiration"
},
"items": n
{
"retailer_id": `${codigoParcela}`,
"name": `Fatura ${dataDevencimento}`,
"amount": {
"value": formatPrice(valor),
"offset": 100
},
"quantity": 1
}
],
"subtotal": {
"value": formatPrice(valor),
"offset": 100
}
}
}
}
}
}
return menu
} catch (e) {
return e.message
}
}
function getExpirationTime() {
const today = new Date()
return new Date(today.getUTCFullYear() + 1, 11, 1).getTime() / 1000
}
function formatPrice(valor) {
const replacedCommaWithPeriod = `${valor}`.replace(',', '.')
const replacedPriceWithoutChar = replacedCommaWithPeriod.replace(/l^0-9.]/g, "")
return parseInt(parseFloat(replacedPriceWithoutChar) * 100)
}
Porém, quando passo para o conteúdo dinâmico, o bote não apresenta

Alguém sabe onde está a falha? Desde já agradesço.