Documentation Index
Fetch the complete documentation index at: https://docs.blnkfinance.com/llms.txt
Use this file to discover all available pages before exploring further.
Available in version 0.6.0 and later.
Example workflow
Pooling contributions, topping up a wallet from multiple linked accounts, or settling an invoice from more than one internal pot are common use cases for multiple sources. For example, Sarah should receive USD 30,000 into her balance. Alice contributes 10%, Bob sends a fixed $20,000, and Charlie’s contribution uses"left" so whatever remains after the first two legs comes from Charlie automatically.
Money movement would look like this:

| Balance ID | Amount | |
|---|---|---|
| Alice | bln_f2073f6b-905a-4e3e-b5a2-8d1b3dc2fb7f | 10% (USD 3,000) |
| Bob | bln_64c50fb5-32d5-4f78-9f4a-e8b01aaf025d | USD 20,000 |
| Charlie | bln_7d98dfe9-5c3e-4c9b-b96a-65f6d9f7b89b | Remaining amount (USD 7,000) |
| Sarah (Recipient) | bln_92e4b9b6-0b85-4ef4-87a2-682c31500d38 | Total: USD 30,000 |
Create multiple sources transaction
Call the Create Transaction endpoint with these fields:cURL
| Field | Description | Required | Type |
|---|---|---|---|
amount | Total amount to be received | Yes | float |
precision | Converts amount to lowest unit. See Understanding precision | No | int64 |
reference | Unique transaction reference | Yes | string |
currency | Asset class code. | Yes | string |
sources | Array of source objects with identifier and distribution fields | Yes | array |
sources.identifier | Balance ID of the source account | Yes | string |
sources.distribution | Amount to send from this source (specific amount, percentage, or “left”) | Yes | string |
destination | Recipient’s balance ID | Yes | string |
meta_data | Custom transaction data | No | object |
API response structure
When you create a multiple sources transaction, Blnk records one coordinated request and creates separate ledger movements per source—all credited to the single 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 sources array with individual transaction IDs for each source.
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": "20000" |
| Percentage | Percentage of total amount | "distribution": "10%" |
| Remaining | Leftover amount after other distributions | "distribution": "left" |
Using precise_distribution with precise_amount
When a transaction uses precise_amount, use precise_distribution in place of distribution only for sources that specify an exact value.
For example:
Example with precise_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_001adcfgf_1(first source)ref_001adcfgf_2(second source)ref_001adcfgf_3(third source)
Multiple destinations
Move money from a single source to multiple destinations in one transaction.