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

# Devolver una transferencia

> Devuelve una transferencia automáticamente según tu lógica de negocio.

<Note>
  **Solo disponible en México**
</Note>

Al terminar esta guía, podrás devolver una transferencia entrante y manejar los eventos de webhook que reportan el resultado.

Fintoc te permite devolver una transferencia entrante hasta 90 días después de la transferencia original usando el [endpoint de devolución de transferencia](/es/reference/transfers-api/transfers/transfers-return). Devuelve una transferencia según tu propia lógica de negocio, por ejemplo, cuando esperas un monto específico pero recibes otro distinto.

<img src="https://mintcdn.com/fintoc-49b8bee8/SkvJJ-DZ5D4yC6tQ/images/e981759580e31e9b1bd63de2c1d7b25900ca1eab7dd8c749518d1024c7526241-image.png?fit=max&auto=format&n=SkvJJ-DZ5D4yC6tQ&q=85&s=75842010be852d338adab065c90b86f3" alt="" width="2182" height="1254" data-path="images/e981759580e31e9b1bd63de2c1d7b25900ca1eab7dd8c749518d1024c7526241-image.png" />

<br />

## Disparar la devolución

Usando el `transfer_id` y el header [`Fintoc-JWS-Signature`](/es/docs/transfers/transfers-setup/setting-up-jws-keys) para la solicitud, llama al [endpoint de devolución de transferencia](/es/reference/transfers-api/transfers/transfers-return):

```curl curl theme={null}
curl --request POST \
     --url https://api.fintoc.com/v2/transfers/return \
     --header 'Authorization: sk_test_9c8d8CeyBTx1VcJzuDgpm4H-bywJCeSx' \
     --header 'Fintoc-JWS-Signature: CNMaYaDGU3ZhFV1ve6p3sAdYXhEklej8DVIAMqIWCkpNmT6Jp7iigcndXwH5q3WQFHiswgIQU5-_-4rV3jKGptCROmEyWPW8_elhYH1apzAyjOjyZ55ygv37xKHzIFhixzAwmXlAv4pfD4lVelYWVNOSN7REA0QJeCy2vKdqZ5cjqCXQ1lkQUlzOE7dpuNoAkhAhAJJ8HaamFKy7Gl7uwmqbIr-dVYv21d_9O7mO26n0gy3zWXD2nJDxU5Mzl2pZd8-sFvUr9Kmp_YkeRMh4bSe0fr1Uc_YgkjpmYUyu7kaxRWTbAdJ3GwqWFMUDiyfhHdzvZPZyU4VkWreimoydMA' \
     --header 'Idempotency-Key: 1ebfd86c-a75b-4606-872f-9f1cdd9724ca' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "transfer_id": "tr_2wlt3xRBaEstTGPezqIGXy6JUU8"
}
'
```

```node Node theme={null}
const transfer = await fintoc.v2.transfers.returnTransfer({
  transfer_id: "tr_2wlt3xRBaEstTGPezqIGXy6JUU8",
});
```

```python Python theme={null}
transfer = client.v2.transfers.return_transfer(
  transfer_id="tr_2wlt3xRBaEstTGPezqIGXy6JUU8"
)
```

```json Response theme={null}
{
  "id": "tr_2wlt3xRBaEstTGPezqIGXy6JUU8",
  "object": "transfer",
  "direction": "inbound",
  "status": "return_pending",
  "amount": 100000,
  "currency": "mxn",
  "mode": "test",
  "post_date": "2020-04-17T00:00:00.000Z",
  "transaction_date": "2020-04-17T05:12:41.462Z",
  "comment": "Electricity bill",
  "reference_id": "130824",
  "receipt_url": "https://api.fintoc.com/v2/transfers/tr_2wlt3xRBaEstTGPezqIGXy6JUU8/receipt",
  "tracking_key": "s2123423423324334",
  "return_reason": null,
  "account_number": {
    "id": "acno_Kasf91034gj1AD",
    "object": "account_number",
    "account_id": "acc_Lq7dP901xZgA2B",
    "description": "My payins",
    "number": "111111111111111111",
    "created_at": "2024-03-01T20:09:42.949787176Z",
    "mode": "test",
    "metadata": {
      "id_cliente": "12343212"
    }
  },
  "counterparty": {
    "holder_id": "AAA010101AAA",
    "holder_name": "Test Customer 1",
    "account_number": "000000000000000000",
    "type": "clabe",
    "institution": {
      "id": "40012",
      "name": "BBVA Mexico",
      "country": "mx"
    }
  }
}
```

Si la solicitud es exitosa, la API devuelve un objeto de transferencia con estado `return_pending`. Después de que Fintoc procesa la devolución, el estado cambia a `returned`.

## Manejar el resultado de la devolución

Maneja los siguientes eventos de webhook para rastrear el resultado de una devolución:

| Evento                           | Descripción                                                                                                                      |
| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |
| `transfer.inbound.returned`      | Fintoc devolvió la transferencia. El `receipt_url` muestra el Comprobante Electrónico de Pago original con el estado "Devuelta". |
| `transfer.inbound.return_failed` | Fintoc no pudo devolver la transferencia, por lo que la transferencia vuelve a su estado original `succeeded`.                   |

## Probar la integración

Confirma tu integración en modo `test` antes de salir a producción. Dispara una devolución contra una transferencia entrante simulada y verifica que tu manejador de webhooks reciba el evento esperado:

* Para una devolución exitosa, espera el evento `transfer.inbound.returned` y una transferencia con estado `returned`.
* Para una devolución fallida, espera el evento `transfer.inbound.return_failed` y una transferencia que regresa al estado `succeeded`.

Consulta [Prueba tu integración](/es/docs/transfers/transfers-setup/test-your-integration) para conocer los pasos para simular ambos escenarios.
