Skip to main content

Stripe

Stripe is a comprehensive payment processing platform that enables businesses to accept payments online, manage subscriptions, handle marketplace transactions, and process financial data. The Stripe API provides powerful tools for payment processing, customer management, and financial reporting.

Stripe icon

Power end-to-end data operations for your Stripe API with Nexla. Our bi-directional Stripe connector is purpose-built for Stripe, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Stripe or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Stripe workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Stripe credential, you need to obtain your Stripe API Key from your Stripe Dashboard. Stripe uses API key authentication for all API requests, with the API key sent in the Authorization header with the Bearer prefix.

To obtain your Stripe API Key, follow these steps:

  1. Sign in to your Stripe Dashboard at https://dashboard.stripe.com using your administrator credentials.

  2. Navigate to Developers in the left sidebar, then click API keys or navigate to Developers > API keys.

  3. In the Standard keys section, you will see your API keys. Stripe provides separate keys for test mode and live mode:

    • Test mode keys (starting with sk_test_) are used for development and testing
    • Live mode keys (starting with sk_live_) are used for production transactions
  4. For development and testing, use the Secret key in the Test mode section. For production, use the Secret key in the Live mode section.

  5. Click Reveal live key token or Reveal test key token to display your secret key. The secret key is hidden by default for security.

  6. Copy the secret key immediately after it's revealed, as it may not be accessible again after you navigate away from the page. The secret key starts with sk_live_ for live mode or sk_test_ for test mode.

  7. Store the API key securely, as you will need it to configure your Nexla credential. The API key is sensitive information and should be kept confidential.

The API key is sent in the Authorization: Bearer {api_key} header for all API requests to the Stripe API. The key authenticates your requests and grants access to Stripe resources based on your account permissions. If your API key is compromised, you should immediately revoke it in your Stripe Dashboard and generate a new one. For detailed information about API authentication, key management, and available endpoints, refer to the Stripe API Documentation.

Authenticate

Credentials required

FieldRequiredSecretDescription
API KeyYesYesYour Stripe API Key. You can view and manage your API keys in the Stripe Dashboard.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

New Credential Overlay – Stripe

StripeCred.png
  1. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  2. Enter your Stripe API Key in the API Key field. This is the secret key you obtained from your Stripe Dashboard (Developers > API keys) in Prerequisites. Use test mode keys (starting with sk_test_) for development and testing, and live mode keys (starting with sk_live_) for production. The API key is sent in the Authorization: Bearer {api_key} header for all API requests to the Stripe API and must be kept confidential.

    Your Stripe API key can be found in your Stripe Dashboard under Developers > API keys. The secret key is located in the Standard keys section, and you can reveal it by clicking "Reveal live key token" or "Reveal test key token".

    The API key is sent in the Authorization: Bearer {api_key} header for all API requests to the Stripe API. Use test mode keys (starting with sk_test_) for development and testing, and live mode keys (starting with sk_live_) for production.

    If your API key is compromised, you should immediately revoke it in your Stripe Dashboard and generate a new one. The API key provides access to your Stripe account data and should be treated as sensitive information. Keep your API key secure and do not share it publicly.

    For detailed information about API authentication, key management, and available endpoints, see the Stripe API Documentation.

  3. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Stripe connector tile, then select the credential that will be used to connect to your Stripe account, and click Next; or, create a new Stripe credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Stripe endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get All Records of a Type

This endpoint template retrieves a list of all records of a specific type from your Stripe account. Use this template when you need to access comprehensive data for charges, customers, products, subscriptions, invoices, or other Stripe resources for analysis, reporting, or integration purposes.

  • Enter the Resource Type in the Resource Type field. This should be the type of Stripe records you want to retrieve (e.g., charges, customers, products, subscriptions, invoices, etc.). The Resource Type determines which type of records will be retrieved. See the API documentation URL for details about available resources. The endpoint uses ID-based pagination to handle large datasets efficiently, returning up to 100 records per page by default.
  • Optionally, enter a Starting After record ID to start pagination from a specific point. This should be the ID of the last record from the previous page. The Starting After parameter determines where pagination begins.

This endpoint returns all records of a specific type from your Stripe account, sorted by creation date with the most recently created appearing first. The endpoint uses ID-based pagination with starting_after parameter to handle large datasets efficiently. Nexla will automatically follow the pagination by using the last record ID from each page to fetch subsequent pages of data.

Use the Filter Records endpoint if you want to fetch a filtered list of items. The Resource Type can be selected from available options (e.g., accounts, balance_transactions, charges, customers, disputes, events, invoices, products, subscriptions, etc.). For detailed information about available resources, API response structures, pagination, and record types, see the Stripe API Documentation.

