> For the complete documentation index, see [llms.txt](https://docs.teller.org/teller-lite/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.teller.org/teller-lite/dev-guide/repay/executing-a-repayment.md).

# Executing a Repayment

Before executing a repayment, there must be enough allowance to pay off the amount in the loan.

## Approvals

Check the allowance for the principal token.&#x20;

```
functionName: "allowance",
arguments: [userAddress, tellerV2ContractAddress] # the addresses are in the introduction section
contract: principalTokenSymbol # 'USDC' for example
```

To update the allowance

```
functionName: "approve",
arguments: [tellerV2ContractAddress, amountToApprove]
contract: principalTokenAddress
```

## Executing the loan

If there is enough allowance, executing the loan repayment is as simple as calling `repayLoanFull` with the `bidId` as the parameter.

```
functionName: 'repayLoanFull',
args: [bidId],
contract: TellerV2,
```
