Attempts payment on an invoice out of the normal collection schedule.
curl https://api.stripe.com/v1/invoices?limit=3 \
-u STRIPE_SECRET_KEY: \
-G
func chilkatTest() {
let rest = CkoRest()
var success: Bool
// URL: https://api.stripe.com/v1/invoices?limit=3
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: "")
let sbResponseBody = CkoStringBuilder()
success = rest.FullRequestNoBodySb("GET", uriPath: "/v1/invoices?limit=3", sb: sbResponseBody)
if success != true {
print("\(rest.LastErrorText)")
return
}
let jsonResponse = CkoJsonObject()
jsonResponse.LoadSb(sbResponseBody)
var object: String?
var url: String?
var has_more: Bool
var i: Int
var count_i: Int
var id: String?
var amount_due: Int
var application_fee: Bool
var attempt_count: Int
var attempted: Bool
var billing: String?
var charge: Bool
var closed: Bool
var currency: String?
var customer: String?
var date: Int
var description: Bool
var discount: Bool
var due_date: Bool
var ending_balance: Bool
var forgiven: Bool
var linesHas_more: Bool
var linesObject: String?
var linesUrl: String?
var livemode: Bool
var next_payment_attempt: Int
var number: String?
var paid: Bool
var period_end: Int
var period_start: Int
var receipt_number: Bool
var starting_balance: Int
var statement_descriptor: Bool
var subscription: Bool
var subtotal: Int
var tax: Bool
var tax_percent: Bool
var total: Int
var webhooks_delivered_at: Bool
var j: Int
var count_j: Int
var amount: Int
var description_str: String?
var discountable: Bool
var periodStart: Int
var periodEnd: Int
var planId: String?
var planObject: String?
var planAmount: Int
var planCreated: Int
var planCurrency: String?
var planInterval: String?
var planInterval_count: Int
var planLivemode: Bool
var planName: String?
var planStatement_descriptor: Bool
var planTrial_period_days: Bool
var proration: Bool
var quantity: Int
var subscription_item: String?
var type: String?
object = jsonResponse.StringOf("object")
url = jsonResponse.StringOf("url")
has_more = jsonResponse.BoolOf("has_more")
i = 0
count_i = jsonResponse.SizeOfArray("data").integerValue
while i < count_i {
jsonResponse.I = i
id = jsonResponse.StringOf("data[i].id")
object = jsonResponse.StringOf("data[i].object")
amount_due = jsonResponse.IntOf("data[i].amount_due").integerValue
application_fee = jsonResponse.IsNullOf("data[i].application_fee")
attempt_count = jsonResponse.IntOf("data[i].attempt_count").integerValue
attempted = jsonResponse.BoolOf("data[i].attempted")
billing = jsonResponse.StringOf("data[i].billing")
charge = jsonResponse.IsNullOf("data[i].charge")
closed = jsonResponse.BoolOf("data[i].closed")
currency = jsonResponse.StringOf("data[i].currency")
customer = jsonResponse.StringOf("data[i].customer")
date = jsonResponse.IntOf("data[i].date").integerValue
description = jsonResponse.IsNullOf("data[i].description")
discount = jsonResponse.IsNullOf("data[i].discount")
due_date = jsonResponse.IsNullOf("data[i].due_date")
ending_balance = jsonResponse.IsNullOf("data[i].ending_balance")
forgiven = jsonResponse.BoolOf("data[i].forgiven")
linesHas_more = jsonResponse.BoolOf("data[i].lines.has_more")
linesObject = jsonResponse.StringOf("data[i].lines.object")
linesUrl = jsonResponse.StringOf("data[i].lines.url")
livemode = jsonResponse.BoolOf("data[i].livemode")
next_payment_attempt = jsonResponse.IntOf("data[i].next_payment_attempt").integerValue
number = jsonResponse.StringOf("data[i].number")
paid = jsonResponse.BoolOf("data[i].paid")
period_end = jsonResponse.IntOf("data[i].period_end").integerValue
period_start = jsonResponse.IntOf("data[i].period_start").integerValue
receipt_number = jsonResponse.IsNullOf("data[i].receipt_number")
starting_balance = jsonResponse.IntOf("data[i].starting_balance").integerValue
statement_descriptor = jsonResponse.IsNullOf("data[i].statement_descriptor")
subscription = jsonResponse.IsNullOf("data[i].subscription")
subtotal = jsonResponse.IntOf("data[i].subtotal").integerValue
tax = jsonResponse.IsNullOf("data[i].tax")
tax_percent = jsonResponse.IsNullOf("data[i].tax_percent")
total = jsonResponse.IntOf("data[i].total").integerValue
webhooks_delivered_at = jsonResponse.IsNullOf("data[i].webhooks_delivered_at")
j = 0
count_j = jsonResponse.SizeOfArray("data[i].lines.data").integerValue
while j < count_j {
jsonResponse.J = j
id = jsonResponse.StringOf("data[i].lines.data[j].id")
object = jsonResponse.StringOf("data[i].lines.data[j].object")
amount = jsonResponse.IntOf("data[i].lines.data[j].amount").integerValue
currency = jsonResponse.StringOf("data[i].lines.data[j].currency")
description_str = jsonResponse.StringOf("data[i].lines.data[j].description")
discountable = jsonResponse.BoolOf("data[i].lines.data[j].discountable")
livemode = jsonResponse.BoolOf("data[i].lines.data[j].livemode")
periodStart = jsonResponse.IntOf("data[i].lines.data[j].period.start").integerValue
periodEnd = jsonResponse.IntOf("data[i].lines.data[j].period.end").integerValue
planId = jsonResponse.StringOf("data[i].lines.data[j].plan.id")
planObject = jsonResponse.StringOf("data[i].lines.data[j].plan.object")
planAmount = jsonResponse.IntOf("data[i].lines.data[j].plan.amount").integerValue
planCreated = jsonResponse.IntOf("data[i].lines.data[j].plan.created").integerValue
planCurrency = jsonResponse.StringOf("data[i].lines.data[j].plan.currency")
planInterval = jsonResponse.StringOf("data[i].lines.data[j].plan.interval")
planInterval_count = jsonResponse.IntOf("data[i].lines.data[j].plan.interval_count").integerValue
planLivemode = jsonResponse.BoolOf("data[i].lines.data[j].plan.livemode")
planName = jsonResponse.StringOf("data[i].lines.data[j].plan.name")
planStatement_descriptor = jsonResponse.IsNullOf("data[i].lines.data[j].plan.statement_descriptor")
planTrial_period_days = jsonResponse.IsNullOf("data[i].lines.data[j].plan.trial_period_days")
proration = jsonResponse.BoolOf("data[i].lines.data[j].proration")
quantity = jsonResponse.IntOf("data[i].lines.data[j].quantity").integerValue
subscription = jsonResponse.IsNullOf("data[i].lines.data[j].subscription")
subscription_item = jsonResponse.StringOf("data[i].lines.data[j].subscription_item")
type = jsonResponse.StringOf("data[i].lines.data[j].type")
j = j + 1
}
i = i + 1
}
}
{
"object": "list",
"url": "/v1/invoices",
"has_more": false,
"data": [
{
"id": "in_1BnETLGswQrCoh0X6M67Qy9c",
"object": "invoice",
"amount_due": 0,
"application_fee": null,
"attempt_count": 0,
"attempted": false,
"billing": "charge_automatically",
"charge": null,
"closed": false,
"currency": "usd",
"customer": "cus_CBbggkUyLoz3pe",
"date": 1516662783,
"description": null,
"discount": null,
"due_date": null,
"ending_balance": null,
"forgiven": false,
"lines": {
"data": [
{
"id": "sub_CBbgC3EaFZqN3Q",
"object": "line_item",
"amount": 999,
"currency": "usd",
"description": "1x Silver Express (at $9.99)",
"discountable": true,
"livemode": true,
"metadata": {},
"period": {
"start": 1521760383,
"end": 1524438783
},
"plan": {
"id": "gold",
"object": "plan",
"amount": 2000,
"created": 1516662783,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"name": "T-shirt",
"statement_descriptor": null,
"trial_period_days": null
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_CBbgZxCVF3Ha7P",
"type": "subscription"
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices/in_1BnETLGswQrCoh0X6M67Qy9c/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": 1516666383,
"number": "330a34b8d5-0001",
"paid": false,
"period_end": 1516662783,
"period_start": 1516662783,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"subscription": null,
"subtotal": 0,
"tax": null,
"tax_percent": null,
"total": 0,
"webhooks_delivered_at": null
}
]
}