C 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

C Example

#include <C_CkRest.h>
#include <C_CkStringBuilder.h>
#include <C_CkJsonObject.h>

void ChilkatSample(void)
    {
    HCkRest rest;
    BOOL success;
    BOOL bTls;
    int port;
    BOOL bAutoReconnect;
    HCkStringBuilder sbResponseBody;
    HCkJsonObject jsonResponse;
    const char *object;
    const char *url;
    BOOL has_more;
    int i;
    int count_i;
    const char *id;
    int amount;
    int available_on;
    int created;
    const char *currency;
    BOOL description;
    BOOL exchange_rate;
    int fee;
    int net;
    const char *source;
    const char *status;
    const char *type;
    int j;
    int count_j;

    rest = CkRest_Create();

    //  URL: https://api.stripe.com/v1/balance/history?limit=3
    bTls = TRUE;
    port = 443;
    bAutoReconnect = TRUE;
    success = CkRest_Connect(rest,"api.stripe.com",port,bTls,bAutoReconnect);
    if (success != TRUE) {
        printf("ConnectFailReason: %d\n",CkRest_getConnectFailReason(rest));
        printf("%s\n",CkRest_lastErrorText(rest));
        CkRest_Dispose(rest);
        return;
    }

    CkRest_SetAuthBasic(rest,"STRIPE_SECRET_KEY","");

    sbResponseBody = CkStringBuilder_Create();
    success = CkRest_FullRequestNoBodySb(rest,"GET","/v1/balance/history?limit=3",sbResponseBody);
    if (success != TRUE) {
        printf("%s\n",CkRest_lastErrorText(rest));
        CkRest_Dispose(rest);
        CkStringBuilder_Dispose(sbResponseBody);
        return;
    }

    jsonResponse = CkJsonObject_Create();
    CkJsonObject_LoadSb(jsonResponse,sbResponseBody);

    object = CkJsonObject_stringOf(jsonResponse,"object");
    url = CkJsonObject_stringOf(jsonResponse,"url");
    has_more = CkJsonObject_BoolOf(jsonResponse,"has_more");
    i = 0;
    count_i = CkJsonObject_SizeOfArray(jsonResponse,"data");
    while (i < count_i) {
        CkJsonObject_putI(jsonResponse,i);
        id = CkJsonObject_stringOf(jsonResponse,"data[i].id");
        object = CkJsonObject_stringOf(jsonResponse,"data[i].object");
        amount = CkJsonObject_IntOf(jsonResponse,"data[i].amount");
        available_on = CkJsonObject_IntOf(jsonResponse,"data[i].available_on");
        created = CkJsonObject_IntOf(jsonResponse,"data[i].created");
        currency = CkJsonObject_stringOf(jsonResponse,"data[i].currency");
        description = CkJsonObject_IsNullOf(jsonResponse,"data[i].description");
        exchange_rate = CkJsonObject_IsNullOf(jsonResponse,"data[i].exchange_rate");
        fee = CkJsonObject_IntOf(jsonResponse,"data[i].fee");
        net = CkJsonObject_IntOf(jsonResponse,"data[i].net");
        source = CkJsonObject_stringOf(jsonResponse,"data[i].source");
        status = CkJsonObject_stringOf(jsonResponse,"data[i].status");
        type = CkJsonObject_stringOf(jsonResponse,"data[i].type");
        j = 0;
        count_j = CkJsonObject_SizeOfArray(jsonResponse,"data[i].fee_details");
        while (j < count_j) {
            CkJsonObject_putJ(jsonResponse,j);
            j = j + 1;
        }

        i = i + 1;
    }



    CkRest_Dispose(rest);
    CkStringBuilder_Dispose(sbResponseBody);
    CkJsonObject_Dispose(jsonResponse);

    }

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"
    }
  ]
}