Mar 22, 2025
v0.10.1

Granular access controls

You can now create API keys with specific permissions to enforce granular access control in your ledger.

{
  "name": "Balance Management",
  "owner": "balance_management",
  "scopes": ["balances:write", "search:write"],
  "expires_at": "2026-03-11T00:00:00Z"
}

Set your API keys →

Overdraft limits

Set a maximum overdraft threshold using the overdraft_limit parameter when you enable overdrafts for a transaction:

{
  "amount": 400.23,
  "precision": 100,
  "currency": "USD",
  "reference": "ref_abc123",
  "source": "bln_546df224-d7a8-4a20-8e27-399938cb3ead",
  "destination": "bln_8de42141-059f-42ea-9340-00394285620a",
  "description": "Wallet funding",
  "allow_overdraft": true,
  "overdraft_limit": 500
}

For example, setting overdraft_limit to 500.00 ensures the balance does not drop below -$500.00, providing a safeguard against excessive overdrafts.

Set Overdraft Limits →

Use historical balances without balance snapshots

You now have the option to bypass balance snapshots when utilizing the historical balances feature, allowing your balances to be reconstructed with their transactions only.

To do this, include the query parameter from_source=true in your request URL:

GET https://YOUR_BLNK_INSTANCE_URL/balances/{balance_id}/at?timestamp={timestamp}&from_source=true

Apply precision with precise_amount

Accurately record amounts exceeding 15 digits with full precision using the precise_amount field:

  • Convert the amount to its smallest unit.
  • Enter this value directly into the precise_amount field of your request.
  • Include the corresponding precision value.
Example
{
  "precise_amount": 189207535698279000,
  "precision": 1000000000000000000,
  "currency": "ETH",
  ...
}

Applying precision with precise_amount

Balance reconstruction

Correct ledger discrepancies by recalculating your balance directly from transactions. To use this feature, update your balance metadata with the following key:

{
  "meta_data": {
    "BLNK_RUN_RECONCILIATION": "SOURCE"
  }
}

See How Balance Reconstruction Works for more details.

Instant reconciliation

You can now instantly match transactions and mark them as reconciled, with reconciliation details stored in the transaction’s metadata for easy tracking.

See Instant Reconciliation for more details.

Other improvements

  1. Added database protections to prevent unauthorized changes to transactions and balance snapshots.
  2. Introduced a transaction journal featuring a comprehensive audit log to track all activities within the transactions table.
  3. Enabled metadata updates for multiple transactions using the parent_transaction ID,
  4. Upgraded Redis connectivity with TLS support.
  5. General bug fixes and performance improvements
Mar 5, 2025
v0.9.1

Bug fixes & improvements

  1. General bug fixes and improvements.
Mar 3, 2025
v0.9.0

Bulk transactions

The Bulk Transaction API enables you to process multiple transactions within a single request. It offers two processing options: atomic processing, where all transactions either succeed or fail as a unit, and independent processing, where each transaction is handled separately.

Additionally, the API supports asynchronous processing to efficiently manage large batches of transactions.

Bulk Transactions →

Backdated transactions

Introducing the effective_date feature for recording transactions with a financial date different from their system entry date.

This capability ensures seamless migration, accurate financial reporting, reconciliation, and historical balance calculations.

Backdated Transactions →

Feb 26, 2025
v0.8.8

PII Tokenization

We’ve introduced a PII tokenization feature allowing you to replace sensitive customer data with non-sensitive tokens while maintaining the ability to use the data for business operations.

This enhances security, reduces compliance scope, and maintains full functionality within your applications.

PII Tokenization →

Feb 25, 2025
v0.8.7

Bug fixes & improvements

  1. General bug fixes and improvements.
  2. Added environment variables for Blnk configuration parameters.
Feb 24, 2025
v0.8.5

Bug fixes & improvements

  1. General bug fixes and improvements.
Feb 24, 2025
v0.8.4

Balance snapshots & historical balances

Introduced the Balance Snapshots feature, enabling users to retrieve historical balance data at any specific point in time. This enhances accurate financial reporting and analysis while maintaining efficient storage and retrieval mechanisms for optimal performance and scalability.

Balance Snapshots →

Historical Balances →

Feb 22, 2025
v0.8.3

New configuration for handling insufficient funds

