PureBasic Stripe: List all Coupons

Back to Index

Returns a list of your coupons.

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

CURL Command

curl https://api.stripe.com/v1/coupons?limit=3 \
   -u STRIPE_SECRET_KEY: \
   -G

PureBasic Example

IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"

Procedure ChilkatExample()

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success.i

    ;  URL: https://api.stripe.com/v1/coupons?limit=3
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"api.stripe.com",port,bTls,bAutoReconnect)
    If success <> 1
        Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    CkRest::ckSetAuthBasic(rest,"STRIPE_SECRET_KEY","")

    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkRest::ckFullRequestNoBodySb(rest,"GET","/v1/coupons?limit=3",sbResponseBody)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    jsonResponse.i = CkJsonObject::ckCreate()
    If jsonResponse.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jsonResponse,sbResponseBody)

    object.s
    url.s
    has_more.i
    i.i
    count_i.i
    id.s
    amount_off.i
    created.i
    currency.i
    duration.s
    duration_in_months.i
    livemode.i
    max_redemptions.i
    percent_off.i
    redeem_by.i
    times_redeemed.i
    valid.i

    object = CkJsonObject::ckStringOf(jsonResponse,"object")
    url = CkJsonObject::ckStringOf(jsonResponse,"url")
    has_more = CkJsonObject::ckBoolOf(jsonResponse,"has_more")
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jsonResponse,"data")
    While i < count_i
        CkJsonObject::setCkI(jsonResponse, i)
        id = CkJsonObject::ckStringOf(jsonResponse,"data[i].id")
        object = CkJsonObject::ckStringOf(jsonResponse,"data[i].object")
        amount_off = CkJsonObject::ckIsNullOf(jsonResponse,"data[i].amount_off")
        created = CkJsonObject::ckIntOf(jsonResponse,"data[i].created")
        currency = CkJsonObject::ckIsNullOf(jsonResponse,"data[i].currency")
        duration = CkJsonObject::ckStringOf(jsonResponse,"data[i].duration")
        duration_in_months = CkJsonObject::ckIntOf(jsonResponse,"data[i].duration_in_months")
        livemode = CkJsonObject::ckBoolOf(jsonResponse,"data[i].livemode")
        max_redemptions = CkJsonObject::ckIsNullOf(jsonResponse,"data[i].max_redemptions")
        percent_off = CkJsonObject::ckIntOf(jsonResponse,"data[i].percent_off")
        redeem_by = CkJsonObject::ckIsNullOf(jsonResponse,"data[i].redeem_by")
        times_redeemed = CkJsonObject::ckIntOf(jsonResponse,"data[i].times_redeemed")
        valid = CkJsonObject::ckBoolOf(jsonResponse,"data[i].valid")
        i = i + 1
    Wend


    CkRest::ckDispose(rest)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jsonResponse)


    ProcedureReturn
EndProcedure

Sample JSON Response Body

{
  "object": "list",
  "url": "/v1/coupons",
  "has_more": false,
  "data": [
    {
      "id": "25OFF",
      "object": "coupon",
      "amount_off": null,
      "created": 1516662783,
      "currency": null,
      "duration": "repeating",
      "duration_in_months": 3,
      "livemode": false,
      "max_redemptions": null,
      "metadata": {},
      "percent_off": 25,
      "redeem_by": null,
      "times_redeemed": 0,
      "valid": true
    }
  ]
}