---
title: "Ask the user to approve a transfer, without spending funds."
method: POST
path: "/api/v1/apps/transfer/request"
tags: ["apps", "apps-transfer"]
---

# Ask the user to approve a transfer, without spending funds.

`POST /api/v1/apps/transfer/request`

## Headers

- `Idempotency-Key` string, nullable
- `x-api-key` string, required

## Request body

- TransferTargetContext — What is being sent, and to whom. Exactly one of ``contactId`` / ``quoteId`` / ``invoiceId`` must be set (mirrors the /mcp/transfer body). ``amount`` is required when ``contactId`` is the dispatch path; otherwise it is derived from the referenced invoice or quote.
  - `contactId` string, uuid, nullable
  - `quoteId` string, nullable
  - `invoiceId` string, uuid, nullable
  - `amount` number, nullable
  - `memo` string, nullable

## Response `202`

Successful Response

- TransferRequestResponse — One outcome shape for both ways a transfer attempt can end. Spent straight away: ``txHash`` only. Needs approval: the request that was filed, with the deep link to approve it. ``transactionId`` appears once an approved transfer has been reported back. A decline reason is not a field — it is a message in ``chatId``, the request's thread.
  - `id` string, uuid, nullable
  - `status` 'requested' | 'approved' | 'declined' | 'failed' — Client-facing status of a ``transfer_request`` proposal. The record is a proposal (seven statuses); this is the short vocabulary the API keeps for the agent and the web app, mapped from `ProposalStatus` by :meth:`from_proposal`.
  - `txHash` string, nullable
  - `transactionId` string, nullable
  - `accountId` string, uuid, nullable
  - `appId` string, uuid, nullable
  - `requestedByUserId` string, uuid, nullable
  - `contactId` string, uuid, nullable
  - `quoteId` string, nullable
  - `invoiceId` string, uuid, nullable
  - `amount` number, nullable
  - `memo` string, nullable
  - `requestedTime` string, date-time, nullable
  - `chatId` string, uuid, nullable
  - `approvalUrl` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/hevn-inc/apis/hevn-api.md) · [All operations](https://skmtc.dev/hevn-inc/apis/hevn-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hevn-inc/hevn-api/revisions/7ed1b58c5607/schema)