Added configuration parameters to control how the ledger processes transactions when funds are insufficient.

  1. insufficient_fund_retries: Determines whether the ledger should automatically retry transactions that fail due to insufficient funds.

  2. max_retry_attempts: Specifies the maximum number of retry attempts before the transaction is rejected.

Added queued balances

Queued balances help estimate the available or expected balance of a ledger. Unlike inflight balances, which require certain conditions to be met (commit or void) before being applied, queued balances simply represent the total amount of transactions waiting in the queue, regardless of conditions.

To view the queued balances of a ledger balance, call the Get Balance endpoint:

GET http://YOUR_BLNK_INSTANCE_URL/balances/{balance_id}?with_queued=true
Response
{
    "balance": 0,
    "version": 0,
    "inflight_balance": 0,
    "credit_balance": 0,
    "inflight_credit_balance": 0,
    "debit_balance": 0,
    "inflight_debit_balance": 0,
    "queued_credit_balance": 0,
    "queued_debit_balance": 0,
    "precision": 0,
    "ledger_id": "ldg_073f7ffe-9dfd-42ce-aa50-d1dca1788adc",
    "identity_id": "",
    "balance_id": "bln_e39a239a-a6ca-4509-b0d9-29dcc5630f8a",
    "indicator": "",
    "currency": "USD",
    "created_at": "2024-07-05T08:13:18.882616461Z",
    "meta_data": {
        "customer_internal_id": "1234",
        "customer_name": "Jerry"
    }
}
Feb 7, 2025
v0.8.2

Direct transaction processing (skip queue)

Added skip_queue option to allow transactions to bypass the queue system and process immediately. When enabled:

  • Transactions act directly on balances without entering the queued state
  • System maintains data consistency through Redis distributed locks
  • Optimistic locking at database level ensures transaction integrity

To implement, add "skip_queue": true to your transaction request body when posting a transaction to your ledger.

{
  ...
  "inflight": true,
  "skip_queue": true
}
Jan 18, 2025
v0.8.1

Updates to Transactions

The QUEUED state is now stored in your Ledger to enhance organisation and traceability in your financial data.

When a queued transaction is processed, we maintain a clear link to its origin:

  • Each queued transaction maintains two connections to its parent:
    1. Direct link via parent_transaction field
    2. Modified reference with _q suffix

This ensures:

  • Clear audit trail of transaction flow
  • Easy tracking of transaction history
  • Prevention of reference collisions
  • Ability to trace complete transaction lifecycle

How transactions work in Blnk

Learn how transactions are recorded in your Ledger and how to work with them

Configuration file

Blnk Finance now provides granular control over transaction and queue behaviors. This allows you to fine-tune system performance and behavior according to your needs.

Configuration file

Learn how to customise your Blnk server with the blnk.json file.

Metadata update

The metadata update feature allows you to attach and modify additional information to different financial items (ledger, balance, transaction or identities) without altering their core attributes. This provides flexibility for storing custom data, tags, or references.

Bug fixes & improvements

  1. Enhanced distribution calculations with rounding support
  2. Improved transaction processing and metadata handling
  3. Extended configuration file to include transaction and queue configurations
  4. General bug fixes and improvements
Dec 23, 2024
v0.7.42

Bug fixes & improvements

  1. General bug fixes and improvements.
Dec 23, 2024
v0.7.41

Bug fixes & improvements

  1. Improved URL parsing for managed and Docker Redis connections.
Nov 12, 2024
v0.7.4

Bug fixes & improvements

  1. indicator not returning for internal balances on the GET /balances endpoint is now fixed.
Oct 11, 2024
v0.7.3

Bug fixes & improvements

  1. Added comments to the source code and API.
Sep 10, 2024
v0.7.2

Bug fixes & improvements

  1. Added more tests.
Sep 9, 2024
v0.7.1

Bug fixes & improvements

  1. Improved queuing time by moving reference check to the working layer.
Sep 9, 2024
v0.7.0

Reconciliation

We’re excited to announce Reconciliation, a powerful new module that helps developers seamlessly compare and reconcile external records with your Blnk Ledger. This feature ensures data consistency, simplifies auditing processes, and reduces errors by automatically flagging mismatches.

To learn more: Reconciliation overview.

Parent transactions

We added parent_transaction for transactions with parent ids, e.g., inflight transactions, multiple sources/destinations, scheduled transactions, etc.

For example, when an inflight transaction is committed, a new transaction is created in your ledger. This new transaction includes the parent_transaction field, which references the original inflight transaction.

