# Entry programs: post, settle

URL: /code/mcp/entry/verbs · Id: `page:code/mcp/entry/verbs`

> The Entry Verbs post, settle as MCP do programs, with inputs, result, refusals and an example.

Reference for [Entry](/business/nouns/entry), one group of [Entry programs](/code/mcp/entry).

### Entry.post
Post records a manual Entry pair that no Verb caused, once a second Role approves it. [Verb page](/business/nouns/entry/post?interface=mcp).

```text
do: return await $.Entry.post(input)
```

Emits [`Entry.posted`](/business/events/Entry.posted).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `debit` | `string` | Yes | The account code debited, such as `expense.hosting`. |
| `credit` | `string` | Yes | The account code credited. |
| `amount` | `money` | Yes | The amount and currency. |
| `memo` | `text` | Yes | Why the Entry exists. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `entry` | [Entry](/business/nouns/entry) | Yes | The debit Entry; its credit pair links to it. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Entry.post({ debit: 'Example debit', credit: 'Example credit', amount: { amount: 29, currency: 'USD' }, memo: 'Example memo' })"
  }
}
```

### Entry.settle
Settle nets a Period’s intercompany Entries between two Companies into one transfer through Stripe and reconciles both sides. [Verb page](/business/nouns/entry/settle?interface=mcp).

```text
do: return await $.Entry.settle(input)
```

Emits [`Entry.settled`](/business/events/Entry.settled).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `period` | [Period](/business/nouns/period) | Yes | The closed Period whose intercompany pairs settle. |
| `from` | [Company](/business/nouns/company) | Yes | The Company that owes the net amount. |
| `to` | [Company](/business/nouns/company) | Yes | The Company that receives it. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `transaction` | [Transaction](/business/nouns/transaction) | Yes | The one transfer that settles every pair. |
| `entry` | [Entry](/business/nouns/entry) | Yes | The intercompany Entry, now settled. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Entry.settle({ period: 'period_VEVuYACTsH', from: 'company_28zYNZEno0', to: 'company_28zYNZEno0' })"
  }
}
```