SQL Server Stripe: List all Charges

Back to Index

Returns a list of charges you’ve previously created. The charges are returned in sorted order, with the most recent charges appearing first.

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

CURL Command

curl https://api.stripe.com/v1/charges?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/charges?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/charges?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 @amount_refunded int

    DECLARE @application int

    DECLARE @application_fee int

    DECLARE @balance_transaction nvarchar(4000)

    DECLARE @captured int

    DECLARE @created int

    DECLARE @currency nvarchar(4000)

    DECLARE @customer int

    DECLARE @description nvarchar(4000)

    DECLARE @destination int

    DECLARE @dispute int

    DECLARE @failure_code int

    DECLARE @failure_message int

    DECLARE @invoice int

    DECLARE @livemode int

    DECLARE @on_behalf_of int

    DECLARE @order int

    DECLARE @outcome int

    DECLARE @paid int

    DECLARE @receipt_email int

    DECLARE @receipt_number int

    DECLARE @refunded int

    DECLARE @refundsObject nvarchar(4000)

    DECLARE @refundsHas_more int

    DECLARE @refundsTotal_count int

    DECLARE @refundsUrl nvarchar(4000)

    DECLARE @review int

    DECLARE @shipping int

    DECLARE @sourceId nvarchar(4000)

    DECLARE @sourceObject nvarchar(4000)

    DECLARE @sourceAddress_city int

    DECLARE @sourceAddress_country int

    DECLARE @sourceAddress_line1 int

    DECLARE @sourceAddress_line1_check int

    DECLARE @sourceAddress_line2 int

    DECLARE @sourceAddress_state int

    DECLARE @sourceAddress_zip int

    DECLARE @sourceAddress_zip_check int

    DECLARE @sourceBrand nvarchar(4000)

    DECLARE @sourceCountry nvarchar(4000)

    DECLARE @sourceCustomer int

    DECLARE @sourceCvc_check int

    DECLARE @sourceDynamic_last4 int

    DECLARE @sourceExp_month int

    DECLARE @sourceExp_year int

    DECLARE @sourceFingerprint nvarchar(4000)

    DECLARE @sourceFunding nvarchar(4000)

    DECLARE @sourceLast4 nvarchar(4000)

    DECLARE @sourceName int

    DECLARE @sourceTokenization_method int

    DECLARE @source_transfer int

    DECLARE @statement_descriptor int

    DECLARE @status nvarchar(4000)

    DECLARE @transfer_group int

    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', @amount_refunded OUT, 'data[i].amount_refunded'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @application OUT, 'data[i].application'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @application_fee OUT, 'data[i].application_fee'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @balance_transaction OUT, 'data[i].balance_transaction'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @captured OUT, 'data[i].captured'
        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', @customer OUT, 'data[i].customer'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @description OUT, 'data[i].description'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @destination OUT, 'data[i].destination'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @dispute OUT, 'data[i].dispute'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_code OUT, 'data[i].failure_code'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_message OUT, 'data[i].failure_message'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @invoice OUT, 'data[i].invoice'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @livemode OUT, 'data[i].livemode'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @on_behalf_of OUT, 'data[i].on_behalf_of'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @order OUT, 'data[i].order'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @outcome OUT, 'data[i].outcome'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @paid OUT, 'data[i].paid'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @receipt_email OUT, 'data[i].receipt_email'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @receipt_number OUT, 'data[i].receipt_number'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @refunded OUT, 'data[i].refunded'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @refundsObject OUT, 'data[i].refunds.object'
        EXEC sp_OAMethod @jsonResponse, 'BoolOf', @refundsHas_more OUT, 'data[i].refunds.has_more'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @refundsTotal_count OUT, 'data[i].refunds.total_count'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @refundsUrl OUT, 'data[i].refunds.url'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @review OUT, 'data[i].review'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @shipping OUT, 'data[i].shipping'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceId OUT, 'data[i].source.id'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceObject OUT, 'data[i].source.object'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_city OUT, 'data[i].source.address_city'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_country OUT, 'data[i].source.address_country'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line1 OUT, 'data[i].source.address_line1'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line1_check OUT, 'data[i].source.address_line1_check'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line2 OUT, 'data[i].source.address_line2'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_state OUT, 'data[i].source.address_state'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_zip OUT, 'data[i].source.address_zip'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_zip_check OUT, 'data[i].source.address_zip_check'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceBrand OUT, 'data[i].source.brand'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceCountry OUT, 'data[i].source.country'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceCustomer OUT, 'data[i].source.customer'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceCvc_check OUT, 'data[i].source.cvc_check'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceDynamic_last4 OUT, 'data[i].source.dynamic_last4'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @sourceExp_month OUT, 'data[i].source.exp_month'
        EXEC sp_OAMethod @jsonResponse, 'IntOf', @sourceExp_year OUT, 'data[i].source.exp_year'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceFingerprint OUT, 'data[i].source.fingerprint'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceFunding OUT, 'data[i].source.funding'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceLast4 OUT, 'data[i].source.last4'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceName OUT, 'data[i].source.name'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceTokenization_method OUT, 'data[i].source.tokenization_method'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @source_transfer OUT, 'data[i].source_transfer'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @statement_descriptor OUT, 'data[i].statement_descriptor'
        EXEC sp_OAMethod @jsonResponse, 'StringOf', @status OUT, 'data[i].status'
        EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @transfer_group OUT, 'data[i].transfer_group'
        SELECT @j = 0
        EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_j OUT, 'data[i].refunds.data'
        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/charges",
  "has_more": false,
  "data": [
    {
      "id": "ch_1BnETJGswQrCoh0XTs0EERBj",
      "object": "charge",
      "amount": 100,
      "amount_refunded": 0,
      "application": null,
      "application_fee": null,
      "balance_transaction": "txn_1BnETJGswQrCoh0XxO2tGYr7",
      "captured": false,
      "created": 1516662781,
      "currency": "usd",
      "customer": null,
      "description": "My First Test Charge (created for API docs)",
      "destination": null,
      "dispute": null,
      "failure_code": null,
      "failure_message": null,
      "fraud_details": {},
      "invoice": null,
      "livemode": false,
      "metadata": {},
      "on_behalf_of": null,
      "order": null,
      "outcome": null,
      "paid": true,
      "receipt_email": null,
      "receipt_number": null,
      "refunded": false,
      "refunds": {
        "object": "list",
        "data": [
        ],
        "has_more": false,
        "total_count": 0,
        "url": "/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj/refunds"
      },
      "review": null,
      "shipping": null,
      "source": {
        "id": "card_18ropuGswQrCoh0XjCJ5Zvma",
        "object": "card",
        "address_city": null,
        "address_country": null,
        "address_line1": null,
        "address_line1_check": null,
        "address_line2": null,
        "address_state": null,
        "address_zip": null,
        "address_zip_check": null,
        "brand": "Visa",
        "country": "US",
        "customer": null,
        "cvc_check": null,
        "dynamic_last4": null,
        "exp_month": 8,
        "exp_year": 2017,
        "fingerprint": "F9mANtIt1TaukpRJ",
        "funding": "credit",
        "last4": "4242",
        "metadata": {},
        "name": null,
        "tokenization_method": null
      },
      "source_transfer": null,
      "statement_descriptor": null,
      "status": "succeeded",
      "transfer_group": null
    }
  ]
}