SQL Server Stripe: Create a Payout

Back to Index

To send funds to your own bank account, you create a new payout object.

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

CURL Command

curl -X POST https://api.stripe.com/v1/payouts \
   -u STRIPE_SECRET_KEY: \
   -d amount=400 \
   -d currency=usd

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/payouts
    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', ''

    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'amount', '400'
    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'currency', 'usd'

    DECLARE @strResponseBody nvarchar(4000)
    EXEC sp_OAMethod @rest, 'FullRequestFormUrlEncoded', @strResponseBody OUT, 'POST', '/v1/payouts'
    EXEC sp_OAGetProperty @rest, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        RETURN
      END

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

    EXEC sp_OAMethod @jsonResponse, 'Load', @success OUT, @strResponseBody

    DECLARE @id nvarchar(4000)

    DECLARE @object nvarchar(4000)

    DECLARE @amount int

    DECLARE @arrival_date int

    DECLARE @automatic int

    DECLARE @balance_transaction nvarchar(4000)

    DECLARE @created int

    DECLARE @currency nvarchar(4000)

    DECLARE @description nvarchar(4000)

    DECLARE @destination nvarchar(4000)

    DECLARE @failure_balance_transaction int

    DECLARE @failure_code int

    DECLARE @failure_message int

    DECLARE @livemode int

    DECLARE @method nvarchar(4000)

    DECLARE @source_type nvarchar(4000)

    DECLARE @statement_descriptor int

    DECLARE @status nvarchar(4000)

    DECLARE @type nvarchar(4000)

    EXEC sp_OAMethod @jsonResponse, 'StringOf', @id OUT, 'id'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @object OUT, 'object'
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @amount OUT, 'amount'
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @arrival_date OUT, 'arrival_date'
    EXEC sp_OAMethod @jsonResponse, 'BoolOf', @automatic OUT, 'automatic'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @balance_transaction OUT, 'balance_transaction'
    EXEC sp_OAMethod @jsonResponse, 'IntOf', @created OUT, 'created'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @currency OUT, 'currency'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @description OUT, 'description'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @destination OUT, 'destination'
    EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_balance_transaction OUT, 'failure_balance_transaction'
    EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_code OUT, 'failure_code'
    EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_message OUT, 'failure_message'
    EXEC sp_OAMethod @jsonResponse, 'BoolOf', @livemode OUT, 'livemode'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @method OUT, 'method'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @source_type OUT, 'source_type'
    EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @statement_descriptor OUT, 'statement_descriptor'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @status OUT, 'status'
    EXEC sp_OAMethod @jsonResponse, 'StringOf', @type OUT, 'type'

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


END
GO

Sample JSON Response Body

{
  "id": "po_1BnETKGswQrCoh0XeUopRyDR",
  "object": "payout",
  "amount": 1100,
  "arrival_date": 1516662782,
  "automatic": true,
  "balance_transaction": "txn_1BnETKGswQrCoh0X762wrMpF",
  "created": 1516662782,
  "currency": "usd",
  "description": "STRIPE TRANSFER",
  "destination": "ba_1BnETKGswQrCoh0XO5G2kEG5",
  "failure_balance_transaction": null,
  "failure_code": null,
  "failure_message": null,
  "livemode": false,
  "metadata": {},
  "method": "standard",
  "source_type": "card",
  "statement_descriptor": null,
  "status": "in_transit",
  "type": "bank_account"
}