Other related improvements include:

  1. Added pagination support for fetching transactions by parent_transaction.

Bug fixes & improvements

  1. Add identity and reconciliation collections to Search.
  2. Added new tools for system monitoring to provide better visibility and faster detection of performance issues.
  3. Implemented rate-limiting to ensure fair usage and maintain system reliability during high traffic periods.
  4. Resolved issues with backups to Amazon S3.
  5. Improved error handling to deliver clearer feedback and make debugging more efficient.
Jun 10, 2024
v0.6.4

Bug fixes & improvements

  1. Fixed dates not being returned correctly.
  2. Improved Search
  3. created_at is now set before queuing transactions.
Jun 9, 2024
v0.6.3

Bug fixes & improvements

  1. Added precision to balance monitor.
  2. Added restart policy to migration.
  3. Directus service and .env parameters added in docker-compose by vebera.
May 3, 2024
v0.6.2

Rates

We’ve introduced Rates, a feature that allows you to record transactions between balances of different currencies.

Applying rates
{
  ...
  "source": "bal_usd",
  "destination": "bal_gbp",
  "rate": 0.92
}

Bug fixes & improvements

  1. Added inflight_expiry_date for specifying when an inflight transaction should expire and be automatically voided.
  2. Added new balance fields and operator field to balance monitors.
  3. You can now only commit up to the total amount of the original inflight transaction.
Apr 12, 2024
v0.6.1

Added Search

Search gives you full control and flexibility over how you fetch your transaction data from your Blnk Ledger. You can use Search to retrieve any data — ledgers, ledger balances, and transactions — from your Blnk Ledger.

Transaction precision

precision is now a transaction parameter. Blnk uses precision to convert transaction amounts to the lowest unit possible, e.g., converting naira to kobo, to ensure that your balances are correctly computed.

The lowest unit for an asset class is a value that has no decimal point regardless of what amount is passed.

Partial commits for inflight transactions

You can now commit transactions in INFLIGHT in bits, i.e., you can release the amount being held by your system in batches based on the conditions you’ve set for the transaction or participating balance.

Bug fixes & improvements

  1. Fixed typos in the payloads for inflight and allow_overdraft.
  2. General bug and performance improvements.
Apr 8, 2024
v0.6.0

Multiple sources & destinations

You can now process transactions from multiple sources to one destination or from one source to multiple destinations. Multiple sources/destinations help you link similar transactions into one single request payload and making the process a lot more efficient for you.

Inflight transactions

We’ve introduced Inflight Transactions, a feature that allows you to hold a transaction until specific conditions are met.

Enable inflight
{
  "amount": 12992.12,
  "reference": "ref_1234",
  "source": "bln_28edb3e5-c168-4127-a1c4-16274e7a28d3",
  "destination": "@World",
  "description": "Card payment",
  "inflight": true
}

Overdrafts

With the new Overdrafts feature, you can process transactions even if the ledger balance doesn’t have sufficient funds. When overdraft is enabled, your balance can go negative, signifying that more money has been spent than received.

Enable overdraft
{
  "allow_overdraft": true
}

Optimistic locking

Implemented optimistic locking as part of Blnk’s concurrency control mechanism, ensuring that multiple transactions can be seamlessly processed simultaneously at scale. Learn more: How Blnk handles concurrency.

Bug fixes & improvements

  1. The precision value for a ledger balance is now automatically applied to the amounts of all transactions that the balance is part of. This ensures that your balance is correctly computed and no amount is lost to approximation.
  2. General bug and performance improvement.
Mar 25, 2024
v0.5.0

Welcome to our first release

Blnk Core is live and available for download.

Fintech developers now have access to an open-source ledger database (a reliable source of truth) and fintech backend infrastructure for building their financial products at scale.

Ledgers and ledger balances

You can now model your customers’ accounts, wallets, and all kinds of balances with our ledger and ledger balances features. You can also implement balance monitoring or manage multi-currency wallets in one place.

You can also represent your organization’s chart of accounts in your Ledger with our General Ledger feature.

Transactions

You can accurately record and track transactions between balances in your Ledger. Blnk transactions feature also allows you to model and implement complex money movement within your system.

You can also toggle on refunds, and scheduling.

Identities

You can create and manage identities for your customers (individuals and organizations) within your Ledger. Learn more: Identities

Advanced

  1. Added https configuration for running your Blnk server in secure mode.
  2. Added k6 for load testing.