# Human methods: release, remit, suspend

URL: /code/sdk/human/verbs-release · Id: `page:code/sdk/human/verbs-release`

> The Human Verbs release, remit, suspend as typed SDK methods, with inputs, result, refusals and an example.

Reference for [Human](/business/nouns/human), one group of [Human methods](/code/sdk/human).

### Human.release
Release frees a held amount for payout once its Dispute closes or its clearance period ends. [Verb page](/business/nouns/human/release?interface=sdk).

```ts
interface HumanVerbs {
  release(input: HumanReleaseInput, options?: SB.CallOptions): SB.Call<Human>
}
```

Emits [`Human.released`](/business/events/Human.released).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `human` | [Human](/business/nouns/human) | Yes | The payee. |
| `cause` | `string` | Yes | The Order or Dispute whose hold ends. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `human` | [Human](/business/nouns/human) | Yes | The payee, with the hold removed. |

**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**

```ts
import { $ } from 'startup-builder'

const human = await $.Human.release({ human: 'human_EeCsrv4AOW', cause: 'Example cause' })
```

### Human.remit
Remit pays a supplying Human’s earned balance to their bank account through the Startup’s payment account. [Verb page](/business/nouns/human/remit?interface=sdk).

```ts
interface HumanVerbs {
  remit(input: HumanRemitInput, options?: SB.CallOptions): SB.Call<HumanRemitOutput>
}
```

Emits [`Human.remitted`](/business/events/Human.remitted).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `human` | [Human](/business/nouns/human) | Yes | The Human to pay. |
| `amount` | `money` | No | The amount. Defaults to the full earned balance. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `transaction` | [Transaction](/business/nouns/transaction) | Yes | The payout Transaction. |
| `human` | [Human](/business/nouns/human) | Yes | The Human paid, with the balance now zero. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The operation is part of an Offer the caller has not accepted or paid for. | [`payment-required`](/code/api/errors/payment-required) | Accept the Offer named in the response, then retry the call. | [Offer.accept](/business/nouns/offer/accept) |
| 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**

```ts
import { $ } from 'startup-builder'

const { transaction, human } = await $.Human.remit({ human: 'human_EeCsrv4AOW' })
```

### Human.suspend
Suspend stops a supplying Human from taking new Tasks while a Credential lapses or a dispute is open. [Verb page](/business/nouns/human/suspend?interface=sdk).

```ts
interface HumanVerbs {
  suspend(input: HumanSuspendInput, options?: SB.CallOptions): SB.Call<Human>
}
```

Emits [`Human.suspended`](/business/events/Human.suspended).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `human` | [Human](/business/nouns/human) | Yes | The Human to suspend. |
| `reason` | `text` | Yes | Why the Human stops. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `human` | [Human](/business/nouns/human) | Yes | The suspended Human. |

**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. |
| The record is not in a state that allows this Verb, so the call is refused. | [`refused`](/code/api/errors/refused) | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |

**Example**

```ts
import { $ } from 'startup-builder'

const human = await $.Human.suspend({ human: 'human_EeCsrv4AOW', reason: 'Example reason' })
```