---
title: "Ask the account's owners to approve a transfer"
method: POST
path: "/api/v1/transfer_requests"
tags: ["Transfer requests"]
---

# Ask the account's owners to approve a transfer

`POST /api/v1/transfer_requests`

File a transfer for an acting seat on the paying account to authorize.

This is the path for a seat that may not move money itself: nothing is sent
until an owner approves by signing the transfer.

## Headers

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

## Request body

- TransferRequestCreate — Body of ``POST /transfer_requests``. ``accountId`` is the account the money leaves — a company a teammate holds a seat on. Omitted means their own account.
  - `contactId` string, uuid, nullable
  - `quoteId` string, nullable
  - `invoiceId` string, uuid, nullable
  - `amount` number, nullable
  - `memo` string, nullable
  - `accountId` string, uuid, 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

## Changes

- **2026-08-27** `7ed1b58c5607` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/hevn-inc/apis/hevn-api/changes/api/v1/transfer_requests/post.md)

---

[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)
