Mass credit
Retry a balance adjustment batch
Sends the batch’s adjustments that are not applied (failed, or pending after an interruption or an unconfirmed outcome) again. Adjustments already applied are never applied twice.
Requires manage permission on traders.
curl -X POST "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/5d1c7a2e-3b4f-4c8d-9e0a-1b2c3d4e5f60/retry" \
-H "X-API-Key: hp_live_your_key_here"
POST
/
v1
/
organization
/
balance-adjustments
/
{batchId}
/
retry
Retry a balance adjustment batch
curl --request POST \
--url https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry",
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-API-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 := "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-API-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("https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"batchId": "5d1c7a2e-3b4f-4c8d-9e0a-1b2c3d4e5f60",
"kind": "credit",
"tag": "incident-2026-10-21",
"reason": "US-open outage, 21 October",
"status": "completed",
"windowStart": "2026-10-21T13:30:00.000Z",
"windowEnd": "2026-10-21T14:15:00.000Z",
"policy": {
"lossBasis": "net_after_fees",
"shiftDailyBaseline": true,
"highWaterMarkMode": "unchanged",
"requireFlat": false,
"skipAlreadyCredited": true,
"maxCreditPerAccount": null
},
"requestedBy": "ops@yourfirm.com",
"total": 840,
"processed": 840,
"applied": 838,
"failed": 2,
"skipped": 410,
"totalAmount": 186420.75,
"appliedAmount": 186010.25,
"reversesBatchId": null,
"createdAt": "2026-10-25T15:02:11.000Z",
"lastProgressAt": "2026-10-25T15:04:52.000Z",
"completedAt": "2026-10-25T15:04:52.000Z",
"retrying": 2
}
}{
"success": false,
"statusCode": 400,
"error": "Bad Request",
"message": "Every adjustment in this batch is applied",
"code": "NOTHING_TO_RETRY"
}{
"success": false,
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication required",
"code": "UNAUTHORIZED"
}{
"statusCode": 403,
"error": "Forbidden",
"message": "Your role does not have write access to \"Traders & accounts\"",
"code": "INSUFFICIENT_PERMISSIONS"
}{
"success": false,
"statusCode": 404,
"error": "Not Found",
"message": "Balance adjustment batch not found",
"code": "BATCH_NOT_FOUND"
}{
"success": false,
"statusCode": 409,
"error": "Conflict",
"message": "The batch is still being applied",
"code": "BATCH_RUNNING"
}{
"success": false,
"statusCode": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"code": "INTERNAL_ERROR"
}{
"success": false,
"statusCode": 503,
"error": "Error",
"message": "Balance adjustments are not available yet; nothing was changed",
"code": "FEATURE_NOT_READY"
}⌘I
Retry a balance adjustment batch
curl --request POST \
--url https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry",
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-API-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 := "https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-API-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("https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperprop.com/platform/v1/organization/balance-adjustments/{batchId}/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"batchId": "5d1c7a2e-3b4f-4c8d-9e0a-1b2c3d4e5f60",
"kind": "credit",
"tag": "incident-2026-10-21",
"reason": "US-open outage, 21 October",
"status": "completed",
"windowStart": "2026-10-21T13:30:00.000Z",
"windowEnd": "2026-10-21T14:15:00.000Z",
"policy": {
"lossBasis": "net_after_fees",
"shiftDailyBaseline": true,
"highWaterMarkMode": "unchanged",
"requireFlat": false,
"skipAlreadyCredited": true,
"maxCreditPerAccount": null
},
"requestedBy": "ops@yourfirm.com",
"total": 840,
"processed": 840,
"applied": 838,
"failed": 2,
"skipped": 410,
"totalAmount": 186420.75,
"appliedAmount": 186010.25,
"reversesBatchId": null,
"createdAt": "2026-10-25T15:02:11.000Z",
"lastProgressAt": "2026-10-25T15:04:52.000Z",
"completedAt": "2026-10-25T15:04:52.000Z",
"retrying": 2
}
}{
"success": false,
"statusCode": 400,
"error": "Bad Request",
"message": "Every adjustment in this batch is applied",
"code": "NOTHING_TO_RETRY"
}{
"success": false,
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication required",
"code": "UNAUTHORIZED"
}{
"statusCode": 403,
"error": "Forbidden",
"message": "Your role does not have write access to \"Traders & accounts\"",
"code": "INSUFFICIENT_PERMISSIONS"
}{
"success": false,
"statusCode": 404,
"error": "Not Found",
"message": "Balance adjustment batch not found",
"code": "BATCH_NOT_FOUND"
}{
"success": false,
"statusCode": 409,
"error": "Conflict",
"message": "The batch is still being applied",
"code": "BATCH_RUNNING"
}{
"success": false,
"statusCode": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"code": "INTERNAL_ERROR"
}{
"success": false,
"statusCode": 503,
"error": "Error",
"message": "Balance adjustments are not available yet; nothing was changed",
"code": "FEATURE_NOT_READY"
}