> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancelar ou devolver uma TED

> Cancele uma TED que o STR mantém pendente, ou devolva uma TED creditada à instituição remetente, pelo TED Lerian e pelo Lerian SPB.

Cancele uma TED que você enviou antes que o STR a liquide, ou devolva uma TED que um cliente recebeu.

> [!NOTE]
>
> Os manuais do BACEN para o STR prevalecem sobre esta página. Sua instituição valida o fluxo e o implementa sobre as APIs da Lerian. Veja [como ler os diagramas](https://docs.lerian.studio/pt/diagrams/introduction.md).

## Participantes

***

* **Sua instituição.** O seu sistema. Ele cancela as TEDs que enviou e devolve as TEDs que recebeu.
* **TED Lerian.** A interface de TED entre o Midaz e o Lerian SPB. Ele confere cada pedido, movimenta o dinheiro no Midaz e publica os eventos. O [Streaming Hub](https://docs.lerian.studio/pt/platform/streaming-hub/what-is-streaming-hub.md) entrega os eventos ao seu sistema.
* **Midaz.** O ledger. Ele guarda as contas dos clientes e os seus saldos.
* **Lerian SPB.** A mensageria da Lerian para o STR. Ele envia e recebe as mensagens do STR e informa a liquidação delas.
* **STR (BACEN).** O Sistema de Transferência de Reservas do BACEN. Ele cancela lançamentos pendentes e liquida cada devolução.

## Antes de começar

***

* Para cancelar uma TED que o STR mantém pendente, esse cancelamento precisa estar ligado para a sua instituição. Ele vem desligado por padrão.
* Para devolver uma TED, você tem o motivo oficial da devolução: um código `CodDevTransf` do dicionário de domínios do SFN.

## Diagrama

***

### Cancelar uma TED pendente no STR

![Cancelar ou devolver uma TED: Cancelar uma TED pendente no STR](https://mintcdn.com/lerian-49cb71fc/AR-wpjGp5R6xEqsz/images/pt/d2/id-cancel-or-return-a-ted-1.svg?fit=max\&auto=format\&n=AR-wpjGp5R6xEqsz\&q=85\&s=a91f9ff393c87c35916f80f502f96158)

| # | Origem | Destino | Mensagem | API da Lerian | O que acontece |
| - | - | - | - | - | - |
| 1 | TED Lerian | Lerian SPB | Chamada interna | [`GET /v1/str/messages/{nuOp}`](https://docs.lerian.studio/pt/reference/rails/spb/get-message-status) | O TED Lerian consulta no STR a situação de cada TED em `SUBMITTED`. |
| 2 | Lerian SPB | TED Lerian | Chamada interna | | O STR mantém o lançamento pendente. |
| 3 | TED Lerian | Sua instituição | Evento | Evento `transfer.pending_str` | A transferência fica em `PENDING_STR`. A reserva continua na conta de origem. |
| 4 | Sua instituição | TED Lerian | Chamada de API | [`POST /v1/transfers/{transferId}/cancel`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/cancel-a-transfer) | Peça o cancelamento. Envie uma chave em `X-Idempotency` e, opcionalmente, um `reason`. |
| 5 | TED Lerian | Lerian SPB | Chamada interna | [`POST /v1/str/operations/bank-transfers/{operationId}/cancellations`](https://docs.lerian.studio/pt/reference/rails/spb/create-bank-transfer-cancellation-operation) | O TED Lerian pede ao Lerian SPB que cancele o lançamento. |
| 6 | TED Lerian | Sua instituição | Resposta da API | Resposta ao passo 4 | `202`. |
| 7 | Lerian SPB | STR (BACEN) | `STR0011` | | O Lerian SPB pede ao STR que cancele o lançamento pendente. |
| 8 | STR (BACEN) | Lerian SPB | `STR0011R1` | | O STR cancela o lançamento e responde. |
| 9 | Lerian SPB | TED Lerian | Evento | | O Lerian SPB informa com `settlement.failed` que a TED não será liquidada. |
| 10 | TED Lerian | Sua instituição | Evento | Evento `transfer.cancelled` | A transferência fica em `CANCELLED`. |
| 11 | TED Lerian | Midaz | Chamada interna | [`POST /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}/cancel`](https://docs.lerian.studio/pt/reference/products/midaz/v2/cancel-transaction) | O TED Lerian cancela a transação pendente. O valor retido e a tarifa voltam ao saldo disponível da conta de origem. |

### Devolver uma TED recebida

![Cancelar ou devolver uma TED: Devolver uma TED recebida](https://mintcdn.com/lerian-49cb71fc/AR-wpjGp5R6xEqsz/images/pt/d2/id-cancel-or-return-a-ted-2.svg?fit=max\&auto=format\&n=AR-wpjGp5R6xEqsz\&q=85\&s=c2ed8008d05ea141e3ad95bb6cfdce23)

| # | Origem | Destino | Mensagem | API da Lerian | O que acontece |
| - | - | - | - | - | - |
| 1 | Sua instituição | TED Lerian | Chamada de API | [`POST /v1/incoming-transfers/{incomingTransferId}/return`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/return-an-incoming-ted) | Peça a devolução. Envie `returnCode` e uma `justification` de 10 a 500 caracteres, com uma chave em `X-Idempotency`. |
| 2 | TED Lerian | Sua instituição | Evento | Evento `incoming_return.requested` | O TED Lerian registra a devolução. A TED fica em `RETURN_REQUESTED`. |
| 3 | TED Lerian | Midaz | Chamada interna | [`POST /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}/revert`](https://docs.lerian.studio/pt/reference/products/midaz/v2/revert-transaction) | O TED Lerian estorna o crédito. O Midaz lança uma nova transação de estorno, e o crédito original não muda. |
| 4 | TED Lerian | Lerian SPB | Chamada interna | [`POST /v1/str/operations/bank-transfers/{operationId}/returns`](https://docs.lerian.studio/pt/reference/rails/spb/create-bank-transfer-return-operation) | O TED Lerian pede ao Lerian SPB que devolva a TED com o seu motivo. |
| 5 | TED Lerian | Sua instituição | Resposta da API | Resposta ao passo 1 | `202` com a TED recebida em `RETURN_REQUESTED`. |
| 6 | Lerian SPB | STR (BACEN) | `STR0010` | | O Lerian SPB envia a devolução ao STR. |
| 7 | STR (BACEN) | Lerian SPB | `STR0010R1` | | O STR liquida a devolução e responde. |
| 8 | Lerian SPB | TED Lerian | Evento | | O Lerian SPB informa a liquidação da devolução com `settlement.settled`. |
| 9 | TED Lerian | Sua instituição | Evento | Evento `incoming_return.returned` | A TED fica em `RETURNED`. O dinheiro voltou para a instituição remetente. |

## Regras

***

* O TED Lerian cancela uma transferência em `CREATED` ou `RESERVED` com `200` e libera qualquer reserva. Enquanto o TED Lerian faz a reserva ou envia a transferência, a resposta é `409` com `TED-0061`.
* Para uma transferência em `PENDING_STR`, o TED Lerian pede ao STR que cancele o lançamento. A resposta é `202`, e a reserva continua até o STR responder. O resultado chega como `transfer.cancelled`, `transfer.settled` ou `transfer.rejected`.
* Uma transferência já em `CANCELLED` responde `200` de novo.
* O TED Lerian recusa o cancelamento de uma transferência em `SUBMITTED`, `SETTLED` ou `REJECTED`.
* Esta chamada devolve só uma TED recebida em `CREDITED`, e sempre de forma integral.

## Como saber que terminou

***

* **Cancelamento.** O evento `transfer.cancelled`, ou [`GET /v1/transfers/{transferId}`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/get-a-transfer) com `status` igual a `CANCELLED`.
* **Devolução.** O evento `incoming_return.returned`, ou [`GET /v1/incoming-transfers/{incomingTransferId}`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/get-an-incoming-ted) com `status` igual a `RETURNED`.

## O que pode dar errado

***

| Situação | O que você vê | O que fazer |
| - | - | - |
| O cancelamento de uma TED pendente está desligado | `503` com `TED-1012` | Acompanhe a transferência até ela chegar a um status final. |
| A transferência não pode ser cancelada no status dela | `409` com `TED-0061` | Consulte a transferência. Para `AWAITING_RECONCILIATION` ou `EXHAUSTED`, um operador a destrava com a evidência do STR por [`POST /v1/transfers/{transferId}/unblock`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/unblock-a-transfer). |
| A resposta do Lerian SPB ao cancelamento não é conhecida | `503` com `TED-1010` | Envie a requisição de novo com a mesma chave `X-Idempotency` e o mesmo `reason`. |
| O saldo do cliente não consegue pagar o estorno | `422` com `TED-1001` | Nada foi para o STR, e o cliente mantém o crédito. A TED vai para `MANUAL_REVIEW`. Decida com [`POST /v1/incoming-transfers/{incomingTransferId}/resolve-review`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/resolve-an-incoming-ted-review). |
| O Midaz não confirma o estorno | `503` com `TED-1000` | Nada foi para o STR. A TED vai para `MANUAL_REVIEW`. Consulte a TED antes de agir de novo. |
| A TED está em revisão manual | `409` com `TED-0062` | Devolva a TED com [`POST /v1/incoming-transfers/{incomingTransferId}/resolve-review`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/resolve-an-incoming-ted-review) e a ação `RETURN`. |
| O STR recusa a devolução | `incoming_return.failed` | A TED vai para `MANUAL_REVIEW`. Decida com [`POST /v1/incoming-transfers/{incomingTransferId}/resolve-review`](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/resolve-an-incoming-ted-review). |

A [lista de erros do TED Lerian](https://docs.lerian.studio/pt/reference/interfaces/ted-lerian/ted-lerian-error-list.md) descreve cada código.

## Relacionados

***

* [Enviar e receber TED](https://docs.lerian.studio/pt/diagrams/native-rails/send-and-receive-ted.md)
* [Estornar uma transação](https://docs.lerian.studio/pt/diagrams/lerian-products/midaz-reverse-a-transaction.md)
* [Como o TED Lerian funciona](https://docs.lerian.studio/pt/interfaces/ted-lerian/ted-lerian-how-it-works.md)
* [Eventos do TED Lerian](https://docs.lerian.studio/pt/interfaces/ted-lerian/ted-lerian-events.md)
* [Eventos e integração com o ledger do Lerian SPB](https://docs.lerian.studio/pt/rails/spb/spb-events-and-ledger-integration.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.