Reference · Tools
Stripe
Interact with the Stripe payment processing API to manage charges, customers, coupons, customer cards, sources, tokens, meter events, and account balances.
The Stripe node manages payments and billing objects — charges, customers, coupons, customer cards, sources, tokens, meter events and balances. A typical build is creating a customer and charging them as part of an onboarding flow, or issuing a coupon in response to an event.
- Node type
- Action
- Parameters
- 59
- Outputs
- Output, Error
- Credentials
- Stripe API
Stripe
Manage Stripe charges, customers, coupons, cards, sources, tokens, meter events, and balances.
Overview
Stripe is a payment processing platform. This tool provides access to the Stripe API for managing charges (create, get, list, update), customers (CRUD), coupons (create, list), customer cards (add, get, remove), payment sources (create, delete, get), card tokens (create), billing meter events (create), and balance retrieval. Uses form-urlencoded request bodies per Stripe API conventions. Supports cursor-based pagination for list operations.
Category: Finance
Tool Name: stripe
Version: 1
Appearance: Icon: si-stripe | Color: #6772E5
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Stripe API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Balance | balance |
| Charge | charge |
| Coupon | coupon |
| Customer | customer |
| Customer Card | customerCard |
| Meter Event | meterEvent |
| Source | source |
| Token | token |
Operations
Each resource has its own Operation list, and several resources reuse the values create, get and getAll. Pick the resource first, then the operation.
| Resource | Operation | Value |
|---|---|---|
| Balance | Get | get |
| Charge | Create | create |
| Charge | Get | get |
| Charge | Get Many | getAll |
| Charge | Update | update |
| Coupon | Create | create |
| Coupon | Get Many | getAll |
| Customer | Create | create |
| Customer | Delete | delete |
| Customer | Get | get |
| Customer | Get Many | getAll |
| Customer | Update | update |
| Customer Card | Add | add |
| Customer Card | Get | get |
| Customer Card | Remove | remove |
| Meter Event | Create | create |
| Source | Create | create |
| Source | Delete | delete |
| Source | Get | get |
| Token | Create | create |
Parameters
Balance: Get takes no parameters of its own.
Every Stripe identifier is prefixed by its object type — customers are cus_, charges ch_, cards card_, sources src_ and tokens tok_. All identifier fields accept expressions, so you can feed them from an upstream item. Two different parameters are both labelled Source ID: the charge’s payment source (source) and the source or card being addressed (sourceId).
Charge: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to be associated with this charge (cus_…). |
| Amount | number | Yes | 0 | Amount in cents to be collected for this charge, e.g. enter 100 for $1.00. Accepts 0–99999999. |
| Currency | string | Yes | — | Three-letter ISO currency code in lowercase (e.g. usd, eur). Must be a Stripe-supported currency. |
Source ID (source) | string | Yes | — | ID of the customer’s payment source to be charged (src_… or card_…). |
Additional Fields (additionalFields) | collection | No | {} | Optional properties to set on the charge. |
| — Description | string | No | — | Arbitrary text to describe the charge. |
| — Metadata | fixedCollection | No | {} | Set of key-value pairs to attach to the charge. Add one entry per pair. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
— Receipt Email (receipt_email) | string | No | — | Email address to which the receipt for this charge will be sent. |
| — Shipping | fixedCollection | No | {} | Shipping information for the charge. |
— — Recipient Name (name) | string | No | — | — |
| — — Address | fixedCollection | No | {} | — |
| — — — Line 1 | string | No | — | Address line 1 (e.g. street, PO Box, or company name). |
| — — — Line 2 | string | No | — | Address line 2 (e.g. apartment, suite, unit, or building). |
| — — — City | string | No | — | City, district, suburb, town, or village. |
| — — — State | string | No | — | State, county, province, or region. |
| — — — Country | string | No | — | Two-letter country code (ISO 3166-1 alpha-2). |
| — — — Postal Code | string | No | — | ZIP or postal code. |
Charge: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Charge ID | string | Yes | — | ID of the charge to retrieve (ch_…). |
Charge: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. Accepts 1–1000. (shown when Return All is false) |
Charge: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Charge ID | string | Yes | — | ID of the charge to update (ch_…). |
Update Fields (updateFields) | collection | No | {} | Charge fields to change. Only the fields you add are sent. |
| — Description | string | No | — | Arbitrary text to describe the charge. |
| — Metadata | fixedCollection | No | {} | Set of key-value pairs to attach to the charge. Add one entry per pair. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
— Receipt Email (receipt_email) | string | No | — | Email address to which the receipt for this charge will be sent. |
| — Shipping | fixedCollection | No | {} | Shipping information for the charge. |
— — Recipient Name (name) | string | No | — | — |
— — Recipient Address (address) | fixedCollection | No | {} | — |
| — — — Line 1 | string | No | — | Address line 1 (e.g. street, PO Box, or company name). |
| — — — Line 2 | string | No | — | Address line 2 (e.g. apartment, suite, unit, or building). |
| — — — City | string | No | — | City, district, suburb, town, or village. |
| — — — State | string | No | — | State, county, province, or region. |
| — — — Country | string | No | — | Two-letter country code (ISO 3166-1 alpha-2). |
| — — — Postal Code | string | No | — | ZIP or postal code. |
Coupon: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Apply (duration) | options | Yes | once | How long the discount will be in effect. |
Options: forever, once | ||||
Discount Type (type) | options | Yes | percent | Whether the coupon discount is a percentage or a fixed amount. |
Options: fixedAmount (Fixed Amount, in cents), percent | ||||
| Amount Off | number | Yes | 0 | Amount in cents to subtract from an invoice total, e.g. enter 100 for $1.00. Accepts 0–99999999. (shown when Discount Type is fixedAmount) |
| Currency | string | Yes | — | Three-letter ISO currency code in lowercase (e.g. usd). Required for fixed amount coupons. (shown when Discount Type is fixedAmount) |
| Percent Off | number | Yes | 1 | Percentage to apply with the coupon (1-100). (shown when Discount Type is percent) |
Coupon: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. Accepts 1–1000. (shown when Return All is false) |
Customer: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | — | Full name or business name of the customer to create. |
Additional Fields (additionalFields) | collection | No | {} | Optional properties to set on the customer. |
| — Address | fixedCollection | No | {} | Address of the customer. |
| — — Line 1 | string | No | — | Address line 1. |
| — — Line 2 | string | No | — | Address line 2. |
| — — City | string | No | — | — |
| — — State | string | No | — | — |
| — — Country | string | No | — | Two-letter country code (ISO 3166-1 alpha-2). |
| — — Postal Code | string | No | — | — |
| — Description | string | No | — | Arbitrary text to describe the customer. |
string | No | — | Email address of the customer. | |
| — Metadata | fixedCollection | No | {} | Set of key-value pairs to attach to the customer. Add one entry per pair. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
| — Phone | string | No | — | Telephone number of the customer. |
| — Shipping | fixedCollection | No | {} | Shipping information for the customer. |
— — Recipient Name (name) | string | No | — | — |
— — Recipient Address (address) | fixedCollection | No | {} | — |
| — — — Line 1 | string | No | — | — |
| — — — Line 2 | string | No | — | — |
| — — — City | string | No | — | — |
| — — — State | string | No | — | — |
| — — — Country | string | No | — | — |
| — — — Postal Code | string | No | — | — |
— — Recipient Phone (phone) | string | No | — | — |
Customer: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to delete (cus_…). |
Customer: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to retrieve (cus_…). |
Customer: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. Accepts 1–1000. (shown when Return All is false) |
Filters (filters) | collection | No | {} | Narrow the customer list. |
string | No | — | Filter customers by exact email match. |
Customer: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to update (cus_…). |
Update Fields (updateFields) | collection | No | {} | Customer fields to change. Only the fields you add are sent. |
| — Address | fixedCollection | No | {} | Address of the customer. |
| — — Line 1 | string | No | — | — |
| — — Line 2 | string | No | — | — |
| — — City | string | No | — | — |
| — — State | string | No | — | — |
| — — Country | string | No | — | — |
| — — Postal Code | string | No | — | — |
| — Description | string | No | — | Arbitrary text to describe the customer. |
string | No | — | Email address of the customer. | |
| — Metadata | fixedCollection | No | {} | Set of key-value pairs to attach to the customer. Add one entry per pair. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
| — Name | string | No | — | Full name or business name of the customer. |
| — Phone | string | No | — | Telephone number of the customer. |
| — Shipping | fixedCollection | No | {} | Shipping information for the customer. |
— — Recipient Name (name) | string | No | — | — |
— — Recipient Address (address) | fixedCollection | No | {} | — |
| — — — Line 1 | string | No | — | — |
| — — — Line 2 | string | No | — | — |
| — — — City | string | No | — | — |
| — — — State | string | No | — | — |
| — — — Country | string | No | — | — |
| — — — Postal Code | string | No | — | — |
— — Recipient Phone (phone) | string | No | — | — |
Customer Card: Add
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to be associated with this card (cus_…). |
Card Token (token) | string | Yes | — | Token representing sensitive card information (tok_…). |
Customer Card: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer whose card to retrieve (cus_…). |
Source ID (sourceId) | string | Yes | — | ID of the source/card to retrieve (src_… or card_…). |
Customer Card: Remove
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer whose card to remove (cus_…). |
| Card ID | string | Yes | — | ID of the card to remove (card_…). |
Meter Event: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Event Name | string | Yes | — | The name of the meter event. Must match a configured meter’s event_name. |
| Customer ID | string | Yes | — | The Stripe customer ID associated with this meter event (cus_…). |
| Value | number | Yes | 1 | The value of the meter event. Must be an integer. Can be positive or negative. |
Additional Fields (additionalFields) | collection | No | {} | Optional properties to set on the meter event. |
| — Identifier | string | No | — | A unique identifier for the event. Uniqueness is enforced within a rolling 24 hour window. |
| — Timestamp | string | No | — | ISO 8601 date string for the event time. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current time if not specified. |
— Custom Payload Properties (customPayload) | fixedCollection | No | {} | Additional custom properties to include in the event payload. Cannot overwrite stripe_customer_id or value. Add one entry per property. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
Source: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer to attach the source to (cus_…). |
| Type | options | Yes | wechat | Type of source (payment instrument) to create. |
Options: wechat | ||||
| Amount | number | No | 0 | Amount in cents to be collected, e.g. enter 100 for $1.00. Accepts 0–99999999. |
| Currency | string | No | — | Three-letter ISO currency code in lowercase (e.g. usd). |
Additional Fields (additionalFields) | collection | No | {} | Optional properties to set on the source. |
| — Metadata | fixedCollection | No | {} | Set of key-value pairs to attach to the source. Add one entry per pair. |
| — — Key | string | No | — | — |
| — — Value | string | No | — | — |
— Statement Descriptor (statement_descriptor) | string | No | — | Arbitrary text to display on the customer’s statement. |
Source: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Customer ID | string | Yes | — | ID of the customer whose source to delete (cus_…). |
Source ID (sourceId) | string | Yes | — | ID of the source to delete (src_…). |
Source: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Source ID (sourceId) | string | Yes | — | ID of the source to retrieve (src_…). |
Token: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Type | options | Yes | cardToken | Type of token to create. Currently only card tokens are supported. |
Options: cardToken | ||||
Card Number (number) | string | No | — | The card number. (shown when Type is cardToken) |
| CVC | string | No | — | Security code printed on the back of the card. (shown when Type is cardToken) |
| Expiration Month | string | No | — | Number of the month when the card will expire. (shown when Type is cardToken) |
| Expiration Year | string | No | — | Year when the card will expire. (shown when Type is cardToken) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. Accepts 1–100. |
Output Data
The Stripe object is merged onto the input item’s JSON at the top level — the returned object’s fields sit alongside the fields the item already carried, so downstream nodes address them directly ({{ $json.id }}) rather than through a wrapper property. A response field with the same name as an existing item field overwrites it. Binary data on the input item is forwarded unchanged onto every output item.
Only the Get Many operations fan out. Each record Stripe returns becomes its own output item, still merged onto the same input JSON, so one input item can produce many output items. A list with no records produces no output items for that input.
| Operations | Output |
|---|---|
| Charge Get Many; Coupon Get Many; Customer Get Many | One output item per record. Paging is handled for you — Return All follows Stripe’s cursor until the list is exhausted, and Limit stops once that many records have been collected. |
| Balance Get; Charge Create, Get and Update; Coupon Create; Customer Create, Get and Update; Customer Card Add and Get; Meter Event Create; Source Create and Get; Token Create | One output item carrying the fields of the returned Stripe object. |
| Customer Delete; Customer Card Remove; Source Delete | One output item carrying the deletion confirmation Stripe returns for that object. |
Two operations are worth calling out:
- Source: Create creates the source and then attaches it to the customer you named. The output item carries the created source, so
{{ $json.id }}is the newsrc_ID. - Token: Create returns the token object. Read
{{ $json.id }}for thetok_value and hand it to Customer Card: Add.
Write operations are sent with a Stripe idempotency key scoped to that execution, node and input item, so an automatic retry of the same item cannot create a duplicate charge, customer or coupon.
Usage Examples
- Create a new Stripe charge for $20.00 USD
- List all customers filtered by email
- Create a coupon for 15% off
- Add a card token to a customer
- Get account balance from Stripe
- Create a billing meter event for usage tracking
Example Configuration
Read the account balance:
{
"type": "stripe",
"parameters": {
"resource": "balance",
"operation": "get"
}
}
Charge a customer’s saved card for $20.00:
{
"type": "stripe",
"parameters": {
"resource": "charge",
"operation": "create",
"customerId": "{{ $json.stripeCustomerId }}",
"amount": 2000,
"currency": "usd",
"source": "card_123456789",
"additionalFields": {
"description": "Payment for order {{ $json.orderNumber }}",
"receipt_email": "{{ $json.email }}",
"metadata": {
"metadataProperties": [
{ "key": "order_id", "value": "{{ $json.orderNumber }}" }
]
}
}
}
}
Retrieve a single charge:
{
"type": "stripe",
"parameters": {
"resource": "charge",
"operation": "get",
"chargeId": "ch_123456789"
}
}
List the ten most recent charges:
{
"type": "stripe",
"parameters": {
"resource": "charge",
"operation": "getAll",
"returnAll": false,
"limit": 10
}
}
Annotate an existing charge:
{
"type": "stripe",
"parameters": {
"resource": "charge",
"operation": "update",
"chargeId": "{{ $json.id }}",
"updateFields": {
"description": "Updated payment description",
"metadata": {
"metadataProperties": [
{ "key": "reconciled", "value": "true" }
]
}
}
}
}
Create a $5.00-off coupon that applies once:
{
"type": "stripe",
"parameters": {
"resource": "coupon",
"operation": "create",
"duration": "once",
"type": "fixedAmount",
"amountOff": 500,
"currency": "usd"
}
}
Create a 15%-off coupon that never expires:
{
"type": "stripe",
"parameters": {
"resource": "coupon",
"operation": "create",
"duration": "forever",
"type": "percent",
"percentOff": 15
}
}
Create a customer with an address and metadata:
{
"type": "stripe",
"parameters": {
"resource": "customer",
"operation": "create",
"name": "{{ $json.fullName }}",
"additionalFields": {
"email": "{{ $json.email }}",
"phone": "+1234567890",
"description": "Premium customer",
"address": {
"details": {
"line1": "123 Main St",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "10001"
}
},
"metadata": {
"metadataProperties": [
{ "key": "customer_type", "value": "premium" }
]
}
}
}
}
Look a customer up by exact email:
{
"type": "stripe",
"parameters": {
"resource": "customer",
"operation": "getAll",
"returnAll": false,
"limit": 20,
"filters": {
"email": "{{ $json.email }}"
}
}
}
Attach a card token to a customer:
{
"type": "stripe",
"parameters": {
"resource": "customerCard",
"operation": "add",
"customerId": "cus_123456789",
"token": "{{ $json.id }}"
}
}
Report metered usage against a configured meter:
{
"type": "stripe",
"parameters": {
"resource": "meterEvent",
"operation": "create",
"eventName": "api_calls",
"customerId": "{{ $json.stripeCustomerId }}",
"value": 100,
"additionalFields": {
"identifier": "{{ $uuid }}",
"timestamp": "{{ $datetime.iso }}",
"customPayload": {
"properties": [
{ "key": "endpoint", "value": "/api/v1/data" }
]
}
}
}
}
Create a WeChat source and attach it to a customer:
{
"type": "stripe",
"parameters": {
"resource": "source",
"operation": "create",
"customerId": "cus_123456789",
"type": "wechat",
"amount": 1000,
"currency": "usd",
"additionalFields": {
"statement_descriptor": "ACME Corp Purchase",
"metadata": {
"metadataProperties": [
{ "key": "payment_method", "value": "wechat" }
]
}
}
}
}
Create a card token:
{
"type": "stripe",
"parameters": {
"resource": "token",
"operation": "create",
"type": "cardToken",
"number": "4242424242424242",
"cvc": "123",
"expirationMonth": "12",
"expirationYear": "2030"
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Use Stripe to manage payments, customers, charges, coupons, and billing through the Stripe API.
Common Patterns
Payment flow
- Create a card token from the customer’s card details.
- Create the customer.
- Add the card to the customer with Customer Card: Add, using the token’s ID.
- Create a charge against that customer and card.
Coupons
Create the coupon with Coupon: Create, then apply it when you create the subscription in Stripe — subscription creation is outside this node.
Meter-based billing
Send a Meter Event: Create each time usage occurs. Values may be positive or negative, so a correction is just a negative event, and Custom Payload Properties carries the extra context you want to see in Stripe.
Working With Amounts and IDs
- Amounts are always in the currency’s smallest unit —
2000is $20.00, not $2,000. - Currency codes are lowercase three-letter ISO codes such as
usdoreur. - Check that an ID has the prefix its field expects before sending it: customers are
cus_, chargesch_, cardscard_, sourcessrc_and tokenstok_. A card ID in a Source ID field is the most common cause of a “no such source” error. - Collections (Additional Fields, Update Fields, Filters) are flat objects keyed by the sub-field’s internal name. Metadata and Custom Payload Properties hold a list of key/value entries under
metadataPropertiesandproperties; Address nests one record underdetails.
Frequently asked questions
What is the correct order for taking a payment?
Create a card token from the card details, create the customer, add the card to that customer with Customer Card: Add using the token's ID, then create a charge against the customer and card.
How do coupons work?
Create the coupon with Coupon: Create, then apply it when charging. Creating them from a workflow means discounts can be issued in response to events rather than batch-made by hand.
How do I react to Stripe events?
Use the Stripe Trigger, which fires on webhook events such as charge.succeeded and invoice.paid.
Which credential does it need?
A Stripe API credential.
Build with the Stripe node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Stripe API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.