PHP ActiveX 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

PHP ActiveX Example

<?php

$rest = new COM("Chilkat_9_5_0.Rest");

//  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->ConnectFailReason . "\n";
    print $rest->LastErrorText . "\n";
    exit;
}

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

$sbResponseBody = new COM("Chilkat_9_5_0.StringBuilder");
$success = $rest->FullRequestNoBodySb('GET','/v1/invoices?limit=3',$sbResponseBody);
if ($success != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

$jsonResponse = new COM("Chilkat_9_5_0.JsonObject");
$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->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->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
    }
  ]
}