SQL Server 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

SQL Server Example

CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @rest int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Rest', @rest OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int

    --  URL: https://api.stripe.com/v1/balance/history?limit=3
    DECLARE @bTls int
    SELECT @bTls = 1
    DECLARE @port int
    SELECT @port = 443
    DECLARE @bAutoReconnect int
    SELECT @bAutoReconnect = 1
    EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'api.stripe.com', STR(@port), STR(@bTls), STR(@bAutoReconnect)
    IF STR(@success) <> 1
      BEGIN

        EXEC sp_OAGetProperty @rest, 'ConnectFailReason', @iTmp0 OUT
        PRINT 'ConnectFailReason: ' + @iTmp0
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        RETURN
      END

    EXEC sp_OAMethod @rest, 'SetAuthBasic', @success OUT, 'STRIPE_SECRET_KEY', ''

    DECLARE @sbResponseBody int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.StringBuilder', @sbResponseBody OUT

    EXEC sp_OAMethod @rest, 'FullRequestNoBodySb', @success OUT, 'GET', '/v1/balance/history?limit=3', STR(@sbResponseBody)
    IF STR(@success) <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @sbResponseBody
        RETURN
      END

    DECLARE @jsonResponse int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.JsonObject', @jsonResponse OUT

    EXEC sp_OAMethod @jsonResponse, 'LoadSb', @success OUT, STR(@sbResponseBody)

    DECLARE @object nvarchar(4000)

    DECLARE @url nvarchar(4000)

    DECLARE @has_more int

    DECLARE @i int

    DECLARE @count_i int

    DECLARE @id nvarchar(4000)

    DECLARE @amount int

    DECLARE @available_on int

    DECLARE @created int

    DECLARE @currency nvarchar(4000)

    DECLARE @description int

    DECLARE @exchange_rate int

    DECLARE @fee int

    DECLARE @net int

    DECLARE @source nvarchar(4000)

    DECLARE @status nvarchar(4000)

    DECLARE @type nvarchar(4000)

    DECLARE @j int

    DECLARE @count_j int

    EXEC sp_OAMethod @jsonResponse, 'StringOf', @object OUT, 'object'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @url OUT, 'url'
    EXEC sp_OAMethod @jsonResponse, 'BoolOf', @has_more OUT, 'has_more'
    SELECT @i = 0
    EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'data'
    WHILE STR(@i) < STR(@count_i)
      BEGIN
        EXEC sp_OASetProperty @jsonResponse, 'I', STR(@i)
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @id OUT, 'data[i].id'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @object OUT, 'data[i].object'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @amount OUT, 'data[i].amount'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @available_on OUT, 'data[i].available_on'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @created OUT, 'data[i].created'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @currency OUT, 'data[i].currency'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @description OUT, 'data[i].description'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @exchange_rate OUT, 'data[i].exchange_rate'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @fee OUT, 'data[i].fee'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @net OUT, 'data[i].net'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @source OUT, 'data[i].source'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @status OUT, 'data[i].status'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @type OUT, 'data[i].type'
        SELECT @j = 0
        EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_j OUT, 'data[i].fee_details'
        WHILE STR(@j) < STR(@count_j)
          BEGIN
            EXEC sp_OASetProperty @jsonResponse, 'J', STR(@j)
            SELECT @j = STR(@j) + 1
          END
        SELECT @i = STR(@i) + 1
      END

    EXEC @hr = sp_OADestroy @rest
    EXEC @hr = sp_OADestroy @sbResponseBody
    EXEC @hr = sp_OADestroy @jsonResponse


END
GO

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