# Fill an order

`POST /sigmafi/orders/{boxId}/fill` · Lithos client API · SigmaFi Bonds · requires the `api_key` header

Source: https://lithosprotocol.org/docs/api/fill-sf-order

Lend the principal to the borrower. The fill mints two units with the order's box id as token id: one circulating claim to this wallet and one singleton locked in the bond. Whoever holds the claim receives the repayment plus the unused reserve, or the collateral after maturity liquidation. The lender funds the reserve above the borrower's full collateral value.

## Parameters

| Name | In | Type | Required | Description |

|---|---|---|---|---|

| `boxId` | path | string | yes |  |

## Request body

`SFFillRequest`, application/json.

- `batchingFee` (string): Nonnegative nanoERG added above collateral. Defaults to sigmafi.bonds.batchingFeeNanoErg (50000000). Values below the automatic batcher floor produce a warning.

## Responses

### 200: The transaction was sent; `outcome` says whether the node accepted it.

`SFResult`

- `txId` (string, required)
- `outcome` (string, required, one of accepted, rejected, uncertain)
- `boxId` (string): The output that matters: the new order or bond, the vault box a repayment or liquidation pays, or the first box a cancel or claim returns to this wallet.
- `assetId` (string): The bond asset a fill minted.
- `warnings` (string[]): What to know about the sent transaction: vault boxes a claim left locked for good, or a repayment sent with two blocks or fewer left to be mined in.

### 400: A malformed field, or terms no contract or shipped client accepts.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

### 403: Missing or wrong api_key.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

### 404: No unspent box has that id, it is not the kind named, or it is not this wallet's.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

### 409: A pending transaction already spends a box this names. Re-read and resend.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

### 422: Valid, but not possible now: the box's terms are refused, maturity has passed or not come, the wallet cannot cover it, or no wallet box can authorize a cancel.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

### 503: Node, wallet or transaction engine unavailable, or the request ran out of time. The message says whether anything was sent. When it says the outcome is unknown, check `GET /sigmafi/portfolio` before retrying.

`ApiError`

- `error` (integer, required): Error code
- `reason` (string, required): Error message explaining the reason of the error
- `detail` (string, required): Detailed error description

## Example request

```bash
curl -X POST "http://localhost:9000/sigmafi/orders/{boxId}/fill" \
  -H "api_key: $LITHOS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "batchingFee": "string" }'
```

## Example response

```json
{
  "txId": "string",
  "outcome": "accepted",
  "boxId": "string",
  "assetId": "string",
  "warnings": [
    "string"
  ]
}
```
