---
title: "Read an MPP deposit intent's settle plan (system admin or mpp_ops, read-only)"
method: GET
path: "/admin/mpp-deposit-intents/{id}/settle-plan"
tags: ["fulfillments"]
---

# Read an MPP deposit intent's settle plan (system admin or mpp_ops, read-only)

`GET /admin/mpp-deposit-intents/{id}/settle-plan`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/admin/mpp-deposit-intents/{id}/settle-plan`
- Auth: API key in header `Authorization`

System admin, or a role carrying the `mpp_ops` grant. A read-only alias of POST /admin/mpp-deposit-intents/{id}/settle with dry_run (the same builder, default fee and deadline knobs): the exact calls a signer would send ({to, data, value, description}: factory deploy when the forwarder has no code, then the forwarder's settle), the amounts, the receiver and refund address, the forwarder's live MPP balance (`on_chain_balance`, null when it could not be read), the fulfillment status, and a verdict. Nothing is reserved, sent or changed. `steps` is empty unless `settleable`. `reason` when not settleable: already_confirmed (fulfillment confirmed or intent settling/settled), already_refunded, expired (settle reverts after expiry), underfunded (holds less MPP than quoted_max_input), wrong_token (parked: a non-MPP token arrived and too little MPP is held), not_received (funded, but the intent is not received/overpaid, so the settle lever would refuse).

## Path parameters

- `id` string, required

## Response `200`

OK

- InternalDeliveryHttpHandlerMPPSettlePlanResponse
  - `data` EnforcerV3InternalDomainMppdepositSettlePlan
    - `amount_in_mpp` string
    - `expires_at` string
    - `forwarder_address` string
    - `fulfillment_status` string
    - `intent_id` string
    - `notional_usdc` string
    - `on_chain_balance` string: MPP held by the forwarder now; null when no RPC is configured or the read failed
    - `reason` string
    - `receiver` string
    - `refund_address` string
    - `settleable` boolean
    - `state` string
    - `steps` EnforcerV3InternalDomainMppdepositPlanStep[]
      - `data` string
      - `description` string
      - `to` string
      - `value` string
  - `success` boolean

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `503`: Service Unavailable

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
