# IReceivable

[Git Source](https://github.com/isle-labs/isle-contract/blob/main/contracts/interfaces/IReceivable.sol)

**Inherits:** [IReceivableEvent](/contract-documentation/interfaces/ireceivableevent.md)

## Functions

### initialize

*Initializes the Receivable.*

```solidity
function initialize(address initialGovernor_) external;
```

**Parameters**

| Name               | Type      | Description                  |
| ------------------ | --------- | ---------------------------- |
| `initialGovernor_` | `address` | The address of the governor. |

### createReceivable

Mint a new receivable.

*The event faceAmount is converted to decimal with 6 decimals.*

```solidity
function createReceivable(Receivable.Create memory create_) external returns (uint256 tokenId_);
```

**Parameters**

| Name      | Type                | Description                                                            |
| --------- | ------------------- | ---------------------------------------------------------------------- |
| `create_` | `Receivable.Create` | The struct containing the information of the receivable to be created. |

**Returns**

| Name       | Type      | Description                             |
| ---------- | --------- | --------------------------------------- |
| `tokenId_` | `uint256` | The id of the newly created receivable. |

### getReceivableInfoById

*Get the information of a receivable.*

```solidity
function getReceivableInfoById(uint256 tokenId_) external view returns (Receivable.Info memory info_);
```

**Parameters**

| Name       | Type      | Description               |
| ---------- | --------- | ------------------------- |
| `tokenId_` | `uint256` | The id of the receivable. |

**Returns**

| Name    | Type              | Description                                              |
| ------- | ----------------- | -------------------------------------------------------- |
| `info_` | `Receivable.Info` | The struct containing the information of the receivable. |

### burnReceivable

*Burn a receivable.*

```solidity
function burnReceivable(uint256 tokenId_) external;
```

**Parameters**

| Name       | Type      | Description               |
| ---------- | --------- | ------------------------- |
| `tokenId_` | `uint256` | The id of the receivable. |

### governor

Returns the addres of the governor.

```solidity
function governor() external view returns (address governor_);
```

**Returns**

| Name        | Type      | Description                  |
| ----------- | --------- | ---------------------------- |
| `governor_` | `address` | The address of the governor. |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.isle.finance/contract-documentation/interfaces/ireceivable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
