← Stripe

Create Invoice with Stripe API

Pipedream makes it easy to connect APIs for Stripe and 800+ other apps remarkably fast.

Trigger workflow on
HTTP requests, schedules and app events
Next, do this
Create Invoice with the Stripe API
No credit card required
Into to Pipedream
Watch us build a workflow
Watch us build a workflow
7 min
Watch now ➜
Trusted by 250,000+ developers from startups to Fortune 500 companies:
Trusted by 250,000+ developers from startups to Fortune 500 companies

Developers Pipedream

Getting Started

Create a workflow to Create Invoice with the Stripe API. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

  1. Configure the Create Invoice action
    1. Connect your Stripe account
    2. Select a Customer ID
    3. Optional- Select a Subscription ID
    4. Optional- Configure Description
    5. Optional- Configure Auto Collect
    6. Optional- Select a Collection Method
    7. Optional- Configure Payment Terms
    8. Optional- Select a Default Payment Method
    9. Optional- Configure Metadata
    10. Optional- Configure Advanced Options
  2. Select a trigger to run your workflow on HTTP requests, schedules or app events
  3. Deploy the workflow
  4. Send a test event to validate your setup
  5. Turn on the trigger

Details

This is a pre-built, open source component from Pipedream's GitHub repo. The component is developed by Pipedream and the community, and verified and maintained by Pipedream.

To contribute an update to an existing component or create a new component, create a PR on GitHub. If you're new to Pipedream component development, you can start with quickstarts for trigger span and action development, and then review the component API reference.

Create Invoice on Stripe
Description:Create an invoice. [See the docs](https://stripe.com/docs/api/invoices/create) for more information
Version:0.0.2
Key:stripe-create-invoice

Code

const pick = require("lodash.pick");
const stripe = require("../../stripe.app.js");

module.exports = {
  key: "stripe-create-invoice",
  name: "Create Invoice",
  type: "action",
  version: "0.0.2",
  description: "Create an invoice. [See the docs](https://stripe.com/docs/api/invoices/create) " +
    "for more information",
  props: {
    stripe,
    customer: {
      propDefinition: [
        stripe,
        "customer",
      ],
      optional: false,
    },
    subscription: {
      propDefinition: [
        stripe,
        "subscription",
        ({ customer }) => ({
          customer,
        }),
      ],
    },
    description: {
      propDefinition: [
        stripe,
        "description",
      ],
    },
    auto_advance: {
      propDefinition: [
        stripe,
        "invoice_auto_advance",
      ],
    },
    collection_method: {
      propDefinition: [
        stripe,
        "invoice_collection_method",
      ],
      default: "charge_automatically",
      description: "When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.",
    },
    days_until_due: {
      propDefinition: [
        stripe,
        "invoice_days_until_due",
      ],
    },
    default_payment_method: {
      propDefinition: [
        stripe,
        "payment_method",
        ({ customer }) => ({
          customer,
        }),
      ],
      label: "Default Payment Method",
      description: "Must belong to the customer associated with the invoice. If not set, " +
        "defaults to the subscription’s default payment method, if any, or to the default " +
        "payment method in the customer’s invoice settings.",
    },
    metadata: {
      propDefinition: [
        stripe,
        "metadata",
      ],
    },
    advanced: {
      propDefinition: [
        stripe,
        "advanced",
      ],
    },
  },
  async run({ $ }) {
    const resp = await this.stripe.sdk().invoices.create({
      ...pick(this, [
        "customer",
        "subscription",
        "auto_advance",
        "description",
        "collection_method",
        "days_until_due",
        "default_payment_method",
        "metadata",
      ]),
      ...this.advanced,
    });

    $.export("$summary", "Successfully created a new invoice");

    return resp;
  },
};

Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI and CLI.
LabelPropTypeDescription
StripestripeappThis component uses the Stripe app.
Customer IDcustomerstringSelect a value from the drop down menu.
Subscription IDsubscriptionstringSelect a value from the drop down menu.
Descriptiondescriptionstring
Auto Collectauto_advanceboolean

Attempt to automatically collect the invoice. When disabled, the invoice's state will not automatically advance without an explicit action.

Collection Methodcollection_methodstringSelect a value from the drop down menu:charge_automaticallysend_invoice
Payment Termsdays_until_dueinteger

The number of days until the invoice is due (valid when collection method is send_invoice)

Default Payment Methoddefault_payment_methodstringSelect a value from the drop down menu.
Metadatametadataobject

Associate other information that's meaningful to you with Stripe activity. Metadata will not be shown to customers or affect whether or not a payment is accepted.

Advanced Optionsadvancedobject

Add any additional parameters that you require here

Authentication

Stripe uses API keys for authentication. When you connect your Stripe account, Pipedream securely stores the keys so you can easily authenticate to Stripe APIs in both code and no-code steps.

1) Create a Stripe API key. We recommend you restrict this API key to only operations you need to execute from Pipedream (e.g. a read-only key).

2) Enter the API key below

About Stripe

Payment Platform

More Ways to Use Stripe

Triggers

Actions

Cancel a Payment Intent with the Stripe API

Cancel a payment intent. Once canceled, no additional charges will be made by the payment intent and any operations on the payment intent will fail with an error. For payment intents with status=requires_capture, the remaining amount_capturable will automatically be refunded. See the docs for more information

 
Try it
Cancel Or Reverse a Payout with the Stripe API

Cancel or reverse a payout. A payout can be canceled only if it has not yet been paid out. A payout can be reversed only if it has already been paid out. Funds will be refunded to your available balance. See the docs for more information

 
Try it