first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled

This commit is contained in:
2026-03-17 16:22:57 +03:30
commit 3d5eaf9445
15349 changed files with 2847338 additions and 0 deletions
@@ -0,0 +1,24 @@
import type { INodeProperties } from 'n8n-workflow';
export const balanceOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'get',
options: [
{
name: 'Get',
value: 'get',
description: 'Get a balance',
action: 'Get a balance',
},
],
displayOptions: {
show: {
resource: ['balance'],
},
},
},
];
@@ -0,0 +1,472 @@
import type { INodeProperties } from 'n8n-workflow';
export const chargeOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'get',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a charge',
action: 'Create a charge',
},
{
name: 'Get',
value: 'get',
description: 'Get a charge',
action: 'Get a charge',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many charges',
action: 'Get many charges',
},
{
name: 'Update',
value: 'update',
description: 'Update a charge',
action: 'Update a charge',
},
],
displayOptions: {
show: {
resource: ['charge'],
},
},
},
];
export const chargeFields: INodeProperties[] = [
// ----------------------------------
// charge: create
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to be associated with this charge',
displayOptions: {
show: {
resource: ['charge'],
operation: ['create'],
},
},
},
{
displayName: 'Amount',
name: 'amount',
type: 'number',
required: true,
default: 0,
description:
'Amount in cents to be collected for this charge, e.g. enter <code>100</code> for $1.00',
typeOptions: {
minValue: 0,
maxValue: 99999999,
},
displayOptions: {
show: {
resource: ['charge'],
operation: ['create'],
},
},
},
{
displayName: 'Currency Name or ID',
name: 'currency',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getCurrencies',
},
required: true,
default: '',
description:
'Three-letter ISO currency code, e.g. <code>USD</code> or <code>EUR</code>. It must be a <a href="https://stripe.com/docs/currencies">Stripe-supported currency</a>. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
displayOptions: {
show: {
resource: ['charge'],
operation: ['create'],
},
},
},
{
displayName: 'Source ID',
name: 'source',
type: 'string',
required: true,
default: '',
description: "ID of the customer's payment source to be charged",
displayOptions: {
show: {
resource: ['charge'],
operation: ['create'],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['charge'],
operation: ['create'],
},
},
options: [
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Arbitrary text to describe the charge to create',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'fixedCollection',
default: [],
placeholder: 'Add Metadata Item',
description: 'Set of key-value pairs to attach to the charge to create',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Metadata Properties',
name: 'metadataProperties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Receipt Email',
name: 'receipt_email',
type: 'string',
default: '',
description: 'Email address to which the receipt for this charge will be sent',
},
{
displayName: 'Shipping',
name: 'shipping',
type: 'fixedCollection',
description: 'Shipping information for the charge',
placeholder: 'Add Field',
typeOptions: {
multipleValues: true,
},
default: [],
options: [
{
displayName: 'Shipping Properties',
name: 'shippingProperties',
values: [
{
displayName: 'Recipient Name',
name: 'name',
type: 'string',
description: 'Name of the person who will receive the shipment',
default: '',
},
{
displayName: 'Address',
name: 'address',
type: 'fixedCollection',
default: {},
placeholder: 'Add Field',
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
],
},
],
},
],
},
// ----------------------------------
// charge: get
// ----------------------------------
{
displayName: 'Charge ID',
name: 'chargeId',
type: 'string',
required: true,
default: '',
description: 'ID of the charge to retrieve',
displayOptions: {
show: {
resource: ['charge'],
operation: ['get'],
},
},
},
// ----------------------------------
// charge: getAll
// ----------------------------------
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Whether to return all results or only up to a given limit',
displayOptions: {
show: {
resource: ['charge'],
operation: ['getAll'],
},
},
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
default: 50,
description: 'Max number of results to return',
typeOptions: {
minValue: 1,
maxValue: 1000,
},
displayOptions: {
show: {
resource: ['charge'],
operation: ['getAll'],
returnAll: [false],
},
},
},
// ----------------------------------
// charge: update
// ----------------------------------
{
displayName: 'Charge ID',
name: 'chargeId',
type: 'string',
required: true,
default: '',
description: 'ID of the charge to update',
displayOptions: {
show: {
resource: ['charge'],
operation: ['update'],
},
},
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['charge'],
operation: ['update'],
},
},
options: [
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Arbitrary text to describe the charge to update',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'fixedCollection',
default: {},
placeholder: 'Add Metadata Item',
description: 'Set of key-value pairs to attach to the charge to update',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Metadata Properties',
name: 'metadataProperties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Receipt Email',
name: 'receipt_email',
type: 'string',
default: '',
description: 'The email address to which the receipt for this charge will be sent',
},
{
displayName: 'Shipping',
name: 'shipping',
type: 'fixedCollection',
default: {},
description: 'Shipping information for the charge',
placeholder: 'Add Field',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Shipping Properties',
name: 'shippingProperties',
default: {},
values: [
{
displayName: 'Recipient Name',
name: 'name',
type: 'string',
default: '',
},
{
displayName: 'Recipient Address',
name: 'address',
type: 'fixedCollection',
default: {},
placeholder: 'Add Address Details',
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
],
},
],
},
],
},
];
@@ -0,0 +1,177 @@
import type { INodeProperties } from 'n8n-workflow';
export const couponOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'create',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a coupon',
action: 'Create a coupon',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many coupons',
action: 'Get many coupons',
},
],
displayOptions: {
show: {
resource: ['coupon'],
},
},
},
];
export const couponFields: INodeProperties[] = [
// ----------------------------------
// coupon: create
// ----------------------------------
{
displayName: 'Apply',
name: 'duration',
type: 'options',
required: true,
default: 'once',
description: 'How long the discount will be in effect',
options: [
{
name: 'Forever',
value: 'forever',
},
{
name: 'Once',
value: 'once',
},
],
displayOptions: {
show: {
resource: ['coupon'],
operation: ['create'],
},
},
},
{
displayName: 'Discount Type',
name: 'type',
type: 'options',
required: true,
default: 'percent',
description: 'Whether the coupon discount is a percentage or a fixed amount',
options: [
{
name: 'Fixed Amount (in Cents)',
value: 'fixedAmount',
},
{
name: 'Percent',
value: 'percent',
},
],
displayOptions: {
show: {
resource: ['coupon'],
operation: ['create'],
},
},
},
{
displayName: 'Amount Off',
name: 'amountOff',
type: 'number',
required: true,
default: 0,
description:
'Amount in cents to subtract from an invoice total, e.g. enter <code>100</code> for $1.00',
typeOptions: {
minValue: 0,
maxValue: 99999999,
},
displayOptions: {
show: {
resource: ['coupon'],
operation: ['create'],
type: ['fixedAmount'],
},
},
},
{
displayName: 'Currency Name or ID',
name: 'currency',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getCurrencies',
},
required: true,
default: '',
description:
'Three-letter ISO currency code, e.g. <code>USD</code> or <code>EUR</code>. It must be a <a href="https://stripe.com/docs/currencies">Stripe-supported currency</a>. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
displayOptions: {
show: {
resource: ['coupon'],
operation: ['create'],
type: ['fixedAmount'],
},
},
},
{
displayName: 'Percent Off',
name: 'percentOff',
type: 'number',
required: true,
default: 1,
description: 'Percentage to apply with the coupon',
typeOptions: {
minValue: 1,
maxValue: 100,
},
displayOptions: {
show: {
resource: ['coupon'],
operation: ['create'],
type: ['percent'],
},
},
},
// ----------------------------------
// coupon: getAll
// ----------------------------------
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Whether to return all results or only up to a given limit',
displayOptions: {
show: {
resource: ['coupon'],
operation: ['getAll'],
},
},
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
default: 50,
description: 'Max number of results to return',
typeOptions: {
minValue: 1,
maxValue: 1000,
},
displayOptions: {
show: {
resource: ['coupon'],
operation: ['getAll'],
returnAll: [false],
},
},
},
];
@@ -0,0 +1,136 @@
import type { INodeProperties } from 'n8n-workflow';
export const customerCardOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'get',
options: [
{
name: 'Add',
value: 'add',
description: 'Add a customer card',
action: 'Add a customer card',
},
{
name: 'Get',
value: 'get',
description: 'Get a customer card',
action: 'Get a customer card',
},
{
name: 'Remove',
value: 'remove',
description: 'Remove a customer card',
action: 'Remove a customer card',
},
],
displayOptions: {
show: {
resource: ['customerCard'],
},
},
},
];
export const customerCardFields: INodeProperties[] = [
// ----------------------------------
// customerCard: add
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to be associated with this card',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['add'],
},
},
},
{
displayName: 'Card Token',
name: 'token',
type: 'string',
typeOptions: { password: true },
required: true,
default: '',
placeholder: 'tok_1IMfKdJhRTnqS5TKQVG1LI9o',
description: 'Token representing sensitive card information',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['add'],
},
},
},
// ----------------------------------
// customerCard: remove
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer whose card to remove',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['remove'],
},
},
},
{
displayName: 'Card ID',
name: 'cardId',
type: 'string',
required: true,
default: '',
description: 'ID of the card to remove',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['remove'],
},
},
},
// ----------------------------------
// customerCard: get
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer whose card to retrieve',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['get'],
},
},
},
{
displayName: 'Source ID',
name: 'sourceId',
type: 'string',
required: true,
default: '',
description: 'ID of the source to retrieve',
displayOptions: {
show: {
resource: ['customerCard'],
operation: ['get'],
},
},
},
];
@@ -0,0 +1,621 @@
import type { INodeProperties } from 'n8n-workflow';
export const customerOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'get',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a customer',
action: 'Create a customer',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a customer',
action: 'Delete a customer',
},
{
name: 'Get',
value: 'get',
description: 'Get a customer',
action: 'Get a customer',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many customers',
action: 'Get many customers',
},
{
name: 'Update',
value: 'update',
description: 'Update a customer',
action: 'Update a customer',
},
],
displayOptions: {
show: {
resource: ['customer'],
},
},
},
];
export const customerFields: INodeProperties[] = [
// ----------------------------------
// customer: create
// ----------------------------------
{
displayName: 'Name',
name: 'name',
type: 'string',
required: true,
default: '',
description: 'Full name or business name of the customer to create',
displayOptions: {
show: {
resource: ['customer'],
operation: ['create'],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['customer'],
operation: ['create'],
},
},
options: [
{
displayName: 'Address',
name: 'address',
type: 'fixedCollection',
description: 'Address of the customer to create',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Arbitrary text to describe the customer to create',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email of the customer to create',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'fixedCollection',
default: {},
placeholder: 'Add Metadata Item',
description: 'Set of key-value pairs to attach to the customer to create',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Metadata Properties',
name: 'metadataProperties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Telephone number of the customer to create',
},
{
displayName: 'Shipping',
name: 'shipping',
type: 'fixedCollection',
default: {},
description: 'Shipping information for the customer',
typeOptions: {
multipleValues: true,
},
placeholder: 'Add Field',
options: [
{
displayName: 'Shipping Properties',
name: 'shippingProperties',
values: [
{
displayName: 'Recipient Name',
name: 'name',
type: 'string',
default: '',
},
{
displayName: 'Recipient Address',
name: 'address',
type: 'fixedCollection',
default: {},
placeholder: 'Add Address Details',
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Recipient Phone',
name: 'phone',
type: 'string',
default: '',
},
],
},
],
},
],
},
// ----------------------------------
// customer: delete
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to delete',
displayOptions: {
show: {
resource: ['customer'],
operation: ['delete'],
},
},
},
// ----------------------------------
// customer: get
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to retrieve',
displayOptions: {
show: {
resource: ['customer'],
operation: ['get'],
},
},
},
// ----------------------------------
// customer: getAll
// ----------------------------------
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Whether to return all results or only up to a given limit',
displayOptions: {
show: {
resource: ['customer'],
operation: ['getAll'],
},
},
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
default: 50,
description: 'Max number of results to return',
typeOptions: {
minValue: 1,
maxValue: 1000,
},
displayOptions: {
show: {
resource: ['customer'],
operation: ['getAll'],
returnAll: [false],
},
},
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource: ['customer'],
operation: ['getAll'],
},
},
options: [
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: "Customer's email to filter by",
},
],
},
// ----------------------------------
// customer: update
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to update',
displayOptions: {
show: {
resource: ['customer'],
operation: ['update'],
},
},
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['customer'],
operation: ['update'],
},
},
options: [
{
displayName: 'Address',
name: 'address',
type: 'fixedCollection',
description: 'Address of the customer to update',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Arbitrary text to describe the customer to create',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email of the customer to create',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'fixedCollection',
default: {},
placeholder: 'Add Metadata Item',
description: 'Set of key-value pairs to attach to the customer to create',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Metadata Properties',
name: 'metadataProperties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'Full name or business name of the customer to create',
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Telephone number of this customer',
},
{
displayName: 'Shipping',
name: 'shipping',
type: 'fixedCollection',
description: 'Shipping information for the customer',
placeholder: 'Add Field',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
displayName: 'Shipping Properties',
name: 'shippingProperties',
values: [
{
displayName: 'Recipient Name',
name: 'name',
type: 'string',
default: '',
description: 'Name of the person who will receive the shipment',
},
{
displayName: 'Recipient Address',
name: 'address',
type: 'fixedCollection',
default: {},
placeholder: 'Add Address Details',
options: [
{
displayName: 'Details',
name: 'details',
values: [
{
displayName: 'Line 1',
name: 'line1',
description: 'Address line 1 (e.g. street, PO Box, or company name)',
type: 'string',
default: '',
},
{
displayName: 'Line 2',
name: 'line2',
description: 'Address line 2 (e.g. apartment, suite, unit, or building)',
type: 'string',
default: '',
},
{
displayName: 'City',
name: 'city',
description: 'City, district, suburb, town, or village',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
description: 'State, county, province, or region',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
description:
'Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>)',
type: 'string',
default: '',
},
{
displayName: 'Postal Code',
name: 'postal_code',
description: 'ZIP or postal code',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Recipient Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Phone number of the person who will receive the shipment',
},
],
},
],
},
],
},
];
@@ -0,0 +1,137 @@
import type { INodeProperties } from 'n8n-workflow';
export const meterEventOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'create',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a meter event',
action: 'Create a meter event',
},
],
displayOptions: {
show: {
resource: ['meterEvent'],
},
},
},
];
export const meterEventFields: INodeProperties[] = [
// ----------------------------------
// meterEvent: create
// ----------------------------------
{
displayName: 'Event Name',
name: 'eventName',
type: 'string',
required: true,
default: '',
description: 'The name of the meter event. Corresponds with the event_name field on a meter.',
displayOptions: {
show: {
resource: ['meterEvent'],
operation: ['create'],
},
},
},
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'The Stripe customer ID associated with this meter event',
displayOptions: {
show: {
resource: ['meterEvent'],
operation: ['create'],
},
},
},
{
displayName: 'Value',
name: 'value',
type: 'number',
required: true,
default: 1,
description: 'The value of the meter event. Must be an integer. Can be positive or negative.',
displayOptions: {
show: {
resource: ['meterEvent'],
operation: ['create'],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['meterEvent'],
operation: ['create'],
},
},
options: [
{
displayName: 'Identifier',
name: 'identifier',
type: 'string',
default: '',
description:
'A unique identifier for the event. If not provided, one will be generated. Uniqueness is enforced within a rolling 24 hour window.',
},
{
displayName: 'Timestamp',
name: 'timestamp',
type: 'dateTime',
default: '',
description:
'The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current time if not specified.',
},
{
displayName: 'Custom Payload Properties',
name: 'customPayload',
type: 'fixedCollection',
default: {},
placeholder: 'Add Custom Property',
description:
'Additional custom properties to include in the event payload. Use this for custom meter configurations with non-default payload keys.',
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Properties',
name: 'properties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
description: 'The property key',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'The property value',
},
],
},
],
},
],
},
];
@@ -0,0 +1,214 @@
import type { INodeProperties } from 'n8n-workflow';
export const sourceOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'get',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a source',
action: 'Create a source',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a source',
action: 'Delete a source',
},
{
name: 'Get',
value: 'get',
description: 'Get a source',
action: 'Get a source',
},
],
displayOptions: {
show: {
resource: ['source'],
},
},
},
];
export const sourceFields: INodeProperties[] = [
// ----------------------------------
// source: create
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer to attach the source to',
displayOptions: {
show: {
resource: ['source'],
operation: ['create'],
},
},
},
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
default: 'wechat',
description: 'Type of source (payment instrument) to create',
options: [
{
name: 'WeChat',
value: 'wechat',
},
],
displayOptions: {
show: {
resource: ['source'],
operation: ['create'],
},
},
},
{
displayName: 'Amount',
name: 'amount',
type: 'number',
default: 0,
description:
'Amount in cents to be collected for this charge, e.g. enter <code>100</code> for $1.00',
typeOptions: {
minValue: 0,
maxValue: 99999999,
},
displayOptions: {
show: {
resource: ['source'],
operation: ['create'],
},
},
},
{
displayName: 'Currency Name or ID',
name: 'currency',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getCurrencies',
},
default: '',
description:
'Three-letter ISO currency code, e.g. <code>USD</code> or <code>EUR</code>. It must be a <a href="https://stripe.com/docs/currencies">Stripe-supported currency</a>. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
displayOptions: {
show: {
resource: ['source'],
operation: ['create'],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['source'],
operation: ['create'],
},
},
options: [
{
displayName: 'Metadata',
name: 'metadata',
type: 'fixedCollection',
placeholder: 'Add Metadata Item',
description: 'Set of key-value pairs to attach to the source to create',
default: {},
typeOptions: {
multipleValues: true,
},
options: [
{
displayName: 'Metadata Properties',
name: 'metadataProperties',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Statement Descriptor',
name: 'statement_descriptor',
type: 'string',
default: '',
description: "Arbitrary text to display on the customer's statement",
},
],
},
// ----------------------------------
// source: delete
// ----------------------------------
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
required: true,
default: '',
description: 'ID of the customer whose source to delete',
displayOptions: {
show: {
resource: ['source'],
operation: ['delete'],
},
},
},
{
displayName: 'Source ID',
name: 'sourceId',
type: 'string',
required: true,
default: '',
description: 'ID of the source to delete',
displayOptions: {
show: {
resource: ['source'],
operation: ['delete'],
},
},
},
// ----------------------------------
// source: get
// ----------------------------------
{
displayName: 'Source ID',
name: 'sourceId',
type: 'string',
required: true,
default: '',
description: 'ID of the source to retrieve',
displayOptions: {
show: {
resource: ['source'],
operation: ['get'],
},
},
},
];
@@ -0,0 +1,109 @@
import type { INodeProperties } from 'n8n-workflow';
export const tokenOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
default: 'create',
options: [
{
name: 'Create',
value: 'create',
description: 'Create a token',
action: 'Create a token',
},
],
displayOptions: {
show: {
resource: ['token'],
},
},
},
];
export const tokenFields: INodeProperties[] = [
// ----------------------------------
// token: create
// ----------------------------------
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
default: 'cardToken',
description: 'Type of token to create',
options: [
{
name: 'Card Token',
value: 'cardToken',
},
],
displayOptions: {
show: {
resource: ['token'],
operation: ['create'],
},
},
},
{
displayName: 'Card Number',
name: 'number',
type: 'string',
displayOptions: {
show: {
resource: ['token'],
operation: ['create'],
type: ['cardToken'],
},
},
placeholder: '4242424242424242',
default: '',
},
{
displayName: 'CVC',
name: 'cvc',
type: 'string',
displayOptions: {
show: {
resource: ['token'],
operation: ['create'],
type: ['cardToken'],
},
},
default: '',
placeholder: '314',
description: 'Security code printed on the back of the card',
},
{
displayName: 'Expiration Month',
description: 'Number of the month when the card will expire',
name: 'expirationMonth',
type: 'string',
displayOptions: {
show: {
resource: ['token'],
operation: ['create'],
type: ['cardToken'],
},
},
default: '',
placeholder: '10',
},
{
displayName: 'Expiration Year',
description: 'Year when the card will expire',
name: 'expirationYear',
type: 'string',
displayOptions: {
show: {
resource: ['token'],
operation: ['create'],
type: ['cardToken'],
},
},
default: '',
placeholder: '2022',
},
];
@@ -0,0 +1,8 @@
export * from './BalanceDescription';
export * from './CustomerCardDescription';
export * from './ChargeDescription';
export * from './CouponDescription';
export * from './CustomerDescription';
export * from './MeterEventDescription';
export * from './SourceDescription';
export * from './TokenDescription';