---
title: "Create a transfer-out request"
method: POST
path: "/transfer-out"
tags: ["Same-Currency Transfers"]
---

# Create a transfer-out request

`POST /transfer-out`

Transfer funds from an internal account to an external account for a specific customer.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `source` object, required — Source internal account details
    - `accountId` string, required — Reference to an internal account ID
  - `destination` object, required — Destination external account details
    - `accountId` string, required — Reference to an external account ID
  - `amount` integer — Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)

## Response `201`

Transfer-out request created successfully

- Transaction
  - `id` string, required — Unique identifier for the transaction
  - `status` 'CREATED' | 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'REJECTED' | 'FAILED' | 'REFUNDED' | 'EXPIRED', required — Status of a payment transaction
  - `type` 'INCOMING' | 'OUTGOING', required — Type of transaction (incoming payment or outgoing payment)
  - `destination` union, required
    - AccountTransactionDestination — Destination account details
      - `currency` string — Currency code for the destination
      - `destinationType` 'ACCOUNT', required
      - `accountId` string, required — Destination account identifier
    - UmaAddressTransactionDestination — UMA address destination details
      - `currency` string — Currency code for the destination
      - `destinationType` 'UMA_ADDRESS', required
      - `umaAddress` string, required — UMA address of the recipient
  - `customerId` string, required — System ID of the customer (sender for outgoing, recipient for incoming)
  - `platformCustomerId` string, required — Platform-specific ID of the customer (sender for outgoing, recipient for incoming)
  - `settledAt` string, date-time — When the payment was or will be settled
  - `createdAt` string, date-time — When the transaction was created
  - `updatedAt` string, date-time — When the transaction was last updated
  - `description` string — Optional memo or description for the payment
  - `counterpartyInformation` object — Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses.

## Other responses

- `400` — Bad request - Invalid parameters
- `401` — Unauthorized
- `404` — Customer or account not found
- `500` — Internal service error

## Changes

- **2026-02-07** `e951665c552d` — 2 breaking, 2 info
  - removed the required property `destination/oneOf[subschema #1: Account Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType` from the response with the `201` status
  - removed the required property `destination/oneOf[subschema #2: UMA Address Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType` from the response with the `201` status
  - the response property `destination/oneOf[subschema #1: Account Destination]/allOf[subschema #2]/destinationType` became required for the status `201`
  - the response property `destination/oneOf[subschema #2: UMA Address Destination]/allOf[subschema #2]/destinationType` became required for the status `201`
- **2026-02-06** `9d1655bef82d` — 2 breaking
  - the response property `destination/oneOf[subschema #1: Account Destination]/allOf[subschema #2]/destinationType` became optional for the status `201`
  - the response property `destination/oneOf[subschema #2: UMA Address Destination]/allOf[subschema #2]/destinationType` became optional for the status `201`
- …earlier changes not shown

[Full history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/transfer-out/post.md)

---

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