> ## Documentation Index
> Fetch the complete documentation index at: https://api.hellosunset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Instant Inheritance Guide

> Pull a deceased account holder's bank balance into the estate account without waiting on the bank.

# Instant Inheritance

Instant Inheritance moves money out of a deceased person's bank account and into the case's FDIC-insured Sunset estate account without corresponding with the bank at all. No username, no password, no branch visit, and no months of estate-department paperwork. Where a normal bank closure takes weeks or months, an approved Instant Inheritance transfer settles in a few business days.

Sunset approves an account for Instant Inheritance only after it has independently confirmed the account and the requester's authority over the estate. Accounts that do not qualify are still closed by Sunset, through [Automated Closure](/closure-guide#automated-closure).

<Note>
  Instant Inheritance is free, like the rest of Automated Closure. It currently covers deceased-held bank accounts (checking, savings, money market). Retirement, brokerage, and life insurance proceeds continue to move through Automated Closure.
</Note>

## The Flow

1. Read the account's eligibility.
2. If the account is `eligible`, request a transfer.
3. Poll the transfer until it reaches `completed`.
4. Read the settled funds on the estate account and the case's closure step.

## 1. Check Eligibility

Every bank account on a case carries an `instant_inheritance` summary:

```bash theme={null}
curl "https://api.example.com/v1/cases/{case_id}/bank-accounts/{account_id}"
```

```json theme={null}
{
  "data": {
    "id": "01K6BA01AJ9T66HRYE78AN7PQR",
    "institution_name": "Chase Bank",
    "account_type": "checking",
    "status": "open",
    "current_balance": 15230.50,
    "instant_inheritance": {
      "eligibility": "eligible",
      "max_transfer_amount": 15230.50,
      "active_transfer_id": null,
      "transferred_amount": 0,
      "evaluated_at": "2026-08-24T14:02:11Z"
    }
  }
}
```

### Eligibility Values

| Value        | Meaning                                                        |
| ------------ | -------------------------------------------------------------- |
| `eligible`   | Sunset has approved this account. A transfer may be requested. |
| `ineligible` | Sunset cannot transfer this account right now.                 |

Sunset re-evaluates every account continuously as searches, documents, and verification complete, so an account may move from `ineligible` to `eligible` without any action on your part. `max_transfer_amount` is null unless the account is `eligible`.

<Note>
  Most accounts will not be eligible on day one. Poll the account rather than treating `ineligible` as final: an account that reads `ineligible` this morning may read `eligible` this afternoon. Nothing is lost either way, since an account Sunset cannot transfer instantly is closed through the normal Automated Closure path.
</Note>

## 2. Request a Transfer

```bash theme={null}
curl -X POST "https://api.example.com/v1/cases/{case_id}/transfers" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: idem_01K9IK01AJ0T88HRYE78AN7YYY" \
  -d '{
    "bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
    "amount": 15230.50,
    "notes": "Requested after Letters Testamentary were accepted."
  }'
```

Omit `amount` to transfer the full confirmed available balance. Omit `estate_account_id` to use the case's primary estate account.

```json theme={null}
{
  "data": {
    "id": "01K9TR01AJ0T55HRYE78AN7TRF",
    "case_id": "01K5WF06MJ6T99HRYE78AN7XM8",
    "bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
    "estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
    "method": "ach_debit",
    "amount_requested": 15230.50,
    "amount_settled": null,
    "status": "requested",
    "requested_at": "2026-08-24T14:10:00Z",
    "expected_settlement_date": "2026-08-27"
  }
}
```

Requesting a transfer on an account that is not `eligible` returns `422`:

```json theme={null}
{
  "error": {
    "code": "transfer_not_eligible",
    "message": "This account is not approved for Instant Inheritance."
  }
}
```

<Warning>
  Always send an `Idempotency-Key` on `POST /transfers`. A retried request without one can move money twice. Keys expire after 24 hours.
</Warning>

