---
title: "Refund an MPP deposit intent (system admin, dry_run by default)"
method: POST
path: "/admin/mpp-deposit-intents/{id}/refund"
tags: ["fulfillments"]
---

# Refund an MPP deposit intent (system admin, dry_run by default)

`POST /admin/mpp-deposit-intents/{id}/refund`

## Request

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

Returns the exact call (forwarder refund, after a factory deploy if needed) without sending anything unless dry_run is explicitly false. Refused unless the intent is underpaid, overpaid, parked or expired. Idempotent per intent. mode=reserve reserves the intent and returns the plan with action_id. A non-dry refund answers 409 refund_to_contract when the refund address has code or is a forwarder.

## Path parameters

- `id` string, required

## Request body

- InternalDeliveryHttpHandlerMPPRefundRequest
  - `dry_run` boolean
  - `mode` 'reserve'

## Response `200`

OK

- InternalDeliveryHttpHandlerMPPLeverResponse
  - `data` EnforcerV3InternalDomainMppdepositLeverResult
    - `action_id` string: ActionID is the mpp_deposit_actions row backing a real call or a reservation; Reserved is true while that row has no tx hash yet (the sender holds it but has not completed it).
    - `actor` string
    - `dry_run` boolean
    - `intent_id` string
    - `plan` EnforcerV3InternalDomainMppdepositPlan
      - `kind` string
      - `steps` EnforcerV3InternalDomainMppdepositStep[]
        - `args` object
        - `calldata` string
        - `function` string
        - `name` string
        - `to` string
    - `replayed` boolean
    - `reserved` boolean
    - `state` string
    - `tx_hashes` string[]
  - `success` boolean

## Other responses

- `404`: Not Found
- `409`: Conflict
- `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)
