C# UWP/WinRT Stripe: Retrieve an Invoice

Back to Index

Retrieves the invoice with the given ID.

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

CURL Command

curl https://api.stripe.com/v1/invoices/in_1BnETLGswQrCoh0XR7p1RCtV \
   -u STRIPE_SECRET_KEY:

C# UWP/WinRT Example

Chilkat.Rest rest = new Chilkat.Rest();
bool success;

//  URL: https://api.stripe.com/v1/invoices/in_1BnETLGswQrCoh0XR7p1RCtV
bool bTls = true;
int port = 443;
bool bAutoReconnect = true;
success = await rest.ConnectAsync("api.stripe.com",port,bTls,bAutoReconnect);
if (success != true) {
    Debug.WriteLine("ConnectFailReason: " + Convert.ToString(rest.ConnectFailReason));
    Debug.WriteLine(rest.LastErrorText);
    return;
}

rest.SetAuthBasic("STRIPE_SECRET_KEY","");

Chilkat.StringBuilder sbResponseBody = new Chilkat.StringBuilder();
success = await rest.FullRequestNoBodySbAsync("GET","/v1/invoices/in_1BnETLGswQrCoh0XR7p1RCtV",sbResponseBody);
if (success != true) {
    Debug.WriteLine(rest.LastErrorText);
    return;
}

Chilkat.JsonObject jsonResponse = new Chilkat.JsonObject();
jsonResponse.LoadSb(sbResponseBody);

string id;
string object;
int amount_due;
bool application_fee;
int attempt_count;
bool attempted;
string billing;
bool charge;
bool closed;
string currency;
string customer;
int date;
bool description;
bool discount;
bool due_date;
bool ending_balance;
bool forgiven;
bool linesHas_more;
string linesObject;
string linesUrl;
bool livemode;
int next_payment_attempt;
string number;
bool paid;
int period_end;
int period_start;
bool receipt_number;
int starting_balance;
bool statement_descriptor;
bool subscription;
int subtotal;
bool tax;
bool tax_percent;
int total;
bool webhooks_delivered_at;
int i;
int count_i;
int amount;
string description_str;
bool discountable;
int periodStart;
int periodEnd;
string planId;
string planObject;
int planAmount;
int planCreated;
string planCurrency;
string planInterval;
int planInterval_count;
bool planLivemode;
string planName;
bool planStatement_descriptor;
bool planTrial_period_days;
bool proration;
int quantity;
string subscription_item;
string type;

id = jsonResponse.StringOf("id");
object = jsonResponse.StringOf("object");
amount_due = jsonResponse.IntOf("amount_due");
application_fee = jsonResponse.IsNullOf("application_fee");
attempt_count = jsonResponse.IntOf("attempt_count");
attempted = jsonResponse.BoolOf("attempted");
billing = jsonResponse.StringOf("billing");
charge = jsonResponse.IsNullOf("charge");
closed = jsonResponse.BoolOf("closed");
currency = jsonResponse.StringOf("currency");
customer = jsonResponse.StringOf("customer");
date = jsonResponse.IntOf("date");
description = jsonResponse.IsNullOf("description");
discount = jsonResponse.IsNullOf("discount");
due_date = jsonResponse.IsNullOf("due_date");
ending_balance = jsonResponse.IsNullOf("ending_balance");
forgiven = jsonResponse.BoolOf("forgiven");
linesHas_more = jsonResponse.BoolOf("lines.has_more");
linesObject = jsonResponse.StringOf("lines.object");
linesUrl = jsonResponse.StringOf("lines.url");
livemode = jsonResponse.BoolOf("livemode");
next_payment_attempt = jsonResponse.IntOf("next_payment_attempt");
number = jsonResponse.StringOf("number");
paid = jsonResponse.BoolOf("paid");
period_end = jsonResponse.IntOf("period_end");
period_start = jsonResponse.IntOf("period_start");
receipt_number = jsonResponse.IsNullOf("receipt_number");
starting_balance = jsonResponse.IntOf("starting_balance");
statement_descriptor = jsonResponse.IsNullOf("statement_descriptor");
subscription = jsonResponse.IsNullOf("subscription");
subtotal = jsonResponse.IntOf("subtotal");
tax = jsonResponse.IsNullOf("tax");
tax_percent = jsonResponse.IsNullOf("tax_percent");
total = jsonResponse.IntOf("total");
webhooks_delivered_at = jsonResponse.IsNullOf("webhooks_delivered_at");
i = 0;
count_i = jsonResponse.SizeOfArray("lines.data");
while (i < count_i) {
    jsonResponse.I = i;
    id = jsonResponse.StringOf("lines.data[i].id");
    object = jsonResponse.StringOf("lines.data[i].object");
    amount = jsonResponse.IntOf("lines.data[i].amount");
    currency = jsonResponse.StringOf("lines.data[i].currency");
    description_str = jsonResponse.StringOf("lines.data[i].description");
    discountable = jsonResponse.BoolOf("lines.data[i].discountable");
    livemode = jsonResponse.BoolOf("lines.data[i].livemode");
    periodStart = jsonResponse.IntOf("lines.data[i].period.start");
    periodEnd = jsonResponse.IntOf("lines.data[i].period.end");
    planId = jsonResponse.StringOf("lines.data[i].plan.id");
    planObject = jsonResponse.StringOf("lines.data[i].plan.object");
    planAmount = jsonResponse.IntOf("lines.data[i].plan.amount");
    planCreated = jsonResponse.IntOf("lines.data[i].plan.created");
    planCurrency = jsonResponse.StringOf("lines.data[i].plan.currency");
    planInterval = jsonResponse.StringOf("lines.data[i].plan.interval");
    planInterval_count = jsonResponse.IntOf("lines.data[i].plan.interval_count");
    planLivemode = jsonResponse.BoolOf("lines.data[i].plan.livemode");
    planName = jsonResponse.StringOf("lines.data[i].plan.name");
    planStatement_descriptor = jsonResponse.IsNullOf("lines.data[i].plan.statement_descriptor");
    planTrial_period_days = jsonResponse.IsNullOf("lines.data[i].plan.trial_period_days");
    proration = jsonResponse.BoolOf("lines.data[i].proration");
    quantity = jsonResponse.IntOf("lines.data[i].quantity");
    subscription = jsonResponse.IsNullOf("lines.data[i].subscription");
    subscription_item = jsonResponse.StringOf("lines.data[i].subscription_item");
    type = jsonResponse.StringOf("lines.data[i].type");
    i = i + 1;
}

Sample JSON Response Body

{
  "id": "in_1BnETLGswQrCoh0XR7p1RCtV",
  "object": "invoice",
  "amount_due": 0,
  "application_fee": null,
  "attempt_count": 0,
  "attempted": false,
  "billing": "charge_automatically",
  "charge": null,
  "closed": false,
  "currency": "usd",
  "customer": "cus_CBbg9PmQ9sLbmo",
  "date": 1516662783,
  "description": null,
  "discount": null,
  "due_date": null,
  "ending_balance": null,
  "forgiven": false,
  "lines": {
    "data": [
      {
        "id": "sub_CBbgnZGMJwa9ta",
        "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_CBbgiJ7hAAGzMF",
        "type": "subscription"
      }
    ],
    "has_more": false,
    "object": "list",
    "url": "/v1/invoices/in_1BnETLGswQrCoh0XR7p1RCtV/lines"
  },
  "livemode": false,
  "metadata": {},
  "next_payment_attempt": 1516666383,
  "number": "36eba31eaa-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
}