diff --git a/corporate/lib/stripe.py b/corporate/lib/stripe.py index 1dd6635bd5..7ab2d53681 100644 --- a/corporate/lib/stripe.py +++ b/corporate/lib/stripe.py @@ -753,6 +753,37 @@ class BillingSession(ABC): def org_name(self) -> str: pass + def get_past_invoices_session_url(self) -> str: + headline = "List of past invoices" + customer = self.get_customer() + assert customer is not None and customer.stripe_customer_id is not None + + # Check if customer has any $0 invoices. + if stripe.Invoice.list( + customer=customer.stripe_customer_id, + limit=1, + status="paid", + total=0, + ).data: # nocoverage + # These are payment for upgrades which were paid directly by the customer and then we + # created an invoice for them resulting in `$0` invoices since there was no amount due. + headline += " ($0 invoices include payment)" + + configuration = stripe.billing_portal.Configuration.create( + business_profile={ + "headline": headline, + }, + features={ + "invoice_history": {"enabled": True}, + }, + ) + + return stripe.billing_portal.Session.create( + customer=customer.stripe_customer_id, + configuration=configuration.id, + return_url=f"{self.billing_session_url}/billing/", + ).url + def get_data_for_stripe_payment_intent( self, customer: Customer, diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.create.1.json new file mode 100644 index 0000000000..593a07ed0c --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.create.1.json @@ -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": null, + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.modify.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.modify.1.json new file mode 100644 index 0000000000..0da050302e --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.modify.1.json @@ -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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.1.json new file mode 100644 index 0000000000..2dea1126ff --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.1.json @@ -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": 2, + "exp_year": 2025, + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.2.json new file mode 100644 index 0000000000..2dea1126ff --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.2.json @@ -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": 2, + "exp_year": 2025, + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.3.json new file mode 100644 index 0000000000..2dea1126ff --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.3.json @@ -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": 2, + "exp_year": 2025, + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.4.json new file mode 100644 index 0000000000..2dea1126ff --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Customer.retrieve.4.json @@ -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": 2, + "exp_year": 2025, + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.1.json new file mode 100644 index 0000000000..c54d1dbd37 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.1.json @@ -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_1OfcdLDEQaroqDjsXSUKmWIH", + "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_1OfcdNDEQaroqDjsvddzNdlp", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0001", + "idempotency_key": "8f66d6a3-cecc-415e-9e4f-07beb9ff2185" + }, + "type": "customer.updated" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.2.json new file mode 100644 index 0000000000..7d75ac966a --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.2.json @@ -0,0 +1,451 @@ +{ + "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_NORMALIZED00000000000001", + "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", + "plan_tier": "1", + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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": 2, + "exp_year": 2025, + "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" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKOC3960GMgaqP9LAcLo6LBan7GeaybWKW1jdiLwMLJn4DNE7Rd73Kwyr0vqZJ4Y5TeSuBIrJtH5JjVD7", + "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_0hB3duqTL0rR36B6fGxiZYDRK", + "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", + "plan_tier": "1", + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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_3OfcdPDEQaroqDjs1fcJjc9i", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "5f071969-f51e-4e9b-a2fc-e728a4753492" + }, + "type": "payment_intent.succeeded" + }, + { + "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_NORMALIZED00000000000001", + "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", + "plan_tier": "1", + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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": 2, + "exp_year": 2025, + "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" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKOC3960GMgbjmwD1ayA6LBZUIqi_Piu5yYdea4I6pErb12NGfUyvObSqEohU2p1EDJNWn6sqUBMlM-BF", + "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_3OfcdPDEQaroqDjs1O1lUuob", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "5f071969-f51e-4e9b-a2fc-e728a4753492" + }, + "type": "charge.succeeded" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 48000, + "amount_capturable": 0, + "amount_details": { + "tip": {} + }, + "amount_received": 0, + "application": null, + "application_fee_amount": null, + "automatic_payment_methods": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "data": [], + "has_more": false, + "object": "list", + "total_count": 0, + "url": "/v1/charges?payment_intent=pi_NORMALIZED00000000000001" + }, + "client_secret": "pi_NORMALIZED00000000000001_secret_0hB3duqTL0rR36B6fGxiZYDRK", + "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": null, + "livemode": false, + "metadata": { + "billing_modality": "charge_automatically", + "billing_schedule": "1", + "license_management": "automatic", + "licenses": "6", + "plan_tier": "1", + "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": null, + "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": "requires_payment_method", + "transfer_data": null, + "transfer_group": null + } + }, + "id": "evt_3OfcdPDEQaroqDjs1Txskfo7", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "5f071969-f51e-4e9b-a2fc-e728a4753492" + }, + "type": "payment_intent.created" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.3.json new file mode 100644 index 0000000000..a4196576fb --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.3.json @@ -0,0 +1,658 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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_1OfcdTDEQaroqDjsMy7vp16R", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "e9430656-0bc6-4a7b-974d-979ba44002a1" + }, + "type": "invoice.updated" + }, + { + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "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_1OfcdSDEQaroqDjsDC86uAGG", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0004", + "idempotency_key": "75ef0df9-8f7f-4987-b1f4-a6d551212632" + }, + "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_1OfcdRDEQaroqDjsoWyKUB6P", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0005", + "idempotency_key": "704f18c9-33d7-4917-a5bb-9050df0273c4" + }, + "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_1OfcdRDEQaroqDjskAH3lj59", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "2af492ab-6853-4356-80eb-407e96763fbd" + }, + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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_1OfcdRDEQaroqDjssa3eEqw4", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "2af492ab-6853-4356-80eb-407e96763fbd" + }, + "type": "customer.updated" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.4.json new file mode 100644 index 0000000000..a3dad38aca --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.4.json @@ -0,0 +1,461 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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-0002", + "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_1OfcdTDEQaroqDjs8BPMGSmg", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "e9430656-0bc6-4a7b-974d-979ba44002a1" + }, + "type": "invoice.paid" + }, + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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-0002", + "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_1OfcdTDEQaroqDjsgQ0lO525", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "e9430656-0bc6-4a7b-974d-979ba44002a1" + }, + "type": "invoice.finalized" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.5.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.5.json new file mode 100644 index 0000000000..c461417590 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.5.json @@ -0,0 +1,234 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEx0200ZkryrZjL/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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-0002", + "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_1OfcdTDEQaroqDjsK5IjgigP", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "e9430656-0bc6-4a7b-974d-979ba44002a1" + }, + "type": "invoice.payment_succeeded" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.6.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.6.json new file mode 100644 index 0000000000..6d922067af --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Event.list.6.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.create.1.json new file mode 100644 index 0000000000..465e21090c --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.create.1.json @@ -0,0 +1,212 @@ +{ + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.finalize_invoice.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.finalize_invoice.1.json new file mode 100644 index 0000000000..cb7902819f --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.finalize_invoice.1.json @@ -0,0 +1,212 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEw02007vyAYNEc?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEw02007vyAYNEc/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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-0002", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.1.json new file mode 100644 index 0000000000..e39960ab72 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.1.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.2.json new file mode 100644 index 0000000000..105096b5f5 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--Invoice.list.2.json @@ -0,0 +1,219 @@ +{ + "data": [ + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEy0200hPeQ7eAQ?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWk9ub3M4M2pabEZ3cUYzOW5ybnpLeTV3YkJwLDk3NDgyMjEy0200hPeQ7eAQ/pdf?s=ap", + "issuer": { + "type": "self" + }, + "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-0002", + "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": 1000000000 + } + ], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.1.json new file mode 100644 index 0000000000..fcb1c3c2e9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.1.json @@ -0,0 +1,47 @@ +{ + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.2.json new file mode 100644 index 0000000000..11622f30a7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--InvoiceItem.create.2.json @@ -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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--PaymentIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--PaymentIntent.create.1.json new file mode 100644 index 0000000000..0db9f0bcc9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--PaymentIntent.create.1.json @@ -0,0 +1,200 @@ +{ + "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_NORMALIZED00000000000001", + "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", + "plan_tier": "1", + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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": 2, + "exp_year": 2025, + "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" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKOC3960GMgYB6k5NnCM6LBYSwiHOdRC9apAv2FAhgooIYpOvUzGoebX10FyXScprN2z37_P_NSFKtUVi", + "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_0hB3duqTL0rR36B6fGxiZYDRK", + "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", + "plan_tier": "1", + "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_1OfcdLDEQaroqDjsXSUKmWIH", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.create.1.json new file mode 100644 index 0000000000..42ba5327a9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.create.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcdLDEQaroqDjsk9Dwt9T4_secret_PUbrHbxG1XNzSHyiNPH5WwIEX4jbNn0", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcdLDEQaroqDjsk9Dwt9T4", + "last_setup_error": null, + "latest_attempt": "setatt_1OfcdLDEQaroqDjseN6AJqXp", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcdLDEQaroqDjsXSUKmWIH", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.list.1.json new file mode 100644 index 0000000000..8bce04eaef --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.list.1.json @@ -0,0 +1,41 @@ +{ + "data": [ + { + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcdJDEQaroqDjskt9xFU9V_secret_PUbrVi5cpDmcAQQmQOCulDgIflghYLN", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcdJDEQaroqDjskt9xFU9V", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.retrieve.1.json new file mode 100644 index 0000000000..42ba5327a9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--SetupIntent.retrieve.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcdLDEQaroqDjsk9Dwt9T4_secret_PUbrHbxG1XNzSHyiNPH5WwIEX4jbNn0", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcdLDEQaroqDjsk9Dwt9T4", + "last_setup_error": null, + "latest_attempt": "setatt_1OfcdLDEQaroqDjseN6AJqXp", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcdLDEQaroqDjsXSUKmWIH", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Configuration.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Configuration.create.1.json new file mode 100644 index 0000000000..1e5f4cf12d --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Configuration.create.1.json @@ -0,0 +1,56 @@ +{ + "active": true, + "application": null, + "business_profile": { + "headline": "List of past invoices ($0 invoices include payment)", + "privacy_policy_url": null, + "terms_of_service_url": null + }, + "created": 1000000000, + "default_return_url": null, + "features": { + "customer_update": { + "allowed_updates": [], + "enabled": false + }, + "invoice_history": { + "enabled": true + }, + "payment_method_update": { + "enabled": false + }, + "subscription_cancel": { + "cancellation_reason": { + "enabled": false, + "options": [ + "too_expensive", + "missing_features", + "switched_service", + "unused", + "other" + ] + }, + "enabled": false, + "mode": "at_period_end", + "proration_behavior": "none" + }, + "subscription_pause": { + "enabled": false + }, + "subscription_update": { + "default_allowed_updates": [], + "enabled": false, + "proration_behavior": "none" + } + }, + "id": "bpc_1OfcdVDEQaroqDjsWrk74YjD", + "is_default": false, + "livemode": false, + "login_page": { + "enabled": false, + "url": null + }, + "metadata": {}, + "object": "billing_portal.configuration", + "updated": 1000000000 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Session.create.1.json new file mode 100644 index 0000000000..788bcbc7e0 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--billing_portal.Session.create.1.json @@ -0,0 +1,13 @@ +{ + "configuration": "bpc_1OfcdVDEQaroqDjsWrk74YjD", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "flow": null, + "id": "bps_1OfcdVDEQaroqDjs2fFXMO0C", + "livemode": false, + "locale": null, + "object": "billing_portal.session", + "on_behalf_of": null, + "return_url": "http://zulip.testserver/billing/", + "url": "https://billing.stripe.com/p/session/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyWjB0MTJjamdwNWpQbzV5Y2RaWkM3RFo3R2Q00100FGDR5P76" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.create.1.json new file mode 100644 index 0000000000..4dfb93427b --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.create.1.json @@ -0,0 +1,75 @@ +{ + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://zulip.testserver/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED02fud6bHHruqRS2buP96odl51EzjhaKHX01NjUHVylFMMDgP", + "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_1OfcdJDEQaroqDjskt9xFU9V", + "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_NORMALIZED02fud6bHHruqRS2buP96odl51EzjhaKHX01NjUHVylFMMDgP#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.list.1.json new file mode 100644 index 0000000000..9c7621661f --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url--checkout.Session.list.1.json @@ -0,0 +1,82 @@ +{ + "data": [ + { + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://zulip.testserver/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED02fud6bHHruqRS2buP96odl51EzjhaKHX01NjUHVylFMMDgP", + "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_1OfcdJDEQaroqDjskt9xFU9V", + "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_NORMALIZED02fud6bHHruqRS2buP96odl51EzjhaKHX01NjUHVylFMMDgP#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/checkout/sessions" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.create.1.json new file mode 100644 index 0000000000..f163efc1bc --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.create.1.json @@ -0,0 +1,33 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": null, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.modify.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.modify.1.json new file mode 100644 index 0000000000..a143863da7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.modify.1.json @@ -0,0 +1,33 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.1.json new file mode 100644 index 0000000000..39c31864d2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.1.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "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": 2, + "exp_year": 2025, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.2.json new file mode 100644 index 0000000000..39c31864d2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.2.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "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": 2, + "exp_year": 2025, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.3.json new file mode 100644 index 0000000000..39c31864d2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.3.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "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": 2, + "exp_year": 2025, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.4.json new file mode 100644 index 0000000000..39c31864d2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Customer.retrieve.4.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "zulip.testserver f339ce97-93f", + "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": 2, + "exp_year": 2025, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.1.json new file mode 100644 index 0000000000..aaa7abefa9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.1.json @@ -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.testserver f339ce97-93f", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "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_1Ofce7DEQaroqDjsVipnjmNT", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0001", + "idempotency_key": "b005e435-1b96-4c1e-ad04-6921e9f4f487" + }, + "type": "customer.updated" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.2.json new file mode 100644 index 0000000000..d99fff8db0 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.2.json @@ -0,0 +1,360 @@ +{ + "data": [ + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 176000, + "amount_capturable": 0, + "amount_details": { + "tip": {} + }, + "amount_received": 176000, + "application": null, + "application_fee_amount": null, + "automatic_payment_methods": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "data": [ + { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_realm_host": "zulip.testserver", + "remote_realm_user_email": "hamlet@zulip.com", + "remote_realm_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKI64960GMgZ3q5-3k206LBZi_MEKvDdB3sxwUyZWznNjWhEmX_YNNpGvB1-CzoK3mx-mOR1SPWcHSuqh", + "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 Business", + "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_lM7mUTzmW19YvefzJlKolsQew", + "confirmation_method": "automatic", + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_realm_host": "zulip.testserver", + "remote_realm_user_email": "hamlet@zulip.com", + "remote_realm_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "next_action": null, + "object": "payment_intent", + "on_behalf_of": null, + "payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null + } + }, + "id": "evt_3Ofce9DEQaroqDjs0ThysCDY", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "802089ec-f224-46ad-83e9-81b27ee480e7" + }, + "type": "payment_intent.succeeded" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_realm_host": "zulip.testserver", + "remote_realm_user_email": "hamlet@zulip.com", + "remote_realm_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKI64960GMgblghRap_E6LBbUEk9hMLQ93fXJs1kn9pCypzlHHPGYGxS-J2OCbcbNM3WjrF5YMLbZqK-M", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null + } + }, + "id": "evt_3Ofce9DEQaroqDjs0xQBxnND", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "802089ec-f224-46ad-83e9-81b27ee480e7" + }, + "type": "charge.succeeded" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.3.json new file mode 100644 index 0000000000..8a632f9bb7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.3.json @@ -0,0 +1,522 @@ +{ + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceCDEQaroqDjsUG4G7jEH", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "ead480fe-cd9d-4163-a3d7-2fdefd79e957" + }, + "type": "invoice.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": -24000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -24000, + "unit_amount_decimal": "-24000" + } + }, + "id": "evt_1OfceBDEQaroqDjsFzejp526", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0004", + "idempotency_key": "ac75c817-53f7-40c0-b807-ae75e94ece91" + }, + "type": "invoiceitem.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 200000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Zulip Business", + "discountable": false, + "discounts": [], + "id": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "quantity": 25, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": 8000, + "unit_amount_decimal": "8000" + } + }, + "id": "evt_1OfceBDEQaroqDjsTAYItsen", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0005", + "idempotency_key": "b3956235-1a4e-4672-8ead-eb38d2763e2c" + }, + "type": "invoiceitem.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": -176000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -176000, + "unit_amount_decimal": "-176000" + } + }, + "id": "evt_1OfceBDEQaroqDjsWF7mtOqe", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "44b8d616-ea32-4222-b07f-abcf4cc6c10f" + }, + "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.testserver f339ce97-93f", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_realm_host": "zulip.testserver", + "remote_realm_uuid": "f339ce97-93f4-4a89-9aab-1d112039d4f0" + }, + "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_1OfceBDEQaroqDjs63SYtpWa", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "44b8d616-ea32-4222-b07f-abcf4cc6c10f" + }, + "type": "customer.updated" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.4.json new file mode 100644 index 0000000000..8fa65c3930 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.4.json @@ -0,0 +1,582 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceDDEQaroqDjsN2htxPSl", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "d6fba965-f6ac-4c52-af38-ddf31a67352e" + }, + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceDDEQaroqDjsqnbs77k3", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "d6fba965-f6ac-4c52-af38-ddf31a67352e" + }, + "type": "invoice.updated" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.5.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.5.json new file mode 100644 index 0000000000..dd57b445df --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.5.json @@ -0,0 +1,561 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceDDEQaroqDjsIRta1UsL", + "livemode": false, + "object": "event", + "pending_webhooks": 1, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "d6fba965-f6ac-4c52-af38-ddf31a67352e" + }, + "type": "invoice.payment_succeeded" + }, + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU30200wcvZNWgy/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceDDEQaroqDjsEn0SPDWK", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "d6fba965-f6ac-4c52-af38-ddf31a67352e" + }, + "type": "invoice.paid" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.6.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.6.json new file mode 100644 index 0000000000..6d922067af --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Event.list.6.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.create.1.json new file mode 100644 index 0000000000..8b2a89ee09 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.create.1.json @@ -0,0 +1,262 @@ +{ + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.finalize_invoice.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.finalize_invoice.1.json new file mode 100644 index 0000000000..4f93b78ee6 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.finalize_invoice.1.json @@ -0,0 +1,262 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU202006UnfuKsh?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU202006UnfuKsh/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.1.json new file mode 100644 index 0000000000..e39960ab72 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.1.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.2.json new file mode 100644 index 0000000000..ea522785b7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--Invoice.list.2.json @@ -0,0 +1,269 @@ +{ + "data": [ + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU40200kSUtWT7C?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJycmtQdmJUcVlpUlVxZDBRcmtOYlVHUG5Lczl2LDk3NDgyMjU40200kSUtWT7C/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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": 1000000000 + } + ], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.1.json new file mode 100644 index 0000000000..c351f1fdd5 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.1.json @@ -0,0 +1,47 @@ +{ + "amount": -176000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -176000, + "unit_amount_decimal": "-176000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.2.json new file mode 100644 index 0000000000..f6b553cfa6 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.2.json @@ -0,0 +1,47 @@ +{ + "amount": 200000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Zulip Business", + "discountable": false, + "discounts": [], + "id": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "quantity": 25, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": 8000, + "unit_amount_decimal": "8000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.3.json new file mode 100644 index 0000000000..df3e1a6985 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--InvoiceItem.create.3.json @@ -0,0 +1,47 @@ +{ + "amount": -24000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -24000, + "unit_amount_decimal": "-24000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--PaymentIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--PaymentIntent.create.1.json new file mode 100644 index 0000000000..4c9ca59326 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--PaymentIntent.create.1.json @@ -0,0 +1,198 @@ +{ + "amount": 176000, + "amount_capturable": 0, + "amount_details": { + "tip": {} + }, + "amount_received": 176000, + "application": null, + "application_fee_amount": null, + "automatic_payment_methods": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "data": [ + { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_realm_host": "zulip.testserver", + "remote_realm_user_email": "hamlet@zulip.com", + "remote_realm_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1Ofce5DEQaroqDjsxix2XcjW", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKI64960GMgbZT06p42o6LBbcvM3BjO1KoP_JeyLHcJA62sr-FVKt0ujMgvMWH4ULpyKC8tUAvlXJ1kg_", + "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 Business", + "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_lM7mUTzmW19YvefzJlKolsQew", + "confirmation_method": "automatic", + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_realm_host": "zulip.testserver", + "remote_realm_user_email": "hamlet@zulip.com", + "remote_realm_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "next_action": null, + "object": "payment_intent", + "on_behalf_of": null, + "payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.create.1.json new file mode 100644 index 0000000000..8eb238624b --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.create.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1Ofce5DEQaroqDjsvLEIdrzy_secret_PUbr4rygkP7pH2yAsqmhZCBwV9HlpY8", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1Ofce5DEQaroqDjsvLEIdrzy", + "last_setup_error": null, + "latest_attempt": "setatt_1Ofce5DEQaroqDjs023SRQKJ", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.list.1.json new file mode 100644 index 0000000000..6e2fff2bc7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.list.1.json @@ -0,0 +1,41 @@ +{ + "data": [ + { + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1Ofce4DEQaroqDjs2nI3rgAb_secret_PUbrmUTIGNAYKFN5amGZPF49Fujfpl3", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1Ofce4DEQaroqDjs2nI3rgAb", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.retrieve.1.json new file mode 100644 index 0000000000..8eb238624b --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--SetupIntent.retrieve.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1Ofce5DEQaroqDjsvLEIdrzy_secret_PUbr4rygkP7pH2yAsqmhZCBwV9HlpY8", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1Ofce5DEQaroqDjsvLEIdrzy", + "last_setup_error": null, + "latest_attempt": "setatt_1Ofce5DEQaroqDjs023SRQKJ", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1Ofce5DEQaroqDjsxix2XcjW", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Configuration.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Configuration.create.1.json new file mode 100644 index 0000000000..86e650e983 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Configuration.create.1.json @@ -0,0 +1,56 @@ +{ + "active": true, + "application": null, + "business_profile": { + "headline": "List of past invoices ($0 invoices include payment)", + "privacy_policy_url": null, + "terms_of_service_url": null + }, + "created": 1000000000, + "default_return_url": null, + "features": { + "customer_update": { + "allowed_updates": [], + "enabled": false + }, + "invoice_history": { + "enabled": true + }, + "payment_method_update": { + "enabled": false + }, + "subscription_cancel": { + "cancellation_reason": { + "enabled": false, + "options": [ + "too_expensive", + "missing_features", + "switched_service", + "unused", + "other" + ] + }, + "enabled": false, + "mode": "at_period_end", + "proration_behavior": "none" + }, + "subscription_pause": { + "enabled": false + }, + "subscription_update": { + "default_allowed_updates": [], + "enabled": false, + "proration_behavior": "none" + } + }, + "id": "bpc_1OfceEDEQaroqDjsGd97jZLg", + "is_default": false, + "livemode": false, + "login_page": { + "enabled": false, + "url": null + }, + "metadata": {}, + "object": "billing_portal.configuration", + "updated": 1000000000 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Session.create.1.json new file mode 100644 index 0000000000..0a0b1d7fb9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--billing_portal.Session.create.1.json @@ -0,0 +1,13 @@ +{ + "configuration": "bpc_1OfceEDEQaroqDjsGd97jZLg", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "flow": null, + "id": "bps_1OfceFDEQaroqDjsqf7hWvC5", + "livemode": false, + "locale": null, + "object": "billing_portal.session", + "on_behalf_of": null, + "return_url": "http://selfhosting.testserver/realm/f339ce97-93f4-4a89-9aab-1d112039d4f0/billing/", + "url": "https://billing.stripe.com/p/session/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJyYk95dlBOd1hTQjh5dVlsSXY5V25sVmlsSmJB0100OUgxtt9h" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.create.1.json new file mode 100644 index 0000000000..5543066deb --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.create.1.json @@ -0,0 +1,75 @@ +{ + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://selfhosting.testserver/realm/f339ce97-93f4-4a89-9aab-1d112039d4f0/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED027eu0kWHKZm2d11MFdG9jujsfjm1XYq5I8rnadp1FxoVP0d", + "invoice": null, + "invoice_creation": null, + "livemode": false, + "locale": null, + "metadata": { + "remote_realm_user_id": "1", + "type": "card_update" + }, + "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_1Ofce4DEQaroqDjs2nI3rgAb", + "shipping": null, + "shipping_address_collection": null, + "shipping_options": [], + "shipping_rate": null, + "status": "open", + "submit_type": null, + "subscription": null, + "success_url": "http://selfhosting.testserver/realm/f339ce97-93f4-4a89-9aab-1d112039d4f0/billing/event_status/?stripe_session_id={CHECKOUT_SESSION_ID}", + "total_details": null, + "ui_mode": "hosted", + "url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED027eu0kWHKZm2d11MFdG9jujsfjm1XYq5I8rnadp1FxoVP0d#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.list.1.json new file mode 100644 index 0000000000..1b3a0b4e6e --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_realm--checkout.Session.list.1.json @@ -0,0 +1,82 @@ +{ + "data": [ + { + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://selfhosting.testserver/realm/f339ce97-93f4-4a89-9aab-1d112039d4f0/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED027eu0kWHKZm2d11MFdG9jujsfjm1XYq5I8rnadp1FxoVP0d", + "invoice": null, + "invoice_creation": null, + "livemode": false, + "locale": null, + "metadata": { + "remote_realm_user_id": "1", + "type": "card_update" + }, + "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_1Ofce4DEQaroqDjs2nI3rgAb", + "shipping": null, + "shipping_address_collection": null, + "shipping_options": [], + "shipping_rate": null, + "status": "open", + "submit_type": null, + "subscription": null, + "success_url": "http://selfhosting.testserver/realm/f339ce97-93f4-4a89-9aab-1d112039d4f0/billing/event_status/?stripe_session_id={CHECKOUT_SESSION_ID}", + "total_details": null, + "ui_mode": "hosted", + "url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED027eu0kWHKZm2d11MFdG9jujsfjm1XYq5I8rnadp1FxoVP0d#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/checkout/sessions" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.create.1.json new file mode 100644 index 0000000000..3d6b9bc66c --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.create.1.json @@ -0,0 +1,33 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": null, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.modify.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.modify.1.json new file mode 100644 index 0000000000..d7e5ae3962 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.modify.1.json @@ -0,0 +1,33 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.1.json new file mode 100644 index 0000000000..489c272102 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.1.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "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": 2, + "exp_year": 2025, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.2.json new file mode 100644 index 0000000000..489c272102 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.2.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "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": 2, + "exp_year": 2025, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.3.json new file mode 100644 index 0000000000..489c272102 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.3.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "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": 2, + "exp_year": 2025, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.4.json new file mode 100644 index 0000000000..489c272102 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Customer.retrieve.4.json @@ -0,0 +1,79 @@ +{ + "address": null, + "balance": 0, + "created": 1000000000, + "currency": null, + "default_currency": null, + "default_source": null, + "delinquent": false, + "description": "demo.example.com 6cde5f7a-1f7", + "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": 2, + "exp_year": 2025, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "livemode": false, + "metadata": {}, + "object": "payment_method", + "type": "card" + }, + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "name": null, + "next_invoice_sequence": 1, + "object": "customer", + "phone": null, + "preferred_locales": [], + "shipping": null, + "tax_exempt": "none", + "test_clock": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.1.json new file mode 100644 index 0000000000..5179fcb74e --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.1.json @@ -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": "demo.example.com 6cde5f7a-1f7", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "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_1OfceoDEQaroqDjsXmEAccqA", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0001", + "idempotency_key": "c5a3ce76-a7d8-4a7c-a852-f6e73ad8a6b2" + }, + "type": "customer.updated" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.2.json new file mode 100644 index 0000000000..74f90e1a3c --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.2.json @@ -0,0 +1,360 @@ +{ + "data": [ + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 176000, + "amount_capturable": 0, + "amount_details": { + "tip": {} + }, + "amount_received": 176000, + "application": null, + "application_fee_amount": null, + "automatic_payment_methods": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "data": [ + { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_server_host": "demo.example.com", + "remote_server_user_email": "hamlet@zulip.com", + "remote_server_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKLm4960GMgYgoRWXqYw6LBZ1w5h8nQGNXVJkEdD913QcGIK8OZzBDRRIMMUm4Bqykp6LuuvdijbLkn32", + "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 Business", + "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_eRt7Lyj35aDDCs0FjcyTMst1D", + "confirmation_method": "automatic", + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_server_host": "demo.example.com", + "remote_server_user_email": "hamlet@zulip.com", + "remote_server_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "next_action": null, + "object": "payment_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null + } + }, + "id": "evt_3OfceqDEQaroqDjs1aibwO8Z", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "d9973a72-e708-4bda-b20b-e85b990536ae" + }, + "type": "payment_intent.succeeded" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_server_host": "demo.example.com", + "remote_server_user_email": "hamlet@zulip.com", + "remote_server_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKLm4960GMgbIQf2TB8M6LBaEIJoIvIQE-grUAO26K5cttdKSoGik_m6o1C7DkXAD639BughzbihcPtvb", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null + } + }, + "id": "evt_3OfceqDEQaroqDjs1YhfmTHt", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0002", + "idempotency_key": "d9973a72-e708-4bda-b20b-e85b990536ae" + }, + "type": "charge.succeeded" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.3.json new file mode 100644 index 0000000000..4f1e748086 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.3.json @@ -0,0 +1,522 @@ +{ + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfcetDEQaroqDjsxLF2uw1y", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0003", + "idempotency_key": "cf0eb0ff-729f-4d72-aa1d-1464f40f3f98" + }, + "type": "invoice.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": -24000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -24000, + "unit_amount_decimal": "-24000" + } + }, + "id": "evt_1OfcetDEQaroqDjs6Iryw96Y", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0004", + "idempotency_key": "8899aa72-8a6a-4175-9bf3-d9c41474f4dc" + }, + "type": "invoiceitem.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": 200000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Zulip Business", + "discountable": false, + "discounts": [], + "id": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "quantity": 25, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": 8000, + "unit_amount_decimal": "8000" + } + }, + "id": "evt_1OfcesDEQaroqDjsPmJyDMYL", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0005", + "idempotency_key": "8a4f67b2-ca8f-4ede-89d4-052a141f48c2" + }, + "type": "invoiceitem.created" + }, + { + "api_version": "2020-08-27", + "created": 1000000000, + "data": { + "object": { + "amount": -176000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -176000, + "unit_amount_decimal": "-176000" + } + }, + "id": "evt_1OfcesDEQaroqDjscIxNyJg9", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "6880351a-31d9-40f1-8cc6-6fd17f1c201e" + }, + "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": "demo.example.com 6cde5f7a-1f7", + "discount": null, + "email": "hamlet@zulip.com", + "id": "cus_NORMALIZED0001", + "invoice_prefix": "NORMA01", + "invoice_settings": { + "custom_fields": null, + "default_payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "footer": null, + "rendering_options": null + }, + "livemode": false, + "metadata": { + "remote_server_str": "demo.example.com 6cde5f7a-1f7", + "remote_server_uuid": "6cde5f7a-1f7e-4978-9716-49f69ebfc9fe" + }, + "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_1OfcesDEQaroqDjsAphPffNQ", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0006", + "idempotency_key": "6880351a-31d9-40f1-8cc6-6fd17f1c201e" + }, + "type": "customer.updated" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.4.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.4.json new file mode 100644 index 0000000000..bc9fecc002 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.4.json @@ -0,0 +1,582 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceuDEQaroqDjsyt2p9xa1", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "afc80697-d02f-427f-856a-47c4028e8cd9" + }, + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfceuDEQaroqDjsWhrxzIo5", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "afc80697-d02f-427f-856a-47c4028e8cd9" + }, + "type": "invoice.updated" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.5.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.5.json new file mode 100644 index 0000000000..30e6aa0ad1 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.5.json @@ -0,0 +1,561 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAx02002dMGGnHV?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAx02002dMGGnHV/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfcevDEQaroqDjs6JGFZtEJ", + "livemode": false, + "object": "event", + "pending_webhooks": 2, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "afc80697-d02f-427f-856a-47c4028e8cd9" + }, + "type": "invoice.payment_succeeded" + }, + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAx02002dMGGnHV?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAx02002dMGGnHV/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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_1OfcevDEQaroqDjsituWQMtq", + "livemode": false, + "object": "event", + "pending_webhooks": 0, + "request": { + "id": "req_NORMALIZED0007", + "idempotency_key": "afc80697-d02f-427f-856a-47c4028e8cd9" + }, + "type": "invoice.paid" + } + ], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.6.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.6.json new file mode 100644 index 0000000000..6d922067af --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Event.list.6.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/events" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.create.1.json new file mode 100644 index 0000000000..8b2a89ee09 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.create.1.json @@ -0,0 +1,262 @@ +{ + "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, + "liability": null, + "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, + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.finalize_invoice.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.finalize_invoice.1.json new file mode 100644 index 0000000000..3418d55f42 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.finalize_invoice.1.json @@ -0,0 +1,262 @@ +{ + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAw020075ySFp1V/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.1.json new file mode 100644 index 0000000000..e39960ab72 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.1.json @@ -0,0 +1,6 @@ +{ + "data": [], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.2.json new file mode 100644 index 0000000000..8ddfe7a796 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--Invoice.list.2.json @@ -0,0 +1,269 @@ +{ + "data": [ + { + "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, + "liability": null, + "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_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAy0200I3J05GnB?s=ap", + "id": "in_NORMALIZED00000000000001", + "invoice_pdf": "https://pay.stripe.com/invoice/acct_NORMALIZED000001/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzSjEwdWRJQllneFR6NFhiTnpmWU44SGM5NlNsLDk3NDgyMzAy0200I3J05GnB/pdf?s=ap", + "issuer": { + "type": "self" + }, + "last_finalization_error": null, + "latest_revision": null, + "lines": { + "data": [ + { + "amount": -24000, + "amount_excluding_tax": -24000, + "currency": "usd", + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-24000" + }, + { + "amount": 200000, + "amount_excluding_tax": 200000, + "currency": "usd", + "description": "Zulip Business", + "discount_amounts": [], + "discountable": false, + "discounts": [], + "id": "il_NORMALIZED00000000000002", + "invoice_item": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 25, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "8000" + }, + { + "amount": -176000, + "amount_excluding_tax": -176000, + "currency": "usd", + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "proration_details": { + "credited_items": null + }, + "quantity": 1, + "subscription": null, + "tax_amounts": [], + "tax_rates": [], + "type": "invoiceitem", + "unit_amount_excluding_tax": "-176000" + } + ], + "has_more": false, + "object": "list", + "total_count": 3, + "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 Business", + "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 + } + ], + "has_more": false, + "object": "list", + "url": "/v1/invoices" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.1.json new file mode 100644 index 0000000000..c351f1fdd5 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.1.json @@ -0,0 +1,47 @@ +{ + "amount": -176000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Payment (Card ending in 4242)", + "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": -176000, + "unit_amount_decimal": "-176000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -176000, + "unit_amount_decimal": "-176000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.2.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.2.json new file mode 100644 index 0000000000..f6b553cfa6 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.2.json @@ -0,0 +1,47 @@ +{ + "amount": 200000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "Zulip Business", + "discountable": false, + "discounts": [], + "id": "ii_NORMALIZED00000000000002", + "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_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": 8000, + "unit_amount_decimal": "8000" + }, + "proration": false, + "quantity": 25, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": 8000, + "unit_amount_decimal": "8000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.3.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.3.json new file mode 100644 index 0000000000..df3e1a6985 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--InvoiceItem.create.3.json @@ -0,0 +1,47 @@ +{ + "amount": -24000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "date": 1000000000, + "description": "$20.00/month new customer discount", + "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": -24000, + "unit_amount_decimal": "-24000" + }, + "proration": false, + "quantity": 1, + "subscription": null, + "tax_rates": [], + "test_clock": null, + "unit_amount": -24000, + "unit_amount_decimal": "-24000" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--PaymentIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--PaymentIntent.create.1.json new file mode 100644 index 0000000000..f5cf9d23b7 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--PaymentIntent.create.1.json @@ -0,0 +1,198 @@ +{ + "amount": 176000, + "amount_capturable": 0, + "amount_details": { + "tip": {} + }, + "amount_received": 176000, + "application": null, + "application_fee_amount": null, + "automatic_payment_methods": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "data": [ + { + "amount": 176000, + "amount_captured": 176000, + "amount_refunded": 0, + "application": null, + "application_fee": null, + "application_fee_amount": null, + "balance_transaction": "txn_NORMALIZED00000000000001", + "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 BUSINESS", + "captured": true, + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_server_host": "demo.example.com", + "remote_server_user_email": "hamlet@zulip.com", + "remote_server_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "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_1OfcemDEQaroqDjsQhQDU1P8", + "payment_method_details": { + "card": { + "amount_authorized": 176000, + "brand": "visa", + "checks": { + "address_line1_check": null, + "address_postal_code_check": null, + "cvc_check": "pass" + }, + "country": "US", + "exp_month": 2, + "exp_year": 2025, + "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": 176000, + "status": "unavailable" + }, + "three_d_secure": null, + "wallet": null + }, + "type": "card" + }, + "radar_options": {}, + "receipt_email": "hamlet@zulip.com", + "receipt_number": null, + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xN3ZUa3dERVFhcm9xRGpzKLm4960GMgbO0F4SdUE6LBa5G1IwFfWjYDr9qLqQb6lQnmoeZzv5SZudal_BOLDMImLIBvvYaSORvNh3", + "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 Business", + "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_eRt7Lyj35aDDCs0FjcyTMst1D", + "confirmation_method": "automatic", + "created": 1000000000, + "currency": "usd", + "customer": "cus_NORMALIZED0001", + "description": "Upgrade to Zulip Business, $80.0 x 25 - $20.0 x 12", + "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": "25", + "plan_tier": "104", + "price_per_license": "8000", + "remote_server_host": "demo.example.com", + "remote_server_user_email": "hamlet@zulip.com", + "remote_server_user_id": "1", + "seat_count": "25", + "type": "upgrade" + }, + "next_action": null, + "object": "payment_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "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 Business", + "statement_descriptor_suffix": null, + "status": "succeeded", + "transfer_data": null, + "transfer_group": null +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.create.1.json new file mode 100644 index 0000000000..8fe644fea6 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.create.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcemDEQaroqDjsOgr6EVoD_secret_PUbsYEqwG9EA1zFFaLuGMYkWTSmqGFK", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcemDEQaroqDjsOgr6EVoD", + "last_setup_error": null, + "latest_attempt": "setatt_1OfcemDEQaroqDjsbsGlaflJ", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.list.1.json new file mode 100644 index 0000000000..b474cb25d2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.list.1.json @@ -0,0 +1,41 @@ +{ + "data": [ + { + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcemDEQaroqDjsWfdqBV3D_secret_PUbspoma8mkVVSyPE37E93Vn1veb2lS", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcemDEQaroqDjsWfdqBV3D", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.retrieve.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.retrieve.1.json new file mode 100644 index 0000000000..8fe644fea6 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--SetupIntent.retrieve.1.json @@ -0,0 +1,34 @@ +{ + "application": null, + "automatic_payment_methods": null, + "cancellation_reason": null, + "client_secret": "seti_1OfcemDEQaroqDjsOgr6EVoD_secret_PUbsYEqwG9EA1zFFaLuGMYkWTSmqGFK", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "description": null, + "flow_directions": null, + "id": "seti_1OfcemDEQaroqDjsOgr6EVoD", + "last_setup_error": null, + "latest_attempt": "setatt_1OfcemDEQaroqDjsbsGlaflJ", + "livemode": false, + "mandate": null, + "metadata": {}, + "next_action": null, + "object": "setup_intent", + "on_behalf_of": null, + "payment_method": "pm_1OfcemDEQaroqDjsQhQDU1P8", + "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" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Configuration.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Configuration.create.1.json new file mode 100644 index 0000000000..d2186a83f9 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Configuration.create.1.json @@ -0,0 +1,56 @@ +{ + "active": true, + "application": null, + "business_profile": { + "headline": "List of past invoices ($0 invoices include payment)", + "privacy_policy_url": null, + "terms_of_service_url": null + }, + "created": 1000000000, + "default_return_url": null, + "features": { + "customer_update": { + "allowed_updates": [], + "enabled": false + }, + "invoice_history": { + "enabled": true + }, + "payment_method_update": { + "enabled": false + }, + "subscription_cancel": { + "cancellation_reason": { + "enabled": false, + "options": [ + "too_expensive", + "missing_features", + "switched_service", + "unused", + "other" + ] + }, + "enabled": false, + "mode": "at_period_end", + "proration_behavior": "none" + }, + "subscription_pause": { + "enabled": false + }, + "subscription_update": { + "default_allowed_updates": [], + "enabled": false, + "proration_behavior": "none" + } + }, + "id": "bpc_1OfcewDEQaroqDjsEXmIQIKX", + "is_default": false, + "livemode": false, + "login_page": { + "enabled": false, + "url": null + }, + "metadata": {}, + "object": "billing_portal.configuration", + "updated": 1000000000 +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Session.create.1.json new file mode 100644 index 0000000000..02d648bfc2 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--billing_portal.Session.create.1.json @@ -0,0 +1,13 @@ +{ + "configuration": "bpc_1OfcewDEQaroqDjsEXmIQIKX", + "created": 1000000000, + "customer": "cus_NORMALIZED0001", + "flow": null, + "id": "bps_1OfcewDEQaroqDjszK56o8nK", + "livemode": false, + "locale": null, + "object": "billing_portal.session", + "on_behalf_of": null, + "return_url": "http://selfhosting.testserver/server/6cde5f7a-1f7e-4978-9716-49f69ebfc9fe/billing/", + "url": "https://billing.stripe.com/p/session/test_NORMALIZED01a3dERVFhcm9xRGpzLF9QVWJzbWlaMDVyRW1qZzl6elh4Z0hNRElGanZyeE1z01009loRrn3n" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.create.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.create.1.json new file mode 100644 index 0000000000..6cb18ccb8a --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.create.1.json @@ -0,0 +1,75 @@ +{ + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://selfhosting.testserver/server/6cde5f7a-1f7e-4978-9716-49f69ebfc9fe/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED023UnBdJyXpbgpqGghbeLL38XmrQyPijfiVAYZCpEObVpMQ5", + "invoice": null, + "invoice_creation": null, + "livemode": false, + "locale": null, + "metadata": { + "remote_server_user_id": "1", + "type": "card_update" + }, + "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_1OfcemDEQaroqDjsWfdqBV3D", + "shipping": null, + "shipping_address_collection": null, + "shipping_options": [], + "shipping_rate": null, + "status": "open", + "submit_type": null, + "subscription": null, + "success_url": "http://selfhosting.testserver/server/6cde5f7a-1f7e-4978-9716-49f69ebfc9fe/billing/event_status/?stripe_session_id={CHECKOUT_SESSION_ID}", + "total_details": null, + "ui_mode": "hosted", + "url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED023UnBdJyXpbgpqGghbeLL38XmrQyPijfiVAYZCpEObVpMQ5#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" +} diff --git a/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.list.1.json b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.list.1.json new file mode 100644 index 0000000000..e3ffddeaa4 --- /dev/null +++ b/corporate/tests/stripe_fixtures/get_past_invoices_session_url_for_remote_server--checkout.Session.list.1.json @@ -0,0 +1,82 @@ +{ + "data": [ + { + "after_expiration": null, + "allow_promotion_codes": null, + "amount_subtotal": null, + "amount_total": null, + "automatic_tax": { + "enabled": false, + "liability": null, + "status": null + }, + "billing_address_collection": null, + "cancel_url": "http://selfhosting.testserver/server/6cde5f7a-1f7e-4978-9716-49f69ebfc9fe/upgrade/?manual_license_management=false&tier=1", + "client_reference_id": null, + "client_secret": null, + "consent": null, + "consent_collection": null, + "created": 1000000000, + "currency": null, + "currency_conversion": null, + "custom_fields": [], + "custom_text": { + "after_submit": null, + "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_NORMALIZED023UnBdJyXpbgpqGghbeLL38XmrQyPijfiVAYZCpEObVpMQ5", + "invoice": null, + "invoice_creation": null, + "livemode": false, + "locale": null, + "metadata": { + "remote_server_user_id": "1", + "type": "card_update" + }, + "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_1OfcemDEQaroqDjsWfdqBV3D", + "shipping": null, + "shipping_address_collection": null, + "shipping_options": [], + "shipping_rate": null, + "status": "open", + "submit_type": null, + "subscription": null, + "success_url": "http://selfhosting.testserver/server/6cde5f7a-1f7e-4978-9716-49f69ebfc9fe/billing/event_status/?stripe_session_id={CHECKOUT_SESSION_ID}", + "total_details": null, + "ui_mode": "hosted", + "url": "https://checkout.stripe.com/c/pay/cs_test_NORMALIZED023UnBdJyXpbgpqGghbeLL38XmrQyPijfiVAYZCpEObVpMQ5#fid1d2BpamRhQ2prcSc%2FJ1ZqcHdmYCVWZGt2JVV3aicpJ2R1bE5gfCc%2FJ3VuWnFgdnFaXVRmMU5zNkldQTY9SnNRY09XZml2UXNQJyknY3dqaFZgd3Ngdyc%2FcXdwYCknaWR8anBxUXx1YCc%2FJ3Zsa2JpYFpmamlwaGsnKSdga2RnaWBVaWRmYG1qaWFgd3YnP3F3cGB4JSUl" + } + ], + "has_more": true, + "object": "list", + "url": "/v1/checkout/sessions" +} diff --git a/corporate/tests/test_stripe.py b/corporate/tests/test_stripe.py index df0469b692..1cd1c7e602 100644 --- a/corporate/tests/test_stripe.py +++ b/corporate/tests/test_stripe.py @@ -295,6 +295,8 @@ def normalize_fixture_data( MOCKED_STRIPE_FUNCTION_NAMES = [ f"stripe.{name}" for name in [ + "billing_portal.Configuration.create", + "billing_portal.Session.create", "checkout.Session.create", "checkout.Session.list", "Charge.create", @@ -785,6 +787,15 @@ class StripeTest(StripeTestCase): response = self.client_get("/upgrade/", follow=True) self.assertEqual(response.status_code, 404) + @mock_stripe() + def test_get_past_invoices_session_url(self, *mocks: Mock) -> None: + user = self.example_user("hamlet") + self.login_user(user) + self.add_card_and_upgrade(user) + response = self.client_get("/invoices/") + self.assertEqual(response.status_code, 302) + self.assertTrue(response["Location"].startswith("https://billing.stripe.com")) + @mock_stripe(tested_timestamp_fields=["created"]) def test_upgrade_by_card(self, *mocks: Mock) -> None: user = self.example_user("hamlet") @@ -1944,6 +1955,10 @@ class StripeTest(StripeTestCase): response, ) + response = self.client_get("/invoices/") + self.assertEqual(response.status_code, 302) + self.assertEqual(response["Location"], "/billing/") + user.realm.plan_type = Realm.PLAN_TYPE_PLUS user.realm.save() response = self.client_get("/sponsorship/") @@ -5927,6 +5942,25 @@ class TestRemoteRealmBillingFlow(StripeTestCase, RemoteRealmBillingTestCase): ]: self.assert_in_response(substring, response) + @responses.activate + @mock_stripe() + def test_get_past_invoices_session_url_for_remote_realm(self, *mocks: Mock) -> None: + self.login("hamlet") + hamlet = self.example_user("hamlet") + + self.add_mock_response() + with time_machine.travel(self.now, tick=False): + send_server_data_to_push_bouncer(consider_usage_statistics=False) + + self.execute_remote_billing_authentication_flow(hamlet) + self.add_card_and_upgrade() + + response = self.client_get( + f"{self.billing_session.billing_base_url}/invoices/", subdomain="selfhosting" + ) + self.assertEqual(response.status_code, 302) + self.assertTrue(response["Location"].startswith("https://billing.stripe.com")) + @responses.activate @mock_stripe() def test_upgrade_user_to_basic_plan_free_trial(self, *mocks: Mock) -> None: @@ -7544,6 +7578,25 @@ class TestRemoteServerBillingFlow(StripeTestCase, RemoteServerTestCase): self.billing_session.min_licenses_for_plan(CustomerPlan.TIER_SELF_HOSTED_BASIC), 1 ) + @responses.activate + @mock_stripe() + def test_get_past_invoices_session_url_for_remote_server(self, *mocks: Mock) -> None: + self.login("hamlet") + hamlet = self.example_user("hamlet") + + self.add_mock_response() + with time_machine.travel(self.now, tick=False): + send_server_data_to_push_bouncer(consider_usage_statistics=False) + + self.execute_remote_billing_authentication_flow(hamlet.delivery_email, hamlet.full_name) + self.add_card_and_upgrade() + + response = self.client_get( + f"{self.billing_session.billing_base_url}/invoices/", subdomain="selfhosting" + ) + self.assertEqual(response.status_code, 302) + self.assertTrue(response["Location"].startswith("https://billing.stripe.com")) + @responses.activate @mock_stripe() def test_upgrade_server_to_fixed_price_monthly_basic_plan(self, *mocks: Mock) -> None: diff --git a/corporate/urls.py b/corporate/urls.py index d1fc38b4d1..64e22ce9bd 100644 --- a/corporate/urls.py +++ b/corporate/urls.py @@ -30,9 +30,12 @@ from corporate.views.portico import ( apps_view, communities_view, hello_view, + invoices_page, landing_view, plans_view, + remote_realm_invoices_page, remote_realm_plans_page, + remote_server_invoices_page, remote_server_plans_page, team_view, ) @@ -83,6 +86,7 @@ i18n_urlpatterns: Any = [ path("jobs/", TemplateView.as_view(template_name="corporate/jobs.html")), # Billing path("billing/", billing_page, name="billing_page"), + path("invoices/", invoices_page, name="invoices_page"), path("sponsorship/", sponsorship_page, name="sponsorship_request"), path("upgrade/", upgrade_page, name="upgrade_page"), path("support/", support_request), @@ -281,6 +285,16 @@ urlpatterns += [ remote_server_event_status_page, name="remote_server_event_status_page", ), + path( + "realm//invoices/", + remote_realm_invoices_page, + name="remote_realm_invoices_page", + ), + path( + "server//invoices/", + remote_server_invoices_page, + name="remote_server_invoices_page", + ), # Remote variants of above API endpoints. path("json/realm//billing/sponsorship", remote_realm_sponsorship), path("json/server//billing/sponsorship", remote_server_sponsorship), diff --git a/corporate/views/portico.py b/corporate/views/portico.py index d605af0509..f477442289 100644 --- a/corporate/views/portico.py +++ b/corporate/views/portico.py @@ -14,6 +14,7 @@ from corporate.lib.decorator import ( authenticated_remote_server_management_endpoint, ) from corporate.lib.stripe import ( + RealmBillingSession, RemoteRealmBillingSession, RemoteServerBillingSession, get_configured_fixed_price_plan_offer, @@ -21,7 +22,7 @@ from corporate.lib.stripe import ( ) from corporate.models import CustomerPlan, get_current_plan_by_customer, get_customer_by_realm from zerver.context_processors import get_realm_from_request, latest_info_context -from zerver.decorator import add_google_analytics +from zerver.decorator import add_google_analytics, zulip_login_required from zerver.lib.github import ( InvalidPlatformError, get_latest_github_release_download_link_for_platform, @@ -359,3 +360,32 @@ def communities_view(request: HttpRequest) -> HttpResponse: "org_types": org_types, }, ) + + +@zulip_login_required +def invoices_page(request: HttpRequest) -> HttpResponseRedirect: + user = request.user + assert user.is_authenticated + + if not user.has_billing_access: + return HttpResponseRedirect(reverse("billing_page")) + + billing_session = RealmBillingSession(user=user, realm=user.realm) + list_invoices_session_url = billing_session.get_past_invoices_session_url() + return HttpResponseRedirect(list_invoices_session_url) + + +@authenticated_remote_realm_management_endpoint +def remote_realm_invoices_page( + request: HttpRequest, billing_session: RemoteRealmBillingSession +) -> HttpResponseRedirect: + list_invoices_session_url = billing_session.get_past_invoices_session_url() + return HttpResponseRedirect(list_invoices_session_url) + + +@authenticated_remote_server_management_endpoint +def remote_server_invoices_page( + request: HttpRequest, billing_session: RemoteServerBillingSession +) -> HttpResponseRedirect: + list_invoices_session_url = billing_session.get_past_invoices_session_url() + return HttpResponseRedirect(list_invoices_session_url) diff --git a/templates/corporate/billing/billing.html b/templates/corporate/billing/billing.html index 9c52533c9a..408b1fabb8 100644 --- a/templates/corporate/billing/billing.html +++ b/templates/corporate/billing/billing.html @@ -275,6 +275,14 @@ {% endif %} +
+ + +
{% if free_trial and not downgrade_at_end_of_free_trial %}