Swift Stripe: Update a Card

Back to Index

Updates only some card details, like the billing address or expiration date, you can do so without having to re-enter the full card details.

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

CURL Command

curl https://api.stripe.com/v1/customers/cus_CBbg3iRMzWBjoe/sources/card_1BnETKGswQrCoh0Xhu1A6BfL \
   -u STRIPE_SECRET_KEY: \
   -d name="Liam Thomas" \
   -X POST

Swift Example


func chilkatTest() {
    let rest = CkoRest()
    var success: Bool

    //  URL: https://api.stripe.com/v1/customers/cus_CBbg3iRMzWBjoe/sources/card_1BnETKGswQrCoh0Xhu1A6BfL
    var bTls: Bool = true
    var port: Int = 443
    var bAutoReconnect: Bool = true
    success = rest.Connect("api.stripe.com", port: port, tls: bTls, autoReconnect: bAutoReconnect)
    if success != true {
        print("ConnectFailReason: \(rest.ConnectFailReason.integerValue)")
        print("\(rest.LastErrorText)")
        return
    }

    rest.SetAuthBasic("STRIPE_SECRET_KEY", password: "")

    rest.AddQueryParam("name", value: "Liam Thomas")

    var strResponseBody: String? = rest.FullRequestFormUrlEncoded("POST", uriPath: "/v1/customers/cus_CBbg3iRMzWBjoe/sources/card_1BnETKGswQrCoh0Xhu1A6BfL")
    if rest.LastMethodSuccess != true {
        print("\(rest.LastErrorText)")
        return
    }

    let jsonResponse = CkoJsonObject()
    jsonResponse.Load(strResponseBody)

    var id: String?
    var object: String?
    var address_city: Bool
    var address_country: Bool
    var address_line1: Bool
    var address_line1_check: Bool
    var address_line2: Bool
    var address_state: Bool
    var address_zip: Bool
    var address_zip_check: Bool
    var brand: String?
    var country: String?
    var customer: String?
    var cvc_check: Bool
    var dynamic_last4: Bool
    var exp_month: Int
    var exp_year: Int
    var fingerprint: String?
    var funding: String?
    var last4: String?
    var name: String?
    var tokenization_method: Bool

    id = jsonResponse.StringOf("id")
    object = jsonResponse.StringOf("object")
    address_city = jsonResponse.IsNullOf("address_city")
    address_country = jsonResponse.IsNullOf("address_country")
    address_line1 = jsonResponse.IsNullOf("address_line1")
    address_line1_check = jsonResponse.IsNullOf("address_line1_check")
    address_line2 = jsonResponse.IsNullOf("address_line2")
    address_state = jsonResponse.IsNullOf("address_state")
    address_zip = jsonResponse.IsNullOf("address_zip")
    address_zip_check = jsonResponse.IsNullOf("address_zip_check")
    brand = jsonResponse.StringOf("brand")
    country = jsonResponse.StringOf("country")
    customer = jsonResponse.StringOf("customer")
    cvc_check = jsonResponse.IsNullOf("cvc_check")
    dynamic_last4 = jsonResponse.IsNullOf("dynamic_last4")
    exp_month = jsonResponse.IntOf("exp_month").integerValue
    exp_year = jsonResponse.IntOf("exp_year").integerValue
    fingerprint = jsonResponse.StringOf("fingerprint")
    funding = jsonResponse.StringOf("funding")
    last4 = jsonResponse.StringOf("last4")
    name = jsonResponse.StringOf("name")
    tokenization_method = jsonResponse.IsNullOf("tokenization_method")

}

Sample JSON Response Body

{
  "id": "card_1BnETKGswQrCoh0Xhu1A6BfL",
  "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": "cus_CBbg3iRMzWBjoe",
  "cvc_check": null,
  "dynamic_last4": null,
  "exp_month": 8,
  "exp_year": 2019,
  "fingerprint": "F9mANtIt1TaukpRJ",
  "funding": "credit",
  "last4": "4242",
  "metadata": {},
  "name": "Liam Thomas",
  "tokenization_method": null
}