---
title: "Execute a transfer between accounts"
method: POST
path: "/transfer"
tags: ["Transfer"]
---

# Execute a transfer between accounts

`POST /transfer`

A replayed Idempotency-Key returns the original result with the Idempotent-Replayed response header set.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `fromAccountId` string, required
  - `toAccountId` string, required
  - `amount` object, required
    - `amount` union, required
      - string
      - number
    - `asset_id` 'USD', required
  - `memo` string
  - `description` string

## Response `201`

The created transfer transaction

- object
  - `transaction` object, required
    - `id` string, required
    - `organizationId` string, required
    - `type` 'operator-send' | 'operator-transfer' | 'operator-deposit' | 'operator-refund' | 'microdeposit', required
    - `accountId` string, required
    - `counterpartyId` string
    - `counterpartyRailId` string
    - `counterpartyName` string
    - `counterpartyRailSnapshot` union
      - object
        - `id` string, required
        - `counterpartyId` string, required
        - `createdAt` string, date-time, required
        - `source` 'platform' | 'counterparty', required
        - `type` 'bank', required
        - `bankName` string, required
        - `routingNumber` string, required
        - `accountNumber` string, required
        - `accountType` 'checking' | 'savings'
        - `address` string
        - `addressStreet` string
        - `addressCity` string
        - `addressState` string
        - `addressPostalCode` string
        - `addressCountry` string
        - `providerExternalAccountId` string
      - object
        - `id` string, required
        - `counterpartyId` string, required
        - `createdAt` string, date-time, required
        - `source` 'platform' | 'counterparty', required
        - `type` 'wallet', required
        - `walletAddress` string, required
        - `network` 'base' | 'base-sepolia' | 'arc' | 'solana', required
    - `destinationAccountId` string
    - `linkedAccountId` string
    - `relatedTransactionId` string
    - `relatedTransactionType` 'refund'
    - `amount` object, required
      - `amount` string, required
      - `asset_id` string, required
    - `fee` object, required
      - `amount` string, required
      - `asset_id` string, required
    - `currency` string, required
    - `method` 'ach' | 'wire' | 'on-chain'
    - `memo` string
    - `description` string
    - `txHash` string
    - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'reversed', required
    - `movementStatus` 'initiated' | 'provider_pending' | 'processing' | 'completed' | 'failed' | 'reversed' | 'manual_review', required
    - `createdAt` string, date-time, required
    - `completedAt` string, date-time
    - `webhookEventId` string
    - `providerEventId` string
    - `providerPaymentId` string
    - `providerTraceNumber` string
    - `providerSenderBankRoutingNumber` string
    - `providerState` string
    - `cardId` string
    - `providerEventCreatedAt` string, date-time
    - `providerDeveloperFeeAmount` string
    - `providerExchangeFeeAmount` string
    - `providerGasFee` string
    - `providerSubtotalAmount` string
  - `fromAccount` object, required
    - `id` string, required
    - `name` string, required
    - `balance` object, required
      - `amount` string, required
      - `asset_id` string, required
  - `toAccount` object, required
    - `id` string, required
    - `name` string, required
    - `balance` object, required
      - `amount` string, required
      - `asset_id` string, required
  - `fee` object, required
    - `amount` string, required
    - `asset_id` string, required

---

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