Skip to content

Instantly share code, notes, and snippets.

@aaronsteers
Created September 29, 2025 23:34
Show Gist options
  • Save aaronsteers/385ff54f036b8ea54f099966534371b0 to your computer and use it in GitHub Desktop.
Save aaronsteers/385ff54f036b8ea54f099966534371b0 to your computer and use it in GitHub Desktop.
example-stripe-manifest-with-no-schema.yaml
version: "4.6.2"
type: DeclarativeSource
definitions:
authenticator:
type: BearerAuthenticator
api_token: "{{ config['client_secret'] }}"
base_requester:
type: HttpRequester
url_base: "https://api.stripe.com/v1"
authenticator:
$ref: "#/definitions/authenticator"
http_method: GET
error_handler:
type: CompositeErrorHandler
error_handlers:
- type: DefaultErrorHandler
response_filters:
- type: HttpResponseFilter
action: RETRY
http_codes: [429, 500, 502, 503, 504]
error_message: "Rate limited or server error, retrying..."
backoff_strategies:
- type: ExponentialBackoffStrategy
factor: 2
base_paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: CursorPagination
page_size: 100
cursor_value: "{{ response.data[-1].id }}"
stop_condition: "{{ not response.get('has_more', False) }}"
base_stream:
type: DeclarativeStream
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: ["data"]
paginator:
$ref: "#/definitions/base_paginator"
check:
type: CheckStream
stream_names:
- customers
streams:
- $ref: "#/definitions/base_stream"
name: customers
$parameters:
path: "/customers"
- $ref: "#/definitions/base_stream"
name: charges
$parameters:
path: "/charges"
- $ref: "#/definitions/base_stream"
name: invoices
$parameters:
path: "/invoices"
- $ref: "#/definitions/base_stream"
name: payment_intents
$parameters:
path: "/payment_intents"
- $ref: "#/definitions/base_stream"
name: products
$parameters:
path: "/products"
- $ref: "#/definitions/base_stream"
name: subscriptions
$parameters:
path: "/subscriptions"
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
request_parameters:
status: "all"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: ["data"]
paginator:
$ref: "#/definitions/base_paginator"
- $ref: "#/definitions/base_stream"
name: balance_transactions
$parameters:
path: "/balance_transactions"
- $ref: "#/definitions/base_stream"
name: refunds
$parameters:
path: "/refunds"
- $ref: "#/definitions/base_stream"
name: disputes
$parameters:
path: "/disputes"
- $ref: "#/definitions/base_stream"
name: events
$parameters:
path: "/events"
spec:
type: Spec
documentation_url: https://docs.airbyte.com/integrations/sources/stripe
connection_specification:
$schema: http://json-schema.org/draft-07/schema#
title: Source Stripe Spec
type: object
additionalProperties: true
properties:
client_secret:
type: string
title: Secret Key
description: Stripe API key (starts with sk_test_ for test mode or sk_live_ for live mode)
airbyte_secret: true
order: 0
account_id:
type: string
title: Account ID
description: Your Stripe account ID (starts with 'acct_')
order: 1
required:
- client_secret
- account_id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment