Creating a Transfer
The source’s
available balance is debited for the total amount, and each recipient’s available balance is credited. The entire transfer is atomic: if any part fails, nothing moves.
Multi-Recipient Transfers
Split funds across multiple recipients in a single request:Identifying Participants and Groups
The source and recipients can be identified by external ID, Scrip UUID, or group ID. Each identifier is mutually exclusive. Provide exactly one per source or recipient. For the source, usesource_external_id, source_participant_id, or source_group_id. For recipients, use external_id, participant_id, or group_id on each entry.
LOT-Mode Assets
ForLOT-mode assets, transfers spend the source’s oldest eligible lots first and create new lots for each recipient. The new lots get fresh created_at timestamps, so their age resets to zero. Source lot expiration dates do not carry over to the recipient. Destination lots do preserve the source lots’ issuer lineage, so redemption attribution still reports the original issuer.
Response
The response includes ajournal_entry_id for tracing the transfer in the ledger, along with computed totals.
Transfer vs. Credit vs. Adjust
Requirements
- Source and all recipients must be
ACTIVE. To recover funds from a closed account, use forfeit, which is allowed onCLOSEDparticipants. - Program must be
ACTIVE(notSUSPENDEDorARCHIVED) - Source must have sufficient
availablebalance for the total transfer amount. If insufficient, the entire transfer rolls back. - Source and recipient cannot be the same entity
- Idempotency keys are scoped per program. Replaying a request with the same key and parameters returns the original result. Replaying with the same key but different parameters returns a 409 conflict.