---
title: "Update a transfer"
method: PATCH
path: "/api/link/v1/enterprises/{enterpriseId}/transfers/{transferId}"
tags: ["Link Transfers"]
---

# Update a transfer

`PATCH /api/link/v1/enterprises/{enterpriseId}/transfers/{transferId}`

Partially updates an existing transfer. Currently supports updating `notes`
only; no other transfer fields can be modified through this endpoint yet.

## Path parameters

- `enterpriseId` string, required
- `transferId` string, required

## Headers

- `user-id` string, required

## Request body

- object — Partial transfer update body. Currently accepts free-form client `notes`. Additional updatable properties may be added to this body over time.
  - `notes` string, required — Free-form client notes to associate with the transfer. Required today — this is the only updatable field on this route. When omitted in the future alongside other fields, notes are left unchanged.

## Response `200`

OK

- V1TransferResponse — Single transfer response object
  - `id` string, required
  - `accountId` string, required
  - `status` 'pending_policy_evaluation' | 'processing' | 'pending_approval' | 'pending' | 'completed' | 'failed' | 'failed_retriable' | 'canceled' | 'rejected', required
  - `amount` string, required
  - `genericAsset` string
  - `rawAsset` string, required
  - `displayAsset` string, required
  - `rawNetwork` string
  - `fromAsset` string
  - `fromNetwork` string
  - `fromId` string
  - `fromType` 'address' | 'bitgo_wallet' | 'link_account' | 'venue_account'
  - `toAsset` string
  - `toNetwork` string
  - `toId` string
  - `toType` 'address' | 'bitgo_wallet' | 'link_account' | 'venue_account'
  - `initiatedBy` string
  - `fromName` string
  - `toName` string
  - `fromVenueId` string
  - `toVenueId` string
  - `accountSubType` string — Normalized sub-account-type for the transfer's owning Link account. Absent when a sub-type could not be determined. For pass-through values (no matching venue configuration), this carries the raw venue label and `rawAccountSubType` / `accountSubTypeLabel` are absent.
  - `rawAccountSubType` string — Venue-raw sub-type label, projected from venue config. Absent for pass-through values.
  - `accountSubTypeLabel` string — Human-readable sub-type display label, projected from venue config. Absent for single-sub-type venues or pass-through values.
  - `fromAccountSubType` string — Source-leg normalized sub-account-type. Only set for `link_account` legs that ingested with a sub-type.
  - `fromRawAccountSubType` string
  - `fromAccountSubTypeLabel` string
  - `toAccountSubType` string — Destination-leg normalized sub-account-type. Only set for `link_account` legs that ingested with a sub-type.
  - `toRawAccountSubType` string
  - `toAccountSubTypeLabel` string
  - `cryptoDetail` object — Crypto detail response for a transfer
    - `confirmations` number
    - `createdAt` string, date-time, required
    - `feeAmount` string
    - `feeAsset` string
    - `feeNetwork` string
    - `feeRawAsset` string
    - `feeRawNetwork` string
    - `fromAddress` string
    - `hash` string, required
    - `id` string, required
    - `linkTransferId` string, required
    - `status` 'unconfirmed' | 'confirmed' | 'failed' | 'canceled' | 'unknown', required
    - `toAddress` string
    - `updatedAt` string, date-time, required
  - `bitgoDetail` object — BitGo detail response for a transfer
    - `bitgoWalletAddress` string
    - `createdAt` string, date-time, required
    - `evaluationId` string
    - `id` string, required
    - `linkTransferId` string, required
    - `pendingApprovalId` string
    - `transactionRequestId` string
    - `transferId` string
    - `updatedAt` string, date-time, required
    - `walletId` string
  - `venueDetail` object — Venue detail response for a transfer
    - `createdAt` string, date-time, required
    - `id` string, required
    - `linkTransferId` string, required
    - `updatedAt` string, date-time, required
    - `venueCreatedDate` string, date-time, required
    - `venueModifiedDate` string, date-time, required
    - `venueTransactionId` string
    - `venueTransferId` string
  - `reason` object — Normalized failure context. Set when `status` is `failed` (terminal) or `failed_retriable` (the venue rejected this attempt but the same transfer can be retried under the same `externalId` once external state changes). `code` is a stable string the caller can branch on; `message` is a human-readable description from the venue.
    - `code` string, required
    - `message` string, required
  - `notes` string
  - `sortTimestamp` string, date-time
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/bitgo/apis/bitgo-api.md) · [All operations](https://skmtc.net/bitgo/apis/bitgo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bitgo/bitgo-api/revisions/e445c15e5bee/schema)
