> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stripe as a data source

> Bring data from Stripe to Nekt.

Stripe is a technology company that builds economic infrastructure for the internet, primarily focused on payment processing for online businesses. It provides APIs and tools for accepting payments, managing subscriptions, and handling financial transactions securely.

<img width="200" src="https://mintcdn.com/nekt/ACccwuqhDqzX14tV/assets/logo/logo-stripe.png?fit=max&auto=format&n=ACccwuqhDqzX14tV&q=85&s=8f6226b026f79b374e19e653fdea056e" data-path="assets/logo/logo-stripe.png" />

## Configuring Stripe as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Stripe option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

You'll need to provide your Stripe API credentials to allow Nekt to access your data.

The following configurations are available:

* **Client Secret**: Your Stripe secret API key. You can find it in your [Stripe Dashboard](https://dashboard.stripe.com/apikeys) under Developers > API keys.

* **Account ID**: (Optional) Your Stripe account ID. Required when authenticating on behalf of a connected account.

* **Start Date**: The earliest date from which records will be synced.

* **Stripe Connect**: (Default: `false`) Enable this if your Stripe account is a platform account that uses [Stripe Connect](https://stripe.com/connect) features. When enabled, the following additional streams become available: Connect Accounts, Connect Application Fees, Connect Transfers, and Connect Subaccount Transfers.

* **Credit Balance**: (Default: `false`) Enable this to retrieve Credit Balance data. When enabled, the Credit Balance Summary and Credit Balance Transaction streams become available.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: you can choose between INCREMENTAL and FULL\_TABLE.
  * Incremental: every time the extraction happens, we'll get only the new data - which is good if, for example, you want to keep every record ever fetched.
  * Full table: every time the extraction happens, we'll get the current state of the data - which is good if, for example, you don't want to have deleted data in your catalog.

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

Below you'll find all available data streams from Stripe and their corresponding fields:

<AccordionGroup>
  <Accordion title="Customers">
    Stream for managing customer profiles and their associated data.

    | Field               | Type     | Description                                                               |
    | :------------------ | :------- | :------------------------------------------------------------------------ |
    | `id`                | String   | Unique identifier for the customer                                        |
    | `name`              | String   | Full name of the customer                                                 |
    | `email`             | String   | Email address of the customer                                             |
    | `phone`             | String   | Phone number of the customer                                              |
    | `description`       | String   | Description of the customer                                               |
    | `created`           | DateTime | Timestamp when the customer was created                                   |
    | `updated_at`        | DateTime | Timestamp of the last update                                              |
    | `address`           | Object   | Billing address (city, country, line1, line2, postal\_code, state)        |
    | `shipping`          | Object   | Shipping details including address, name, and phone                       |
    | `balance`           | Integer  | Current balance on the customer's account (in the smallest currency unit) |
    | `currency`          | String   | Default currency for the customer                                         |
    | `delinquent`        | Boolean  | Whether the customer has a past-due invoice                               |
    | `default_source`    | String   | ID of the default payment source                                          |
    | `invoice_prefix`    | String   | Prefix for invoices generated from this customer                          |
    | `invoice_settings`  | Object   | Default invoice settings including default payment method and footer      |
    | `tax_exempt`        | String   | Tax exemption status (none, exempt, or reverse)                           |
    | `tax_ids`           | Array    | Array of tax IDs associated with the customer                             |
    | `metadata`          | Object   | Set of key-value pairs for storing additional information                 |
    | `livemode`          | Boolean  | Whether the object exists in live mode or test mode                       |
    | `preferred_locales` | Array    | Customer's preferred locales for emails and invoices                      |
  </Accordion>

  <Accordion title="Customer Tax IDs">
    Stream for retrieving tax identification numbers associated with a customer. This stream is a child of Customers and requires the Customers stream to be enabled.

    | Field                           | Type     | Description                                                |
    | :------------------------------ | :------- | :--------------------------------------------------------- |
    | `id`                            | String   | Unique identifier of the record.                           |
    | `updated_at`                    | DateTime | Timestamp when the record was last updated.                |
    | `object`                        | String   | String representing the object type.                       |
    | `country`                       | String   | Two-letter country code.                                   |
    | `created`                       | DateTime | Timestamp when the record was created.                     |
    | `customer`                      | String   | Identifier of the associated customer.                     |
    | `livemode`                      | Boolean  | Whether the tax ID was created in live mode.               |
    | `owner.account`                 | String   | Identifier of the account.                                 |
    | `owner.application`             | String   | Identifier of the application.                             |
    | `owner.customer`                | String   | Identifier of the customer.                                |
    | `owner.type`                    | String   | Type of owner.                                             |
    | `type`                          | String   | Type of tax ID (e.g. br\_cnpj, br\_cpf, eu\_vat, us\_ein). |
    | `value`                         | String   | Value of the tax ID.                                       |
    | `verification.status`           | String   | Verification status.                                       |
    | `verification.verified_address` | String   | Verified address.                                          |
    | `verification.verified_name`    | String   | Verified name.                                             |
  </Accordion>

  <Accordion title="Subscriptions">
    Stream for managing recurring subscription data, including billing cycles, statuses, and associated items.

    | Field                    | Type     | Description                                                                           |
    | :----------------------- | :------- | :------------------------------------------------------------------------------------ |
    | `id`                     | String   | Unique identifier for the subscription                                                |
    | `customer`               | String   | ID of the customer associated with this subscription                                  |
    | `status`                 | String   | Subscription status (e.g., active, canceled, incomplete, past\_due, trialing, unpaid) |
    | `created`                | DateTime | Timestamp when the subscription was created                                           |
    | `updated_at`             | DateTime | Timestamp of the last update                                                          |
    | `current_period_start`   | DateTime | Start of the current billing period                                                   |
    | `current_period_end`     | DateTime | End of the current billing period                                                     |
    | `billing_cycle_anchor`   | DateTime | Determines the date of the first full invoice                                         |
    | `collection_method`      | String   | How payment is collected (charge\_automatically or send\_invoice)                     |
    | `days_until_due`         | Integer  | Number of days until invoice is due (for send\_invoice)                               |
    | `cancel_at`              | DateTime | Scheduled cancellation date                                                           |
    | `cancel_at_period_end`   | Boolean  | Whether the subscription is set to cancel at the end of the current period            |
    | `canceled_at`            | DateTime | Timestamp when the subscription was canceled                                          |
    | `cancellation_details`   | Object   | Details about the cancellation (comment, feedback, reason)                            |
    | `ended_at`               | DateTime | Timestamp when the subscription ended                                                 |
    | `items`                  | Array    | Array of subscription items (each with id, price, quantity, and tax\_rates)           |
    | `default_payment_method` | String   | Default payment method for this subscription                                          |
    | `currency`               | String   | Currency for this subscription                                                        |
    | `trial_start`            | DateTime | Start date of the trial period                                                        |
    | `trial_end`              | DateTime | End date of the trial period                                                          |
    | `trial_settings`         | Object   | Settings for the trial behavior                                                       |
    | `metadata`               | Object   | Set of key-value pairs for storing additional information                             |
    | `livemode`               | Boolean  | Whether the object exists in live mode or test mode                                   |
    | `schedule`               | String   | ID of the subscription schedule that manages this subscription                        |
  </Accordion>

  <Accordion title="Subscription Items">
    Stream for individual line items within subscriptions. This stream is a child of Subscriptions and requires the Subscriptions stream to be enabled.

    | Field                | Type     | Description                                                         |
    | :------------------- | :------- | :------------------------------------------------------------------ |
    | `id`                 | String   | Unique identifier for the subscription item                         |
    | `subscription`       | String   | ID of the parent subscription                                       |
    | `quantity`           | Integer  | Quantity of the plan to subscribe to                                |
    | `created`            | DateTime | Timestamp when the subscription item was created                    |
    | `updated_at`         | DateTime | Timestamp of the last update                                        |
    | `price.id`           | String   | ID of the price                                                     |
    | `price.product`      | String   | ID of the associated product                                        |
    | `price.currency`     | String   | Currency of the price                                               |
    | `price.unit_amount`  | Integer  | Unit amount in the smallest currency unit                           |
    | `price.recurring`    | Object   | Recurring billing settings (interval, interval\_count, usage\_type) |
    | `price.type`         | String   | Whether the price is one\_time or recurring                         |
    | `billing_thresholds` | Object   | Usage threshold that triggers invoice generation                    |
    | `tax_rates`          | Array    | Array of tax rates applied to this item                             |
    | `discounts`          | Array    | Discounts applied to this item                                      |
  </Accordion>

  <Accordion title="Subscription Schedules">
    Stream for managing the lifecycle of subscriptions through multiple phases, allowing for future pricing changes and plan transitions.

    | Field              | Type     | Description                                                           |
    | :----------------- | :------- | :-------------------------------------------------------------------- |
    | `id`               | String   | Unique identifier for the subscription schedule                       |
    | `customer`         | String   | ID of the customer                                                    |
    | `subscription`     | String   | ID of the managed subscription                                        |
    | `status`           | String   | Schedule status (active, canceled, completed, not\_started, released) |
    | `created`          | DateTime | Timestamp when the schedule was created                               |
    | `updated_at`       | DateTime | Timestamp of the last update                                          |
    | `phases`           | Array    | Array of schedule phases (start\_date, end\_date, items, etc.)        |
    | `current_phase`    | Object   | Start and end dates of the current active phase                       |
    | `end_behavior`     | String   | What happens when the schedule ends (cancel, release)                 |
    | `default_settings` | Object   | Default settings applied to all phases                                |
    | `metadata`         | Object   | Set of key-value pairs for storing additional information             |
    | `livemode`         | Boolean  | Whether the object exists in live mode or test mode                   |
  </Accordion>

  <Accordion title="Invoices">
    Stream for billing invoices generated for subscriptions and one-time charges.

    | Field                | Type     | Description                                             |
    | :------------------- | :------- | :------------------------------------------------------ |
    | `id`                 | String   | Unique identifier for the invoice                       |
    | `customer`           | String   | ID of the customer                                      |
    | `charge`             | String   | ID of the charge generated for this invoice             |
    | `status`             | String   | Invoice status (draft, open, paid, uncollectible, void) |
    | `currency`           | String   | Currency of the invoice                                 |
    | `updated_at`         | DateTime | Timestamp of the last update                            |
    | `amount_due`         | Integer  | Final amount due (in smallest currency unit)            |
    | `amount_paid`        | Integer  | Amount already paid                                     |
    | `amount_remaining`   | Integer  | Remaining amount to be paid                             |
    | `subtotal`           | Integer  | Subtotal before taxes and discounts                     |
    | `total`              | Integer  | Total after taxes and discounts                         |
    | `tax`                | Integer  | Amount of tax applied                                   |
    | `collection_method`  | String   | How payment is collected                                |
    | `due_date`           | DateTime | Date by which payment is due                            |
    | `auto_advance`       | Boolean  | Whether the invoice will be automatically finalized     |
    | `billing_reason`     | String   | Reason for the invoice creation                         |
    | `customer_email`     | String   | Customer's email at time of invoice creation            |
    | `customer_name`      | String   | Customer's name at time of invoice creation             |
    | `customer_address`   | Object   | Customer's address at time of invoice creation          |
    | `hosted_invoice_url` | String   | URL for the hosted invoice page                         |
    | `invoice_pdf`        | String   | URL for the invoice PDF                                 |
    | `livemode`           | Boolean  | Whether the object exists in live mode or test mode     |
    | `description`        | String   | Description of the invoice                              |
  </Accordion>

  <Accordion title="Invoice Line Items">
    Stream for individual line items within invoices. This stream is a child of Invoices and requires the Invoices stream to be enabled.

    | Field                       | Type     | Description                                         |
    | :-------------------------- | :------- | :-------------------------------------------------- |
    | `id`                        | String   | Unique identifier for the line item                 |
    | `invoice`                   | String   | ID of the parent invoice                            |
    | `subscription`              | String   | ID of the associated subscription                   |
    | `subscription_item`         | String   | ID of the associated subscription item              |
    | `description`               | String   | Description of the line item                        |
    | `updated_at`                | DateTime | Timestamp of the last update                        |
    | `amount`                    | Integer  | Amount of the line item (in smallest currency unit) |
    | `amount_excluding_tax`      | Integer  | Amount excluding tax                                |
    | `unit_amount`               | Integer  | Unit amount                                         |
    | `unit_amount_excluding_tax` | Integer  | Unit amount excluding tax                           |
    | `period.start`              | DateTime | Start of the billing period for this line item      |
    | `period.end`                | DateTime | End of the billing period for this line item        |
    | `price.id`                  | String   | ID of the price                                     |
    | `price.product`             | String   | ID of the associated product                        |
    | `price.currency`            | String   | Currency                                            |
    | `price.unit_amount`         | Integer  | Unit price amount                                   |
    | `price.recurring`           | Object   | Recurring billing settings                          |
    | `proration`                 | Boolean  | Whether this is a proration                         |
    | `proration_details`         | Object   | Details about the prorated amount                   |
    | `discount_amounts`          | Array    | Applied discount amounts                            |
    | `pretax_credit_amounts`     | Array    | Credit amounts applied before tax                   |
  </Accordion>

  <Accordion title="Invoice Items">
    Stream for pending invoice items that haven't yet been included in an invoice.

    | Field               | Type     | Description                                                   |
    | :------------------ | :------- | :------------------------------------------------------------ |
    | `id`                | String   | Unique identifier for the invoice item                        |
    | `customer`          | String   | ID of the customer                                            |
    | `invoice`           | String   | ID of the invoice this item is associated with (if finalized) |
    | `subscription`      | String   | ID of the associated subscription                             |
    | `subscription_item` | String   | ID of the associated subscription item                        |
    | `description`       | String   | Description of the item                                       |
    | `updated_at`        | DateTime | Timestamp of the last update                                  |
    | `amount`            | Integer  | Amount of the item (in smallest currency unit)                |
    | `currency`          | String   | Currency                                                      |
    | `unit_amount`       | Integer  | Unit amount                                                   |
    | `quantity`          | Integer  | Quantity                                                      |
    | `period.start`      | DateTime | Start of the service period                                   |
    | `period.end`        | DateTime | End of the service period                                     |
    | `price.id`          | String   | ID of the price                                               |
    | `price.product`     | String   | ID of the associated product                                  |
    | `price.recurring`   | Object   | Recurring billing settings                                    |
    | `proration`         | Boolean  | Whether this is a proration item                              |
    | `discountable`      | Boolean  | Whether discounts can be applied                              |
  </Accordion>

  <Accordion title="Charges">
    Stream for payment attempts, both successful and failed. Each charge represents a single attempt to move money into your Stripe account.

    | Field                    | Type     | Description                                                               |
    | :----------------------- | :------- | :------------------------------------------------------------------------ |
    | `id`                     | String   | Unique identifier for the charge                                          |
    | `customer`               | String   | ID of the customer                                                        |
    | `payment_intent`         | String   | ID of the associated payment intent                                       |
    | `invoice`                | String   | ID of the associated invoice                                              |
    | `status`                 | String   | Charge status (succeeded, pending, failed)                                |
    | `created`                | DateTime | Timestamp when the charge was created                                     |
    | `updated_at`             | DateTime | Timestamp of the last update                                              |
    | `amount`                 | Integer  | Amount charged (in smallest currency unit)                                |
    | `amount_captured`        | Integer  | Amount that was captured                                                  |
    | `amount_refunded`        | Integer  | Amount that has been refunded                                             |
    | `currency`               | String   | Currency of the charge                                                    |
    | `payment_method`         | String   | ID of the payment method used                                             |
    | `payment_method_details` | Object   | Details about the payment method (card, bank transfer, etc.)              |
    | `billing_details`        | Object   | Billing information (name, email, phone, address)                         |
    | `captured`               | Boolean  | Whether the charge was captured                                           |
    | `paid`                   | Boolean  | Whether the charge was paid                                               |
    | `refunded`               | Boolean  | Whether the charge has been fully refunded                                |
    | `disputed`               | Boolean  | Whether the charge has been disputed                                      |
    | `outcome`                | Object   | Network outcome of the charge (network\_status, risk\_level, risk\_score) |
    | `failure_code`           | String   | Error code explaining the charge failure                                  |
    | `failure_message`        | String   | Human-readable message explaining the failure                             |
    | `shipping`               | Object   | Shipping information (address, carrier, name, tracking\_number)           |
    | `refunds`                | Array    | Array of refund objects associated with this charge                       |
    | `metadata`               | Object   | Set of key-value pairs                                                    |
    | `description`            | String   | Description of the charge                                                 |
    | `statement_descriptor`   | String   | Text appearing on the bank statement                                      |
  </Accordion>

  <Accordion title="Payment Intents">
    Stream for payment intents, which represent the full lifecycle of a payment from creation to completion.

    | Field                  | Type     | Description                                                                                                                                     |
    | :--------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`                   | String   | Unique identifier for the payment intent                                                                                                        |
    | `customer`             | String   | ID of the customer                                                                                                                              |
    | `invoice`              | String   | ID of the associated invoice                                                                                                                    |
    | `latest_charge`        | String   | ID of the latest charge attempt                                                                                                                 |
    | `status`               | String   | Payment intent status (requires\_payment\_method, requires\_confirmation, requires\_action, processing, requires\_capture, canceled, succeeded) |
    | `created`              | DateTime | Timestamp when the payment intent was created                                                                                                   |
    | `updated_at`           | DateTime | Timestamp of the last update                                                                                                                    |
    | `amount`               | Integer  | Total amount intended to be collected (in smallest currency unit)                                                                               |
    | `amount_capturable`    | Integer  | Amount that can be captured                                                                                                                     |
    | `amount_received`      | Integer  | Amount that was received                                                                                                                        |
    | `currency`             | String   | Currency                                                                                                                                        |
    | `payment_method`       | String   | ID of the payment method                                                                                                                        |
    | `payment_method_types` | Array    | Array of allowed payment method types                                                                                                           |
    | `capture_method`       | String   | When to capture the payment (automatic or manual)                                                                                               |
    | `confirmation_method`  | String   | Confirmation method (automatic or manual)                                                                                                       |
    | `setup_future_usage`   | String   | How the payment method will be used in the future                                                                                               |
    | `last_payment_error`   | Object   | Details about the last payment failure                                                                                                          |
    | `cancellation_reason`  | String   | Reason for cancellation                                                                                                                         |
    | `canceled_at`          | DateTime | Timestamp of cancellation                                                                                                                       |
    | `shipping`             | Object   | Shipping details                                                                                                                                |
    | `metadata`             | Object   | Set of key-value pairs                                                                                                                          |
    | `description`          | String   | Description                                                                                                                                     |
    | `statement_descriptor` | String   | Text appearing on bank statement                                                                                                                |
  </Accordion>

  <Accordion title="Balance Transactions">
    Stream for all transactions that have contributed to or will contribute to the Stripe account balance.

    | Field                | Type     | Description                                                               |
    | :------------------- | :------- | :------------------------------------------------------------------------ |
    | `id`                 | String   | Unique identifier for the balance transaction                             |
    | `source`             | String   | ID of the source object (charge, refund, payout, etc.)                    |
    | `type`               | String   | Type of transaction (charge, refund, payout, payment, transfer, etc.)     |
    | `status`             | String   | Transaction status (available, pending)                                   |
    | `reporting_category` | String   | Category for reporting purposes                                           |
    | `created`            | DateTime | Timestamp when the balance transaction was created                        |
    | `amount`             | Integer  | Gross amount of the transaction (in smallest currency unit)               |
    | `fee`                | Integer  | Fees paid for this transaction                                            |
    | `net`                | Integer  | Net amount of the transaction                                             |
    | `currency`           | String   | Currency                                                                  |
    | `fee_details`        | Array    | Itemized fee breakdown (amount, application, currency, description, type) |
    | `exchange_rate`      | Float    | Exchange rate used for currency conversion                                |
    | `available_on`       | DateTime | Date when the funds become available in the account balance               |
  </Accordion>

  <Accordion title="Products">
    Stream for products and services offered for sale.

    | Field                  | Type     | Description                                             |
    | :--------------------- | :------- | :------------------------------------------------------ |
    | `id`                   | String   | Unique identifier for the product                       |
    | `name`                 | String   | Name of the product                                     |
    | `active`               | Boolean  | Whether the product is currently available for purchase |
    | `default_price`        | String   | ID of the default price for this product                |
    | `description`          | String   | Description of the product                              |
    | `created`              | DateTime | Timestamp when the product was created                  |
    | `updated_at`           | DateTime | Timestamp of the last update                            |
    | `features`             | Array    | Array of product features (name)                        |
    | `images`               | Array    | Array of image URLs                                     |
    | `url`                  | String   | URL for the product                                     |
    | `unit_label`           | String   | Label used on invoices and receipts                     |
    | `statement_descriptor` | String   | Text appearing on bank statements                       |
    | `tax_code`             | String   | Tax code for the product                                |
    | `shippable`            | Boolean  | Whether the product is shipped                          |
    | `package_dimensions`   | Object   | Physical dimensions (height, length, weight, width)     |
    | `metadata`             | Object   | Set of key-value pairs                                  |
    | `livemode`             | Boolean  | Whether the object exists in live mode or test mode     |
  </Accordion>

  <Accordion title="Prices">
    Stream for pricing configurations for products. A product can have multiple prices for different billing intervals or currencies.

    | Field                         | Type     | Description                                                 |
    | :---------------------------- | :------- | :---------------------------------------------------------- |
    | `id`                          | String   | Unique identifier for the price                             |
    | `product`                     | String   | ID of the associated product                                |
    | `active`                      | Boolean  | Whether the price can be used for new purchases             |
    | `type`                        | String   | Price type (one\_time or recurring)                         |
    | `currency`                    | String   | Currency for the price                                      |
    | `created`                     | DateTime | Timestamp when the price was created                        |
    | `updated_at`                  | DateTime | Timestamp of the last update                                |
    | `unit_amount`                 | Integer  | Unit amount in the smallest currency unit                   |
    | `unit_amount_decimal`         | String   | Same as unit\_amount but with decimal precision             |
    | `billing_scheme`              | String   | How the price is calculated (per\_unit or tiered)           |
    | `recurring.interval`          | String   | Billing interval (day, week, month, year)                   |
    | `recurring.interval_count`    | Integer  | Number of intervals between billing                         |
    | `recurring.usage_type`        | String   | How usage is aggregated (licensed or metered)               |
    | `recurring.aggregate_usage`   | String   | Aggregation mode for metered usage                          |
    | `recurring.trial_period_days` | Integer  | Number of trial days                                        |
    | `tiers`                       | Array    | Array of pricing tiers (flat\_amount, unit\_amount, up\_to) |
    | `tiers_mode`                  | String   | How tiers are applied (graduated or volume)                 |
    | `lookup_key`                  | String   | A lookup key for the price                                  |
    | `nickname`                    | String   | A brief description                                         |
    | `tax_behavior`                | String   | How tax is applied (exclusive, inclusive, unspecified)      |
    | `metadata`                    | Object   | Set of key-value pairs                                      |
  </Accordion>

  <Accordion title="Coupons">
    Stream for discount coupons that can be applied to customers or subscriptions.

    | Field                | Type     | Description                                              |
    | :------------------- | :------- | :------------------------------------------------------- |
    | `id`                 | String   | Unique identifier for the coupon                         |
    | `name`               | String   | Name of the coupon                                       |
    | `valid`              | Boolean  | Whether the coupon can be redeemed                       |
    | `created`            | DateTime | Timestamp when the coupon was created                    |
    | `updated_at`         | DateTime | Timestamp of the last update                             |
    | `amount_off`         | Integer  | Fixed amount to discount (in smallest currency unit)     |
    | `percent_off`        | Float    | Percentage to discount                                   |
    | `currency`           | String   | Currency for amount\_off discounts                       |
    | `duration`           | String   | How long the discount applies (forever, once, repeating) |
    | `duration_in_months` | Integer  | If repeating, number of months it applies                |
    | `applies_to`         | Object   | Products the coupon can be applied to                    |
    | `max_redemptions`    | Integer  | Maximum number of times the coupon can be redeemed       |
    | `times_redeemed`     | Integer  | Number of times it has been redeemed                     |
    | `redeem_by`          | DateTime | Date after which the coupon can no longer be redeemed    |
    | `metadata`           | Object   | Set of key-value pairs                                   |
    | `livemode`           | Boolean  | Whether the object exists in live mode or test mode      |
  </Accordion>

  <Accordion title="Promotion Codes">
    Stream for shareable promotion codes that customers can apply when checking out.

    | Field                                  | Type     | Description                                             |
    | :------------------------------------- | :------- | :------------------------------------------------------ |
    | `id`                                   | String   | Unique identifier for the promotion code                |
    | `code`                                 | String   | The actual code customers enter                         |
    | `active`                               | Boolean  | Whether the promotion code can be used                  |
    | `coupon`                               | String   | The coupon this promotion code applies                  |
    | `customer`                             | String   | Customer this code is restricted to (if any)            |
    | `created`                              | DateTime | Timestamp when the promotion code was created           |
    | `updated_at`                           | DateTime | Timestamp of the last update                            |
    | `max_redemptions`                      | Integer  | Maximum total number of redemptions                     |
    | `times_redeemed`                       | Integer  | Number of times this code has been redeemed             |
    | `expires_at`                           | DateTime | Date after which the code expires                       |
    | `restrictions.first_time_transaction`  | Boolean  | Whether it can only be used for first-time transactions |
    | `restrictions.minimum_amount`          | Integer  | Minimum cart value required                             |
    | `restrictions.minimum_amount_currency` | String   | Currency for the minimum amount                         |
    | `metadata`                             | Object   | Set of key-value pairs                                  |
    | `livemode`                             | Boolean  | Whether the object exists in live mode or test mode     |
  </Accordion>

  <Accordion title="Credit Grants">
    Stream for billing credit grants issued to customers. Available when **Credit Balance** is enabled in the source configuration.

    | Field                                   | Type     | Description                                         |
    | :-------------------------------------- | :------- | :-------------------------------------------------- |
    | `id`                                    | String   | Unique identifier for the credit grant              |
    | `name`                                  | String   | Name of the credit grant                            |
    | `customer`                              | String   | ID of the customer receiving the credit             |
    | `category`                              | String   | Category of the credit grant (paid or promotional)  |
    | `created`                               | DateTime | Timestamp when the grant was created                |
    | `amount.monetary.value`                 | Integer  | Credit value (in smallest currency unit)            |
    | `amount.monetary.currency`              | String   | Currency of the credit                              |
    | `amount.type`                           | String   | Type of credit amount                               |
    | `applicability_config.scope.price_type` | Array    | Which price types the credit applies to             |
    | `effective_at`                          | DateTime | When the credit becomes effective                   |
    | `expires_at`                            | DateTime | When the credit expires                             |
    | `voided_at`                             | DateTime | When the credit was voided (if applicable)          |
    | `livemode`                              | Boolean  | Whether the object exists in live mode or test mode |
  </Accordion>

  <Accordion title="Credit Balance Summary">
    Stream for the current credit balance summary for each customer. This is a child of Customers and only available when **Credit Balance** is enabled in the source configuration.

    | Field                                 | Type     | Description                                         |
    | :------------------------------------ | :------- | :-------------------------------------------------- |
    | `customer`                            | String   | ID of the customer                                  |
    | `updated_at`                          | DateTime | Timestamp of the last update                        |
    | `balances`                            | Array    | Array containing balance entries                    |
    | `available_balance.monetary.value`    | Integer  | Available credit value (in smallest currency unit)  |
    | `available_balance.monetary.currency` | String   | Currency of the available balance                   |
    | `available_balance.type`              | String   | Type of the available balance                       |
    | `ledger_balance.monetary.value`       | Integer  | Total ledger balance value                          |
    | `ledger_balance.monetary.currency`    | String   | Currency of the ledger balance                      |
    | `ledger_balance.type`                 | String   | Type of the ledger balance                          |
    | `livemode`                            | Boolean  | Whether the object exists in live mode or test mode |
  </Accordion>

  <Accordion title="Credit Balance Transactions">
    Stream for individual transactions that affect a customer's credit balance. This is a child of Customers and only available when **Credit Balance** is enabled in the source configuration.

    | Field                                       | Type     | Description                                                 |
    | :------------------------------------------ | :------- | :---------------------------------------------------------- |
    | `id`                                        | String   | Unique identifier for the transaction                       |
    | `customer`                                  | String   | ID of the customer (derived from parent context)            |
    | `type`                                      | String   | Transaction type (credit or debit)                          |
    | `credit_grant`                              | String   | ID of the credit grant associated with this transaction     |
    | `created`                                   | DateTime | Timestamp when the transaction was created                  |
    | `effective_at`                              | DateTime | When the transaction takes effect                           |
    | `updated_at`                                | DateTime | Timestamp of the last update                                |
    | `credit.type`                               | String   | Reason for the credit                                       |
    | `credit.amount.monetary.value`              | Integer  | Credit amount (in smallest currency unit)                   |
    | `credit.amount.monetary.currency`           | String   | Currency                                                    |
    | `credit.credits_application_invoice_voided` | Object   | Invoice details if a previously applied credit was reversed |
    | `debit.type`                                | String   | Reason for the debit                                        |
    | `debit.amount.monetary.value`               | Integer  | Debit amount (in smallest currency unit)                    |
    | `debit.amount.monetary.currency`            | String   | Currency                                                    |
    | `debit.credits_applied`                     | Object   | Invoice and line item the credit was applied to             |
    | `livemode`                                  | Boolean  | Whether the object exists in live mode or test mode         |
  </Accordion>

  <Accordion title="Connect Accounts">
    Stream for connected accounts on a Stripe Connect platform. Only available when **Stripe Connect** is enabled in the source configuration.

    | Field                 | Type     | Description                                               |
    | :-------------------- | :------- | :-------------------------------------------------------- |
    | `id`                  | String   | Unique identifier for the connected account               |
    | `email`               | String   | Email address of the account                              |
    | `country`             | String   | Country of the account                                    |
    | `type`                | String   | Account type (standard, express, or custom)               |
    | `created`             | DateTime | Timestamp when the account was created                    |
    | `charges_enabled`     | Boolean  | Whether charges can be processed                          |
    | `payouts_enabled`     | Boolean  | Whether payouts can be made                               |
    | `details_submitted`   | Boolean  | Whether account details have been submitted               |
    | `business_type`       | String   | Entity type (individual, company, etc.)                   |
    | `business_profile`    | Object   | Business details (name, URL, support contact, MCC)        |
    | `capabilities`        | Object   | Payment capabilities status for each payment method       |
    | `requirements`        | Object   | Currently outstanding requirements to enable capabilities |
    | `future_requirements` | Object   | Requirements that become required in the future           |
    | `metadata`            | Object   | Set of key-value pairs                                    |
    | `default_currency`    | String   | Default currency for the account                          |
  </Accordion>

  <Accordion title="Connect Transfers">
    Stream for transfers made to connected accounts. Only available when **Stripe Connect** is enabled.

    | Field         | Type     | Description                                        |
    | :------------ | :------- | :------------------------------------------------- |
    | `id`          | String   | Unique identifier for the transfer                 |
    | `destination` | String   | ID of the connected account receiving the transfer |
    | `amount`      | Integer  | Amount transferred (in smallest currency unit)     |
    | `currency`    | String   | Currency of the transfer                           |
    | `created`     | DateTime | Timestamp when the transfer was created            |
  </Accordion>

  <Accordion title="Connect Application Fees">
    Stream for fees collected from connected accounts on your platform. Only available when **Stripe Connect** is enabled.

    | Field      | Type     | Description                                               |
    | :--------- | :------- | :-------------------------------------------------------- |
    | `id`       | String   | Unique identifier for the application fee                 |
    | `account`  | String   | ID of the connected account the fee was collected from    |
    | `charge`   | String   | ID of the charge that the fee was taken from              |
    | `amount`   | Integer  | Amount of the application fee (in smallest currency unit) |
    | `currency` | String   | Currency of the fee                                       |
    | `created`  | DateTime | Timestamp when the fee was collected                      |
  </Accordion>

  <Accordion title="Connect Subaccount Transfers">
    Stream for transfers between the platform account and connected subaccounts. Only available when **Stripe Connect** is enabled.
  </Accordion>

  <Accordion title="Events">
    Stream for all Stripe events, representing every change that occurs on your account. Useful for auditing and building event-driven workflows.

    <Note>
      The events stream can only bring historical data from the last 30 days.
    </Note>

    | Field                      | Type     | Description                                                                                                 |
    | :------------------------- | :------- | :---------------------------------------------------------------------------------------------------------- |
    | `id`                       | String   | Unique identifier for the event                                                                             |
    | `type`                     | String   | The type of event (e.g., `charge.succeeded`, `customer.subscription.updated`)                               |
    | `created`                  | DateTime | Timestamp when the event was created                                                                        |
    | `api_version`              | String   | The Stripe API version used to render the event data                                                        |
    | `data_object`              | String   | JSON string of the object associated with the event at the time it occurred                                 |
    | `data_previous_attributes` | String   | JSON string of the fields that were changed and their previous values (only present for `*.updated` events) |
    | `pending_webhooks`         | Integer  | Number of webhooks yet to be successfully delivered                                                         |
    | `request.id`               | String   | ID of the API request that triggered the event                                                              |
    | `request.idempotency_key`  | String   | Idempotency key of the API request                                                                          |
    | `livemode`                 | Boolean  | Whether the event occurred in live mode or test mode                                                        |
  </Accordion>
</AccordionGroup>

# Data Model

The following diagram illustrates the relationships between the core data streams in Stripe. The arrows indicate the join keys that link the different entities, providing a clear overview of the data structure.

```mermaid theme={null}
graph TD;
    subgraph "Core Entities"
        Customers("Customers");
        CustomerTaxIds("Customer Tax IDs");
        Products("Products");
        Prices("Prices");
        Coupons("Coupons");
        PromotionCodes("Promotion Codes");
    end

    subgraph "Subscriptions"
        Subscriptions("Subscriptions");
        SubscriptionItems("Subscription Items");
        SubscriptionSchedules("Subscription Schedules");
    end

    subgraph "Billing"
        Invoices("Invoices");
        InvoiceLineItems("Invoice Line Items");
        InvoiceItems("Invoice Items");
        Charges("Charges");
        PaymentIntents("Payment Intents");
        BalanceTransactions("Balance Transactions");
    end

    CustomerTaxIds -- "customer" --> Customers;
    Subscriptions -- "customer" --> Customers;
    SubscriptionItems -- "subscription" --> Subscriptions;
    SubscriptionItems -- "price" --> Prices;
    SubscriptionSchedules -- "customer" --> Customers;
    SubscriptionSchedules -- "subscription" --> Subscriptions;
    Prices -- "product" --> Products;
    PromotionCodes -- "coupon" --> Coupons;
    Invoices -- "customer" --> Customers;
    InvoiceLineItems -- "invoice" --> Invoices;
    InvoiceLineItems -- "subscription" --> Subscriptions;
    InvoiceItems -- "invoice" --> Invoices;
    InvoiceItems -- "customer" --> Customers;
    Charges -- "customer" --> Customers;
    Charges -- "invoice" --> Invoices;
    Charges -- "payment_intent" --> PaymentIntents;
    PaymentIntents -- "customer" --> Customers;
    PaymentIntents -- "invoice" --> Invoices;
    PaymentIntents -- "latest_charge" --> Charges;
    BalanceTransactions -- "source" --> Charges;
```

# Use Cases for Data Analysis

This guide outlines valuable business intelligence use cases when consolidating Stripe data, along with ready-to-use SQL queries that you can run on [Explorer](https://app.nekt.ai/explorer).

### 1. Monthly Revenue Overview

Track your monthly recurring and one-time revenue using invoice and charge data.

**Business Value:**

* Monitor revenue trends over time
* Identify periods of growth or decline
* Compare paid vs. outstanding invoices

<Accordion title="SQL query">
  <Tabs>
    <Tab title="AWS">
      ```sql theme={null}
      WITH monthly_revenue AS (
         SELECT
            DATE_FORMAT(DATE(i.created), '%Y-%m') AS month,
            SUM(CASE WHEN i.status = 'paid' THEN i.amount_paid ELSE 0 END) / 100.0 AS paid_revenue,
            SUM(CASE WHEN i.status = 'open' THEN i.amount_due ELSE 0 END) / 100.0 AS outstanding_revenue,
            SUM(CASE WHEN i.billing_reason = 'subscription_cycle' THEN i.amount_paid ELSE 0 END) / 100.0 AS recurring_revenue,
            SUM(CASE WHEN i.billing_reason != 'subscription_cycle' THEN i.amount_paid ELSE 0 END) / 100.0 AS one_time_revenue,
            COUNT(DISTINCT CASE WHEN i.status = 'paid' THEN i.id END) AS paid_invoices,
            COUNT(DISTINCT i.id) AS total_invoices,
            COUNT(DISTINCT i.customer) AS paying_customers
         FROM
            nekt_raw.stripe_invoices i
         WHERE
            i.created >= CURRENT_DATE - INTERVAL '12' MONTH
         GROUP BY
            DATE_FORMAT(DATE(i.created), '%Y-%m')
      )
      SELECT
         month,
         ROUND(paid_revenue, 2) AS paid_revenue,
         ROUND(outstanding_revenue, 2) AS outstanding_revenue,
         ROUND(recurring_revenue, 2) AS recurring_revenue,
         ROUND(one_time_revenue, 2) AS one_time_revenue,
         paid_invoices,
         total_invoices,
         paying_customers,
         ROUND(paid_revenue / NULLIF(paying_customers, 0), 2) AS avg_revenue_per_customer
      FROM
         monthly_revenue
      ORDER BY
         month DESC
      ```
    </Tab>

    <Tab title="GCP">
      ```sql theme={null}
      WITH
         monthly_revenue AS (
            SELECT
               FORMAT_DATE('%Y-%m', DATE(i.created)) AS month,
               SUM(CASE WHEN i.status = 'paid' THEN i.amount_paid ELSE 0 END) / 100.0 AS paid_revenue,
               SUM(CASE WHEN i.status = 'open' THEN i.amount_due ELSE 0 END) / 100.0 AS outstanding_revenue,
               SUM(CASE WHEN i.billing_reason = 'subscription_cycle' THEN i.amount_paid ELSE 0 END) / 100.0 AS recurring_revenue,
               SUM(CASE WHEN i.billing_reason != 'subscription_cycle' THEN i.amount_paid ELSE 0 END) / 100.0 AS one_time_revenue,
               COUNT(DISTINCT CASE WHEN i.status = 'paid' THEN i.id END) AS paid_invoices,
               COUNT(DISTINCT i.id) AS total_invoices,
               COUNT(DISTINCT i.customer) AS paying_customers
            FROM
               `nekt_raw.stripe_invoices` i
            WHERE
               DATE(i.created) >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)
            GROUP BY
               1
         )
      SELECT
         month,
         ROUND(paid_revenue, 2) AS paid_revenue,
         ROUND(outstanding_revenue, 2) AS outstanding_revenue,
         ROUND(recurring_revenue, 2) AS recurring_revenue,
         ROUND(one_time_revenue, 2) AS one_time_revenue,
         paid_invoices,
         total_invoices,
         paying_customers,
         ROUND(SAFE_DIVIDE(paid_revenue, paying_customers), 2) AS avg_revenue_per_customer
      FROM
         monthly_revenue
      ORDER BY
         month DESC
      ```
    </Tab>
  </Tabs>
</Accordion>

<Accordion title="Sample Result">
  | month   | paid\_revenue | outstanding\_revenue | recurring\_revenue | one\_time\_revenue | paid\_invoices | total\_invoices | paying\_customers | avg\_revenue\_per\_customer |
  | ------- | ------------- | -------------------- | ------------------ | ------------------ | -------------- | --------------- | ----------------- | --------------------------- |
  | 2025-02 | 48,320.00     | 2,150.00             | 42,800.00          | 5,520.00           | 312            | 328             | 298               | 162.15                      |
  | 2025-01 | 45,680.00     | 1,890.00             | 40,200.00          | 5,480.00           | 295            | 310             | 281               | 162.56                      |
  | 2024-12 | 52,140.00     | 3,200.00             | 46,300.00          | 5,840.00           | 334            | 355             | 318               | 163.96                      |
  | 2024-11 | 43,920.00     | 1,560.00             | 38,750.00          | 5,170.00           | 280            | 292             | 267               | 164.49                      |
</Accordion>

### 2. Subscription Churn Analysis

Identify subscription cancellations and churn trends to understand customer retention.

**Business Value:**

* Track monthly churn rates
* Identify high-churn periods
* Understand cancellation reasons to improve retention
* Monitor trial conversion rates

<Accordion title="SQL query">
  <Tabs>
    <Tab title="AWS">
      ```sql theme={null}
      WITH subscription_cohort AS (
         SELECT
            DATE_FORMAT(DATE(s.created), '%Y-%m') AS cohort_month,
            DATE_FORMAT(DATE(s.canceled_at), '%Y-%m') AS churn_month,
            s.id AS subscription_id,
            s.customer,
            s.status,
            s.cancel_at_period_end,
            s.cancellation_details.reason AS cancellation_reason,
            s.trial_start IS NOT NULL AS had_trial
         FROM
            nekt_raw.stripe_subscriptions s
      ),
      monthly_churn AS (
         SELECT
            churn_month,
            COUNT(DISTINCT subscription_id) AS churned_subscriptions,
            COUNT(DISTINCT CASE WHEN cancellation_reason = 'cancellation_requested' THEN subscription_id END) AS voluntary_churn,
            COUNT(DISTINCT CASE WHEN cancellation_reason IN ('payment_failed', 'payment_disputed') THEN subscription_id END) AS involuntary_churn,
            COUNT(DISTINCT CASE WHEN had_trial THEN subscription_id END) AS churned_trials
         FROM
            subscription_cohort
         WHERE
            churn_month IS NOT NULL
            AND churn_month >= DATE_FORMAT(CURRENT_DATE - INTERVAL '12' MONTH, '%Y-%m')
         GROUP BY
            churn_month
      ),
      monthly_active AS (
         SELECT
            DATE_FORMAT(DATE(created), '%Y-%m') AS month,
            COUNT(DISTINCT id) AS new_subscriptions
         FROM
            nekt_raw.stripe_subscriptions
         WHERE
            created >= CURRENT_DATE - INTERVAL '12' MONTH
         GROUP BY
            DATE_FORMAT(DATE(created), '%Y-%m')
      )
      SELECT
         mc.churn_month AS month,
         mc.churned_subscriptions,
         mc.voluntary_churn,
         mc.involuntary_churn,
         mc.churned_trials,
         COALESCE(ma.new_subscriptions, 0) AS new_subscriptions,
         ROUND(mc.churned_subscriptions * 100.0 / NULLIF(COALESCE(ma.new_subscriptions, 0) + mc.churned_subscriptions, 0), 2) AS churn_rate_pct
      FROM
         monthly_churn mc
         LEFT JOIN monthly_active ma ON mc.churn_month = ma.month
      ORDER BY
         month DESC
      ```
    </Tab>

    <Tab title="GCP">
      ```sql theme={null}
      WITH
         subscription_cohort AS (
            SELECT
               FORMAT_DATE('%Y-%m', DATE(s.created)) AS cohort_month,
               FORMAT_DATE('%Y-%m', DATE(s.canceled_at)) AS churn_month,
               s.id AS subscription_id,
               s.customer,
               s.status,
               s.cancel_at_period_end,
               s.cancellation_details.reason AS cancellation_reason,
               s.trial_start IS NOT NULL AS had_trial
            FROM
               `nekt_raw.stripe_subscriptions` s
         ),
         monthly_churn AS (
            SELECT
               churn_month,
               COUNT(DISTINCT subscription_id) AS churned_subscriptions,
               COUNT(DISTINCT CASE WHEN cancellation_reason = 'cancellation_requested' THEN subscription_id END) AS voluntary_churn,
               COUNT(DISTINCT CASE WHEN cancellation_reason IN ('payment_failed', 'payment_disputed') THEN subscription_id END) AS involuntary_churn,
               COUNT(DISTINCT CASE WHEN had_trial THEN subscription_id END) AS churned_trials
            FROM
               subscription_cohort
            WHERE
               churn_month IS NOT NULL
               AND churn_month >= FORMAT_DATE('%Y-%m', DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH))
            GROUP BY
               churn_month
         ),
         monthly_active AS (
            SELECT
               FORMAT_DATE('%Y-%m', DATE(created)) AS month,
               COUNT(DISTINCT id) AS new_subscriptions
            FROM
               `nekt_raw.stripe_subscriptions`
            WHERE
               DATE(created) >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)
            GROUP BY
               1
         )
      SELECT
         mc.churn_month AS month,
         mc.churned_subscriptions,
         mc.voluntary_churn,
         mc.involuntary_churn,
         mc.churned_trials,
         COALESCE(ma.new_subscriptions, 0) AS new_subscriptions,
         ROUND(
            mc.churned_subscriptions * 100.0 / NULLIF(COALESCE(ma.new_subscriptions, 0) + mc.churned_subscriptions, 0),
            2
         ) AS churn_rate_pct
      FROM
         monthly_churn mc
         LEFT JOIN monthly_active ma ON mc.churn_month = ma.month
      ORDER BY
         month DESC
      ```
    </Tab>
  </Tabs>
</Accordion>

<Accordion title="Sample Result">
  | month   | churned\_subscriptions | voluntary\_churn | involuntary\_churn | churned\_trials | new\_subscriptions | churn\_rate\_pct |
  | ------- | ---------------------- | ---------------- | ------------------ | --------------- | ------------------ | ---------------- |
  | 2025-02 | 28                     | 19               | 6                  | 3               | 54                 | 34.15            |
  | 2025-01 | 22                     | 15               | 5                  | 2               | 48                 | 31.43            |
  | 2024-12 | 31                     | 21               | 7                  | 3               | 62                 | 33.33            |
  | 2024-11 | 19                     | 13               | 4                  | 2               | 41                 | 31.67            |
</Accordion>

## Implementation Notes

### Data Quality Considerations

* All monetary amounts are provided in the smallest currency unit (e.g., cents for USD). Divide by 100 to get the standard value in queries.
* Incremental sync uses the `updated_at` field for most streams. Use `created` for Balance Transactions.
* Some streams (Subscription Items, Invoice Line Items, Customer Tax IDs) are children of parent streams and require the parent stream to be enabled.

### Optional Features

* The **Connect** streams are only available when `Stripe Connect` is enabled in the source configuration. Enable this if you manage a marketplace or platform using Stripe Connect.
* The **Credit Balance** streams are only available when `Credit Balance` is enabled in the source configuration.

### API Limits & Performance

* The connector optimizes API interactions by caching and reusing connections, ensuring efficient data extraction especially for accounts with many subaccounts or high data volumes.
* Selecting all streams can increase extraction times significantly.
* For faster extractions, select only the streams necessary for your analysis.
* Parent-child stream pairs (e.g., Invoices + Invoice Line Items) require both to be selected if you need the child data.

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download Stripe skills file" icon="wand-magic-sparkles" href="/sources/stripe.md">
  Stripe connector documentation as plain markdown, for use in AI agent contexts.
</Card>
