Delphi ActiveX Stripe: List Balance History

Back to Index

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

Documentation: https://stripe.com/docs/api/curl#balance_history

CURL Command

curl https://api.stripe.com/v1/balance/history?limit=3 \
   -u STRIPE_SECRET_KEY: \
   -G

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
sbResponseBody: TChilkatStringBuilder;
jsonResponse: TChilkatJsonObject;
object: WideString;
url: WideString;
has_more: Integer;
i: Integer;
count_i: Integer;
id: WideString;
amount: Integer;
available_on: Integer;
created: Integer;
currency: WideString;
description: Integer;
exchange_rate: Integer;
fee: Integer;
net: Integer;
source: WideString;
status: WideString;
type: WideString;
j: Integer;
count_j: Integer;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://api.stripe.com/v1/balance/history?limit=3
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('api.stripe.com',port,bTls,bAutoReconnect);
if (success <> 1) then
  begin
    Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

rest.SetAuthBasic('STRIPE_SECRET_KEY','');

sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestNoBodySb('GET','/v1/balance/history?limit=3',sbResponseBody.ControlInterface);
if (success <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.LoadSb(sbResponseBody.ControlInterface);

object := jsonResponse.StringOf('object');
url := jsonResponse.StringOf('url');
has_more := jsonResponse.BoolOf('has_more');
i := 0;
count_i := jsonResponse.SizeOfArray('data');
while i < count_i do
  begin
    jsonResponse.I := i;
    id := jsonResponse.StringOf('data[i].id');
    object := jsonResponse.StringOf('data[i].object');
    amount := jsonResponse.IntOf('data[i].amount');
    available_on := jsonResponse.IntOf('data[i].available_on');
    created := jsonResponse.IntOf('data[i].created');
    currency := jsonResponse.StringOf('data[i].currency');
    description := jsonResponse.IsNullOf('data[i].description');
    exchange_rate := jsonResponse.IsNullOf('data[i].exchange_rate');
    fee := jsonResponse.IntOf('data[i].fee');
    net := jsonResponse.IntOf('data[i].net');
    source := jsonResponse.StringOf('data[i].source');
    status := jsonResponse.StringOf('data[i].status');
    type := jsonResponse.StringOf('data[i].type');
    j := 0;
    count_j := jsonResponse.SizeOfArray('data[i].fee_details');
    while j < count_j do
      begin
        jsonResponse.J := j;
        j := j + 1;
      end;

    i := i + 1;
  end;

Sample JSON Response Body

{
  "object": "list",
  "url": "/v1/balance/history",
  "has_more": false,
  "data": [
    {
      "id": "txn_1BnETJGswQrCoh0XxO2tGYr7",
      "object": "balance_transaction",
      "amount": 100,
      "available_on": 1516662781,
      "created": 1516662781,
      "currency": "usd",
      "description": null,
      "exchange_rate": null,
      "fee": 0,
      "fee_details": [
      ],
      "net": 100,
      "source": "ch_1BnETJGswQrCoh0XTs0EERBj",
      "status": "pending",
      "type": "charge"
    }
  ]
}