Available in version 0.6.0 and later.
Overview
Blnk allows you to move money from a single source to multiple destinations in one transaction. This provides enhanced flexibility for complex money flows and makes tracking and reconciliation easier.Multiple sources
Move money from multiple sources to a single destination in one transaction.
What you’ll learn
Example scenario
A customer sends USD 30,000 to three destinations. Here’s how the transaction is structured:
Multiple destinations transaction flow
Balance ID | Amount | |
---|---|---|
Alice | bln_f2073f6b-905a-4e3e-b5a2-8d1b3dc2fb7f | 20% (USD 6,000) |
Bob | bln_64c50fb5-32d5-4f78-9f4a-e8b01aaf025d | USD 10,000 |
Charlie | bln_7d98dfe9-5c3e-4c9b-b96a-65f6d9f7b89b | Remaining amount (USD 14,000) |
Sarah (Sender) | bln_92e4b9b6-0b85-4ef4-87a2-682c31500d38 | Total: USD 30,000 |
When sending to multiple destinations, you can only send from one source.
Create multiple destinations transaction
Call the Create Transaction endpoint with these fields:cURL
Field | Description | Required | Type |
---|---|---|---|
amount | Total amount to be sent | Yes | float |
precision | Converts amount to lowest unit. See Understanding precision | No | int64 |
reference | Unique transaction reference | Yes | string |
currency | Asset class code. See Asset classes | Yes | string |
source | Sender’s balance ID | Yes | string |
destinations | Array of destination objects with identifier and distribution fields | Yes | array |
destinations.identifier | Balance ID of the destination account | Yes | string |
destinations.distribution | Amount to send to this destination (specific amount, percentage, or “left”) | Yes | string |
meta_data | Custom transaction data | No | object |
When sending to multiple destinations, do not include the
destination
field in your payload. Use the destinations
array to group the participating balances in your payload.API response structure
When you create a multiple destinations transaction, Blnk creates separate transaction records for each destination. Blnk returns a response containing:- A main transaction ID for the overall split transaction. If
inflight: true
, it can be used to commit or void all transactions at once. - A destinations array with individual transaction IDs for each destination.
Response
Retrieving child transactions
You can retrieve all transactions in the split by searching for the main transaction ID in themeta_data.QUEUED_PARENT_TRANSACTION
field:
cURL
Distribution types
You can specify distribution amounts in three ways:Type | Description | Example |
---|---|---|
Specific amount | Fixed amount to send | "distribution": "10000" |
Percentage | Percentage of total amount | "distribution": "20%" |
Remaining | Leftover amount after other distributions | "distribution": "left" |
You can only use
"left"
once per transaction, and all distributions must sum to the total amount.Transaction references
Blnk automatically generates unique references for each transaction record by appending a counter to your original reference (starting from1
).
Example: If your reference is ref_001adcfgf
, the generated references will be:
ref_001adcfgf1
(first destination)ref_001adcfgf2
(second destination)ref_001adcfgf3
(third destination)
Need help?
We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool. To ask questions or discuss issues, please contact us or join our Discord community.Tip: Connect to Blnk Cloud to see your Core data.You can view your transactions, manage identities, create custom reports, invite other team members to collaborate, and perform operations on your Core — all in one dashboard.Check out Blnk Cloud →