mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
corporate: Create change plan tier function for BillingSession.
Moves and generalizes `switch_realm_from_standard_to_plus_plan` in stripe.py to be a more general function for changing a CustomerPlan to a new and valid tier, `do_change_plan_to_new_tier`. Adds a helper function with the previous function name to be used for the support view and management command for changing a realm from the Standard plan tier to the Plus plan tier.
This commit is contained in:
committed by
Tim Abbott
parent
a00e687d02
commit
b167eeff08
@@ -56,13 +56,13 @@ if settings.BILLING_ENABLED:
|
|||||||
from corporate.lib.stripe import (
|
from corporate.lib.stripe import (
|
||||||
RealmBillingSession,
|
RealmBillingSession,
|
||||||
get_latest_seat_count,
|
get_latest_seat_count,
|
||||||
switch_realm_from_standard_to_plus_plan,
|
|
||||||
void_all_open_invoices,
|
void_all_open_invoices,
|
||||||
)
|
)
|
||||||
from corporate.lib.support import (
|
from corporate.lib.support import (
|
||||||
approve_realm_sponsorship,
|
approve_realm_sponsorship,
|
||||||
attach_discount_to_realm,
|
attach_discount_to_realm,
|
||||||
get_discount_for_realm,
|
get_discount_for_realm,
|
||||||
|
switch_realm_from_standard_to_plus_plan,
|
||||||
update_realm_billing_method,
|
update_realm_billing_method,
|
||||||
update_realm_sponsorship_status,
|
update_realm_sponsorship_status,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -616,6 +616,10 @@ class BillingSession(ABC):
|
|||||||
) -> UpgradePageSessionTypeSpecificContext:
|
) -> UpgradePageSessionTypeSpecificContext:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def is_valid_plan_tier_switch(self, current_plan_tier: int, new_plan_tier: int) -> bool:
|
||||||
|
pass
|
||||||
|
|
||||||
@catch_stripe_errors
|
@catch_stripe_errors
|
||||||
def create_stripe_customer(self) -> Customer:
|
def create_stripe_customer(self) -> Customer:
|
||||||
stripe_customer_data = self.get_data_for_stripe_customer()
|
stripe_customer_data = self.get_data_for_stripe_customer()
|
||||||
@@ -1434,6 +1438,86 @@ class BillingSession(ABC):
|
|||||||
|
|
||||||
raise JsonableError(_("Nothing to change."))
|
raise JsonableError(_("Nothing to change."))
|
||||||
|
|
||||||
|
def switch_plan_tier(self, current_plan: CustomerPlan, new_plan_tier: int) -> None:
|
||||||
|
assert current_plan.status == CustomerPlan.SWITCH_PLAN_TIER_NOW
|
||||||
|
assert current_plan.next_invoice_date is not None
|
||||||
|
next_billing_cycle = current_plan.next_invoice_date
|
||||||
|
|
||||||
|
current_plan.end_date = next_billing_cycle
|
||||||
|
current_plan.status = CustomerPlan.ENDED
|
||||||
|
current_plan.save(update_fields=["status", "end_date"])
|
||||||
|
|
||||||
|
new_price_per_license = get_price_per_license(
|
||||||
|
new_plan_tier, current_plan.billing_schedule, current_plan.customer.default_discount
|
||||||
|
)
|
||||||
|
|
||||||
|
new_plan_billing_cycle_anchor = current_plan.end_date.replace(microsecond=0)
|
||||||
|
|
||||||
|
new_plan = CustomerPlan.objects.create(
|
||||||
|
customer=current_plan.customer,
|
||||||
|
status=CustomerPlan.ACTIVE,
|
||||||
|
automanage_licenses=current_plan.automanage_licenses,
|
||||||
|
charge_automatically=current_plan.charge_automatically,
|
||||||
|
price_per_license=new_price_per_license,
|
||||||
|
discount=current_plan.customer.default_discount,
|
||||||
|
billing_schedule=current_plan.billing_schedule,
|
||||||
|
tier=new_plan_tier,
|
||||||
|
billing_cycle_anchor=new_plan_billing_cycle_anchor,
|
||||||
|
invoicing_status=CustomerPlan.INITIAL_INVOICE_TO_BE_SENT,
|
||||||
|
next_invoice_date=new_plan_billing_cycle_anchor,
|
||||||
|
)
|
||||||
|
|
||||||
|
current_plan_last_ledger = (
|
||||||
|
LicenseLedger.objects.filter(plan=current_plan).order_by("id").last()
|
||||||
|
)
|
||||||
|
assert current_plan_last_ledger is not None
|
||||||
|
licenses_for_new_plan = current_plan_last_ledger.licenses_at_next_renewal
|
||||||
|
assert licenses_for_new_plan is not None
|
||||||
|
LicenseLedger.objects.create(
|
||||||
|
plan=new_plan,
|
||||||
|
is_renewal=True,
|
||||||
|
event_time=new_plan_billing_cycle_anchor,
|
||||||
|
licenses=licenses_for_new_plan,
|
||||||
|
licenses_at_next_renewal=licenses_for_new_plan,
|
||||||
|
)
|
||||||
|
|
||||||
|
def do_change_plan_to_new_tier(self, new_plan_tier: int) -> None:
|
||||||
|
customer = self.get_customer()
|
||||||
|
assert customer is not None
|
||||||
|
current_plan = get_current_plan_by_customer(customer)
|
||||||
|
|
||||||
|
if not current_plan or current_plan.status != CustomerPlan.ACTIVE:
|
||||||
|
raise BillingError("Organization does not have an active plan")
|
||||||
|
|
||||||
|
if not current_plan.customer.stripe_customer_id:
|
||||||
|
raise BillingError("Organization missing Stripe customer.")
|
||||||
|
|
||||||
|
if not self.is_valid_plan_tier_switch(current_plan.tier, new_plan_tier):
|
||||||
|
raise BillingError("Invalid change of customer plan tier.")
|
||||||
|
|
||||||
|
plan_switch_time = timezone_now()
|
||||||
|
|
||||||
|
current_plan.status = CustomerPlan.SWITCH_PLAN_TIER_NOW
|
||||||
|
current_plan.next_invoice_date = plan_switch_time
|
||||||
|
current_plan.save(update_fields=["status", "next_invoice_date"])
|
||||||
|
|
||||||
|
self.do_change_plan_type(tier=new_plan_tier)
|
||||||
|
|
||||||
|
amount_to_credit_for_early_termination = get_amount_to_credit_for_plan_tier_change(
|
||||||
|
current_plan, plan_switch_time
|
||||||
|
)
|
||||||
|
stripe.Customer.create_balance_transaction(
|
||||||
|
current_plan.customer.stripe_customer_id,
|
||||||
|
amount=-1 * amount_to_credit_for_early_termination,
|
||||||
|
currency="usd",
|
||||||
|
description="Credit from early termination of active plan",
|
||||||
|
)
|
||||||
|
self.switch_plan_tier(current_plan, new_plan_tier)
|
||||||
|
invoice_plan(current_plan, plan_switch_time)
|
||||||
|
new_plan = get_current_plan_by_customer(customer)
|
||||||
|
assert new_plan is not None # for mypy
|
||||||
|
invoice_plan(new_plan, plan_switch_time)
|
||||||
|
|
||||||
|
|
||||||
class RealmBillingSession(BillingSession):
|
class RealmBillingSession(BillingSession):
|
||||||
def __init__(
|
def __init__(
|
||||||
@@ -1666,6 +1750,14 @@ class RealmBillingSession(BillingSession):
|
|||||||
is_self_hosting=False,
|
is_self_hosting=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@override
|
||||||
|
def is_valid_plan_tier_switch(self, current_plan_tier: int, new_plan_tier: int) -> bool:
|
||||||
|
if current_plan_tier == CustomerPlan.STANDARD:
|
||||||
|
return new_plan_tier == CustomerPlan.PLUS
|
||||||
|
else: # nocoverage, not currently implemented
|
||||||
|
assert current_plan_tier == CustomerPlan.PLUS
|
||||||
|
return new_plan_tier == CustomerPlan.STANDARD
|
||||||
|
|
||||||
|
|
||||||
class RemoteRealmBillingSession(BillingSession): # nocoverage
|
class RemoteRealmBillingSession(BillingSession): # nocoverage
|
||||||
def __init__(
|
def __init__(
|
||||||
@@ -1854,6 +1946,11 @@ class RemoteRealmBillingSession(BillingSession): # nocoverage
|
|||||||
plan.status = CustomerPlan.ENDED
|
plan.status = CustomerPlan.ENDED
|
||||||
plan.save(update_fields=["status"])
|
plan.save(update_fields=["status"])
|
||||||
|
|
||||||
|
@override
|
||||||
|
def is_valid_plan_tier_switch(self, current_plan_tier: int, new_plan_tier: int) -> bool:
|
||||||
|
# TBD
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
class RemoteServerBillingSession(BillingSession): # nocoverage
|
class RemoteServerBillingSession(BillingSession): # nocoverage
|
||||||
"""Billing session for pre-8.0 servers that do not yet support
|
"""Billing session for pre-8.0 servers that do not yet support
|
||||||
@@ -2035,6 +2132,11 @@ class RemoteServerBillingSession(BillingSession): # nocoverage
|
|||||||
is_self_hosting=True,
|
is_self_hosting=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@override
|
||||||
|
def is_valid_plan_tier_switch(self, current_plan_tier: int, new_plan_tier: int) -> bool:
|
||||||
|
# TBD
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def stripe_customer_has_credit_card_as_default_payment_method(
|
def stripe_customer_has_credit_card_as_default_payment_method(
|
||||||
stripe_customer: stripe.Customer,
|
stripe_customer: stripe.Customer,
|
||||||
@@ -2449,86 +2551,3 @@ def downgrade_small_realms_behind_on_payments_as_needed() -> None:
|
|||||||
else:
|
else:
|
||||||
if customer_has_last_n_invoices_open(customer, 1):
|
if customer_has_last_n_invoices_open(customer, 1):
|
||||||
void_all_open_invoices(realm)
|
void_all_open_invoices(realm)
|
||||||
|
|
||||||
|
|
||||||
def switch_plan_tier(current_plan: CustomerPlan, new_plan_tier: int) -> None:
|
|
||||||
assert current_plan.status == CustomerPlan.SWITCH_PLAN_TIER_NOW
|
|
||||||
assert current_plan.next_invoice_date is not None
|
|
||||||
next_billing_cycle = current_plan.next_invoice_date
|
|
||||||
|
|
||||||
# TODO: When moved to BillingSession, create child class validation
|
|
||||||
# for valid CustomerPlan tier changes.
|
|
||||||
assert current_plan.tier != new_plan_tier
|
|
||||||
assert current_plan.tier == CustomerPlan.STANDARD
|
|
||||||
assert new_plan_tier == CustomerPlan.PLUS
|
|
||||||
|
|
||||||
current_plan.end_date = next_billing_cycle
|
|
||||||
current_plan.status = CustomerPlan.ENDED
|
|
||||||
current_plan.save(update_fields=["status", "end_date"])
|
|
||||||
|
|
||||||
new_price_per_license = get_price_per_license(
|
|
||||||
new_plan_tier, current_plan.billing_schedule, current_plan.customer.default_discount
|
|
||||||
)
|
|
||||||
|
|
||||||
new_plan_billing_cycle_anchor = current_plan.end_date.replace(microsecond=0)
|
|
||||||
|
|
||||||
new_plan = CustomerPlan.objects.create(
|
|
||||||
customer=current_plan.customer,
|
|
||||||
status=CustomerPlan.ACTIVE,
|
|
||||||
automanage_licenses=current_plan.automanage_licenses,
|
|
||||||
charge_automatically=current_plan.charge_automatically,
|
|
||||||
price_per_license=new_price_per_license,
|
|
||||||
discount=current_plan.customer.default_discount,
|
|
||||||
billing_schedule=current_plan.billing_schedule,
|
|
||||||
tier=new_plan_tier,
|
|
||||||
billing_cycle_anchor=new_plan_billing_cycle_anchor,
|
|
||||||
invoicing_status=CustomerPlan.INITIAL_INVOICE_TO_BE_SENT,
|
|
||||||
next_invoice_date=new_plan_billing_cycle_anchor,
|
|
||||||
)
|
|
||||||
|
|
||||||
current_plan_last_ledger = LicenseLedger.objects.filter(plan=current_plan).order_by("id").last()
|
|
||||||
assert current_plan_last_ledger is not None
|
|
||||||
licenses_for_new_plan = current_plan_last_ledger.licenses_at_next_renewal
|
|
||||||
assert licenses_for_new_plan is not None
|
|
||||||
LicenseLedger.objects.create(
|
|
||||||
plan=new_plan,
|
|
||||||
is_renewal=True,
|
|
||||||
event_time=new_plan_billing_cycle_anchor,
|
|
||||||
licenses=licenses_for_new_plan,
|
|
||||||
licenses_at_next_renewal=licenses_for_new_plan,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def switch_realm_from_standard_to_plus_plan(realm: Realm) -> None:
|
|
||||||
standard_plan = get_current_plan_by_realm(realm)
|
|
||||||
|
|
||||||
if not standard_plan or standard_plan.status != CustomerPlan.ACTIVE:
|
|
||||||
raise BillingError("Organization does not have an active plan")
|
|
||||||
|
|
||||||
if not standard_plan.customer.stripe_customer_id:
|
|
||||||
raise BillingError("Organization missing Stripe customer.")
|
|
||||||
|
|
||||||
plan_switch_time = timezone_now()
|
|
||||||
|
|
||||||
standard_plan.status = CustomerPlan.SWITCH_PLAN_TIER_NOW
|
|
||||||
standard_plan.next_invoice_date = plan_switch_time
|
|
||||||
standard_plan.save(update_fields=["status", "next_invoice_date"])
|
|
||||||
|
|
||||||
from zerver.actions.realm_settings import do_change_realm_plan_type
|
|
||||||
|
|
||||||
do_change_realm_plan_type(realm, Realm.PLAN_TYPE_PLUS, acting_user=None)
|
|
||||||
|
|
||||||
amount_to_credit_back_to_realm = get_amount_to_credit_for_plan_tier_change(
|
|
||||||
standard_plan, plan_switch_time
|
|
||||||
)
|
|
||||||
stripe.Customer.create_balance_transaction(
|
|
||||||
standard_plan.customer.stripe_customer_id,
|
|
||||||
amount=-1 * amount_to_credit_back_to_realm,
|
|
||||||
currency="usd",
|
|
||||||
description="Credit from early termination of active plan",
|
|
||||||
)
|
|
||||||
switch_plan_tier(standard_plan, CustomerPlan.PLUS)
|
|
||||||
invoice_plan(standard_plan, plan_switch_time)
|
|
||||||
plus_plan = get_current_plan_by_realm(realm)
|
|
||||||
assert plus_plan is not None # for mypy
|
|
||||||
invoice_plan(plus_plan, plan_switch_time)
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from django.conf import settings
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from corporate.lib.stripe import RealmBillingSession
|
from corporate.lib.stripe import RealmBillingSession
|
||||||
from corporate.models import get_customer_by_realm
|
from corporate.models import CustomerPlan, get_customer_by_realm
|
||||||
from zerver.models import Realm, UserProfile, get_realm
|
from zerver.models import Realm, UserProfile, get_realm
|
||||||
|
|
||||||
|
|
||||||
@@ -48,3 +48,8 @@ def update_realm_billing_method(
|
|||||||
) -> None:
|
) -> None:
|
||||||
billing_session = RealmBillingSession(acting_user, realm, support_session=True)
|
billing_session = RealmBillingSession(acting_user, realm, support_session=True)
|
||||||
billing_session.update_billing_method_of_current_plan(charge_automatically)
|
billing_session.update_billing_method_of_current_plan(charge_automatically)
|
||||||
|
|
||||||
|
|
||||||
|
def switch_realm_from_standard_to_plus_plan(realm: Realm) -> None:
|
||||||
|
billing_session = RealmBillingSession(realm=realm)
|
||||||
|
billing_session.do_change_plan_to_new_tier(new_plan_tier=CustomerPlan.PLUS)
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "lear (Lear & Co.)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "king@lear.org",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": null,
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "lear"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"amount": -7200,
|
||||||
|
"created": 1000000000,
|
||||||
|
"credit_note": null,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Credit from early termination of active plan",
|
||||||
|
"ending_balance": -7200,
|
||||||
|
"id": "cbtxn_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "customer_balance_transaction",
|
||||||
|
"type": "adjustment"
|
||||||
|
}
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
{
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 7200,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 7200,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "send_invoice",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "king@lear.org",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": 1000000000,
|
||||||
|
"effective_at": null,
|
||||||
|
"ending_balance": null,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": null,
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": null,
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 14400,
|
||||||
|
"amount_excluding_tax": 14400,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 1600,
|
||||||
|
"unit_amount_decimal": "1600"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 9,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "1600"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": null,
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": -7200,
|
||||||
|
"statement_descriptor": "Zulip Plus",
|
||||||
|
"status": "draft",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": null,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 14400,
|
||||||
|
"subtotal_excluding_tax": 14400,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 14400,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 14400,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
{
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 7200,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 7200,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "send_invoice",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "king@lear.org",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": 1000000000,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RWVEFzekZPQzhpS2pLRUUwdUtHZFdYSFR6elVuLDkxMjYxMDk50200glANUnat?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RWVEFzekZPQzhpS2pLRUUwdUtHZFdYSFR6elVuLDkxMjYxMDk50200glANUnat/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 14400,
|
||||||
|
"amount_excluding_tax": 14400,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 1600,
|
||||||
|
"unit_amount_decimal": "1600"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 9,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "1600"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000001",
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": -7200,
|
||||||
|
"statement_descriptor": "Zulip Plus",
|
||||||
|
"status": "open",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 14400,
|
||||||
|
"subtotal_excluding_tax": 14400,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 14400,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 14400,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 7200,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 7200,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "send_invoice",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "king@lear.org",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": 1000000000,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RWVEFzekZPQzhpS2pLRUUwdUtHZFdYSFR6elVuLDkxMjYxMTAw0200IAw0qFPB?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RWVEFzekZPQzhpS2pLRUUwdUtHZFdYSFR6elVuLDkxMjYxMTAw0200IAw0qFPB/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 14400,
|
||||||
|
"amount_excluding_tax": 14400,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 1600,
|
||||||
|
"unit_amount_decimal": "1600"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 9,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "1600"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000001",
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": -7200,
|
||||||
|
"statement_descriptor": "Zulip Plus",
|
||||||
|
"status": "open",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 14400,
|
||||||
|
"subtotal_excluding_tax": 14400,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 14400,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 14400,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/invoices"
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"amount": 14400,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"date": 1000000000,
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "ii_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "invoiceitem",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 1600,
|
||||||
|
"unit_amount_decimal": "1600"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"quantity": 9,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_rates": [],
|
||||||
|
"test_clock": null,
|
||||||
|
"unit_amount": 1600,
|
||||||
|
"unit_amount_decimal": "1600"
|
||||||
|
}
|
||||||
@@ -6,9 +6,9 @@
|
|||||||
"default_currency": null,
|
"default_currency": null,
|
||||||
"default_source": null,
|
"default_source": null,
|
||||||
"delinquent": false,
|
"delinquent": false,
|
||||||
"description": "lear (Lear & Co.)",
|
"description": "zulip (Zulip Dev)",
|
||||||
"discount": null,
|
"discount": null,
|
||||||
"email": "king@lear.org",
|
"email": "hamlet@zulip.com",
|
||||||
"id": "cus_NORMALIZED0001",
|
"id": "cus_NORMALIZED0001",
|
||||||
"invoice_prefix": "NORMA01",
|
"invoice_prefix": "NORMA01",
|
||||||
"invoice_settings": {
|
"invoice_settings": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"livemode": false,
|
"livemode": false,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"realm_id": "1",
|
"realm_id": "1",
|
||||||
"realm_str": "lear"
|
"realm_str": "zulip"
|
||||||
},
|
},
|
||||||
"name": null,
|
"name": null,
|
||||||
"next_invoice_sequence": 1,
|
"next_invoice_sequence": 1,
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"amount": -7200,
|
"amount": -437,
|
||||||
"created": 1000000000,
|
"created": 1000000000,
|
||||||
"credit_note": null,
|
"credit_note": null,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"customer": "cus_NORMALIZED0001",
|
"customer": "cus_NORMALIZED0001",
|
||||||
"description": "Credit from early termination of active plan",
|
"description": "Credit from early termination of active plan",
|
||||||
"ending_balance": -7200,
|
"ending_balance": -437,
|
||||||
"id": "cbtxn_NORMALIZED00000000000001",
|
"id": "cbtxn_NORMALIZED00000000000001",
|
||||||
"invoice": null,
|
"invoice": null,
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": {
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"card": {
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"generated_from": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"networks": {
|
||||||
|
"available": [
|
||||||
|
"visa"
|
||||||
|
],
|
||||||
|
"preferred": null
|
||||||
|
},
|
||||||
|
"three_d_secure_usage": {
|
||||||
|
"supported": true
|
||||||
|
},
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"id": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "payment_method",
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": {
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"card": {
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"generated_from": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"networks": {
|
||||||
|
"available": [
|
||||||
|
"visa"
|
||||||
|
],
|
||||||
|
"preferred": null
|
||||||
|
},
|
||||||
|
"three_d_secure_usage": {
|
||||||
|
"supported": true
|
||||||
|
},
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"id": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "payment_method",
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": {
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"card": {
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"generated_from": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"networks": {
|
||||||
|
"available": [
|
||||||
|
"visa"
|
||||||
|
],
|
||||||
|
"preferred": null
|
||||||
|
},
|
||||||
|
"three_d_secure_usage": {
|
||||||
|
"supported": true
|
||||||
|
},
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"id": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "payment_method",
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": {
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"card": {
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"generated_from": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"networks": {
|
||||||
|
"available": [
|
||||||
|
"visa"
|
||||||
|
],
|
||||||
|
"preferred": null
|
||||||
|
},
|
||||||
|
"three_d_secure_usage": {
|
||||||
|
"supported": true
|
||||||
|
},
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"id": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "payment_method",
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null,
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
},
|
||||||
|
"previous_attributes": {
|
||||||
|
"invoice_settings": {
|
||||||
|
"default_payment_method": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWD9DEQaroqDjsPiDL0AYg",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0001",
|
||||||
|
"idempotency_key": "e61003eb-2742-4e21-bded-f552701754aa"
|
||||||
|
},
|
||||||
|
"type": "customer.updated"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": true,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_captured": 48000,
|
||||||
|
"amount_refunded": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"balance_transaction": "txn_NORMALIZED00000000000002",
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"calculated_statement_descriptor": "ZULIP CLOUD STANDARD",
|
||||||
|
"captured": true,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Upgrade to Zulip Cloud Standard, $80.0 x 6",
|
||||||
|
"destination": null,
|
||||||
|
"dispute": null,
|
||||||
|
"disputed": false,
|
||||||
|
"failure_balance_transaction": null,
|
||||||
|
"failure_code": null,
|
||||||
|
"failure_message": null,
|
||||||
|
"fraud_details": {},
|
||||||
|
"id": "ch_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"billing_modality": "charge_automatically",
|
||||||
|
"billing_schedule": "1",
|
||||||
|
"license_management": "automatic",
|
||||||
|
"licenses": "6",
|
||||||
|
"price_per_license": "8000",
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip",
|
||||||
|
"seat_count": "6",
|
||||||
|
"type": "upgrade",
|
||||||
|
"user_email": "hamlet@zulip.com",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"object": "charge",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"order": null,
|
||||||
|
"outcome": {
|
||||||
|
"network_status": "approved_by_network",
|
||||||
|
"reason": null,
|
||||||
|
"risk_level": "normal",
|
||||||
|
"risk_score": 0,
|
||||||
|
"seller_message": "Payment complete.",
|
||||||
|
"type": "authorized"
|
||||||
|
},
|
||||||
|
"paid": true,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000001",
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_details": {
|
||||||
|
"card": {
|
||||||
|
"amount_authorized": 48000,
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"extended_authorization": {
|
||||||
|
"status": "disabled"
|
||||||
|
},
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"incremental_authorization": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"installments": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"mandate": null,
|
||||||
|
"multicapture": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"network": "visa",
|
||||||
|
"network_token": {
|
||||||
|
"used": false
|
||||||
|
},
|
||||||
|
"overcapture": {
|
||||||
|
"maximum_amount_capturable": 48000,
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"three_d_secure": null,
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"receipt_email": "hamlet@zulip.com",
|
||||||
|
"receipt_number": null,
|
||||||
|
"receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKL7c-6oGMgaz9Tos8P86LBZda7Ck6q7bxLFnyx0j-_4qTLgbSiIZSdGlLELq1aTRX1AJTgPBN5Omy_hU",
|
||||||
|
"refunded": false,
|
||||||
|
"refunds": {
|
||||||
|
"data": [],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 0,
|
||||||
|
"url": "/v1/charges/ch_NORMALIZED00000000000001/refunds"
|
||||||
|
},
|
||||||
|
"review": null,
|
||||||
|
"shipping": null,
|
||||||
|
"source": null,
|
||||||
|
"source_transfer": null,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"statement_descriptor_suffix": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"transfer_data": null,
|
||||||
|
"transfer_group": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_3OFWDBDEQaroqDjs0XubEkJk",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 2,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0002",
|
||||||
|
"idempotency_key": "79a21870-d329-42b9-a7dd-816c7227626e"
|
||||||
|
},
|
||||||
|
"type": "charge.succeeded"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,219 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_capturable": 0,
|
||||||
|
"amount_details": {
|
||||||
|
"tip": {}
|
||||||
|
},
|
||||||
|
"amount_received": 48000,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"automatic_payment_methods": null,
|
||||||
|
"canceled_at": null,
|
||||||
|
"cancellation_reason": null,
|
||||||
|
"capture_method": "automatic",
|
||||||
|
"charges": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_captured": 48000,
|
||||||
|
"amount_refunded": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"balance_transaction": "txn_NORMALIZED00000000000002",
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"calculated_statement_descriptor": "ZULIP CLOUD STANDARD",
|
||||||
|
"captured": true,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Upgrade to Zulip Cloud Standard, $80.0 x 6",
|
||||||
|
"destination": null,
|
||||||
|
"dispute": null,
|
||||||
|
"disputed": false,
|
||||||
|
"failure_balance_transaction": null,
|
||||||
|
"failure_code": null,
|
||||||
|
"failure_message": null,
|
||||||
|
"fraud_details": {},
|
||||||
|
"id": "ch_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"billing_modality": "charge_automatically",
|
||||||
|
"billing_schedule": "1",
|
||||||
|
"license_management": "automatic",
|
||||||
|
"licenses": "6",
|
||||||
|
"price_per_license": "8000",
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip",
|
||||||
|
"seat_count": "6",
|
||||||
|
"type": "upgrade",
|
||||||
|
"user_email": "hamlet@zulip.com",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"object": "charge",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"order": null,
|
||||||
|
"outcome": {
|
||||||
|
"network_status": "approved_by_network",
|
||||||
|
"reason": null,
|
||||||
|
"risk_level": "normal",
|
||||||
|
"risk_score": 0,
|
||||||
|
"seller_message": "Payment complete.",
|
||||||
|
"type": "authorized"
|
||||||
|
},
|
||||||
|
"paid": true,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000001",
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_details": {
|
||||||
|
"card": {
|
||||||
|
"amount_authorized": 48000,
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"extended_authorization": {
|
||||||
|
"status": "disabled"
|
||||||
|
},
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"incremental_authorization": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"installments": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"mandate": null,
|
||||||
|
"multicapture": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"network": "visa",
|
||||||
|
"network_token": {
|
||||||
|
"used": false
|
||||||
|
},
|
||||||
|
"overcapture": {
|
||||||
|
"maximum_amount_capturable": 48000,
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"three_d_secure": null,
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"receipt_email": "hamlet@zulip.com",
|
||||||
|
"receipt_number": null,
|
||||||
|
"receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKL7c-6oGMgb-QbX6aKA6LBYvTD5qCJyj_oSzU9nmowj0xxKoo9gSyPhS1Az-XVSPbh2EaRTuTUSFhSOd",
|
||||||
|
"refunded": false,
|
||||||
|
"refunds": {
|
||||||
|
"data": [],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 0,
|
||||||
|
"url": "/v1/charges/ch_NORMALIZED00000000000001/refunds"
|
||||||
|
},
|
||||||
|
"review": null,
|
||||||
|
"shipping": null,
|
||||||
|
"source": null,
|
||||||
|
"source_transfer": null,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"statement_descriptor_suffix": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"transfer_data": null,
|
||||||
|
"transfer_group": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/charges?payment_intent=pi_NORMALIZED00000000000001"
|
||||||
|
},
|
||||||
|
"client_secret": "pi_NORMALIZED00000000000001_secret_8LrrfmEMVbU1QNd1Y1e4LW91d",
|
||||||
|
"confirmation_method": "automatic",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Upgrade to Zulip Cloud Standard, $80.0 x 6",
|
||||||
|
"id": "pi_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"last_payment_error": null,
|
||||||
|
"latest_charge": "ch_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"billing_modality": "charge_automatically",
|
||||||
|
"billing_schedule": "1",
|
||||||
|
"license_management": "automatic",
|
||||||
|
"licenses": "6",
|
||||||
|
"price_per_license": "8000",
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip",
|
||||||
|
"seat_count": "6",
|
||||||
|
"type": "upgrade",
|
||||||
|
"user_email": "hamlet@zulip.com",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"next_action": null,
|
||||||
|
"object": "payment_intent",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {
|
||||||
|
"card": {
|
||||||
|
"installments": null,
|
||||||
|
"mandate_options": null,
|
||||||
|
"network": null,
|
||||||
|
"request_three_d_secure": "automatic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"processing": null,
|
||||||
|
"receipt_email": "hamlet@zulip.com",
|
||||||
|
"review": null,
|
||||||
|
"setup_future_usage": null,
|
||||||
|
"shipping": null,
|
||||||
|
"source": null,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"statement_descriptor_suffix": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"transfer_data": null,
|
||||||
|
"transfer_group": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_3OFWDBDEQaroqDjs0cRcGUju",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0002",
|
||||||
|
"idempotency_key": "79a21870-d329-42b9-a7dd-816c7227626e"
|
||||||
|
},
|
||||||
|
"type": "payment_intent.succeeded"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,406 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 0,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 0,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": null,
|
||||||
|
"ending_balance": null,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": null,
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": null,
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_excluding_tax": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 2,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": 1000000000,
|
||||||
|
"number": null,
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": 0,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"status": "draft",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": null,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 0,
|
||||||
|
"subtotal_excluding_tax": 0,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 0,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 0,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDDDEQaroqDjsyi5CLur2",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0003",
|
||||||
|
"idempotency_key": "c0e24090-817c-4cf1-9a64-f49233a13da5"
|
||||||
|
},
|
||||||
|
"type": "invoice.created"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"amount": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"date": 1000000000,
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "ii_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "invoiceitem",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_rates": [],
|
||||||
|
"test_clock": null,
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDDDEQaroqDjs8IeJM6Pb",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0004",
|
||||||
|
"idempotency_key": "80161211-807b-49a8-a243-9a970f71f0e8"
|
||||||
|
},
|
||||||
|
"type": "invoiceitem.created"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"amount": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"date": 1000000000,
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "ii_NORMALIZED00000000000002",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "invoiceitem",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_rates": [],
|
||||||
|
"test_clock": null,
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDDDEQaroqDjst4NM9zRA",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0005",
|
||||||
|
"idempotency_key": "c8fbf319-f723-48d1-9c38-5d8e68fd74ca"
|
||||||
|
},
|
||||||
|
"type": "invoiceitem.created"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"address": null,
|
||||||
|
"balance": 0,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"default_currency": "usd",
|
||||||
|
"default_source": null,
|
||||||
|
"delinquent": false,
|
||||||
|
"description": "zulip (Zulip Dev)",
|
||||||
|
"discount": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"id": "cus_NORMALIZED0001",
|
||||||
|
"invoice_prefix": "NORMA01",
|
||||||
|
"invoice_settings": {
|
||||||
|
"custom_fields": null,
|
||||||
|
"default_payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"footer": null,
|
||||||
|
"rendering_options": null
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip"
|
||||||
|
},
|
||||||
|
"name": null,
|
||||||
|
"next_invoice_sequence": 1,
|
||||||
|
"object": "customer",
|
||||||
|
"phone": null,
|
||||||
|
"preferred_locales": [],
|
||||||
|
"shipping": null,
|
||||||
|
"tax_exempt": "none",
|
||||||
|
"test_clock": null
|
||||||
|
},
|
||||||
|
"previous_attributes": {
|
||||||
|
"currency": null,
|
||||||
|
"default_currency": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDDDEQaroqDjsa6HU7in0",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0005",
|
||||||
|
"idempotency_key": "c8fbf319-f723-48d1-9c38-5d8e68fd74ca"
|
||||||
|
},
|
||||||
|
"type": "customer.updated"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,474 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 0,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 0,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": true,
|
||||||
|
"auto_advance": false,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_excluding_tax": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 2,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": true,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": 0,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"status": "paid",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": 1000000000,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 0,
|
||||||
|
"subtotal_excluding_tax": 0,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 0,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 0,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDEDEQaroqDjsaUeU2jsL",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 2,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0006",
|
||||||
|
"idempotency_key": "e461b87c-d52e-4af6-a76e-c7717b66e633"
|
||||||
|
},
|
||||||
|
"type": "invoice.finalized"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 0,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 0,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": true,
|
||||||
|
"auto_advance": false,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_excluding_tax": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 2,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": true,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": 0,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"status": "paid",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": 1000000000,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 0,
|
||||||
|
"subtotal_excluding_tax": 0,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 0,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 0,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
},
|
||||||
|
"previous_attributes": {
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"effective_at": null,
|
||||||
|
"ending_balance": null,
|
||||||
|
"hosted_invoice_url": null,
|
||||||
|
"invoice_pdf": null,
|
||||||
|
"next_payment_attempt": 1000000000,
|
||||||
|
"number": null,
|
||||||
|
"paid": false,
|
||||||
|
"rendering": {
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": "draft",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": null,
|
||||||
|
"paid_at": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDEDEQaroqDjsKMHv3Jvl",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 0,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0006",
|
||||||
|
"idempotency_key": "e461b87c-d52e-4af6-a76e-c7717b66e633"
|
||||||
|
},
|
||||||
|
"type": "invoice.updated"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,230 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 0,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 0,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": true,
|
||||||
|
"auto_advance": false,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_excluding_tax": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 2,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": true,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": 0,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"status": "paid",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": 1000000000,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 0,
|
||||||
|
"subtotal_excluding_tax": 0,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 0,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 0,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDEDEQaroqDjs66EoHBLc",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 2,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0006",
|
||||||
|
"idempotency_key": "e461b87c-d52e-4af6-a76e-c7717b66e633"
|
||||||
|
},
|
||||||
|
"type": "invoice.paid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,230 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"api_version": "2020-08-27",
|
||||||
|
"created": 1000000000,
|
||||||
|
"data": {
|
||||||
|
"object": {
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 0,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 0,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": true,
|
||||||
|
"auto_advance": false,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000001",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_excluding_tax": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000001",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 2,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": null,
|
||||||
|
"number": "NORMALI-0001",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": true,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": 0,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"status": "paid",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": 1000000000,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 0,
|
||||||
|
"subtotal_excluding_tax": 0,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 0,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 0,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "evt_1OFWDEDEQaroqDjsXU4t3ECE",
|
||||||
|
"livemode": false,
|
||||||
|
"object": "event",
|
||||||
|
"pending_webhooks": 1,
|
||||||
|
"request": {
|
||||||
|
"id": "req_NORMALIZED0006",
|
||||||
|
"idempotency_key": "e461b87c-d52e-4af6-a76e-c7717b66e633"
|
||||||
|
},
|
||||||
|
"type": "invoice.payment_succeeded"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"data": [],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/events"
|
||||||
|
}
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
"account_country": "US",
|
"account_country": "US",
|
||||||
"account_name": "Kandra Labs, Inc.",
|
"account_name": "Kandra Labs, Inc.",
|
||||||
"account_tax_ids": null,
|
"account_tax_ids": null,
|
||||||
"amount_due": 7200,
|
"amount_due": 0,
|
||||||
"amount_paid": 0,
|
"amount_paid": 0,
|
||||||
"amount_remaining": 7200,
|
"amount_remaining": 0,
|
||||||
"amount_shipping": 0,
|
"amount_shipping": 0,
|
||||||
"application": null,
|
"application": null,
|
||||||
"application_fee_amount": null,
|
"application_fee_amount": null,
|
||||||
@@ -17,13 +17,13 @@
|
|||||||
},
|
},
|
||||||
"billing_reason": "manual",
|
"billing_reason": "manual",
|
||||||
"charge": null,
|
"charge": null,
|
||||||
"collection_method": "send_invoice",
|
"collection_method": "charge_automatically",
|
||||||
"created": 1000000000,
|
"created": 1000000000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"custom_fields": null,
|
"custom_fields": null,
|
||||||
"customer": "cus_NORMALIZED0001",
|
"customer": "cus_NORMALIZED0001",
|
||||||
"customer_address": null,
|
"customer_address": null,
|
||||||
"customer_email": "king@lear.org",
|
"customer_email": "hamlet@zulip.com",
|
||||||
"customer_name": null,
|
"customer_name": null,
|
||||||
"customer_phone": null,
|
"customer_phone": null,
|
||||||
"customer_shipping": null,
|
"customer_shipping": null,
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"description": null,
|
"description": null,
|
||||||
"discount": null,
|
"discount": null,
|
||||||
"discounts": [],
|
"discounts": [],
|
||||||
"due_date": 1000000000,
|
"due_date": null,
|
||||||
"effective_at": null,
|
"effective_at": null,
|
||||||
"ending_balance": null,
|
"ending_balance": null,
|
||||||
"footer": null,
|
"footer": null,
|
||||||
@@ -48,10 +48,10 @@
|
|||||||
"lines": {
|
"lines": {
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"amount": 14400,
|
"amount": 48000,
|
||||||
"amount_excluding_tax": 14400,
|
"amount_excluding_tax": 48000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"description": "Zulip Plus - renewal",
|
"description": "Zulip Cloud Standard",
|
||||||
"discount_amounts": [],
|
"discount_amounts": [],
|
||||||
"discountable": false,
|
"discountable": false,
|
||||||
"discounts": [],
|
"discounts": [],
|
||||||
@@ -61,8 +61,8 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"object": "line_item",
|
"object": "line_item",
|
||||||
"period": {
|
"period": {
|
||||||
"end": 1000000000,
|
"end": 1357095845,
|
||||||
"start": 1000000000
|
"start": 1325473445
|
||||||
},
|
},
|
||||||
"plan": null,
|
"plan": null,
|
||||||
"price": {
|
"price": {
|
||||||
@@ -83,29 +83,79 @@
|
|||||||
"tiers_mode": null,
|
"tiers_mode": null,
|
||||||
"transform_quantity": null,
|
"transform_quantity": null,
|
||||||
"type": "one_time",
|
"type": "one_time",
|
||||||
"unit_amount": 1600,
|
"unit_amount": 8000,
|
||||||
"unit_amount_decimal": "1600"
|
"unit_amount_decimal": "8000"
|
||||||
},
|
},
|
||||||
"proration": false,
|
"proration": false,
|
||||||
"proration_details": {
|
"proration_details": {
|
||||||
"credited_items": null
|
"credited_items": null
|
||||||
},
|
},
|
||||||
"quantity": 9,
|
"quantity": 6,
|
||||||
"subscription": null,
|
"subscription": null,
|
||||||
"tax_amounts": [],
|
"tax_amounts": [],
|
||||||
"tax_rates": [],
|
"tax_rates": [],
|
||||||
"type": "invoiceitem",
|
"type": "invoiceitem",
|
||||||
"unit_amount_excluding_tax": "1600"
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"has_more": false,
|
"has_more": false,
|
||||||
"object": "list",
|
"object": "list",
|
||||||
"total_count": 1,
|
"total_count": 2,
|
||||||
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
},
|
},
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"next_payment_attempt": null,
|
"next_payment_attempt": 1000000000,
|
||||||
"number": null,
|
"number": null,
|
||||||
"object": "invoice",
|
"object": "invoice",
|
||||||
"on_behalf_of": null,
|
"on_behalf_of": null,
|
||||||
@@ -132,8 +182,8 @@
|
|||||||
"rendering_options": null,
|
"rendering_options": null,
|
||||||
"shipping_cost": null,
|
"shipping_cost": null,
|
||||||
"shipping_details": null,
|
"shipping_details": null,
|
||||||
"starting_balance": -7200,
|
"starting_balance": 0,
|
||||||
"statement_descriptor": "Zulip Plus",
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
"status": "draft",
|
"status": "draft",
|
||||||
"status_transitions": {
|
"status_transitions": {
|
||||||
"finalized_at": null,
|
"finalized_at": null,
|
||||||
@@ -145,13 +195,13 @@
|
|||||||
"subscription_details": {
|
"subscription_details": {
|
||||||
"metadata": null
|
"metadata": null
|
||||||
},
|
},
|
||||||
"subtotal": 14400,
|
"subtotal": 0,
|
||||||
"subtotal_excluding_tax": 14400,
|
"subtotal_excluding_tax": 0,
|
||||||
"tax": null,
|
"tax": null,
|
||||||
"test_clock": null,
|
"test_clock": null,
|
||||||
"total": 14400,
|
"total": 0,
|
||||||
"total_discount_amounts": [],
|
"total_discount_amounts": [],
|
||||||
"total_excluding_tax": 14400,
|
"total_excluding_tax": 0,
|
||||||
"total_tax_amounts": [],
|
"total_tax_amounts": [],
|
||||||
"transfer_data": null,
|
"transfer_data": null,
|
||||||
"webhooks_delivered_at": null
|
"webhooks_delivered_at": null
|
||||||
|
|||||||
@@ -0,0 +1,158 @@
|
|||||||
|
{
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 95563,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 95563,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": null,
|
||||||
|
"ending_balance": null,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": null,
|
||||||
|
"id": "in_NORMALIZED00000000000002",
|
||||||
|
"invoice_pdf": null,
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 96000,
|
||||||
|
"amount_excluding_tax": 96000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000003",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000003",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000003",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0003",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 16000,
|
||||||
|
"unit_amount_decimal": "16000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "16000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000002/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": 1000000000,
|
||||||
|
"number": null,
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": -437,
|
||||||
|
"statement_descriptor": "Zulip Plus",
|
||||||
|
"status": "draft",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": null,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 96000,
|
||||||
|
"subtotal_excluding_tax": 96000,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 96000,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 96000,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
@@ -2,28 +2,28 @@
|
|||||||
"account_country": "US",
|
"account_country": "US",
|
||||||
"account_name": "Kandra Labs, Inc.",
|
"account_name": "Kandra Labs, Inc.",
|
||||||
"account_tax_ids": null,
|
"account_tax_ids": null,
|
||||||
"amount_due": 7200,
|
"amount_due": 0,
|
||||||
"amount_paid": 0,
|
"amount_paid": 0,
|
||||||
"amount_remaining": 7200,
|
"amount_remaining": 0,
|
||||||
"amount_shipping": 0,
|
"amount_shipping": 0,
|
||||||
"application": null,
|
"application": null,
|
||||||
"application_fee_amount": null,
|
"application_fee_amount": null,
|
||||||
"attempt_count": 0,
|
"attempt_count": 0,
|
||||||
"attempted": false,
|
"attempted": true,
|
||||||
"auto_advance": true,
|
"auto_advance": false,
|
||||||
"automatic_tax": {
|
"automatic_tax": {
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"status": null
|
"status": null
|
||||||
},
|
},
|
||||||
"billing_reason": "manual",
|
"billing_reason": "manual",
|
||||||
"charge": null,
|
"charge": null,
|
||||||
"collection_method": "send_invoice",
|
"collection_method": "charge_automatically",
|
||||||
"created": 1000000000,
|
"created": 1000000000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"custom_fields": null,
|
"custom_fields": null,
|
||||||
"customer": "cus_NORMALIZED0001",
|
"customer": "cus_NORMALIZED0001",
|
||||||
"customer_address": null,
|
"customer_address": null,
|
||||||
"customer_email": "king@lear.org",
|
"customer_email": "hamlet@zulip.com",
|
||||||
"customer_name": null,
|
"customer_name": null,
|
||||||
"customer_phone": null,
|
"customer_phone": null,
|
||||||
"customer_shipping": null,
|
"customer_shipping": null,
|
||||||
@@ -35,23 +35,23 @@
|
|||||||
"description": null,
|
"description": null,
|
||||||
"discount": null,
|
"discount": null,
|
||||||
"discounts": [],
|
"discounts": [],
|
||||||
"due_date": 1000000000,
|
"due_date": null,
|
||||||
"effective_at": 1000000000,
|
"effective_at": 1000000000,
|
||||||
"ending_balance": 0,
|
"ending_balance": 0,
|
||||||
"footer": null,
|
"footer": null,
|
||||||
"from_invoice": null,
|
"from_invoice": null,
|
||||||
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QMWNxUW43THg4NGxpYkp1WlBGYkc1aEVYWWZuRnBULDkwNzk3MzMw0200l6cI0Ln4?s=ap",
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV?s=ap",
|
||||||
"id": "in_NORMALIZED00000000000001",
|
"id": "in_NORMALIZED00000000000001",
|
||||||
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QMWNxUW43THg4NGxpYkp1WlBGYkc1aEVYWWZuRnBULDkwNzk3MzMw0200l6cI0Ln4/pdf?s=ap",
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVSjJZbEx3bGZ5TnV6ZGQ2MEd1aTYwQjRuUElRLDkxMjYwOTky02007zWYSruV/pdf?s=ap",
|
||||||
"last_finalization_error": null,
|
"last_finalization_error": null,
|
||||||
"latest_revision": null,
|
"latest_revision": null,
|
||||||
"lines": {
|
"lines": {
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"amount": 14400,
|
"amount": 48000,
|
||||||
"amount_excluding_tax": 14400,
|
"amount_excluding_tax": 48000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"description": "Zulip Plus - renewal",
|
"description": "Zulip Cloud Standard",
|
||||||
"discount_amounts": [],
|
"discount_amounts": [],
|
||||||
"discountable": false,
|
"discountable": false,
|
||||||
"discounts": [],
|
"discounts": [],
|
||||||
@@ -61,8 +61,8 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"object": "line_item",
|
"object": "line_item",
|
||||||
"period": {
|
"period": {
|
||||||
"end": 1000000000,
|
"end": 1357095845,
|
||||||
"start": 1000000000
|
"start": 1325473445
|
||||||
},
|
},
|
||||||
"plan": null,
|
"plan": null,
|
||||||
"price": {
|
"price": {
|
||||||
@@ -83,24 +83,74 @@
|
|||||||
"tiers_mode": null,
|
"tiers_mode": null,
|
||||||
"transform_quantity": null,
|
"transform_quantity": null,
|
||||||
"type": "one_time",
|
"type": "one_time",
|
||||||
"unit_amount": 1600,
|
"unit_amount": 8000,
|
||||||
"unit_amount_decimal": "1600"
|
"unit_amount_decimal": "8000"
|
||||||
},
|
},
|
||||||
"proration": false,
|
"proration": false,
|
||||||
"proration_details": {
|
"proration_details": {
|
||||||
"credited_items": null
|
"credited_items": null
|
||||||
},
|
},
|
||||||
"quantity": 9,
|
"quantity": 6,
|
||||||
"subscription": null,
|
"subscription": null,
|
||||||
"tax_amounts": [],
|
"tax_amounts": [],
|
||||||
"tax_rates": [],
|
"tax_rates": [],
|
||||||
"type": "invoiceitem",
|
"type": "invoiceitem",
|
||||||
"unit_amount_excluding_tax": "1600"
|
"unit_amount_excluding_tax": "8000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": -48000,
|
||||||
|
"amount_excluding_tax": -48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Payment (Card ending in 4242)",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000002",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000002",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0002",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": -48000,
|
||||||
|
"unit_amount_decimal": "-48000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 1,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "-48000"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"has_more": false,
|
"has_more": false,
|
||||||
"object": "list",
|
"object": "list",
|
||||||
"total_count": 1,
|
"total_count": 2,
|
||||||
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
||||||
},
|
},
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
@@ -109,9 +159,9 @@
|
|||||||
"number": "NORMALI-0001",
|
"number": "NORMALI-0001",
|
||||||
"object": "invoice",
|
"object": "invoice",
|
||||||
"on_behalf_of": null,
|
"on_behalf_of": null,
|
||||||
"paid": false,
|
"paid": true,
|
||||||
"paid_out_of_band": false,
|
"paid_out_of_band": false,
|
||||||
"payment_intent": "pi_NORMALIZED00000000000001",
|
"payment_intent": null,
|
||||||
"payment_settings": {
|
"payment_settings": {
|
||||||
"default_mandate": null,
|
"default_mandate": null,
|
||||||
"payment_method_options": null,
|
"payment_method_options": null,
|
||||||
@@ -132,26 +182,26 @@
|
|||||||
"rendering_options": null,
|
"rendering_options": null,
|
||||||
"shipping_cost": null,
|
"shipping_cost": null,
|
||||||
"shipping_details": null,
|
"shipping_details": null,
|
||||||
"starting_balance": -7200,
|
"starting_balance": 0,
|
||||||
"statement_descriptor": "Zulip Plus",
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
"status": "open",
|
"status": "paid",
|
||||||
"status_transitions": {
|
"status_transitions": {
|
||||||
"finalized_at": 1000000000,
|
"finalized_at": 1000000000,
|
||||||
"marked_uncollectible_at": null,
|
"marked_uncollectible_at": null,
|
||||||
"paid_at": null,
|
"paid_at": 1000000000,
|
||||||
"voided_at": null
|
"voided_at": null
|
||||||
},
|
},
|
||||||
"subscription": null,
|
"subscription": null,
|
||||||
"subscription_details": {
|
"subscription_details": {
|
||||||
"metadata": null
|
"metadata": null
|
||||||
},
|
},
|
||||||
"subtotal": 14400,
|
"subtotal": 0,
|
||||||
"subtotal_excluding_tax": 14400,
|
"subtotal_excluding_tax": 0,
|
||||||
"tax": null,
|
"tax": null,
|
||||||
"test_clock": null,
|
"test_clock": null,
|
||||||
"total": 14400,
|
"total": 0,
|
||||||
"total_discount_amounts": [],
|
"total_discount_amounts": [],
|
||||||
"total_excluding_tax": 14400,
|
"total_excluding_tax": 0,
|
||||||
"total_tax_amounts": [],
|
"total_tax_amounts": [],
|
||||||
"transfer_data": null,
|
"transfer_data": null,
|
||||||
"webhooks_delivered_at": null
|
"webhooks_delivered_at": null
|
||||||
|
|||||||
@@ -0,0 +1,158 @@
|
|||||||
|
{
|
||||||
|
"account_country": "US",
|
||||||
|
"account_name": "Kandra Labs, Inc.",
|
||||||
|
"account_tax_ids": null,
|
||||||
|
"amount_due": 95563,
|
||||||
|
"amount_paid": 0,
|
||||||
|
"amount_remaining": 95563,
|
||||||
|
"amount_shipping": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"attempt_count": 0,
|
||||||
|
"attempted": false,
|
||||||
|
"auto_advance": true,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_reason": "manual",
|
||||||
|
"charge": null,
|
||||||
|
"collection_method": "charge_automatically",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_fields": null,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_address": null,
|
||||||
|
"customer_email": "hamlet@zulip.com",
|
||||||
|
"customer_name": null,
|
||||||
|
"customer_phone": null,
|
||||||
|
"customer_shipping": null,
|
||||||
|
"customer_tax_exempt": "none",
|
||||||
|
"customer_tax_ids": [],
|
||||||
|
"default_payment_method": null,
|
||||||
|
"default_source": null,
|
||||||
|
"default_tax_rates": [],
|
||||||
|
"description": null,
|
||||||
|
"discount": null,
|
||||||
|
"discounts": [],
|
||||||
|
"due_date": null,
|
||||||
|
"effective_at": 1000000000,
|
||||||
|
"ending_balance": 0,
|
||||||
|
"footer": null,
|
||||||
|
"from_invoice": null,
|
||||||
|
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVWjh6dWt1bmR6dGpDeGZob3ZJRFVFTDc0NFJlLDkxMjYwOTk00200hq2OrGJy?s=ap",
|
||||||
|
"id": "in_NORMALIZED00000000000002",
|
||||||
|
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QM2RVWjh6dWt1bmR6dGpDeGZob3ZJRFVFTDc0NFJlLDkxMjYwOTk00200hq2OrGJy/pdf?s=ap",
|
||||||
|
"last_finalization_error": null,
|
||||||
|
"latest_revision": null,
|
||||||
|
"lines": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 96000,
|
||||||
|
"amount_excluding_tax": 96000,
|
||||||
|
"currency": "usd",
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discount_amounts": [],
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "il_NORMALIZED00000000000003",
|
||||||
|
"invoice_item": "ii_NORMALIZED00000000000003",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "line_item",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000003",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0003",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 16000,
|
||||||
|
"unit_amount_decimal": "16000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"proration_details": {
|
||||||
|
"credited_items": null
|
||||||
|
},
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_amounts": [],
|
||||||
|
"tax_rates": [],
|
||||||
|
"type": "invoiceitem",
|
||||||
|
"unit_amount_excluding_tax": "16000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/invoices/in_NORMALIZED00000000000002/lines"
|
||||||
|
},
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"next_payment_attempt": 1000000000,
|
||||||
|
"number": "NORMALI-0002",
|
||||||
|
"object": "invoice",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"paid": false,
|
||||||
|
"paid_out_of_band": false,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000002",
|
||||||
|
"payment_settings": {
|
||||||
|
"default_mandate": null,
|
||||||
|
"payment_method_options": null,
|
||||||
|
"payment_method_types": null
|
||||||
|
},
|
||||||
|
"period_end": 1000000000,
|
||||||
|
"period_start": 1000000000,
|
||||||
|
"post_payment_credit_notes_amount": 0,
|
||||||
|
"pre_payment_credit_notes_amount": 0,
|
||||||
|
"quote": null,
|
||||||
|
"receipt_number": null,
|
||||||
|
"rendering": {
|
||||||
|
"amount_tax_display": null,
|
||||||
|
"pdf": {
|
||||||
|
"page_size": "letter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rendering_options": null,
|
||||||
|
"shipping_cost": null,
|
||||||
|
"shipping_details": null,
|
||||||
|
"starting_balance": -437,
|
||||||
|
"statement_descriptor": "Zulip Plus",
|
||||||
|
"status": "open",
|
||||||
|
"status_transitions": {
|
||||||
|
"finalized_at": 1000000000,
|
||||||
|
"marked_uncollectible_at": null,
|
||||||
|
"paid_at": null,
|
||||||
|
"voided_at": null
|
||||||
|
},
|
||||||
|
"subscription": null,
|
||||||
|
"subscription_details": {
|
||||||
|
"metadata": null
|
||||||
|
},
|
||||||
|
"subtotal": 96000,
|
||||||
|
"subtotal_excluding_tax": 96000,
|
||||||
|
"tax": null,
|
||||||
|
"test_clock": null,
|
||||||
|
"total": 96000,
|
||||||
|
"total_discount_amounts": [],
|
||||||
|
"total_excluding_tax": 96000,
|
||||||
|
"total_tax_amounts": [],
|
||||||
|
"transfer_data": null,
|
||||||
|
"webhooks_delivered_at": null
|
||||||
|
}
|
||||||
@@ -1,164 +1,5 @@
|
|||||||
{
|
{
|
||||||
"data": [
|
"data": [],
|
||||||
{
|
|
||||||
"account_country": "US",
|
|
||||||
"account_name": "Kandra Labs, Inc.",
|
|
||||||
"account_tax_ids": null,
|
|
||||||
"amount_due": 7200,
|
|
||||||
"amount_paid": 0,
|
|
||||||
"amount_remaining": 7200,
|
|
||||||
"amount_shipping": 0,
|
|
||||||
"application": null,
|
|
||||||
"application_fee_amount": null,
|
|
||||||
"attempt_count": 0,
|
|
||||||
"attempted": false,
|
|
||||||
"auto_advance": true,
|
|
||||||
"automatic_tax": {
|
|
||||||
"enabled": false,
|
|
||||||
"status": null
|
|
||||||
},
|
|
||||||
"billing_reason": "manual",
|
|
||||||
"charge": null,
|
|
||||||
"collection_method": "send_invoice",
|
|
||||||
"created": 1000000000,
|
|
||||||
"currency": "usd",
|
|
||||||
"custom_fields": null,
|
|
||||||
"customer": "cus_NORMALIZED0001",
|
|
||||||
"customer_address": null,
|
|
||||||
"customer_email": "king@lear.org",
|
|
||||||
"customer_name": null,
|
|
||||||
"customer_phone": null,
|
|
||||||
"customer_shipping": null,
|
|
||||||
"customer_tax_exempt": "none",
|
|
||||||
"customer_tax_ids": [],
|
|
||||||
"default_payment_method": null,
|
|
||||||
"default_source": null,
|
|
||||||
"default_tax_rates": [],
|
|
||||||
"description": null,
|
|
||||||
"discount": null,
|
|
||||||
"discounts": [],
|
|
||||||
"due_date": 1000000000,
|
|
||||||
"effective_at": 1000000000,
|
|
||||||
"ending_balance": 0,
|
|
||||||
"footer": null,
|
|
||||||
"from_invoice": null,
|
|
||||||
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QMWNxUW43THg4NGxpYkp1WlBGYkc1aEVYWWZuRnBULDkwNzk3MzMw0200l6cI0Ln4?s=ap",
|
|
||||||
"id": "in_NORMALIZED00000000000001",
|
|
||||||
"invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QMWNxUW43THg4NGxpYkp1WlBGYkc1aEVYWWZuRnBULDkwNzk3MzMw0200l6cI0Ln4/pdf?s=ap",
|
|
||||||
"last_finalization_error": null,
|
|
||||||
"latest_revision": null,
|
|
||||||
"lines": {
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"amount": 14400,
|
|
||||||
"amount_excluding_tax": 14400,
|
|
||||||
"currency": "usd",
|
|
||||||
"description": "Zulip Plus - renewal",
|
|
||||||
"discount_amounts": [],
|
|
||||||
"discountable": false,
|
|
||||||
"discounts": [],
|
|
||||||
"id": "il_NORMALIZED00000000000001",
|
|
||||||
"invoice_item": "ii_NORMALIZED00000000000001",
|
|
||||||
"livemode": false,
|
|
||||||
"metadata": {},
|
|
||||||
"object": "line_item",
|
|
||||||
"period": {
|
|
||||||
"end": 1000000000,
|
|
||||||
"start": 1000000000
|
|
||||||
},
|
|
||||||
"plan": null,
|
|
||||||
"price": {
|
|
||||||
"active": false,
|
|
||||||
"billing_scheme": "per_unit",
|
|
||||||
"created": 1000000000,
|
|
||||||
"currency": "usd",
|
|
||||||
"custom_unit_amount": null,
|
|
||||||
"id": "price_NORMALIZED00000000000001",
|
|
||||||
"livemode": false,
|
|
||||||
"lookup_key": null,
|
|
||||||
"metadata": {},
|
|
||||||
"nickname": null,
|
|
||||||
"object": "price",
|
|
||||||
"product": "prod_NORMALIZED0001",
|
|
||||||
"recurring": null,
|
|
||||||
"tax_behavior": "unspecified",
|
|
||||||
"tiers_mode": null,
|
|
||||||
"transform_quantity": null,
|
|
||||||
"type": "one_time",
|
|
||||||
"unit_amount": 1600,
|
|
||||||
"unit_amount_decimal": "1600"
|
|
||||||
},
|
|
||||||
"proration": false,
|
|
||||||
"proration_details": {
|
|
||||||
"credited_items": null
|
|
||||||
},
|
|
||||||
"quantity": 9,
|
|
||||||
"subscription": null,
|
|
||||||
"tax_amounts": [],
|
|
||||||
"tax_rates": [],
|
|
||||||
"type": "invoiceitem",
|
|
||||||
"unit_amount_excluding_tax": "1600"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"has_more": false,
|
|
||||||
"object": "list",
|
|
||||||
"total_count": 1,
|
|
||||||
"url": "/v1/invoices/in_NORMALIZED00000000000001/lines"
|
|
||||||
},
|
|
||||||
"livemode": false,
|
|
||||||
"metadata": {},
|
|
||||||
"next_payment_attempt": null,
|
|
||||||
"number": "NORMALI-0001",
|
|
||||||
"object": "invoice",
|
|
||||||
"on_behalf_of": null,
|
|
||||||
"paid": false,
|
|
||||||
"paid_out_of_band": false,
|
|
||||||
"payment_intent": "pi_NORMALIZED00000000000001",
|
|
||||||
"payment_settings": {
|
|
||||||
"default_mandate": null,
|
|
||||||
"payment_method_options": null,
|
|
||||||
"payment_method_types": null
|
|
||||||
},
|
|
||||||
"period_end": 1000000000,
|
|
||||||
"period_start": 1000000000,
|
|
||||||
"post_payment_credit_notes_amount": 0,
|
|
||||||
"pre_payment_credit_notes_amount": 0,
|
|
||||||
"quote": null,
|
|
||||||
"receipt_number": null,
|
|
||||||
"rendering": {
|
|
||||||
"amount_tax_display": null,
|
|
||||||
"pdf": {
|
|
||||||
"page_size": "letter"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rendering_options": null,
|
|
||||||
"shipping_cost": null,
|
|
||||||
"shipping_details": null,
|
|
||||||
"starting_balance": -7200,
|
|
||||||
"statement_descriptor": "Zulip Plus",
|
|
||||||
"status": "open",
|
|
||||||
"status_transitions": {
|
|
||||||
"finalized_at": 1000000000,
|
|
||||||
"marked_uncollectible_at": null,
|
|
||||||
"paid_at": null,
|
|
||||||
"voided_at": null
|
|
||||||
},
|
|
||||||
"subscription": null,
|
|
||||||
"subscription_details": {
|
|
||||||
"metadata": null
|
|
||||||
},
|
|
||||||
"subtotal": 14400,
|
|
||||||
"subtotal_excluding_tax": 14400,
|
|
||||||
"tax": null,
|
|
||||||
"test_clock": null,
|
|
||||||
"total": 14400,
|
|
||||||
"total_discount_amounts": [],
|
|
||||||
"total_excluding_tax": 14400,
|
|
||||||
"total_tax_amounts": [],
|
|
||||||
"transfer_data": null,
|
|
||||||
"webhooks_delivered_at": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"has_more": false,
|
"has_more": false,
|
||||||
"object": "list",
|
"object": "list",
|
||||||
"url": "/v1/invoices"
|
"url": "/v1/invoices"
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"amount": 14400,
|
"amount": -48000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"customer": "cus_NORMALIZED0001",
|
"customer": "cus_NORMALIZED0001",
|
||||||
"date": 1000000000,
|
"date": 1000000000,
|
||||||
"description": "Zulip Plus - renewal",
|
"description": "Payment (Card ending in 4242)",
|
||||||
"discountable": false,
|
"discountable": false,
|
||||||
"discounts": [],
|
"discounts": [],
|
||||||
"id": "ii_NORMALIZED00000000000001",
|
"id": "ii_NORMALIZED00000000000002",
|
||||||
"invoice": null,
|
"invoice": null,
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -22,26 +22,26 @@
|
|||||||
"created": 1000000000,
|
"created": 1000000000,
|
||||||
"currency": "usd",
|
"currency": "usd",
|
||||||
"custom_unit_amount": null,
|
"custom_unit_amount": null,
|
||||||
"id": "price_NORMALIZED00000000000001",
|
"id": "price_NORMALIZED00000000000002",
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
"lookup_key": null,
|
"lookup_key": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"nickname": null,
|
"nickname": null,
|
||||||
"object": "price",
|
"object": "price",
|
||||||
"product": "prod_NORMALIZED0001",
|
"product": "prod_NORMALIZED0002",
|
||||||
"recurring": null,
|
"recurring": null,
|
||||||
"tax_behavior": "unspecified",
|
"tax_behavior": "unspecified",
|
||||||
"tiers_mode": null,
|
"tiers_mode": null,
|
||||||
"transform_quantity": null,
|
"transform_quantity": null,
|
||||||
"type": "one_time",
|
"type": "one_time",
|
||||||
"unit_amount": 1600,
|
"unit_amount": -48000,
|
||||||
"unit_amount_decimal": "1600"
|
"unit_amount_decimal": "-48000"
|
||||||
},
|
},
|
||||||
"proration": false,
|
"proration": false,
|
||||||
"quantity": 9,
|
"quantity": 1,
|
||||||
"subscription": null,
|
"subscription": null,
|
||||||
"tax_rates": [],
|
"tax_rates": [],
|
||||||
"test_clock": null,
|
"test_clock": null,
|
||||||
"unit_amount": 1600,
|
"unit_amount": -48000,
|
||||||
"unit_amount_decimal": "1600"
|
"unit_amount_decimal": "-48000"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"date": 1000000000,
|
||||||
|
"description": "Zulip Cloud Standard",
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "ii_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "invoiceitem",
|
||||||
|
"period": {
|
||||||
|
"end": 1357095845,
|
||||||
|
"start": 1325473445
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0001",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_rates": [],
|
||||||
|
"test_clock": null,
|
||||||
|
"unit_amount": 8000,
|
||||||
|
"unit_amount_decimal": "8000"
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"amount": 96000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"date": 1000000000,
|
||||||
|
"description": "Zulip Plus - renewal",
|
||||||
|
"discountable": false,
|
||||||
|
"discounts": [],
|
||||||
|
"id": "ii_NORMALIZED00000000000003",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {},
|
||||||
|
"object": "invoiceitem",
|
||||||
|
"period": {
|
||||||
|
"end": 1000000000,
|
||||||
|
"start": 1000000000
|
||||||
|
},
|
||||||
|
"plan": null,
|
||||||
|
"price": {
|
||||||
|
"active": false,
|
||||||
|
"billing_scheme": "per_unit",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"custom_unit_amount": null,
|
||||||
|
"id": "price_NORMALIZED00000000000003",
|
||||||
|
"livemode": false,
|
||||||
|
"lookup_key": null,
|
||||||
|
"metadata": {},
|
||||||
|
"nickname": null,
|
||||||
|
"object": "price",
|
||||||
|
"product": "prod_NORMALIZED0003",
|
||||||
|
"recurring": null,
|
||||||
|
"tax_behavior": "unspecified",
|
||||||
|
"tiers_mode": null,
|
||||||
|
"transform_quantity": null,
|
||||||
|
"type": "one_time",
|
||||||
|
"unit_amount": 16000,
|
||||||
|
"unit_amount_decimal": "16000"
|
||||||
|
},
|
||||||
|
"proration": false,
|
||||||
|
"quantity": 6,
|
||||||
|
"subscription": null,
|
||||||
|
"tax_rates": [],
|
||||||
|
"test_clock": null,
|
||||||
|
"unit_amount": 16000,
|
||||||
|
"unit_amount_decimal": "16000"
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_capturable": 0,
|
||||||
|
"amount_details": {
|
||||||
|
"tip": {}
|
||||||
|
},
|
||||||
|
"amount_received": 48000,
|
||||||
|
"application": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"automatic_payment_methods": null,
|
||||||
|
"canceled_at": null,
|
||||||
|
"cancellation_reason": null,
|
||||||
|
"capture_method": "automatic",
|
||||||
|
"charges": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"amount": 48000,
|
||||||
|
"amount_captured": 48000,
|
||||||
|
"amount_refunded": 0,
|
||||||
|
"application": null,
|
||||||
|
"application_fee": null,
|
||||||
|
"application_fee_amount": null,
|
||||||
|
"balance_transaction": "txn_NORMALIZED00000000000002",
|
||||||
|
"billing_details": {
|
||||||
|
"address": {
|
||||||
|
"city": null,
|
||||||
|
"country": null,
|
||||||
|
"line1": null,
|
||||||
|
"line2": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"state": null
|
||||||
|
},
|
||||||
|
"email": null,
|
||||||
|
"name": null,
|
||||||
|
"phone": null
|
||||||
|
},
|
||||||
|
"calculated_statement_descriptor": "ZULIP CLOUD STANDARD",
|
||||||
|
"captured": true,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Upgrade to Zulip Cloud Standard, $80.0 x 6",
|
||||||
|
"destination": null,
|
||||||
|
"dispute": null,
|
||||||
|
"disputed": false,
|
||||||
|
"failure_balance_transaction": null,
|
||||||
|
"failure_code": null,
|
||||||
|
"failure_message": null,
|
||||||
|
"fraud_details": {},
|
||||||
|
"id": "ch_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"billing_modality": "charge_automatically",
|
||||||
|
"billing_schedule": "1",
|
||||||
|
"license_management": "automatic",
|
||||||
|
"licenses": "6",
|
||||||
|
"price_per_license": "8000",
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip",
|
||||||
|
"seat_count": "6",
|
||||||
|
"type": "upgrade",
|
||||||
|
"user_email": "hamlet@zulip.com",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"object": "charge",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"order": null,
|
||||||
|
"outcome": {
|
||||||
|
"network_status": "approved_by_network",
|
||||||
|
"reason": null,
|
||||||
|
"risk_level": "normal",
|
||||||
|
"risk_score": 0,
|
||||||
|
"seller_message": "Payment complete.",
|
||||||
|
"type": "authorized"
|
||||||
|
},
|
||||||
|
"paid": true,
|
||||||
|
"payment_intent": "pi_NORMALIZED00000000000001",
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_details": {
|
||||||
|
"card": {
|
||||||
|
"amount_authorized": 48000,
|
||||||
|
"brand": "visa",
|
||||||
|
"checks": {
|
||||||
|
"address_line1_check": null,
|
||||||
|
"address_postal_code_check": null,
|
||||||
|
"cvc_check": "pass"
|
||||||
|
},
|
||||||
|
"country": "US",
|
||||||
|
"exp_month": 11,
|
||||||
|
"exp_year": 2024,
|
||||||
|
"extended_authorization": {
|
||||||
|
"status": "disabled"
|
||||||
|
},
|
||||||
|
"fingerprint": "NORMALIZED000001",
|
||||||
|
"funding": "credit",
|
||||||
|
"incremental_authorization": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"installments": null,
|
||||||
|
"last4": "4242",
|
||||||
|
"mandate": null,
|
||||||
|
"multicapture": {
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"network": "visa",
|
||||||
|
"network_token": {
|
||||||
|
"used": false
|
||||||
|
},
|
||||||
|
"overcapture": {
|
||||||
|
"maximum_amount_capturable": 48000,
|
||||||
|
"status": "unavailable"
|
||||||
|
},
|
||||||
|
"three_d_secure": null,
|
||||||
|
"wallet": null
|
||||||
|
},
|
||||||
|
"type": "card"
|
||||||
|
},
|
||||||
|
"receipt_email": "hamlet@zulip.com",
|
||||||
|
"receipt_number": null,
|
||||||
|
"receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKL7c-6oGMgaYBsyBLkU6LBY06AqW4sG6Nuedb6GO0h-2XftyTbkGsSZgOqR7dVByEEd6Kg45YU78TWSi",
|
||||||
|
"refunded": false,
|
||||||
|
"refunds": {
|
||||||
|
"data": [],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 0,
|
||||||
|
"url": "/v1/charges/ch_NORMALIZED00000000000001/refunds"
|
||||||
|
},
|
||||||
|
"review": null,
|
||||||
|
"shipping": null,
|
||||||
|
"source": null,
|
||||||
|
"source_transfer": null,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"statement_descriptor_suffix": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"transfer_data": null,
|
||||||
|
"transfer_group": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": false,
|
||||||
|
"object": "list",
|
||||||
|
"total_count": 1,
|
||||||
|
"url": "/v1/charges?payment_intent=pi_NORMALIZED00000000000001"
|
||||||
|
},
|
||||||
|
"client_secret": "pi_NORMALIZED00000000000001_secret_8LrrfmEMVbU1QNd1Y1e4LW91d",
|
||||||
|
"confirmation_method": "automatic",
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": "usd",
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": "Upgrade to Zulip Cloud Standard, $80.0 x 6",
|
||||||
|
"id": "pi_NORMALIZED00000000000001",
|
||||||
|
"invoice": null,
|
||||||
|
"last_payment_error": null,
|
||||||
|
"latest_charge": "ch_NORMALIZED00000000000001",
|
||||||
|
"livemode": false,
|
||||||
|
"metadata": {
|
||||||
|
"billing_modality": "charge_automatically",
|
||||||
|
"billing_schedule": "1",
|
||||||
|
"license_management": "automatic",
|
||||||
|
"licenses": "6",
|
||||||
|
"price_per_license": "8000",
|
||||||
|
"realm_id": "1",
|
||||||
|
"realm_str": "zulip",
|
||||||
|
"seat_count": "6",
|
||||||
|
"type": "upgrade",
|
||||||
|
"user_email": "hamlet@zulip.com",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"next_action": null,
|
||||||
|
"object": "payment_intent",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {
|
||||||
|
"card": {
|
||||||
|
"installments": null,
|
||||||
|
"mandate_options": null,
|
||||||
|
"network": null,
|
||||||
|
"request_three_d_secure": "automatic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"processing": null,
|
||||||
|
"receipt_email": "hamlet@zulip.com",
|
||||||
|
"review": null,
|
||||||
|
"setup_future_usage": null,
|
||||||
|
"shipping": null,
|
||||||
|
"source": null,
|
||||||
|
"statement_descriptor": "Zulip Cloud Standard",
|
||||||
|
"statement_descriptor_suffix": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"transfer_data": null,
|
||||||
|
"transfer_group": null
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"application": null,
|
||||||
|
"automatic_payment_methods": null,
|
||||||
|
"cancellation_reason": null,
|
||||||
|
"client_secret": "seti_1OFWD8DEQaroqDjsu3EeopFr_secret_P3dUrWNNNJDJda9CTGTiu6kWd7e78Hc",
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": null,
|
||||||
|
"flow_directions": null,
|
||||||
|
"id": "seti_1OFWD8DEQaroqDjsu3EeopFr",
|
||||||
|
"last_setup_error": null,
|
||||||
|
"latest_attempt": "setatt_1OFWD8DEQaroqDjs0k9wJgDn",
|
||||||
|
"livemode": false,
|
||||||
|
"mandate": null,
|
||||||
|
"metadata": {},
|
||||||
|
"next_action": null,
|
||||||
|
"object": "setup_intent",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {
|
||||||
|
"card": {
|
||||||
|
"mandate_options": null,
|
||||||
|
"network": null,
|
||||||
|
"request_three_d_secure": "automatic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"single_use_mandate": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"usage": "off_session"
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"application": null,
|
||||||
|
"automatic_payment_methods": null,
|
||||||
|
"cancellation_reason": null,
|
||||||
|
"client_secret": "seti_1OFWD6DEQaroqDjs3zCoSlTZ_secret_P3dUwq68OPuVM1iVvU4GAg9oUOC6CxQ",
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": null,
|
||||||
|
"flow_directions": null,
|
||||||
|
"id": "seti_1OFWD6DEQaroqDjs3zCoSlTZ",
|
||||||
|
"last_setup_error": null,
|
||||||
|
"latest_attempt": null,
|
||||||
|
"livemode": false,
|
||||||
|
"mandate": null,
|
||||||
|
"metadata": {},
|
||||||
|
"next_action": null,
|
||||||
|
"object": "setup_intent",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"payment_method": null,
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {
|
||||||
|
"card": {
|
||||||
|
"mandate_options": null,
|
||||||
|
"network": null,
|
||||||
|
"request_three_d_secure": "automatic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"single_use_mandate": null,
|
||||||
|
"status": "requires_payment_method",
|
||||||
|
"usage": "off_session"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": true,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/setup_intents"
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"application": null,
|
||||||
|
"automatic_payment_methods": null,
|
||||||
|
"cancellation_reason": null,
|
||||||
|
"client_secret": "seti_1OFWD8DEQaroqDjsu3EeopFr_secret_P3dUrWNNNJDJda9CTGTiu6kWd7e78Hc",
|
||||||
|
"created": 1000000000,
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"description": null,
|
||||||
|
"flow_directions": null,
|
||||||
|
"id": "seti_1OFWD8DEQaroqDjsu3EeopFr",
|
||||||
|
"last_setup_error": null,
|
||||||
|
"latest_attempt": "setatt_1OFWD8DEQaroqDjs0k9wJgDn",
|
||||||
|
"livemode": false,
|
||||||
|
"mandate": null,
|
||||||
|
"metadata": {},
|
||||||
|
"next_action": null,
|
||||||
|
"object": "setup_intent",
|
||||||
|
"on_behalf_of": null,
|
||||||
|
"payment_method": "pm_1OFWD8DEQaroqDjsbeQean1W",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {
|
||||||
|
"card": {
|
||||||
|
"mandate_options": null,
|
||||||
|
"network": null,
|
||||||
|
"request_three_d_secure": "automatic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"single_use_mandate": null,
|
||||||
|
"status": "succeeded",
|
||||||
|
"usage": "off_session"
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
{
|
||||||
|
"after_expiration": null,
|
||||||
|
"allow_promotion_codes": null,
|
||||||
|
"amount_subtotal": null,
|
||||||
|
"amount_total": null,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_address_collection": null,
|
||||||
|
"cancel_url": "http://zulip.testserver/upgrade/",
|
||||||
|
"client_reference_id": null,
|
||||||
|
"client_secret": null,
|
||||||
|
"consent": null,
|
||||||
|
"consent_collection": null,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"currency_conversion": null,
|
||||||
|
"custom_fields": [],
|
||||||
|
"custom_text": {
|
||||||
|
"shipping_address": null,
|
||||||
|
"submit": null,
|
||||||
|
"terms_of_service_acceptance": null
|
||||||
|
},
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_creation": null,
|
||||||
|
"customer_details": {
|
||||||
|
"address": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"name": null,
|
||||||
|
"phone": null,
|
||||||
|
"tax_exempt": null,
|
||||||
|
"tax_ids": null
|
||||||
|
},
|
||||||
|
"customer_email": null,
|
||||||
|
"expires_at": 1000000000,
|
||||||
|
"id": "cs_test_NORMALIZED02G79EQYyYv79XCeVMX78daZGkrG0fTQA9XJtnRTLvJd6WzC",
|
||||||
|
"invoice": null,
|
||||||
|
"invoice_creation": null,
|
||||||
|
"livemode": false,
|
||||||
|
"locale": null,
|
||||||
|
"metadata": {
|
||||||
|
"type": "card_update",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"mode": "setup",
|
||||||
|
"object": "checkout.session",
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_link": null,
|
||||||
|
"payment_method_collection": "always",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"payment_status": "no_payment_required",
|
||||||
|
"phone_number_collection": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"recovered_from": null,
|
||||||
|
"setup_intent": "seti_1OFWD6DEQaroqDjs3zCoSlTZ",
|
||||||
|
"shipping": null,
|
||||||
|
"shipping_address_collection": null,
|
||||||
|
"shipping_options": [],
|
||||||
|
"shipping_rate": null,
|
||||||
|
"status": "open",
|
||||||
|
"submit_type": null,
|
||||||
|
"subscription": null,
|
||||||
|
"success_url": "http://zulip.testserver/billing/event_status?stripe_session_id={CHECKOUT_SESSION_ID}",
|
||||||
|
"total_details": null,
|
||||||
|
"ui_mode": "hosted",
|
||||||
|
"url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED02G79EQYyYv79XCeVMX78daZGkrG0fTQA9XJtnRTLvJd6WzC#fidkdWxOYHwnPyd1blpxYHZxWl1UZjFOczZJXUE2PUpzUWNPV2ZpdlFzUCcpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBaZmppcGhrJyknYGtkZ2lgVWlkZmBtamlhYHd2Jz9xd3BgeCUl"
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"after_expiration": null,
|
||||||
|
"allow_promotion_codes": null,
|
||||||
|
"amount_subtotal": null,
|
||||||
|
"amount_total": null,
|
||||||
|
"automatic_tax": {
|
||||||
|
"enabled": false,
|
||||||
|
"status": null
|
||||||
|
},
|
||||||
|
"billing_address_collection": null,
|
||||||
|
"cancel_url": "http://zulip.testserver/upgrade/",
|
||||||
|
"client_reference_id": null,
|
||||||
|
"client_secret": null,
|
||||||
|
"consent": null,
|
||||||
|
"consent_collection": null,
|
||||||
|
"created": 1000000000,
|
||||||
|
"currency": null,
|
||||||
|
"currency_conversion": null,
|
||||||
|
"custom_fields": [],
|
||||||
|
"custom_text": {
|
||||||
|
"shipping_address": null,
|
||||||
|
"submit": null,
|
||||||
|
"terms_of_service_acceptance": null
|
||||||
|
},
|
||||||
|
"customer": "cus_NORMALIZED0001",
|
||||||
|
"customer_creation": null,
|
||||||
|
"customer_details": {
|
||||||
|
"address": null,
|
||||||
|
"email": "hamlet@zulip.com",
|
||||||
|
"name": null,
|
||||||
|
"phone": null,
|
||||||
|
"tax_exempt": null,
|
||||||
|
"tax_ids": null
|
||||||
|
},
|
||||||
|
"customer_email": null,
|
||||||
|
"expires_at": 1000000000,
|
||||||
|
"id": "cs_test_NORMALIZED02G79EQYyYv79XCeVMX78daZGkrG0fTQA9XJtnRTLvJd6WzC",
|
||||||
|
"invoice": null,
|
||||||
|
"invoice_creation": null,
|
||||||
|
"livemode": false,
|
||||||
|
"locale": null,
|
||||||
|
"metadata": {
|
||||||
|
"type": "card_update",
|
||||||
|
"user_id": "10"
|
||||||
|
},
|
||||||
|
"mode": "setup",
|
||||||
|
"object": "checkout.session",
|
||||||
|
"payment_intent": null,
|
||||||
|
"payment_link": null,
|
||||||
|
"payment_method_collection": "always",
|
||||||
|
"payment_method_configuration_details": null,
|
||||||
|
"payment_method_options": {},
|
||||||
|
"payment_method_types": [
|
||||||
|
"card"
|
||||||
|
],
|
||||||
|
"payment_status": "no_payment_required",
|
||||||
|
"phone_number_collection": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"recovered_from": null,
|
||||||
|
"setup_intent": "seti_1OFWD6DEQaroqDjs3zCoSlTZ",
|
||||||
|
"shipping": null,
|
||||||
|
"shipping_address_collection": null,
|
||||||
|
"shipping_options": [],
|
||||||
|
"shipping_rate": null,
|
||||||
|
"status": "open",
|
||||||
|
"submit_type": null,
|
||||||
|
"subscription": null,
|
||||||
|
"success_url": "http://zulip.testserver/billing/event_status?stripe_session_id={CHECKOUT_SESSION_ID}",
|
||||||
|
"total_details": null,
|
||||||
|
"ui_mode": "hosted",
|
||||||
|
"url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED02G79EQYyYv79XCeVMX78daZGkrG0fTQA9XJtnRTLvJd6WzC#fidkdWxOYHwnPyd1blpxYHZxWl1UZjFOczZJXUE2PUpzUWNPV2ZpdlFzUCcpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBaZmppcGhrJyknYGtkZ2lgVWlkZmBtamlhYHd2Jz9xd3BgeCUl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_more": true,
|
||||||
|
"object": "list",
|
||||||
|
"url": "/v1/checkout/sessions"
|
||||||
|
}
|
||||||
@@ -67,7 +67,6 @@ from corporate.lib.stripe import (
|
|||||||
sign_string,
|
sign_string,
|
||||||
stripe_customer_has_credit_card_as_default_payment_method,
|
stripe_customer_has_credit_card_as_default_payment_method,
|
||||||
stripe_get_customer,
|
stripe_get_customer,
|
||||||
switch_realm_from_standard_to_plus_plan,
|
|
||||||
unsign_string,
|
unsign_string,
|
||||||
update_license_ledger_for_automanaged_plan,
|
update_license_ledger_for_automanaged_plan,
|
||||||
update_license_ledger_for_manual_plan,
|
update_license_ledger_for_manual_plan,
|
||||||
@@ -78,6 +77,7 @@ from corporate.lib.support import (
|
|||||||
approve_realm_sponsorship,
|
approve_realm_sponsorship,
|
||||||
attach_discount_to_realm,
|
attach_discount_to_realm,
|
||||||
get_discount_for_realm,
|
get_discount_for_realm,
|
||||||
|
switch_realm_from_standard_to_plus_plan,
|
||||||
update_realm_billing_method,
|
update_realm_billing_method,
|
||||||
update_realm_sponsorship_status,
|
update_realm_sponsorship_status,
|
||||||
)
|
)
|
||||||
@@ -3508,13 +3508,15 @@ class StripeTest(StripeTestCase):
|
|||||||
self.assertEqual(row.email_expected_to_be_sent, email_found)
|
self.assertEqual(row.email_expected_to_be_sent, email_found)
|
||||||
|
|
||||||
@mock_stripe()
|
@mock_stripe()
|
||||||
def test_switch_realm_from_standard_to_plus_plan(self, *mock: Mock) -> None:
|
def test_change_plan_tier_from_standard_to_plus(self, *mock: Mock) -> None:
|
||||||
iago = self.example_user("iago")
|
iago = self.example_user("iago")
|
||||||
realm = iago.realm
|
realm = iago.realm
|
||||||
|
iago_billing_session = RealmBillingSession(iago)
|
||||||
|
iago_billing_session.update_or_create_customer()
|
||||||
|
|
||||||
# Test upgrading to Plus when realm has no active subscription
|
# Test upgrading to Plus when realm has no active subscription
|
||||||
with self.assertRaises(BillingError) as billing_context:
|
with self.assertRaises(BillingError) as billing_context:
|
||||||
switch_realm_from_standard_to_plus_plan(realm)
|
iago_billing_session.do_change_plan_to_new_tier(CustomerPlan.PLUS)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"Organization does not have an active plan",
|
"Organization does not have an active plan",
|
||||||
billing_context.exception.error_description,
|
billing_context.exception.error_description,
|
||||||
@@ -3525,14 +3527,15 @@ class StripeTest(StripeTestCase):
|
|||||||
)
|
)
|
||||||
# Test upgrading to Plus when realm has no stripe_customer_id
|
# Test upgrading to Plus when realm has no stripe_customer_id
|
||||||
with self.assertRaises(BillingError) as billing_context:
|
with self.assertRaises(BillingError) as billing_context:
|
||||||
switch_realm_from_standard_to_plus_plan(realm)
|
iago_billing_session.do_change_plan_to_new_tier(CustomerPlan.PLUS)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"Organization missing Stripe customer.", billing_context.exception.error_description
|
"Organization missing Stripe customer.", billing_context.exception.error_description
|
||||||
)
|
)
|
||||||
|
|
||||||
king = self.lear_user("king")
|
king = self.lear_user("king")
|
||||||
realm = king.realm
|
realm = king.realm
|
||||||
customer = RealmBillingSession(king).update_or_create_stripe_customer()
|
king_billing_session = RealmBillingSession(king)
|
||||||
|
customer = king_billing_session.update_or_create_stripe_customer()
|
||||||
plan = CustomerPlan.objects.create(
|
plan = CustomerPlan.objects.create(
|
||||||
customer=customer,
|
customer=customer,
|
||||||
automanage_licenses=True,
|
automanage_licenses=True,
|
||||||
@@ -3553,7 +3556,13 @@ class StripeTest(StripeTestCase):
|
|||||||
plan.price_per_license = get_price_per_license(CustomerPlan.STANDARD, CustomerPlan.MONTHLY)
|
plan.price_per_license = get_price_per_license(CustomerPlan.STANDARD, CustomerPlan.MONTHLY)
|
||||||
plan.save(update_fields=["invoiced_through", "price_per_license"])
|
plan.save(update_fields=["invoiced_through", "price_per_license"])
|
||||||
|
|
||||||
switch_realm_from_standard_to_plus_plan(realm)
|
with self.assertRaises(BillingError) as billing_context:
|
||||||
|
king_billing_session.do_change_plan_to_new_tier(CustomerPlan.STANDARD)
|
||||||
|
self.assertEqual(
|
||||||
|
"Invalid change of customer plan tier.", billing_context.exception.error_description
|
||||||
|
)
|
||||||
|
|
||||||
|
king_billing_session.do_change_plan_to_new_tier(CustomerPlan.PLUS)
|
||||||
|
|
||||||
plan.refresh_from_db()
|
plan.refresh_from_db()
|
||||||
self.assertEqual(plan.status, CustomerPlan.ENDED)
|
self.assertEqual(plan.status, CustomerPlan.ENDED)
|
||||||
@@ -4838,3 +4847,20 @@ class TestSupportBillingHelpers(StripeTestCase):
|
|||||||
expected_extra_data = {"charge_automatically": plan.charge_automatically}
|
expected_extra_data = {"charge_automatically": plan.charge_automatically}
|
||||||
self.assertEqual(realm_audit_log.acting_user, iago)
|
self.assertEqual(realm_audit_log.acting_user, iago)
|
||||||
self.assertEqual(realm_audit_log.extra_data, expected_extra_data)
|
self.assertEqual(realm_audit_log.extra_data, expected_extra_data)
|
||||||
|
|
||||||
|
@mock_stripe()
|
||||||
|
def test_switch_realm_from_standard_to_plus_plan(self, *mocks: Mock) -> None:
|
||||||
|
user = self.example_user("hamlet")
|
||||||
|
self.login_user(user)
|
||||||
|
self.add_card_and_upgrade(user)
|
||||||
|
customer = get_customer_by_realm(user.realm)
|
||||||
|
assert customer is not None
|
||||||
|
original_plan = get_current_plan_by_customer(customer)
|
||||||
|
assert original_plan is not None
|
||||||
|
self.assertEqual(original_plan.tier, CustomerPlan.STANDARD)
|
||||||
|
|
||||||
|
switch_realm_from_standard_to_plus_plan(user.realm)
|
||||||
|
customer.refresh_from_db()
|
||||||
|
new_plan = get_current_plan_by_customer(customer)
|
||||||
|
assert new_plan is not None
|
||||||
|
self.assertEqual(new_plan.tier, CustomerPlan.PLUS)
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ from typing_extensions import override
|
|||||||
from zerver.lib.management import ZulipBaseCommand
|
from zerver.lib.management import ZulipBaseCommand
|
||||||
|
|
||||||
if settings.BILLING_ENABLED:
|
if settings.BILLING_ENABLED:
|
||||||
from corporate.lib.stripe import switch_realm_from_standard_to_plus_plan
|
from corporate.lib.stripe import RealmBillingSession
|
||||||
|
from corporate.models import CustomerPlan
|
||||||
|
|
||||||
|
|
||||||
class Command(ZulipBaseCommand):
|
class Command(ZulipBaseCommand):
|
||||||
@@ -23,4 +24,5 @@ class Command(ZulipBaseCommand):
|
|||||||
raise CommandError("No realm found.")
|
raise CommandError("No realm found.")
|
||||||
|
|
||||||
if settings.BILLING_ENABLED:
|
if settings.BILLING_ENABLED:
|
||||||
switch_realm_from_standard_to_plus_plan(realm)
|
billing_session = RealmBillingSession(realm=realm)
|
||||||
|
billing_session.do_change_plan_to_new_tier(new_plan_tier=CustomerPlan.PLUS)
|
||||||
|
|||||||
Reference in New Issue
Block a user