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
var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
sbResponseBody: TChilkatStringBuilder;
jsonResponse: TChilkatJsonObject;
object: WideString;
url: WideString;
has_more: Integer;
i: Integer;
count_i: Integer;
id: WideString;
amount_due: Integer;
application_fee: Integer;
attempt_count: Integer;
attempted: Integer;
billing: WideString;
charge: Integer;
closed: Integer;
currency: WideString;
customer: WideString;
date: Integer;
description: Integer;
discount: Integer;
due_date: Integer;
ending_balance: Integer;
forgiven: Integer;
linesHas_more: Integer;
linesObject: WideString;
linesUrl: WideString;
livemode: Integer;
next_payment_attempt: Integer;
number: WideString;
paid: Integer;
period_end: Integer;
period_start: Integer;
receipt_number: Integer;
starting_balance: Integer;
statement_descriptor: Integer;
subscription: Integer;
subtotal: Integer;
tax: Integer;
tax_percent: Integer;
total: Integer;
webhooks_delivered_at: Integer;
j: Integer;
count_j: Integer;
amount: Integer;
description_str: WideString;
discountable: Integer;
periodStart: Integer;
periodEnd: Integer;
planId: WideString;
planObject: WideString;
planAmount: Integer;
planCreated: Integer;
planCurrency: WideString;
planInterval: WideString;
planInterval_count: Integer;
planLivemode: Integer;
planName: WideString;
planStatement_descriptor: Integer;
planTrial_period_days: Integer;
proration: Integer;
quantity: Integer;
subscription_item: WideString;
type: WideString;
begin
rest := TChilkatRest.Create(Self);
// URL: https://api.stripe.com/v1/invoices?limit=3
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('api.stripe.com',port,bTls,bAutoReconnect);
if (success <> 1) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
rest.SetAuthBasic('STRIPE_SECRET_KEY','');
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestNoBodySb('GET','/v1/invoices?limit=3',sbResponseBody.ControlInterface);
if (success <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.LoadSb(sbResponseBody.ControlInterface);
object := jsonResponse.StringOf('object');
url := jsonResponse.StringOf('url');
has_more := jsonResponse.BoolOf('has_more');
i := 0;
count_i := jsonResponse.SizeOfArray('data');
while i < count_i do
begin
jsonResponse.I := i;
id := jsonResponse.StringOf('data[i].id');
object := jsonResponse.StringOf('data[i].object');
amount_due := jsonResponse.IntOf('data[i].amount_due');
application_fee := jsonResponse.IsNullOf('data[i].application_fee');
attempt_count := jsonResponse.IntOf('data[i].attempt_count');
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');
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');
number := jsonResponse.StringOf('data[i].number');
paid := jsonResponse.BoolOf('data[i].paid');
period_end := jsonResponse.IntOf('data[i].period_end');
period_start := jsonResponse.IntOf('data[i].period_start');
receipt_number := jsonResponse.IsNullOf('data[i].receipt_number');
starting_balance := jsonResponse.IntOf('data[i].starting_balance');
statement_descriptor := jsonResponse.IsNullOf('data[i].statement_descriptor');
subscription := jsonResponse.IsNullOf('data[i].subscription');
subtotal := jsonResponse.IntOf('data[i].subtotal');
tax := jsonResponse.IsNullOf('data[i].tax');
tax_percent := jsonResponse.IsNullOf('data[i].tax_percent');
total := jsonResponse.IntOf('data[i].total');
webhooks_delivered_at := jsonResponse.IsNullOf('data[i].webhooks_delivered_at');
j := 0;
count_j := jsonResponse.SizeOfArray('data[i].lines.data');
while j < count_j do
begin
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');
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');
periodEnd := jsonResponse.IntOf('data[i].lines.data[j].period.end');
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');
planCreated := jsonResponse.IntOf('data[i].lines.data[j].plan.created');
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');
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');
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;
end;
i := i + 1;
end;
{
"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
}
]
}