Create Transfer

👍

Availability

Some of the field descriptions for this endpoint reference FedNow or Fedwire, which are future capabilities not yet available for clients.

Use the Create Transfer endpoint to move funds between a source account and a destination account. You can use an active account link that was created by Create External Account Link or create a new one via the request.

For card transfers, the referenced external debit card link must have a validation status of "PASSED" before it can be used for transfers.

For new transfers: Omit the returnDetails field.
For payment returns: Include the returnDetails field with the original transaction reference.
When returnDetails is present, the request initiates a return of the original transfer.

Body Params

Create a new payment transfer OR return a previous transfer.

For new transfers: Omit the returnDetails field.
For payment returns: Include the returnDetails field with the original transaction reference.

When returnDetails is present, the request initiates a return of the original transfer.
See ReturnDetails class documentation for field meanings and return-specific behavior.

Character Set Restrictions for FEDWIRE and FEDNOW rails:

All free-text fields (e.g. purpose, remittanceInfo, address fields, owner names, bankName)
must conform to the payment rail's character set when using FEDWIRE or FEDNOW:

  • FEDWIRE: Alphanumeric characters and special characters: @&/'"` ~()<>$#%+-={}*|[]^.,?!;:_
  • FEDNOW: FedNow Service Character Set — alphanumeric, space, all printable ASCII special
    characters (!"#$%&'()*+,-./:;<=>?@[]^_`{|}~), and extended Latin characters (U+00C0–U+00FF)

string
required

The PRN associated with this transfer.
Pattern: PRN
Example: "074103447228"

string
enum
required

Payment network to use for the transfer.
Rail-specific validation: CARD requires the sourceAccount to be GALILEO and creditOrDebit to be DEBIT or CREDIT.
Example: "CARD"

Allowed:
currencyAmount
object
required

Request-side currency amount. Raises BadRequestException (400) on invalid client input.

string
enum
required

Posting type indicating debit or credit.

  • DEBIT: Debit transaction (funds withdrawn)
  • CREDIT: Credit transaction (funds deposited)
Allowed:
sourceAccount
object
required

Identifies the account's role in the transaction.

If used as the sourceAccount, this is the account being debited. For push transfers (withdrawals), use the
SoFi Tech Solutions account; for pull transfers (deposits), use the linked external account.

If used as the destinationAccount, this is the account being credited. For push transfers, use the linked
external account; for pull transfers, use the SoFi Tech Solutions account.

destinationAccount
object
required

Identifies the account's role in the transaction.

If used as the sourceAccount, this is the account being debited. For push transfers (withdrawals), use the
SoFi Tech Solutions account; for pull transfers (deposits), use the linked external account.

If used as the destinationAccount, this is the account being credited. For push transfers, use the linked
external account; for pull transfers, use the SoFi Tech Solutions account.

Client-defined identifier for tracking and reconciliation.
Pattern: Alphanumeric string
Example: My-Internal-ID-123

Reason for the transfer.
Pattern: Alphanumeric string
Validation:

  • Default: Alphanumeric string
  • FEDWIRE: Limited to alphanumeric and special characters: @&/'"`~()<>$#%+-={}*|[]^.,?!;:_
    Example: "Bill Payment"

Additional details about the transfer, such as an invoice number.
Pattern: Alphanumeric string
Validation:

  • Default: Alphanumeric string
  • FEDWIRE: 1-140 characters, limited to alphanumeric and special characters: @&/'"~()<>$#%+-={}*|[]^.,?!;:_ Example: "Invoice #456-ABC`"
ReturnDetails | null

Payment return information. If present, this request initiates a return/reversal of a previous transfer.

When provided, the following fields take on return-specific meanings:

  • currencyAmount: The amount being returned (supports partial returns, must be less than or equal to the original amount)
  • sourceAccount: Account initiating the return.
  • destinationAccount: Account receiving the return.
  • paymentMethod: Payment rail used for the return.

See ReturnDetails class documentation for additional return fields and requirements.

DestinationEntitiesRequest | null

Agent routing for outbound international FedWire transfers.
Contains the instructed agent (receiving FI on FedWire) and optional intermediary/correspondent bank in the payment chain.
Validation:

  • Only allowed for outbound international FedWire transfers
  • When intermediaryAgent1 is present, instructedAgent is required
  • FedWire instructedAgent: clearingSystemId must be USABA, memberId must be valid ABA/RTN
boolean
Defaults to false

Indicates whether this is a cross-border (international) transfer.
Currently supported for FEDWIRE only.

Headers
string
required
string
required
^Basic [A-Za-z0-9+/]+=*$

Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)

Responses

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json

© SoFi Technology Solutions, LLC 2026    Privacy Disclosure

All documentation, including but not limited to text, graphics, images, and any other content, are the exclusive property of SoFi Technology Solutions, LLC and are protected by copyright laws. These materials may not be reproduced, distributed, transmitted, displayed, or otherwise used without the prior written permission of SoFi Technology Solutions, LLC. Any unauthorized use or reproduction of these materials are expressly prohibited.