Pular para o conteúdo principal

Como devolver uma TED recebida via API

Para devolver ao remetente uma TED que a sua empresa recebeu, use o endpoint POST /api/v1/ted/{correlationID}/refund. A devolução é sempre do valor total da TED.

info

Sua aplicação precisa do scope TED_REFUND_POST e a empresa precisa da funcionalidade TED. Veja Primeiros passos com a API de TED.

Referência completa

Para o schema, parâmetros e exemplos interativos, veja a API Reference.

Qual TED pode ser devolvida​

Só uma TED que você recebeu (direction: IN, type: PAYMENT) e que está COMPLETED. Não dá para devolver uma TED que você enviou, nem uma devolução que você recebeu.

O correlationID da TED recebida é o nuop que a Woovi atribuiu a ela: é o que vem no webhook TED_IN_CONFIRMED e na listagem de TEDs.

Parâmetros​

ParâmetroOndeDescrição
correlationIDpathO correlationID da TED recebida

A requisição não tem corpo.

Exemplo de resposta​

Se a devolução foi aceita, o status code é 200 e o corpo traz a TED de devolução (type: REFUND_SENT, direction: OUT), com remetente e recebedor invertidos em relação à TED original:

{
"ted": {
"correlationID": "RFD20260203000001",
"nuop": "1234567820260203000001",
"status": "PROCESSING",
"type": "REFUND_SENT",
"direction": "OUT",
"value": 150050,
"moveDate": "2026-02-03",
"accountId": "6290ccfd42831958a405debc",
"sender": {
"name": "Empresa LTDA",
"document": "12345678000199",
"ispb": "12345678",
"agency": 1234,
"account": 567890,
"accountType": "CACC"
},
"receiver": {
"name": "Joao da Silva",
"document": "12345678901",
"ispb": "87654321",
"agency": 4321,
"account": 98765,
"accountType": "CACC"
},
"errorCode": null,
"reason": null,
"bcbCode": null,
"createdAt": "2026-02-03T14:30:00.000Z",
"updatedAt": "2026-02-03T14:30:00.000Z"
}
}

O correlationID da devolução é gerado pela Woovi. Guarde-o para consultar a devolução.

200 não quer dizer que o dinheiro voltou

A resposta confirma que a devolução foi aceita e o valor debitado da sua conta. Quando o BACEN confirma, chega o webhook TED_REFUND_SENT_CONFIRMED e a TED original passa a REFUNDED. Veja Webhooks de TED.

Se o BACEN rejeitar a devolução, não há webhook: a devolução fica FAILED, o débito é estornado e a TED original volta a COMPLETED, pronta para uma nova tentativa. Consulte a devolução pelo correlationID dela para saber o resultado.

Reenvio seguro​

Enquanto a devolução está em andamento, repetir a requisição não cria outra devolução nem debita de novo: a resposta é 200 com a mesma devolução. Assim, se a requisição der timeout, repita sem risco de devolver duas vezes.

Depois que a devolução foi liquidada, uma nova requisição responde 422 (ALREADY_REFUNDED).

Códigos de resposta​

Todo erro traz o errorCode e o error (veja Erros).

StatuserrorCodeQuando
200—Devolução aceita, ou repetição de uma devolução em andamento
401—AppID ausente ou inválido
403TED_FEATURE_REQUIREDEmpresa sem a funcionalidade TED
403—Aplicação sem o scope TED_REFUND_POST
404TED_NOT_FOUNDNenhuma TED com esse correlationID na sua empresa
404ACCOUNT_NOT_FOUNDA conta que recebeu a TED não existe mais
422TED_NOT_REFUNDABLEA TED não é uma TED recebida: é uma TED enviada ou uma devolução
422ALREADY_REFUNDEDA TED já foi devolvida
422INVALID_STATUSA TED não está COMPLETED
422MISSING_STR_CONTROL_IDA TED não tem o número de controle do STR, sem o qual não pode ser devolvida
422ACCOUNT_BLOCKED_TED_REFUND_SENTConta bloqueada para devolução de TED
422TED_PER_TRANSACTION_LIMIT_EXCEEDEDValor acima do limite de devolução por transação
422TED_TOTAL_LIMIT_EXCEEDEDValor acima do limite de devolução disponível no dia
422ACCOUNT_LIMIT_NOT_FOUNDA conta não tem limite de devolução configurado
422OUTSIDE_STR_SESSIONSTR fechado. Tente de novo quando o STR abrir
422LEDGER_FAILEDNão foi possível debitar o saldo
503TED_LIMIT_SERVICE_UNAVAILABLE, SPB_FAILEDIndisponibilidade temporária. Tente de novo

Exemplos de erro​

{
"error": "Só uma TED recebida pode ser devolvida",
"errorCode": "TED_NOT_REFUNDABLE"
}
{
"error": "A transação já foi estornada",
"errorCode": "ALREADY_REFUNDED"
}

Exemplos em código​

curl --request POST \
--url https://api.woovi.com/api/v1/ted/8765432120260203000042/refund \
--header 'Authorization: {APP_ID}'