Visual FoxPro Stripe: Create a Bank Account Token

Back to Index

Creates a single use token that wraps the details of a bank account. This token can be used in place of a bank account dictionary with any API method.

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

CURL Command

curl https://api.stripe.com/v1/tokens \
   -u STRIPE_SECRET_KEY: \
   -d bank_account[country]=US \
   -d bank_account[currency]=usd \
   -d bank_account[account_holder_name]="Chloe White" \
   -d bank_account[account_holder_type]=individual \
   -d bank_account[routing_number]=110000000 \
   -d bank_account[account_number]=000123456789 \
   -X POST

Visual FoxPro Example

LOCAL loRest
LOCAL lnSuccess
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL lcStrResponseBody
LOCAL loJsonResponse
LOCAL lcId
LOCAL lcObject
LOCAL lcBank_accountId
LOCAL lcBank_accountObject
LOCAL lcBank_accountAccount_holder_name
LOCAL lcBank_accountAccount_holder_type
LOCAL lcBank_accountBank_name
LOCAL lcBank_accountCountry
LOCAL lcBank_accountCurrency
LOCAL lcBank_accountFingerprint
LOCAL lcBank_accountLast4
LOCAL lcBank_accountRouting_number
LOCAL lcBank_accountStatus
LOCAL lnClient_ip
LOCAL lnCreated
LOCAL lnLivemode
LOCAL lcType
LOCAL lnUsed

loRest = CreateObject('Chilkat_9_5_0.Rest')

*  URL: https://api.stripe.com/v1/tokens
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("api.stripe.com",lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loRest.SetAuthBasic("STRIPE_SECRET_KEY","")

loRest.AddQueryParam("bank_account[country]","US")
loRest.AddQueryParam("bank_account[currency]","usd")
loRest.AddQueryParam("bank_account[account_holder_name]","Chloe White")
loRest.AddQueryParam("bank_account[account_holder_type]","individual")
loRest.AddQueryParam("bank_account[routing_number]","110000000")
loRest.AddQueryParam("bank_account[account_number]","000123456789")

lcStrResponseBody = loRest.FullRequestFormUrlEncoded("POST","/v1/tokens")
IF (loRest.LastMethodSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loJsonResponse = CreateObject('Chilkat_9_5_0.JsonObject')
loJsonResponse.Load(lcStrResponseBody)

lcId = loJsonResponse.StringOf("id")
lcObject = loJsonResponse.StringOf("object")
lcBank_accountId = loJsonResponse.StringOf("bank_account.id")
lcBank_accountObject = loJsonResponse.StringOf("bank_account.object")
lcBank_accountAccount_holder_name = loJsonResponse.StringOf("bank_account.account_holder_name")
lcBank_accountAccount_holder_type = loJsonResponse.StringOf("bank_account.account_holder_type")
lcBank_accountBank_name = loJsonResponse.StringOf("bank_account.bank_name")
lcBank_accountCountry = loJsonResponse.StringOf("bank_account.country")
lcBank_accountCurrency = loJsonResponse.StringOf("bank_account.currency")
lcBank_accountFingerprint = loJsonResponse.StringOf("bank_account.fingerprint")
lcBank_accountLast4 = loJsonResponse.StringOf("bank_account.last4")
lcBank_accountRouting_number = loJsonResponse.StringOf("bank_account.routing_number")
lcBank_accountStatus = loJsonResponse.StringOf("bank_account.status")
lnClient_ip = loJsonResponse.IsNullOf("client_ip")
lnCreated = loJsonResponse.IntOf("created")
lnLivemode = loJsonResponse.BoolOf("livemode")
lcType = loJsonResponse.StringOf("type")
lnUsed = loJsonResponse.BoolOf("used")

RELEASE loRest
RELEASE loJsonResponse

Sample JSON Response Body

{
  "id": "btok_1BnETKGswQrCoh0X86abg4gM",
  "object": "token",
  "bank_account": {
    "id": "ba_1BnETKGswQrCoh0XptCSwzal",
    "object": "bank_account",
    "account_holder_name": "Jane Austen",
    "account_holder_type": "individual",
    "bank_name": "STRIPE TEST BANK",
    "country": "US",
    "currency": "usd",
    "fingerprint": "L2j4aSuWk1MZMDZ5",
    "last4": "6789",
    "routing_number": "110000000",
    "status": "new"
  },
  "client_ip": null,
  "created": 1516662782,
  "livemode": false,
  "type": "bank_account",
  "used": false
}