## 3. Track the Transfer

```bash theme={null}
curl "https://api.example.com/v1/cases/{case_id}/transfers/{transfer_id}"
```

List every transfer on a case, optionally filtered:

```bash theme={null}
# All transfers, newest first
curl "https://api.example.com/v1/cases/{case_id}/transfers"

# Only transfers still moving
curl ".../cases/{case_id}/transfers?status=in_transit"

# Transfers from one account
curl ".../cases/{case_id}/transfers?bank_account_id=01K6BA01AJ9T66HRYE78AN7PQR"
```

### Transfer Statuses

| Status       | Meaning                                                                                             |
| ------------ | --------------------------------------------------------------------------------------------------- |
| `requested`  | The transfer was requested and is queued for review.                                                |
| `verifying`  | Sunset is re-confirming the balance and account state before submitting.                            |
| `approved`   | Cleared for submission on the next ACH window.                                                      |
| `submitted`  | Sent to the ACH network. `trace_number` is populated. Cannot be cancelled.                          |
| `in_transit` | Moving between institutions.                                                                        |
| `completed`  | Funds settled in the estate account. `amount_settled` and `settled_at` are set.                     |
| `returned`   | The receiving institution returned the debit. See `return_code` and `status_reason`.                |
| `rejected`   | Sunset stopped the transfer before submission, usually because a criterion stopped being satisfied. |
| `cancelled`  | Cancelled by the requester before submission.                                                       |

### Return Codes

A `returned` transfer carries the NACHA return code:

| Code  | Meaning                                   | What to do                                                            |
| ----- | ----------------------------------------- | --------------------------------------------------------------------- |
| `R01` | Insufficient funds                        | Re-check the balance and request a smaller amount.                    |
| `R02` | Account closed                            | The account is gone. Fall back to Automated Closure.                  |
| `R03` | No account or unable to locate            | Re-verify the account and routing numbers.                            |
| `R04` | Invalid account number                    | Re-verify the account number.                                         |
| `R08` | Payment stopped                           | The institution stopped the debit. Sunset works the account manually. |
| `R10` | Customer advises not authorized           | Sunset re-submits the authority documentation to the institution.     |
| `R16` | Account frozen                            | The institution froze the account. Fall back to Automated Closure.    |
| `R20` | Non-transaction account                   | The account does not support ACH debits.                              |
| `R29` | Corporate customer advises not authorized | Applies to business-titled accounts.                                  |

A returned transfer never blocks the account: Sunset reverts the account to the normal closure path automatically.

## 4. Cancel a Transfer

A transfer can be cancelled while its status is `requested`, `verifying`, or `approved`:

```bash theme={null}
curl -X POST "https://api.example.com/v1/cases/{case_id}/transfers/{transfer_id}/cancel" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Executor asked us to hold until the sibling dispute is resolved."}'
```

Once the status is `submitted`, the transfer is with the ACH network and cannot be stopped. Cancelled transfers stay on the case for audit purposes; transfers are never deleted.

## Limits and Safeguards

* **One in flight per account.** A second request while `instant_inheritance.active_transfer_id` is set returns `422`.
* **Never more than the confirmed balance.** `amount` cannot exceed `max_transfer_amount`.
* **Authority is required, always.** Sunset does not transfer without verified authority over the estate.
* **Funds land in the estate account only.** Transfers cannot be directed to a personal account. Distribution to beneficiaries happens later, through [distributions](/probate-guide).

## How Transfers Update Existing Resources

Instant Inheritance works with the resources you already read:

* The bank account's `status` moves to `pending_closure` when a transfer is submitted and `closed` when it completes, with `closure_method` set to `instant_inheritance`.
* `instant_inheritance.transferred_amount` accumulates the settled total for that account.
* The estate account receives a `transaction` of type `estate_deposit` on settlement.
* The case's `close_accounts` [closure step](/closure-guide#closure-steps) advances the same way it does for any other Automated Closure.
