Objective-C Stripe: Retrieve a charge

Back to Index

Retrieves the details of a charge that has previously been created.

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

CURL Command

curl https://api.stripe.com/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj \
   -u STRIPE_SECRET_KEY:

Objective-C Example

#import <CkoRest.h>
#import <CkoStringBuilder.h>
#import <CkoJsonObject.h>
#import <NSString.h>

CkoRest *rest = [[CkoRest alloc] init];
BOOL success;

//  URL: https://api.stripe.com/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj
BOOL bTls = YES;
int port = 443;
BOOL bAutoReconnect = YES;
success = [rest Connect: @"api.stripe.com" port: [NSNumber numberWithInt: port] tls: bTls autoReconnect: bAutoReconnect];
if (success != YES) {
    NSLog(@"%@%d",@"ConnectFailReason: ",[rest.ConnectFailReason intValue]);
    NSLog(@"%@",rest.LastErrorText);
    return;
}

[rest SetAuthBasic: @"STRIPE_SECRET_KEY" password: @""];

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [rest FullRequestNoBodySb: @"GET" uriPath: @"/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj" sb: sbResponseBody];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

CkoJsonObject *jsonResponse = [[CkoJsonObject alloc] init];
[jsonResponse LoadSb: sbResponseBody];

NSString *id = 0;
NSString *object = 0;
int amount;
int amount_refunded;
BOOL application;
BOOL application_fee;
NSString *balance_transaction = 0;
BOOL captured;
int created;
NSString *currency = 0;
BOOL customer;
NSString *description = 0;
BOOL destination;
BOOL dispute;
BOOL failure_code;
BOOL failure_message;
BOOL invoice;
BOOL livemode;
BOOL on_behalf_of;
BOOL order;
BOOL outcome;
BOOL paid;
BOOL receipt_email;
BOOL receipt_number;
BOOL refunded;
NSString *refundsObject = 0;
BOOL refundsHas_more;
int refundsTotal_count;
NSString *refundsUrl = 0;
BOOL review;
BOOL shipping;
NSString *sourceId = 0;
NSString *sourceObject = 0;
BOOL sourceAddress_city;
BOOL sourceAddress_country;
BOOL sourceAddress_line1;
BOOL sourceAddress_line1_check;
BOOL sourceAddress_line2;
BOOL sourceAddress_state;
BOOL sourceAddress_zip;
BOOL sourceAddress_zip_check;
NSString *sourceBrand = 0;
NSString *sourceCountry = 0;
BOOL sourceCustomer;
BOOL sourceCvc_check;
BOOL sourceDynamic_last4;
int sourceExp_month;
int sourceExp_year;
NSString *sourceFingerprint = 0;
NSString *sourceFunding = 0;
NSString *sourceLast4 = 0;
BOOL sourceName;
BOOL sourceTokenization_method;
BOOL source_transfer;
BOOL statement_descriptor;
NSString *status = 0;
BOOL transfer_group;
int i;
int count_i;

id = [jsonResponse StringOf: @"id"];
object = [jsonResponse StringOf: @"object"];
amount = [[jsonResponse IntOf: @"amount"] intValue];
amount_refunded = [[jsonResponse IntOf: @"amount_refunded"] intValue];
application = [jsonResponse IsNullOf: @"application"];
application_fee = [jsonResponse IsNullOf: @"application_fee"];
balance_transaction = [jsonResponse StringOf: @"balance_transaction"];
captured = [jsonResponse BoolOf: @"captured"];
created = [[jsonResponse IntOf: @"created"] intValue];
currency = [jsonResponse StringOf: @"currency"];
customer = [jsonResponse IsNullOf: @"customer"];
description = [jsonResponse StringOf: @"description"];
destination = [jsonResponse IsNullOf: @"destination"];
dispute = [jsonResponse IsNullOf: @"dispute"];
failure_code = [jsonResponse IsNullOf: @"failure_code"];
failure_message = [jsonResponse IsNullOf: @"failure_message"];
invoice = [jsonResponse IsNullOf: @"invoice"];
livemode = [jsonResponse BoolOf: @"livemode"];
on_behalf_of = [jsonResponse IsNullOf: @"on_behalf_of"];
order = [jsonResponse IsNullOf: @"order"];
outcome = [jsonResponse IsNullOf: @"outcome"];
paid = [jsonResponse BoolOf: @"paid"];
receipt_email = [jsonResponse IsNullOf: @"receipt_email"];
receipt_number = [jsonResponse IsNullOf: @"receipt_number"];
refunded = [jsonResponse BoolOf: @"refunded"];
refundsObject = [jsonResponse StringOf: @"refunds.object"];
refundsHas_more = [jsonResponse BoolOf: @"refunds.has_more"];
refundsTotal_count = [[jsonResponse IntOf: @"refunds.total_count"] intValue];
refundsUrl = [jsonResponse StringOf: @"refunds.url"];
review = [jsonResponse IsNullOf: @"review"];
shipping = [jsonResponse IsNullOf: @"shipping"];
sourceId = [jsonResponse StringOf: @"source.id"];
sourceObject = [jsonResponse StringOf: @"source.object"];
sourceAddress_city = [jsonResponse IsNullOf: @"source.address_city"];
sourceAddress_country = [jsonResponse IsNullOf: @"source.address_country"];
sourceAddress_line1 = [jsonResponse IsNullOf: @"source.address_line1"];
sourceAddress_line1_check = [jsonResponse IsNullOf: @"source.address_line1_check"];
sourceAddress_line2 = [jsonResponse IsNullOf: @"source.address_line2"];
sourceAddress_state = [jsonResponse IsNullOf: @"source.address_state"];
sourceAddress_zip = [jsonResponse IsNullOf: @"source.address_zip"];
sourceAddress_zip_check = [jsonResponse IsNullOf: @"source.address_zip_check"];
sourceBrand = [jsonResponse StringOf: @"source.brand"];
sourceCountry = [jsonResponse StringOf: @"source.country"];
sourceCustomer = [jsonResponse IsNullOf: @"source.customer"];
sourceCvc_check = [jsonResponse IsNullOf: @"source.cvc_check"];
sourceDynamic_last4 = [jsonResponse IsNullOf: @"source.dynamic_last4"];
sourceExp_month = [[jsonResponse IntOf: @"source.exp_month"] intValue];
sourceExp_year = [[jsonResponse IntOf: @"source.exp_year"] intValue];
sourceFingerprint = [jsonResponse StringOf: @"source.fingerprint"];
sourceFunding = [jsonResponse StringOf: @"source.funding"];
sourceLast4 = [jsonResponse StringOf: @"source.last4"];
sourceName = [jsonResponse IsNullOf: @"source.name"];
sourceTokenization_method = [jsonResponse IsNullOf: @"source.tokenization_method"];
source_transfer = [jsonResponse IsNullOf: @"source_transfer"];
statement_descriptor = [jsonResponse IsNullOf: @"statement_descriptor"];
status = [jsonResponse StringOf: @"status"];
transfer_group = [jsonResponse IsNullOf: @"transfer_group"];
i = 0;
count_i = [[jsonResponse SizeOfArray: @"refunds.data"] intValue];
while (i < count_i) {
    jsonResponse.I = [NSNumber numberWithInt: i];
    i = i + 1;
}

Sample JSON Response Body

{
  "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
}