From 49d0f7e57e8f61b626839d460b1156a1dcda17b9 Mon Sep 17 00:00:00 2001 From: "oleh.zorenko" <19872253+Zirochkaa@users.noreply.github.com> Date: Tue, 14 Sep 2021 23:56:21 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Source=20Stripe:=20Add=20`Paymen?= =?UTF-8?q?tIntents`=20stream=20(#6004)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add `PaymentIntents` stream * Update docs * Implement change request + few updates Split `source.py` file into `source.py` and `streams.py` files. Update `payment_intents.json` file. * Bump connectors version + update docs --- .gitignore | 3 + .../e094cb9a-26de-4645-8761-65c0c425d1de.json | 2 +- .../resources/seed/source_definitions.yaml | 2 +- .../connectors/source-stripe/Dockerfile | 2 +- .../source-stripe/acceptance-test-config.yml | 8 - .../integration_tests/abnormal_state.json | 3 +- .../integration_tests/configured_catalog.json | 11 + .../expected_subscriptions_records.txt | 25 - .../integration_tests/invalid_config.json | 2 +- .../non_disputes_events_catalog.json | 12 + .../connectors/source-stripe/setup.py | 2 +- .../schemas/payment_intents.json | 944 ++++++++++++++++++ .../source-stripe/source_stripe/source.py | 274 +---- .../source-stripe/source_stripe/streams.py | 351 +++++++ docs/integrations/sources/stripe.md | 8 +- 15 files changed, 1361 insertions(+), 288 deletions(-) delete mode 100644 airbyte-integrations/connectors/source-stripe/integration_tests/expected_subscriptions_records.txt create mode 100644 airbyte-integrations/connectors/source-stripe/source_stripe/schemas/payment_intents.json create mode 100644 airbyte-integrations/connectors/source-stripe/source_stripe/streams.py diff --git a/.gitignore b/.gitignore index def1cbdab64f..42c590666322 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,9 @@ data .project .settings +# Logs +acceptance_tests_logs/ + # Secrets secrets !airbyte-integrations/connector-templates/**/secrets diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e094cb9a-26de-4645-8761-65c0c425d1de.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e094cb9a-26de-4645-8761-65c0c425d1de.json index a4bed61a7ee7..efec2dea3ece 100644 --- a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e094cb9a-26de-4645-8761-65c0c425d1de.json +++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e094cb9a-26de-4645-8761-65c0c425d1de.json @@ -2,7 +2,7 @@ "sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de", "name": "Stripe", "dockerRepository": "airbyte/source-stripe", - "dockerImageTag": "0.1.16", + "dockerImageTag": "0.1.17", "documentationUrl": "https://docs.airbyte.io/integrations/sources/stripe", "icon": "stripe.svg" } diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index a59ac24c1df0..5a8a1f8b4d91 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -113,7 +113,7 @@ - sourceDefinitionId: e094cb9a-26de-4645-8761-65c0c425d1de name: Stripe dockerRepository: airbyte/source-stripe - dockerImageTag: 0.1.16 + dockerImageTag: 0.1.17 documentationUrl: https://docs.airbyte.io/integrations/sources/stripe icon: stripe.svg - sourceDefinitionId: b03a9f3e-22a5-11eb-adc1-0242ac120002 diff --git a/airbyte-integrations/connectors/source-stripe/Dockerfile b/airbyte-integrations/connectors/source-stripe/Dockerfile index b4eb1572a9a0..c77a33e1f2ee 100644 --- a/airbyte-integrations/connectors/source-stripe/Dockerfile +++ b/airbyte-integrations/connectors/source-stripe/Dockerfile @@ -12,5 +12,5 @@ RUN pip install . ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.16 +LABEL io.airbyte.version=0.1.17 LABEL io.airbyte.name=airbyte/source-stripe diff --git a/airbyte-integrations/connectors/source-stripe/acceptance-test-config.yml b/airbyte-integrations/connectors/source-stripe/acceptance-test-config.yml index af28785c9548..5e7808e11384 100644 --- a/airbyte-integrations/connectors/source-stripe/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-stripe/acceptance-test-config.yml @@ -14,13 +14,9 @@ tests: - config_path: "secrets/connected_account_config.json" basic_read: # TEST 1 - Reading catalog without invoice_line_items - # Along with this test we expect subscriptions with status in ["active","canceled"] - # If this test fails for some reason, please check the expected_subscriptions_records.json for valid subset of data. - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/non_invoice_line_items_catalog.json" timeout_seconds: 3600 - expect_records: - path: "integration_tests/expected_subscriptions_records.txt" # TEST 2 - Reading data from account that has no records for stream Disputes - config_path: "secrets/connected_account_config.json" configured_catalog_path: "integration_tests/non_disputes_events_catalog.json" @@ -29,13 +25,9 @@ tests: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/non_invoice_line_items_catalog.json" future_state_path: "integration_tests/abnormal_state.json" - cursor_paths: - charges: ["created"] - config_path: "secrets/connected_account_config.json" configured_catalog_path: "integration_tests/non_disputes_events_catalog.json" future_state_path: "integration_tests/abnormal_state.json" - cursor_paths: - charges: ["created"] full_refresh: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/non_invoice_line_items_catalog.json" diff --git a/airbyte-integrations/connectors/source-stripe/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-stripe/integration_tests/abnormal_state.json index 065f54410279..1703284cdb4d 100644 --- a/airbyte-integrations/connectors/source-stripe/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-stripe/integration_tests/abnormal_state.json @@ -12,5 +12,6 @@ "payouts": { "created": 161706755600 }, "disputes": { "created": 161099630500 }, "products": { "created": 158551134100 }, - "refunds": { "created": 161959562900 } + "refunds": { "created": 161959562900 }, + "payment_intents": { "created": 161959562900 } } diff --git a/airbyte-integrations/connectors/source-stripe/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-stripe/integration_tests/configured_catalog.json index fed7e6a0b31a..07f2b651b958 100644 --- a/airbyte-integrations/connectors/source-stripe/integration_tests/configured_catalog.json +++ b/airbyte-integrations/connectors/source-stripe/integration_tests/configured_catalog.json @@ -12,6 +12,17 @@ "sync_mode": "incremental", "destination_sync_mode": "overwrite", "cursor_field": ["created"] + }, + { + "stream": { + "name": "payment_intents", + "json_schema": {}, + "supported_sync_modes": ["full_refresh", "incremental"], + "source_defined_cursor": true, + "default_cursor_field": ["created"] + }, + "sync_mode": "incremental", + "destination_sync_mode": "append" } ] } diff --git a/airbyte-integrations/connectors/source-stripe/integration_tests/expected_subscriptions_records.txt b/airbyte-integrations/connectors/source-stripe/integration_tests/expected_subscriptions_records.txt deleted file mode 100644 index a786ff4eca89..000000000000 --- a/airbyte-integrations/connectors/source-stripe/integration_tests/expected_subscriptions_records.txt +++ /dev/null @@ -1,25 +0,0 @@ -{"stream": "subscriptions", "data": {"id": "sub_HzZz2kXi3X5JeO", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1602278873, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1599686873, "current_period_end": 1628544473, "current_period_start": 1625866073, "customer": "cus_HzZzA5Cm3Pb8Rk", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HzZzkViznILf47", "object": "subscription_item", "billing_thresholds": null, "created": 1599686874, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_HzZz2kXi3X5JeO", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HzZz2kXi3X5JeO"}, "latest_invoice": "in_1JBRG2IEn5WyEQxn2Ic7V2RS", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1599686873, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1602278873, "trial_start": 1599686873}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_HzZz9jG0XoSTzp", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1602278873, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1599686873, "current_period_end": 1628544473, "current_period_start": 1625866073, "customer": "cus_HzZzA5Cm3Pb8Rk", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HzZzdUREzTkBGP", "object": "subscription_item", "billing_thresholds": null, "created": 1599686873, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_HzZz9jG0XoSTzp", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HzZz9jG0XoSTzp"}, "latest_invoice": "in_1JBRG1IEn5WyEQxn1UZZ6j5W", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1599686873, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1602278873, "trial_start": 1599686873}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hm79IpijHbWG6Y", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1599173266, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1596581266, "current_period_end": 1628030866, "current_period_start": 1625352466, "customer": "cus_Hm79aU31H8NCaS", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hm79NwhbKPTnMW", "object": "subscription_item", "billing_thresholds": null, "created": 1596581266, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hm79IpijHbWG6Y", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hm79IpijHbWG6Y"}, "latest_invoice": "in_1J9Hf1IEn5WyEQxnRIsUHRNk", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1596581266, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1599173266, "trial_start": 1596581266}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hm79H35Cga2xyM", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1599173265, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1596581265, "current_period_end": 1628030865, "current_period_start": 1625352465, "customer": "cus_Hm79aU31H8NCaS", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hm79ez6Hthf2jP", "object": "subscription_item", "billing_thresholds": null, "created": 1596581266, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hm79H35Cga2xyM", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hm79H35Cga2xyM"}, "latest_invoice": "in_1J9He9IEn5WyEQxnIHnR07pp", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1596581265, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1599173265, "trial_start": 1596581265}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hgqd9cnZ3U2zso", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1595366620, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_HgqdUlT76RCID7", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hgqd3GbOq4nX96", "object": "subscription_item", "billing_thresholds": null, "created": 1595366621, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hgqd9cnZ3U2zso", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hgqd9cnZ3U2zso"}, "latest_invoice": "in_1J8OZSIEn5WyEQxnB2v5sbjq", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1595366620, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1595366620}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_HgqdZo49rNc9yd", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1595366619, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_HgqdUlT76RCID7", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HgqdPFqB83zOkG", "object": "subscription_item", "billing_thresholds": null, "created": 1595366620, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_HgqdZo49rNc9yd", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HgqdZo49rNc9yd"}, "latest_invoice": "in_1J8OaGIEn5WyEQxntxV9SoiC", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1595366619, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1595366619}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf34IdAAxZ52R9", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594951622, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf34W3ixOwxYl8", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf34ZIE6Eghfhg", "object": "subscription_item", "billing_thresholds": null, "created": 1594951623, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf34IdAAxZ52R9", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf34IdAAxZ52R9"}, "latest_invoice": "in_1J8OaNIEn5WyEQxnjVyxvHpB", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594951622, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594951622}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf34Qc1KVVs8S6", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594951621, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf34W3ixOwxYl8", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf34nezuRvVozR", "object": "subscription_item", "billing_thresholds": null, "created": 1594951622, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hf34Qc1KVVs8S6", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf34Qc1KVVs8S6"}, "latest_invoice": "in_1J8OZTIEn5WyEQxny3CxoLoP", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594951621, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594951621}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2qrsVuVGHXe3", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1594951250, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950743, "current_period_end": 1629165650, "current_period_start": 1626487250, "customer": "cus_Hf2qOhXoDIiXiK", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2qsLwNq56OJG", "object": "subscription_item", "billing_thresholds": null, "created": 1594950744, "metadata": {}, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf2qrsVuVGHXe3", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2qrsVuVGHXe3"}, "latest_invoice": "in_1JE2w0IEn5WyEQxnm556audH", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594950743, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1594951249, "trial_start": 1594950743}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2qWerNs8mYbh", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1594951270, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950743, "current_period_end": 1629165670, "current_period_start": 1626487270, "customer": "cus_Hf2qOhXoDIiXiK", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2quA7b9Kin4A", "object": "subscription_item", "billing_thresholds": null, "created": 1594950743, "metadata": {}, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCV3N7NM9cyAm4", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 9900, "unit_amount_decimal": "9900"}, "quantity": 1, "subscription": "sub_Hf2qWerNs8mYbh", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2qWerNs8mYbh"}, "latest_invoice": "in_1JE2vwIEn5WyEQxnkpZ7QEFP", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594950743, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1594951269, "trial_start": 1594950743}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2peKxCELwRbU", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1597542736, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950736, "current_period_end": 1629078736, "current_period_start": 1626400336, "customer": "cus_Hf2pXyADLHSHAC", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2pd6RdGIRH5x", "object": "subscription_item", "billing_thresholds": null, "created": 1594950737, "metadata": {}, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf2peKxCELwRbU", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2peKxCELwRbU"}, "latest_invoice": "in_1JDgEqIEn5WyEQxn4Jlk4r2a", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594950736, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1597542736, "trial_start": 1594950736}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2pipLVFj6x1D", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1597542736, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950736, "current_period_end": 1629078736, "current_period_start": 1626400336, "customer": "cus_Hf2pXyADLHSHAC", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2puA2lH18xJg", "object": "subscription_item", "billing_thresholds": null, "created": 1594950736, "metadata": {}, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCV3N7NM9cyAm4", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 9900, "unit_amount_decimal": "9900"}, "quantity": 1, "subscription": "sub_Hf2pipLVFj6x1D", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2pipLVFj6x1D"}, "latest_invoice": "in_1JDgEoIEn5WyEQxnXkd7OHep", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594950736, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1597542736, "trial_start": 1594950736}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2pEMwdL9JHnw", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950701, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf2pYlKKcVgz1y", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2pGheURlXx9V", "object": "subscription_item", "billing_thresholds": null, "created": 1594950701, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf2pEMwdL9JHnw", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2pEMwdL9JHnw"}, "latest_invoice": "in_1J8OZUIEn5WyEQxnn0zOsxaI", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594950701, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594950701}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2pgopSeOlHIU", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950700, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf2pYlKKcVgz1y", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2pubkQAtbkuS", "object": "subscription_item", "billing_thresholds": null, "created": 1594950701, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hf2pgopSeOlHIU", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2pgopSeOlHIU"}, "latest_invoice": "in_1J8OZSIEn5WyEQxnYYBrtSmw", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594950700, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594950700}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2hJeXoqmk7wy", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950255, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf2hDkaO4agtlI", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2huD5EitmlDD", "object": "subscription_item", "billing_thresholds": null, "created": 1594950256, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf2hJeXoqmk7wy", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2hJeXoqmk7wy"}, "latest_invoice": "in_1J8OaDIEn5WyEQxn94AzxKel", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594950255, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594950255}, "emitted_at": 1626172757000} -{"stream": "subscriptions", "data": {"id": "sub_Hf2hWoSfHPb1hL", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950254, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf2hDkaO4agtlI", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2h3C1NSDUp7O", "object": "subscription_item", "billing_thresholds": null, "created": 1594950255, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hf2hWoSfHPb1hL", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2hWoSfHPb1hL"}, "latest_invoice": "in_1J8OZSIEn5WyEQxncf0Hg3Fr", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594950254, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594950254}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_I4ZQMq8s1YtPcY", "object": "customer", "address": null, "balance": 0, "created": 1600837969, "currency": null, "default_source": null, "delinquent": false, "description": "Customer 4", "discount": {"id": "di_1JFaGSIEn5WyEQxngHGp1kXZ", "object": "discount", "checkout_session": null, "coupon": {"id": "MMERwFsd", "object": "coupon", "amount_off": null, "created": 1626853922, "currency": null, "duration": "repeating", "duration_in_months": 3, "livemode": false, "max_redemptions": null, "metadata": {}, "name": null, "percent_off": 25.23, "redeem_by": null, "times_redeemed": 1, "valid": true}, "customer": "cus_I4ZQMq8s1YtPcY", "end": 1634802888, "invoice": null, "invoice_item": null, "promotion_code": null, "start": 1626854088, "subscription": null}, "email": "customer4@test.com", "invoice_prefix": "38428A86", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {"coupon": "MMERwFsd"}, "name": null, "next_invoice_sequence": 1, "phone": "444-444-4444", "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQMq8s1YtPcY/sources"}, "subscriptions": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQMq8s1YtPcY/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQMq8s1YtPcY/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_I4ZQpl4L3qtlAB", "object": "customer", "address": null, "balance": 0, "created": 1600837969, "currency": null, "default_source": null, "delinquent": false, "description": "Customer 3", "discount": null, "email": "customer3@test.com", "invoice_prefix": "96FF4CF2", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {}, "name": null, "next_invoice_sequence": 1, "phone": "333-333-3333", "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQpl4L3qtlAB/sources"}, "subscriptions": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQpl4L3qtlAB/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQpl4L3qtlAB/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_I4ZQEnCrue3FsN", "object": "customer", "address": null, "balance": 0, "created": 1600837969, "currency": null, "default_source": null, "delinquent": false, "description": "Customer 2", "discount": null, "email": "customer2@test.com", "invoice_prefix": "F7C912BE", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {}, "name": null, "next_invoice_sequence": 1, "phone": "222-222-2222", "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEnCrue3FsN/sources"}, "subscriptions": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEnCrue3FsN/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEnCrue3FsN/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_I4ZQEfzwFq4fXO", "object": "customer", "address": null, "balance": 0, "created": 1600837969, "currency": null, "default_source": null, "delinquent": false, "description": "Customer 1", "discount": null, "email": "customer1@test.com", "invoice_prefix": "BDCCE7CD", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {}, "name": null, "next_invoice_sequence": 1, "phone": "111-111-1111", "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEfzwFq4fXO/sources"}, "subscriptions": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEfzwFq4fXO/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_I4ZQEfzwFq4fXO/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_HzZzA5Cm3Pb8Rk", "object": "customer", "address": null, "balance": 0, "created": 1599686872, "currency": "usd", "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "michel@dataline.io", "invoice_prefix": "BC8FADBE", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {"workspace_id": "b5d5596b-8802-464e-ab39-48e2d2ceaa4b", "env": "dev", "eligibleForTrial": "true"}, "name": "default", "next_invoice_sequence": 23, "phone": null, "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_HzZzA5Cm3Pb8Rk/sources"}, "subscriptions": {"object": "list", "data": [{"id": "sub_HzZz2kXi3X5JeO", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1602278873, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1599686873, "current_period_end": 1628544473, "current_period_start": 1625866073, "customer": "cus_HzZzA5Cm3Pb8Rk", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HzZzkViznILf47", "object": "subscription_item", "billing_thresholds": null, "created": 1599686874, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_HzZz2kXi3X5JeO", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HzZz2kXi3X5JeO"}, "latest_invoice": "in_1JBRG2IEn5WyEQxn2Ic7V2RS", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1599686873, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1602278873, "trial_start": 1599686873}, {"id": "sub_HzZz9jG0XoSTzp", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1602278873, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1599686873, "current_period_end": 1628544473, "current_period_start": 1625866073, "customer": "cus_HzZzA5Cm3Pb8Rk", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HzZzdUREzTkBGP", "object": "subscription_item", "billing_thresholds": null, "created": 1599686873, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_HzZz9jG0XoSTzp", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HzZz9jG0XoSTzp"}, "latest_invoice": "in_1JBRG1IEn5WyEQxn1UZZ6j5W", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1599686873, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1602278873, "trial_start": 1599686873}], "has_more": false, "total_count": 2, "url": "/v1/customers/cus_HzZzA5Cm3Pb8Rk/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_HzZzA5Cm3Pb8Rk/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_Hm79aU31H8NCaS", "object": "customer", "address": null, "balance": 0, "created": 1596581264, "currency": "usd", "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "jamakase54+10@gmail.com", "invoice_prefix": "F3BD4972", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {"workspace_id": "ad73703b-8397-4f79-a725-0e6f639f35a8", "env": "dev", "eligibleForTrial": "true"}, "name": "test2", "next_invoice_sequence": 25, "phone": null, "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hm79aU31H8NCaS/sources"}, "subscriptions": {"object": "list", "data": [{"id": "sub_Hm79IpijHbWG6Y", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1599173266, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1596581266, "current_period_end": 1628030866, "current_period_start": 1625352466, "customer": "cus_Hm79aU31H8NCaS", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hm79NwhbKPTnMW", "object": "subscription_item", "billing_thresholds": null, "created": 1596581266, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hm79IpijHbWG6Y", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hm79IpijHbWG6Y"}, "latest_invoice": "in_1J9Hf1IEn5WyEQxnRIsUHRNk", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1596581266, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1599173266, "trial_start": 1596581266}, {"id": "sub_Hm79H35Cga2xyM", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1599173265, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1596581265, "current_period_end": 1628030865, "current_period_start": 1625352465, "customer": "cus_Hm79aU31H8NCaS", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hm79ez6Hthf2jP", "object": "subscription_item", "billing_thresholds": null, "created": 1596581266, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hm79H35Cga2xyM", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hm79H35Cga2xyM"}, "latest_invoice": "in_1J9He9IEn5WyEQxnIHnR07pp", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1596581265, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1599173265, "trial_start": 1596581265}], "has_more": false, "total_count": 2, "url": "/v1/customers/cus_Hm79aU31H8NCaS/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hm79aU31H8NCaS/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_HgqdUlT76RCID7", "object": "customer", "address": null, "balance": 0, "created": 1595366618, "currency": "usd", "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "john@dataline.io", "invoice_prefix": "DA31D4FD", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {"workspace_id": "619717fd-c858-478a-8493-71953801e0d5", "env": "dev", "eligibleForTrial": "false"}, "name": "default", "next_invoice_sequence": 27, "phone": null, "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_HgqdUlT76RCID7/sources"}, "subscriptions": {"object": "list", "data": [{"id": "sub_Hgqd9cnZ3U2zso", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1595366620, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_HgqdUlT76RCID7", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hgqd3GbOq4nX96", "object": "subscription_item", "billing_thresholds": null, "created": 1595366621, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hgqd9cnZ3U2zso", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hgqd9cnZ3U2zso"}, "latest_invoice": "in_1J8OZSIEn5WyEQxnB2v5sbjq", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1595366620, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1595366620}, {"id": "sub_HgqdZo49rNc9yd", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1595366619, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_HgqdUlT76RCID7", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_HgqdPFqB83zOkG", "object": "subscription_item", "billing_thresholds": null, "created": 1595366620, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_HgqdZo49rNc9yd", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_HgqdZo49rNc9yd"}, "latest_invoice": "in_1J8OaGIEn5WyEQxntxV9SoiC", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1595366619, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1595366619}], "has_more": false, "total_count": 2, "url": "/v1/customers/cus_HgqdUlT76RCID7/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_HgqdUlT76RCID7/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_Hf34W3ixOwxYl8", "object": "customer", "address": null, "balance": 0, "created": 1594951620, "currency": "usd", "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "sherif+friends@dataline.io", "invoice_prefix": "A7936507", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null}, "livemode": false, "metadata": {"workspace_id": "9f071356-1b6e-4daf-9032-8e99b3f29bb9", "env": "dev", "eligibleForTrial": "false"}, "name": "default", "next_invoice_sequence": 27, "phone": null, "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hf34W3ixOwxYl8/sources"}, "subscriptions": {"object": "list", "data": [{"id": "sub_Hf34IdAAxZ52R9", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594951622, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf34W3ixOwxYl8", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf34ZIE6Eghfhg", "object": "subscription_item", "billing_thresholds": null, "created": 1594951623, "metadata": {}, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "plan_HDfijky2JcM0pm", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf34IdAAxZ52R9", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf34IdAAxZ52R9"}, "latest_invoice": "in_1J8OaNIEn5WyEQxnjVyxvHpB", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HDfijky2JcM0pm", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1588637439, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free-overage", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 5000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594951622, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594951622}, {"id": "sub_Hf34Qc1KVVs8S6", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1596283200, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594951621, "current_period_end": 1627819200, "current_period_start": 1625140800, "customer": "cus_Hf34W3ixOwxYl8", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf34nezuRvVozR", "object": "subscription_item", "billing_thresholds": null, "created": 1594951622, "metadata": {}, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCaq3bqVvJH4sN", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 0, "unit_amount_decimal": "0"}, "quantity": 1, "subscription": "sub_Hf34Qc1KVVs8S6", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf34Qc1KVVs8S6"}, "latest_invoice": "in_1J8OZTIEn5WyEQxny3CxoLoP", "livemode": false, "metadata": {"eligibleForTrial": "false"}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCaq3bqVvJH4sN", "object": "plan", "active": true, "aggregate_usage": null, "amount": 0, "amount_decimal": "0", "billing_scheme": "per_unit", "created": 1588388692, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "free", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594951621, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1596283200, "trial_start": 1594951621}], "has_more": false, "total_count": 2, "url": "/v1/customers/cus_Hf34W3ixOwxYl8/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hf34W3ixOwxYl8/tax_ids"}}, "emitted_at": 1626172757000} -{"stream": "customers", "data": {"id": "cus_Hf2qOhXoDIiXiK", "object": "customer", "address": null, "balance": 0, "created": 1594950742, "currency": "usd", "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "sherif@dataline.io", "invoice_prefix": "F763206E", "invoice_settings": {"custom_fields": null, "default_payment_method": "pm_1H5ipwIEn5WyEQxn2LlKZjqJ", "footer": null}, "livemode": false, "metadata": {"workspace_id": "23818f66-a538-48d3-8d50-48ace4a51555", "env": "dev", "eligibleForTrial": "false"}, "name": "paying-with-overage", "next_invoice_sequence": 31, "phone": null, "preferred_locales": [], "shipping": null, "sources": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hf2qOhXoDIiXiK/sources"}, "subscriptions": {"object": "list", "data": [{"id": "sub_Hf2qrsVuVGHXe3", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1594951250, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950743, "current_period_end": 1629165650, "current_period_start": 1626487250, "customer": "cus_Hf2qOhXoDIiXiK", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2qsLwNq56OJG", "object": "subscription_item", "billing_thresholds": null, "created": 1594950744, "metadata": {}, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "price": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "price", "active": true, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": "sum", "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "metered"}, "tiers_mode": "graduated", "transform_quantity": null, "type": "recurring", "unit_amount": null, "unit_amount_decimal": null}, "subscription": "sub_Hf2qrsVuVGHXe3", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2qrsVuVGHXe3"}, "latest_invoice": "in_1JE2w0IEn5WyEQxnm556audH", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "price_1H5DS3IEn5WyEQxnqW2x4pWu", "object": "plan", "active": true, "aggregate_usage": "sum", "amount": null, "amount_decimal": null, "billing_scheme": "tiered", "created": 1594830443, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-overage-monthly-v2", "product": "prod_H07MQuAFARZ6K6", "tiers": [{"flat_amount": null, "flat_amount_decimal": null, "unit_amount": 0, "unit_amount_decimal": "0", "up_to": 50000}, {"flat_amount": null, "flat_amount_decimal": null, "unit_amount": null, "unit_amount_decimal": "0.5", "up_to": null}], "tiers_mode": "graduated", "transform_usage": null, "trial_period_days": null, "usage_type": "metered"}, "quantity": 1, "schedule": null, "start_date": 1594950743, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1594951249, "trial_start": 1594950743}, {"id": "sub_Hf2qWerNs8mYbh", "object": "subscription", "application_fee_percent": null, "automatic_tax": {"enabled": false}, "billing_cycle_anchor": 1594951270, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "collection_method": "charge_automatically", "created": 1594950743, "current_period_end": 1629165670, "current_period_start": 1626487270, "customer": "cus_Hf2qOhXoDIiXiK", "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "discount": null, "ended_at": null, "items": {"object": "list", "data": [{"id": "si_Hf2quA7b9Kin4A", "object": "subscription_item", "billing_thresholds": null, "created": 1594950743, "metadata": {}, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "price": {"id": "plan_HCV3N7NM9cyAm4", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "recurring": {"aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed"}, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 9900, "unit_amount_decimal": "9900"}, "quantity": 1, "subscription": "sub_Hf2qWerNs8mYbh", "tax_rates": []}], "has_more": false, "total_count": 1, "url": "/v1/subscription_items?subscription=sub_Hf2qWerNs8mYbh"}, "latest_invoice": "in_1JE2vwIEn5WyEQxnkpZ7QEFP", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "pause_collection": null, "payment_settings": {"payment_method_options": null, "payment_method_types": null}, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "plan": {"id": "plan_HCV3N7NM9cyAm4", "object": "plan", "active": true, "aggregate_usage": null, "amount": 9900, "amount_decimal": "9900", "billing_scheme": "per_unit", "created": 1588367151, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": "starter-monthly", "product": "prod_H07MQuAFARZ6K6", "tiers": null, "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}, "quantity": 1, "schedule": null, "start_date": 1594950743, "status": "active", "tax_percent": null, "transfer_data": null, "trial_end": 1594951269, "trial_start": 1594950743}], "has_more": false, "total_count": 2, "url": "/v1/customers/cus_Hf2qOhXoDIiXiK/subscriptions"}, "tax_exempt": "none", "tax_ids": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/customers/cus_Hf2qOhXoDIiXiK/tax_ids"}}, "emitted_at": 1626172757000} diff --git a/airbyte-integrations/connectors/source-stripe/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-stripe/integration_tests/invalid_config.json index 51dcd08dde3e..63da3f8de65f 100644 --- a/airbyte-integrations/connectors/source-stripe/integration_tests/invalid_config.json +++ b/airbyte-integrations/connectors/source-stripe/integration_tests/invalid_config.json @@ -1,5 +1,5 @@ { - "client_secret": "wrong-client-secret", + "client_secret": "sk_test_wrongClientSecret", "account_id": "wrong-account-id", "start_date": "2020-05-01T00:00:00Z" } diff --git a/airbyte-integrations/connectors/source-stripe/integration_tests/non_disputes_events_catalog.json b/airbyte-integrations/connectors/source-stripe/integration_tests/non_disputes_events_catalog.json index b71e667190b6..eed53127e063 100644 --- a/airbyte-integrations/connectors/source-stripe/integration_tests/non_disputes_events_catalog.json +++ b/airbyte-integrations/connectors/source-stripe/integration_tests/non_disputes_events_catalog.json @@ -25,6 +25,18 @@ "sync_mode": "incremental", "destination_sync_mode": "overwrite", "cursor_field": ["created"] + }, + { + "stream": { + "name": "payment_intents", + "json_schema": {}, + "supported_sync_modes": ["full_refresh", "incremental"], + "source_defined_cursor": true, + "default_cursor_field": ["created"], + "source_defined_primary_key": [["id"]] + }, + "sync_mode": "incremental", + "destination_sync_mode": "append" } ] } diff --git a/airbyte-integrations/connectors/source-stripe/setup.py b/airbyte-integrations/connectors/source-stripe/setup.py index 470add42946c..f9119c5e5100 100644 --- a/airbyte-integrations/connectors/source-stripe/setup.py +++ b/airbyte-integrations/connectors/source-stripe/setup.py @@ -25,7 +25,7 @@ from setuptools import find_packages, setup -MAIN_REQUIREMENTS = ["airbyte-cdk", "stripe"] +MAIN_REQUIREMENTS = ["airbyte-cdk~=0.1", "stripe==2.56.0"] TEST_REQUIREMENTS = [ "pytest~=6.1", diff --git a/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/payment_intents.json b/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/payment_intents.json new file mode 100644 index 000000000000..e05550347071 --- /dev/null +++ b/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/payment_intents.json @@ -0,0 +1,944 @@ +{ + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "string"] + }, + "object": { + "type": ["null", "string"] + }, + "amount": { + "type": ["null", "integer"] + }, + "amount_capturable": { + "type": ["null", "integer"] + }, + "amount_received": { + "type": ["null", "integer"] + }, + "application": { + "type": ["null", "string"] + }, + "application_fee_amount": { + "type": ["null", "integer"] + }, + "canceled_at": { + "type": ["null", "integer"] + }, + "cancellation_reason": { + "type": ["null", "string"] + }, + "capture_method": { + "type": ["null", "string"], + "enum": ["automatic", "manual"] + }, + "charges": { + "type": ["null", "object"], + "properties": { + "object": { + "type": ["null", "string"] + }, + "data": { + "type": ["null", "array"] + }, + "has_more": { + "type": ["null", "boolean"] + }, + "total_count": { + "type": ["null", "integer"] + }, + "url": { + "type": ["null", "string"] + } + } + }, + "client_secret": { + "type": ["null", "string"] + }, + "confirmation_method": { + "type": ["null", "string"], + "enum": ["automatic", "manual"] + }, + "created": { + "type": ["null", "integer"] + }, + "currency": { + "type": ["null", "string"] + }, + "customer": { + "type": ["null", "string"] + }, + "description": { + "type": ["null", "string"] + }, + "invoice": { + "type": ["null", "string"] + }, + "last_payment_error": { + "type": ["null", "object"], + "properties": { + "charge": { + "type": ["null", "string"] + }, + "code": { + "type": ["null", "string"] + }, + "decline_code": { + "type": ["null", "string"] + }, + "doc_url": { + "type": ["null", "string"] + }, + "message": { + "type": ["null", "string"] + }, + "param": { + "type": ["null", "string"] + }, + "payment_method": { + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "string"] + }, + "object": { + "type": ["null", "string"] + }, + "acss_debit": { + "type": ["null", "object"], + "properties": { + "bank_name": { + "type": ["null", "string"] + }, + "fingerprint": { + "type": ["null", "string"] + }, + "institution_number": { + "type": ["null", "string"] + }, + "last4": { + "type": ["null", "string"] + }, + "transit_number": { + "type": ["null", "string"] + } + } + }, + "afterpay_clearpay": {}, + "alipay": {}, + "au_becs_debit": { + "type": ["null", "object"], + "properties": { + "bsb_number": { + "type": ["null", "string"] + }, + "fingerprint": { + "type": ["null", "string"] + }, + "last4": { + "type": ["null", "string"] + } + } + }, + "bacs_debit": { + "type": ["null", "object"], + "properties": { + "fingerprint": { + "type": ["null", "string"] + }, + "last4": { + "type": ["null", "string"] + }, + "sort_code": { + "type": ["null", "string"] + } + } + }, + "bancontact": {}, + "billing_details": { + "type": ["null", "object"], + "properties": { + "address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + }, + "email": { + "type": ["null", "string"] + }, + "name": { + "type": ["null", "string"] + }, + "phone": { + "type": ["null", "string"] + } + } + }, + "boleto": { + "type": ["null", "object"], + "properties": { + "tax_id\n": { + "type": ["null", "string"] + } + } + }, + "card": { + "type": ["null", "object"], + "properties": { + "brand": { + "type": ["null", "string"] + }, + "checks": { + "type": ["null", "object"], + "properties": { + "address_line1_check": { + "type": ["null", "string"] + }, + "address_postal_code_check": { + "type": ["null", "string"] + }, + "cvc_check": { + "type": ["null", "string"] + } + } + }, + "country": { + "type": ["null", "string"] + }, + "exp_month": { + "type": ["null", "integer"] + }, + "exp_year": { + "type": ["null", "integer"] + }, + "fingerprint": { + "type": ["null", "string"] + }, + "funding": { + "type": ["null", "string"] + }, + "generated_from": { + "type": ["null", "object"], + "properties": { + "charge": { + "type": ["null", "string"] + }, + "payment_method_details": { + "type": ["null", "object"], + "properties": { + "card_present": { + "type": ["null", "object"], + "properties": { + "brand": { + "type": ["null", "string"] + }, + "cardholder_name": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "emv_auth_data": { + "type": ["null", "string"] + }, + "exp_month": { + "type": ["null", "integer"] + }, + "exp_year": { + "type": ["null", "integer"] + }, + "fingerprint": { + "type": ["null", "string"] + }, + "funding": { + "type": ["null", "string"], + "enum": ["credit", "debit", "prepaid", "unknown"] + }, + "generated_card": { + "type": ["null", "string"] + }, + "lsat4": { + "type": ["null", "string"] + }, + "network": { + "type": ["null", "string"], + "enum": [ + "contact_emv", + "contactless_emv", + "magnetic_stripe_track2", + "magnetic_stripe_fallback", + "contactless_magstripe_mode" + ] + }, + "read_method": { + "type": ["null", "string"] + }, + "receipt": { + "type": ["null", "object"], + "properties": { + "account_type": { + "type": ["null", "string"], + "enum": [ + "credit", + "checking", + "prepaid", + "unknown" + ] + }, + "application_cryptogram": { + "type": ["null", "string"] + }, + "application_preferred_name": { + "type": ["null", "string"] + }, + "authorization_code": { + "type": ["null", "string"] + }, + "authorization_response_code": { + "type": ["null", "string"] + }, + "cardholder_verification_method": { + "type": ["null", "string"] + }, + "dedicated_file_name": { + "type": ["null", "string"] + }, + "terminal_verification_results": { + "type": ["null", "string"] + }, + "transaction_status_information": { + "type": ["null", "string"] + } + } + }, + "type": { + "type": ["null", "string"] + } + } + }, + "type": { + "type": ["null", "string"] + } + } + }, + "setup_attempt": { + "type": ["null", "string"] + } + } + }, + "last4": { + "type": ["null", "string"] + }, + "networks": { + "type": ["null", "object"], + "properties": { + "available": { + "type": ["null", "array"], + "items": { + "type": ["null", "string"] + } + }, + "preferred": { + "type": ["null", "string"] + } + } + }, + "three_d_secure_usage": { + "type": ["null", "object"], + "properties": { + "supported": { + "type": ["null", "boolean"] + } + } + }, + "wallet": { + "type": ["null", "object"], + "properties": { + "amex_express_checkout": {}, + "apple_pay": {}, + "dynamic_last4": { + "type": ["null", "string"] + }, + "google_pay": {}, + "masterpass": { + "type": ["null", "object"], + "properties": { + "billing_address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + }, + "email": { + "type": ["null", "string"] + }, + "name": { + "type": ["null", "string"] + }, + "shipping_address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + } + } + }, + "samsung_pay": {}, + "type": { + "type": ["null", "string"] + }, + "visa_checkout": { + "type": ["null", "object"], + "properties": { + "billing_address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + }, + "email": { + "type": ["null", "string"] + }, + "name": { + "type": ["null", "string"] + }, + "shipping_address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + } + } + } + } + } + } + }, + "card_present": { + "type": ["null", "object"], + "properties": {} + }, + "created": { + "type": ["null", "integer"] + }, + "customer": { + "type": ["null", "string"] + }, + "eps": { + "type": ["null", "object"], + "properties": { + "bank": { + "type": ["null", "string"], + "enum": [ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau" + ] + } + } + }, + "fpx": { + "type": ["null", "object"], + "properties": { + "bank": { + "type": ["null", "string"], + "enum": [ + "affin_bank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_rakyat", + "bsn", + "cimb", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2u", + "ocbc", + "public_bank", + "rhb", + "standard_chartered", + "uob", + "deutsche_bank", + "maybank2e", + "pb_enterprise" + ] + } + } + }, + "giropay": { + "type": ["null", "object"], + "properties": {} + }, + "grabpay": { + "type": ["null", "object"], + "properties": {} + }, + "ideal": { + "type": ["null", "object"], + "properties": { + "bank": { + "type": ["null", "string"], + "enum": [ + "abn_amro", + "asn_bank", + "bunq", + "handelsbanken", + "ing", + "knab", + "moneyou", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot" + ] + } + } + }, + "interac_present": { + "type": ["null", "object"], + "properties": {} + }, + "livemode": { + "type": ["null", "boolean"] + }, + "metadata": { + "type": ["null", "object"], + "properties": {} + }, + "oxxo": { + "type": ["null", "object"], + "properties": {} + }, + "p24": { + "type": ["null", "object"], + "properties": { + "bank": { + "type": ["null", "string"] + } + } + }, + "sepa_debit": { + "type": ["null", "object"], + "properties": { + "bank_code": { + "type": ["null", "string"] + }, + "branch_code": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "fingerprint": { + "type": ["null", "string"] + }, + "generated_from": { + "type": ["null", "object"], + "properties": { + "charge": { + "type": ["null", "string"] + }, + "setup_attempt": { + "type": ["null", "string"] + } + } + }, + "last4": { + "type": ["null", "string"] + } + } + }, + "sofort": { + "type": ["null", "object"], + "properties": { + "country": { + "type": ["null", "string"] + } + } + }, + "type": { + "type": ["null", "string"], + "enum": [ + "acss_debit", + "afterpay_clearpay", + "alipay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "boleto", + "card", + "card_present", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "interac_present", + "oxxo", + "p24", + "sepa_debit", + "sofort", + "wechat_pay" + ] + }, + "wechat_pay": { + "type": ["null", "object"], + "properties": {} + } + } + }, + "payment_method_type": { + "type": ["null", "string"] + }, + "type": { + "type": ["null", "string"], + "enum": [ + "api_error", + "card_error", + "idempotency_error", + "invalid_request_error" + ] + } + } + }, + "livemode": { + "type": ["null", "boolean"] + }, + "metadata": { + "type": ["null", "object"], + "properties": {} + }, + "next_action": { + "type": ["null", "object"], + "properties": { + "alipay_handle_redirect": { + "type": ["null", "object"], + "properties": { + "native_data": { + "type": ["null", "string"] + }, + "native_url": { + "type": ["null", "string"] + }, + "return_url": { + "type": ["null", "string"] + }, + "url": { + "type": ["null", "string"] + } + } + }, + "boleto_display_details": { + "type": ["null", "object"], + "properties": { + "expires_at": { + "type": ["null", "integer"] + }, + "hosted_voucher_url": { + "type": ["null", "string"] + }, + "number": { + "type": ["null", "string"] + }, + "pdf": { + "type": ["null", "string"] + } + } + }, + "oxxo_display_details": { + "type": ["null", "object"], + "properties": { + "expires_after": { + "type": ["null", "integer"] + }, + "hosted_voucher_url": { + "type": ["null", "string"] + }, + "number": { + "type": ["null", "string"] + } + } + }, + "redirect_to_url": { + "type": ["null", "object"], + "properties": { + "return_url": { + "type": ["null", "string"] + }, + "url": { + "type": ["null", "string"] + } + } + }, + "type": { + "type": ["null", "string"] + }, + "use_stripe_sdk": { + "type": ["null", "object"], + "properties": {} + }, + "verify_with_microdeposits": { + "type": ["null", "object"], + "properties": { + "arrival_date": { + "type": ["null", "integer"] + }, + "hosted_verification_url": { + "type": ["null", "string"] + } + } + }, + "wechat_pay_display_qr_code": { + "type": ["null", "object"], + "properties": { + "data": { + "type": ["null", "string"] + }, + "image_data_url": { + "type": ["null", "string"] + } + } + }, + "wechat_pay_redirect_to_android_app": { + "type": ["null", "object"], + "properties": { + "app_id": { + "type": ["null", "string"] + }, + "nonce_str": { + "type": ["null", "string"] + }, + "package": { + "type": ["null", "string"] + }, + "partner_id": { + "type": ["null", "string"] + }, + "prepay_id": { + "type": ["null", "string"] + }, + "sign": { + "type": ["null", "string"] + }, + "timestamp": { + "type": ["null", "string"] + } + } + }, + "wechat_pay_redirect_to_ios_app": { + "type": ["null", "object"], + "properties": { + "native_url": { + "type": ["null", "string"] + } + } + } + } + }, + "on_behalf_of": { + "type": ["null", "string"] + }, + "payment_method": { + "type": ["null", "string"] + }, + "payment_method_options": { + "type": ["null", "object"], + "properties": {} + }, + "payment_method_types": { + "type": ["null", "array"], + "items": { + "type": ["null", "string"] + } + }, + "receipt_email": { + "type": ["null", "string"] + }, + "review": { + "type": ["null", "string"] + }, + "setup_future_usage": { + "type": ["null", "string"] + }, + "shipping": { + "type": ["null", "object"], + "properties": { + "address": { + "type": ["null", "object"], + "properties": { + "city": { + "type": ["null", "string"] + }, + "country": { + "type": ["null", "string"] + }, + "line1": { + "type": ["null", "string"] + }, + "line2": { + "type": ["null", "string"] + }, + "postal_code": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + } + } + }, + "carrier": { + "type": ["null", "string"] + }, + "name": { + "type": ["null", "string"] + }, + "phone": { + "type": ["null", "string"] + }, + "tracking_number": { + "type": ["null", "string"] + } + } + }, + "source": { + "type": ["null", "string"] + }, + "statement_description": { + "type": ["null", "string"] + }, + "statement_descriptor_suffix": { + "type": ["null", "string"] + }, + "status": { + "type": ["null", "string"] + }, + "transfer_data": { + "type": ["null", "object"], + "properties": { + "amount": { + "type": ["null", "integer"] + }, + "destination": { + "type": ["null", "string"] + } + } + }, + "transfer_group": { + "type": ["null", "string"] + } + } +} diff --git a/airbyte-integrations/connectors/source-stripe/source_stripe/source.py b/airbyte-integrations/connectors/source-stripe/source_stripe/source.py index 711d58953ae6..3d7076e1aed2 100644 --- a/airbyte-integrations/connectors/source-stripe/source_stripe/source.py +++ b/airbyte-integrations/connectors/source-stripe/source_stripe/source.py @@ -23,253 +23,34 @@ # -import math -from abc import ABC, abstractmethod -from typing import Any, Iterable, List, Mapping, MutableMapping, Optional, Tuple +from typing import Any, List, Mapping, Tuple -import requests import stripe from airbyte_cdk import AirbyteLogger -from airbyte_cdk.models import SyncMode from airbyte_cdk.sources import AbstractSource from airbyte_cdk.sources.streams import Stream -from airbyte_cdk.sources.streams.http import HttpStream from airbyte_cdk.sources.streams.http.auth import TokenAuthenticator - - -class StripeStream(HttpStream, ABC): - url_base = "https://api.stripe.com/v1/" - primary_key = "id" - - def __init__(self, account_id: str, **kwargs): - super().__init__(**kwargs) - self.account_id = account_id - - def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]: - decoded_response = response.json() - if bool(decoded_response.get("has_more", "False")) and decoded_response.get("data", []): - last_object_id = decoded_response["data"][-1]["id"] - return {"starting_after": last_object_id} - - def request_params( - self, - stream_state: Mapping[str, Any], - stream_slice: Mapping[str, Any] = None, - next_page_token: Mapping[str, Any] = None, - ) -> MutableMapping[str, Any]: - - # Stripe default pagination is 10, max is 100 - params = {"limit": 100} - - # Handle pagination by inserting the next page's token in the request parameters - if next_page_token: - params.update(next_page_token) - - return params - - def request_headers(self, **kwargs) -> Mapping[str, Any]: - if self.account_id: - return {"Stripe-Account": self.account_id} - - return {} - - def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: - response_json = response.json() - yield from response_json.get("data", []) # Stripe puts records in a container array "data" - - -class IncrementalStripeStream(StripeStream, ABC): - # Stripe returns most recently created objects first, so we don't want to persist state until the entire stream has been read - state_checkpoint_interval = math.inf - - @property - @abstractmethod - def cursor_field(self) -> str: - """ - Defining a cursor field indicates that a stream is incremental, so any incremental stream must extend this class - and define a cursor field. - """ - pass - - def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: - """ - Return the latest state by comparing the cursor value in the latest record with the stream's most recent state object - and returning an updated state object. - """ - return {self.cursor_field: max(latest_record.get(self.cursor_field), current_stream_state.get(self.cursor_field, 0))} - - def request_params(self, stream_state=None, **kwargs): - stream_state = stream_state or {} - params = super().request_params(stream_state=stream_state, **kwargs) - params["created[gte]"] = stream_state.get(self.cursor_field) - return params - - -class Customers(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs) -> str: - return "customers" - - -class BalanceTransactions(IncrementalStripeStream): - cursor_field = "created" - name = "balance_transactions" - - def path(self, **kwargs) -> str: - return "balance_transactions" - - -class Charges(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs) -> str: - return "charges" - - -class CustomerBalanceTransactions(StripeStream): - name = "customer_balance_transactions" - - def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): - customer_id = stream_slice["customer_id"] - return f"customers/{customer_id}/balance_transactions" - - def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: - customers_stream = Customers(authenticator=self.authenticator, account_id=self.account_id) - for customer in customers_stream.read_records(sync_mode=SyncMode.full_refresh): - yield from super().read_records(stream_slice={"customer_id": customer["id"]}, **kwargs) - - -class Coupons(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "coupons" - - -class Disputes(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "disputes" - - -class Events(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "events" - - -class Invoices(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "invoices" - - -class InvoiceLineItems(StripeStream): - name = "invoice_line_items" - - def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): - return f"invoices/{stream_slice['invoice_id']}/lines" - - def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: - invoices_stream = Invoices(authenticator=self.authenticator, account_id=self.account_id) - for invoice in invoices_stream.read_records(sync_mode=SyncMode.full_refresh): - yield from super().read_records(stream_slice={"invoice_id": invoice["id"]}, **kwargs) - - -class InvoiceItems(IncrementalStripeStream): - cursor_field = "date" - name = "invoice_items" - - def path(self, **kwargs): - return "invoiceitems" - - -class Payouts(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "payouts" - - -class Plans(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "plans" - - -class Products(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "products" - - -class Subscriptions(IncrementalStripeStream): - cursor_field = "created" - status = "all" - - def path(self, **kwargs): - return "subscriptions" - - def request_params(self, stream_state=None, **kwargs): - stream_state = stream_state or {} - params = super().request_params(stream_state=stream_state, **kwargs) - params["status"] = self.status - return params - - -class SubscriptionItems(StripeStream): - name = "subscription_items" - - def path(self, **kwargs): - return "subscription_items" - - def request_params(self, stream_slice: Mapping[str, Any] = None, **kwargs): - params = super().request_params(stream_slice=stream_slice, **kwargs) - params["subscription"] = stream_slice["subscription_id"] - return params - - def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: - subscriptions_stream = Subscriptions(authenticator=self.authenticator, account_id=self.account_id) - for subscriptions in subscriptions_stream.read_records(sync_mode=SyncMode.full_refresh): - yield from super().read_records(stream_slice={"subscription_id": subscriptions["id"]}, **kwargs) - - -class Transfers(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "transfers" - - -class Refunds(IncrementalStripeStream): - cursor_field = "created" - - def path(self, **kwargs): - return "refunds" - - -class BankAccounts(StripeStream): - name = "bank_accounts" - - def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): - customer_id = stream_slice["customer_id"] - return f"customers/{customer_id}/sources" - - def request_params(self, **kwargs) -> MutableMapping[str, Any]: - params = super().request_params(**kwargs) - params["object"] = "bank_account" - return params - - def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: - customers_stream = Customers(authenticator=self.authenticator, account_id=self.account_id) - for customer in customers_stream.read_records(sync_mode=SyncMode.full_refresh): - yield from super().read_records(stream_slice={"customer_id": customer["id"]}, **kwargs) +from source_stripe.streams import ( + BalanceTransactions, + BankAccounts, + Charges, + Coupons, + CustomerBalanceTransactions, + Customers, + Disputes, + Events, + InvoiceItems, + InvoiceLineItems, + Invoices, + PaymentIntents, + Payouts, + Plans, + Products, + Refunds, + SubscriptionItems, + Subscriptions, + Transfers, +) class SourceStripe(AbstractSource): @@ -285,22 +66,23 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]: authenticator = TokenAuthenticator(config["client_secret"]) args = {"authenticator": authenticator, "account_id": config["account_id"]} return [ - BankAccounts(**args), BalanceTransactions(**args), + BankAccounts(**args), Charges(**args), Coupons(**args), - Customers(**args), CustomerBalanceTransactions(**args), + Customers(**args), Disputes(**args), Events(**args), InvoiceItems(**args), InvoiceLineItems(**args), Invoices(**args), - Plans(**args), + PaymentIntents(**args), Payouts(**args), + Plans(**args), Products(**args), - Subscriptions(**args), - SubscriptionItems(**args), Refunds(**args), + SubscriptionItems(**args), + Subscriptions(**args), Transfers(**args), ] diff --git a/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py b/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py new file mode 100644 index 000000000000..896c61b0aaec --- /dev/null +++ b/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py @@ -0,0 +1,351 @@ +# +# MIT License +# +# Copyright (c) 2020 Airbyte +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + + +import math +from abc import ABC, abstractmethod +from typing import Any, Iterable, Mapping, MutableMapping, Optional + +import requests +from airbyte_cdk.models import SyncMode +from airbyte_cdk.sources.streams.http import HttpStream + + +class StripeStream(HttpStream, ABC): + url_base = "https://api.stripe.com/v1/" + primary_key = "id" + + def __init__(self, account_id: str, **kwargs): + super().__init__(**kwargs) + self.account_id = account_id + + def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]: + decoded_response = response.json() + if bool(decoded_response.get("has_more", "False")) and decoded_response.get("data", []): + last_object_id = decoded_response["data"][-1]["id"] + return {"starting_after": last_object_id} + + def request_params( + self, + stream_state: Mapping[str, Any], + stream_slice: Mapping[str, Any] = None, + next_page_token: Mapping[str, Any] = None, + ) -> MutableMapping[str, Any]: + + # Stripe default pagination is 10, max is 100 + params = {"limit": 100} + + # Handle pagination by inserting the next page's token in the request parameters + if next_page_token: + params.update(next_page_token) + + return params + + def request_headers(self, **kwargs) -> Mapping[str, Any]: + if self.account_id: + return {"Stripe-Account": self.account_id} + + return {} + + def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: + response_json = response.json() + yield from response_json.get("data", []) # Stripe puts records in a container array "data" + + +class IncrementalStripeStream(StripeStream, ABC): + # Stripe returns most recently created objects first, so we don't want to persist state until the entire stream has been read + state_checkpoint_interval = math.inf + + @property + @abstractmethod + def cursor_field(self) -> str: + """ + Defining a cursor field indicates that a stream is incremental, so any incremental stream must extend this class + and define a cursor field. + """ + pass + + def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: + """ + Return the latest state by comparing the cursor value in the latest record with the stream's most recent state object + and returning an updated state object. + """ + return {self.cursor_field: max(latest_record.get(self.cursor_field), current_stream_state.get(self.cursor_field, 0))} + + def request_params(self, stream_state: Mapping[str, Any] = None, **kwargs): + stream_state = stream_state or {} + params = super().request_params(stream_state=stream_state, **kwargs) + if stream_state and self.cursor_field in stream_state: + params["created[gte]"] = stream_state.get(self.cursor_field) + return params + + +class Customers(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/customers/list + """ + + cursor_field = "created" + + def path(self, **kwargs) -> str: + return "customers" + + +class BalanceTransactions(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/balance_transactions/list + """ + + cursor_field = "created" + name = "balance_transactions" + + def path(self, **kwargs) -> str: + return "balance_transactions" + + +class Charges(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/charges/list + """ + + cursor_field = "created" + + def path(self, **kwargs) -> str: + return "charges" + + +class CustomerBalanceTransactions(StripeStream): + """ + API docs: https://stripe.com/docs/api/customer_balance_transactions/list + """ + + name = "customer_balance_transactions" + + def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): + customer_id = stream_slice["customer_id"] + return f"customers/{customer_id}/balance_transactions" + + def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: + customers_stream = Customers(authenticator=self.authenticator, account_id=self.account_id) + for customer in customers_stream.read_records(sync_mode=SyncMode.full_refresh): + yield from super().read_records(stream_slice={"customer_id": customer["id"]}, **kwargs) + + +class Coupons(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/coupons/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "coupons" + + +class Disputes(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/disputes/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "disputes" + + +class Events(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/events/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "events" + + +class Invoices(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/invoices/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "invoices" + + +class InvoiceLineItems(StripeStream): + """ + API docs: https://stripe.com/docs/api/invoices/invoice_lines + """ + + name = "invoice_line_items" + + def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): + return f"invoices/{stream_slice['invoice_id']}/lines" + + def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: + invoices_stream = Invoices(authenticator=self.authenticator, account_id=self.account_id) + for invoice in invoices_stream.read_records(sync_mode=SyncMode.full_refresh): + yield from super().read_records(stream_slice={"invoice_id": invoice["id"]}, **kwargs) + + +class InvoiceItems(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/invoiceitems/list + """ + + cursor_field = "date" + name = "invoice_items" + + def path(self, **kwargs): + return "invoiceitems" + + +class Payouts(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/payouts/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "payouts" + + +class Plans(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/plans/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "plans" + + +class Products(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/products/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "products" + + +class Subscriptions(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/subscriptions/list + """ + + cursor_field = "created" + status = "all" + + def path(self, **kwargs): + return "subscriptions" + + def request_params(self, stream_state=None, **kwargs): + stream_state = stream_state or {} + params = super().request_params(stream_state=stream_state, **kwargs) + params["status"] = self.status + return params + + +class SubscriptionItems(StripeStream): + """ + API docs: https://stripe.com/docs/api/subscription_items/list + """ + + name = "subscription_items" + + def path(self, **kwargs): + return "subscription_items" + + def request_params(self, stream_slice: Mapping[str, Any] = None, **kwargs): + params = super().request_params(stream_slice=stream_slice, **kwargs) + params["subscription"] = stream_slice["subscription_id"] + return params + + def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: + subscriptions_stream = Subscriptions(authenticator=self.authenticator, account_id=self.account_id) + for subscriptions in subscriptions_stream.read_records(sync_mode=SyncMode.full_refresh): + yield from super().read_records(stream_slice={"subscription_id": subscriptions["id"]}, **kwargs) + + +class Transfers(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/transfers/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "transfers" + + +class Refunds(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/refunds/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "refunds" + + +class PaymentIntents(IncrementalStripeStream): + """ + API docs: https://stripe.com/docs/api/payment_intents/list + """ + + cursor_field = "created" + + def path(self, **kwargs): + return "payment_intents" + + +class BankAccounts(StripeStream): + """ + API docs: https://stripe.com/docs/api/customer_bank_accounts/list + """ + + name = "bank_accounts" + + def path(self, stream_slice: Mapping[str, Any] = None, **kwargs): + customer_id = stream_slice["customer_id"] + return f"customers/{customer_id}/sources" + + def request_params(self, **kwargs) -> MutableMapping[str, Any]: + params = super().request_params(**kwargs) + params["object"] = "bank_account" + return params + + def read_records(self, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: + customers_stream = Customers(authenticator=self.authenticator, account_id=self.account_id) + for customer in customers_stream.read_records(sync_mode=SyncMode.full_refresh): + yield from super().read_records(stream_slice={"customer_id": customer["id"]}, **kwargs) diff --git a/docs/integrations/sources/stripe.md b/docs/integrations/sources/stripe.md index 028d36852bdd..1c8e62306c23 100644 --- a/docs/integrations/sources/stripe.md +++ b/docs/integrations/sources/stripe.md @@ -12,19 +12,20 @@ This Source is capable of syncing the following core Streams: * [Bank accounts](https://stripe.com/docs/api/customer_bank_accounts/list) * [Charges](https://stripe.com/docs/api/charges/list) \(Incremental\) * [Coupons](https://stripe.com/docs/api/coupons/list) \(Incremental\) -* [Customers](https://stripe.com/docs/api/customers/list) \(Incremental\) * [Customer Balance Transactions](https://stripe.com/docs/api/customer_balance_transactions/list) \(Incremental\) +* [Customers](https://stripe.com/docs/api/customers/list) \(Incremental\) * [Disputes](https://stripe.com/docs/api/disputes/list) \(Incremental\) * [Events](https://stripe.com/docs/api/events/list) \(Incremental\) -* [Invoices](https://stripe.com/docs/api/invoices/list) \(Incremental\) * [Invoice Items](https://stripe.com/docs/api/invoiceitems/list) \(Incremental\) * [Invoice Line Items](https://stripe.com/docs/api/invoices/invoice_lines) +* [Invoices](https://stripe.com/docs/api/invoices/list) \(Incremental\) +* [PaymentIntents](https://stripe.com/docs/api/payment_intents/list) \(Incremental\) * [Payouts](https://stripe.com/docs/api/payouts/list) \(Incremental\) * [Plans](https://stripe.com/docs/api/plans/list) \(Incremental\) * [Products](https://stripe.com/docs/api/products/list) \(Incremental\) * [Refunds](https://stripe.com/docs/api/refunds/list) \(Incremental\) -* [Subscriptions](https://stripe.com/docs/api/subscriptions/list) \(Incremental\) * [Subscription Items](https://stripe.com/docs/api/subscription_items/list) +* [Subscriptions](https://stripe.com/docs/api/subscriptions/list) \(Incremental\) * [Transfers](https://stripe.com/docs/api/transfers/list) \(Incremental\) ### Notes @@ -71,6 +72,7 @@ If you would like to test Airbyte using test data on Stripe, `sk_test_` and `rk_ | Version | Date | Pull Request | Subject | | :------ | :-------- | :----- | :------ | +| 0.1.17 | 2021-09-14 | [6004](https://github.com/airbytehq/airbyte/pull/6004) | Add `PaymentIntents` stream | | 0.1.16 | 2021-07-28 | [4980](https://github.com/airbytehq/airbyte/pull/4980) | Remove Updated field from schemas | | 0.1.15 | 2021-07-21 | [4878](https://github.com/airbytehq/airbyte/pull/4878) | Fix incorrect percent_off and discounts data filed types| | 0.1.14 | 2021-07-09 | [4669](https://github.com/airbytehq/airbyte/pull/4669) | Subscriptions Stream now returns all kinds of subscriptions (including expired and canceled)|