Get Filtered Records of a Type

This endpoint template retrieves a list of records of a specific type matching filter criteria from your Stripe account. Use this template when you need to access filtered data based on specific conditions, such as date ranges, status, or other criteria for analysis, reporting, or integration purposes.

  • Enter the Resource Type in the Resource Type field. This should be the type of Stripe records you want to retrieve (e.g., charges, customers, products, subscriptions, invoices, etc.). The Resource Type determines which type of records will be retrieved. See the API documentation URL for details about available resources.
  • Enter the Query in the Query field. This should be a valid URL query string for filtering (e.g., created[gte]=1640995200&status=succeeded). The Query parameter determines which records will be retrieved based on the filter criteria. Check out the API documentation for allowed search criteria and parameter formats for each record type. The endpoint uses ID-based pagination to handle large datasets efficiently, returning up to 100 records per page by default.
  • Optionally, enter a Starting After record ID to start pagination from a specific point. This should be the ID of the last record from the previous page. The Starting After parameter determines where pagination begins.

This endpoint returns records of a specific type matching filter criteria from your Stripe account, sorted by creation date with the most recently created appearing first. The endpoint uses ID-based pagination with starting_after parameter to handle large datasets efficiently. Nexla will automatically follow the pagination by using the last record ID from each page to fetch subsequent pages of data.

The Filter Query must be a valid URL query string. Check out the API documentation for allowed search criteria and parameter formats for each record type. The Resource Type can be selected from available options (e.g., accounts, balance_transactions, charges, customers, disputes, events, invoices, products, subscriptions, etc.). For detailed information about filtering, API response structures, pagination, and available filter parameters, see the Stripe API Documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Stripe data sources can also be manually configured to ingest data from any valid Stripe API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom query parameters and filters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Ensure the API endpoint URL is correct and accessible with your current credentials. The Stripe API endpoint URL should include the API base URL (https://api.stripe.com/v1/) and the resource path (e.g., https://api.stripe.com/v1/charges, https://api.stripe.com/v1/customers?limit=100). You can test the endpoint using the Test button after configuring the URL.

Stripe API responses typically have a data array containing the records. Set the Response Data Path to $.data[*] to extract all items from the data array. The JSONPath expression determines which data will be extracted and processed by Nexla. For pagination, Stripe API uses ID-based pagination with the starting_after parameter for most endpoints.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Stripe data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Stripe destination, and select the Send to Destination option from the menu. Select the Stripe connector from the list of available destination connectors, then select the credential that will be used to connect to your Stripe account, and click Next; or, create a new Stripe credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Stripe endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Add Records of Type

This endpoint template allows you to create new records of a specific type in your Stripe account using records from a Nexset. Use this template when you need to automatically create charges, customers, products, subscriptions, invoices, or other Stripe resources based on data from your Nexla flows.

  • Enter the Resource Type in the Resource Type field. This should be the type of Stripe records you want to create (e.g., charges, customers, products, subscriptions, invoices, etc.). The Resource Type determines which type of records will be created. Check out the documentation URL for more details on record schema.
  • This endpoint sends data as JSON in the request body to create new records in your Stripe account. Each record from your Nexset will be sent as a separate API request to create a new record. The request body should contain the record data in the format required by the Stripe API for the specific resource type.

This endpoint sends data as JSON in the request body to create new records in your Stripe account. Each record from your Nexset will be sent as a separate API request to create a new record. The request body should contain the record data in the format required by the Stripe API for the specific resource type, including all required fields and optional fields as needed.

The Resource Type can be selected from available options (e.g., charges, customers, products, subscriptions, invoices, etc.). The record structure must match the Stripe API's expected format for the specific resource type. Check out the documentation URL for more details on record schema and required fields.

For detailed information about record creation, request body formats, and available resource properties, see the Stripe API Documentation.

Manual configuration

Stripe destinations can also be manually configured to send data to any valid Stripe API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Stripe API expects JSON format for all requests and typically uses the POST method for creating resources. The Stripe API endpoint URL should include the API base URL (https://api.stripe.com/v1/) and the appropriate resource path (e.g., https://api.stripe.com/v1/charges, https://api.stripe.com/v1/customers).

The request body must be valid JSON and must match the Stripe API's expected format for the specific resource you're creating (charges, customers, products, etc.). The request body format is typically {message.json} to send the entire Nexset data as JSON, or you can construct a custom JSON structure with specific field mappings. Ensure your data includes all required fields for the resource type. For detailed information about request body formats, available endpoints, and resource structures, see the Stripe API Documentation.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Stripe endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Stripe endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.