Skip to main content
POST
/
balance-monitors
Create balance monitor
curl --request POST \
  --url http://localhost:5001/balance-monitors \
  --header 'X-blnk-key: <api-key>'
import requests

url = "http://localhost:5001/balance-monitors"

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

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

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

fetch('http://localhost:5001/balance-monitors', 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/balance-monitors",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/balance-monitors"

req, _ := http.NewRequest("POST", 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.post("http://localhost:5001/balance-monitors")
.header("X-blnk-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("http://localhost:5001/balance-monitors")

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

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

response = http.request(request)
puts response.read_body
Use blnk.balance_monitor.create to set up balance monitoring on an existing balance.
1

Call the method

blnk.balance_monitor.create
response = blnk.balance_monitor.create({
  "balance_id": "bln_5ce86029-3c2e-4e2a-aae2-7fb931ca4c4f",
  "condition": {
    "field": "credit_balance",
    "operator": ">",
    "value": 1000,
    "precision": 100,
  },
  "call_back_url": "https://api.example.com/balance-monitor",
  "description": "Low balance alert",
})
FieldTypeDescription
balance_idstrBalance to monitor.
conditiondictThreshold rule with field, operator, value, and precision.
condition.fieldstrBalance field to watch (for example credit_balance, debit_balance, balance).
condition.operatorstrComparison operator: >, <, =, !=, >=, <=.
condition.valuenumberThreshold amount.
condition.precisionnumberCurrency precision (for example 100 for cents).
call_back_urlstrWebhook URL when the condition is met.
descriptionstrOptional description for the monitor.
2

Save the monitor ID

Use response.data["monitor_id"] to retrieve or update the monitor later.
3

Response

201 Created
{
  "monitor_id": "mon_e0e77b0c-4985-472a-9bf5-76a48b0259b0",
  "balance_id": "bln_5ce86029-3c2e-4e2a-aae2-7fb931ca4c4f",
  "condition": {
    "field": "credit_balance",
    "operator": ">",
    "value": 1000,
    "precision": 100
  },
  "call_back_url": "https://api.example.com/balance-monitor",
  "description": "Low balance alert",
  "created_at": "2024-02-20T05:56:58.257315054Z"
}
FieldTypeDescription
monitor_idstrUnique ID for the monitor.
balance_idstrBalance being monitored.
conditiondictThreshold rule you passed in the request.
call_back_urlstrWebhook URL for notifications.
descriptionstrDescription for the monitor.
created_atstrDate and time when the monitor was created.

Balance monitoring

Conditions and webhook behavior.

Create balance monitor

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.