Skip to main content
GET
/
balances
/
{balance_id}
/
lineage
View balance lineage
curl --request GET \
  --url http://localhost:5001/balances/{balance_id}/lineage \
  --header 'X-blnk-key: <api-key>'
import requests

url = "http://localhost:5001/balances/{balance_id}/lineage"

headers = {"X-blnk-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'X-blnk-key': '<api-key>'}};

fetch('http://localhost:5001/balances/{balance_id}/lineage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_PORT => "5001",
CURLOPT_URL => "http://localhost:5001/balances/{balance_id}/lineage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-blnk-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "http://localhost:5001/balances/{balance_id}/lineage"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("X-blnk-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("http://localhost:5001/balances/{balance_id}/lineage")
.header("X-blnk-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("http://localhost:5001/balances/{balance_id}/lineage")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["X-blnk-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
Use blnk.ledger_balances.get_lineage to inspect a balance’s fund breakdown.
Fund lineage must be enabled on the balance when it was created. See Fund lineage.
1

Call the method

blnk.ledger_balances.get_lineage
response = blnk.ledger_balances.get_lineage(
  "bln_5ce86029-3c2e-4e2a-aae2-7fb931ca4c4f",
)
FieldTypeDescription
balanceIdstrBalance ID with fund lineage enabled.
2

Use the provider breakdown

Read response.data["providers"] to see how much each provider contributed, spent, and has available. Use total_with_lineage for the aggregate tracked amount.
3

Response

200 OK
{
  "balance_id": "bln_5ce86029-3c2e-4e2a-aae2-7fb931ca4c4f",
  "aggregate_balance_id": "bln_aggregate_shadow_balance_id",
  "total_with_lineage": "7500",
  "providers": [
    {
      "provider": "stripe",
      "amount": "10000",
      "available": "7500",
      "spent": "2500",
      "shadow_balance_id": "bln_shadow_balance_id"
    }
  ]
}
FieldTypeDescription
balance_idstrBalance you queried.
aggregate_balance_idstrInternal aggregate balance ID for combined provider funds.
total_with_lineagestrTotal available funds tracked by lineage (minor units).
providerslist[dict]Provider-by-provider breakdown of received and spent funds.

Fund lineage

Tagged funds and allocation strategies.

View balance lineage

HTTP request and response schema.

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.