Perl Stripe: List all Invoices

Back to Index

Attempts payment on an invoice out of the normal collection schedule.

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

CURL Command

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

Perl Example

use chilkat();

$rest = chilkat::CkRest->new();

#  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) {
    print "ConnectFailReason: " . $rest->get_ConnectFailReason() . "\r\n";
    print $rest->lastErrorText() . "\r\n";
    exit;
}

$rest->SetAuthBasic("STRIPE_SECRET_KEY","");

$sbResponseBody = chilkat::CkStringBuilder->new();
$success = $rest->FullRequestNoBodySb("GET","/v1/invoices?limit=3",$sbResponseBody);
if ($success != 1) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

$jsonResponse = chilkat::CkJsonObject->new();
$jsonResponse->LoadSb($sbResponseBody);

$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) {
    $jsonResponse->put_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) {
        $jsonResponse->put_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;
    }

    $i = $i + 1;
}

Sample JSON Response Body

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