Create a transfer
Atomically transfer assets from one participant to one or more recipients.
Moves funds from one participant or group to one or more recipients. The operation is zero-sum: the source’sDocumentation Index
Fetch the complete documentation index at: https://docs.scrip.dev/llms.txt
Use this file to discover all available pages before exploring further.
AVAILABLE balance is debited by the exact total credited across all recipients. You can include up to 100 recipients in a single call. A description is required (1-500 characters).
The source is identified by exactly one of source_external_id, source_group_id, or source_participant_id. Each recipient also requires exactly one of external_id, group_id, or participant_id. The asset must be linked to the program. Self-transfers (source and recipient are the same entity) return 400 with code self_transfer.
The transfer is atomic. If any leg fails (insufficient balance, inactive participant, inactive program), the entire transfer is rolled back and nothing moves. Both the source and every recipient must have ACTIVE status, and the program itself must be ACTIVE.
Pass an idempotency_key to safely retry requests. If a transfer with the same key already exists but the parameters differ, a 409 is returned with code idempotency_conflict.
For assets using LOT mode, lots are consumed FIFO from the source and new lots are created for each recipient. The lot vintage resets on transfer, so the recipient’s lot created_at reflects the transfer time, not the original issuance.
Authorizations
API key passed in the X-API-Key header.
Body
Transfer details with source and recipients
Asset being transferred
"550e8400-e29b-41d4-a716-446655440001"
Human-readable explanation of the transfer's purpose
1 - 500"Monthly bonus distribution"
Program this transfer belongs to
"550e8400-e29b-41d4-a716-446655440000"
List of transfer recipients (1 to 100)
1 - 100 elementsUnique key to prevent duplicate transfers (optional)
"txn_abc123"
Source participant's external ID (mutually exclusive with source_group_id and source_participant_id)
"user_123"
Source group UUID (mutually exclusive with source_external_id and source_participant_id)
"550e8400-e29b-41d4-a716-446655440004"
Source participant UUID (mutually exclusive with source_external_id and source_group_id)
Response
Transfer completed with journal entry ID
Asset that was transferred
"550e8400-e29b-41d4-a716-446655440001"
Journal entry created for this transfer (use for audit trails)
"550e8400-e29b-41d4-a716-446655440002"
Number of recipients in this transfer
5
Scrip's UUID for the source participant
"550e8400-e29b-41d4-a716-446655440003"
Sum of all recipient amounts
"500.00"