Stripe

A secure client library for Stripe's API

Install

npm install @appstitch/stripe

Install Peer Dependencies

npm install @appstitch/core
npm install @appstitch/types

Remember to initialize Appstitch

Usage

Apart from a few exceptions, this library mirror Stripe's API. You can use Stripe's Docs for reference.

import { createSubscription } from "@appstitch/stripe";
// OR
import * as stripeClient from "@appstitch/stripe";

Create a customer

import * as stripe from "@appstitch/stripe";

const createCustomer = () => {

  stripe.createCustomer({
      email: "[email protected]"
  })
  .then((res) => {
    if (res.object === "customer") {
       // success
    }
  })
}

Create a subscription

import * as stripe from "@appstitch/stripe";

const createSubscription = () => {

  stripe.createSubsciption({
      customer : "cus_ABC123456",
      items:[{price : "price_XYZ123456"}],
  })
  .then(result => {

    if(result.object === "subscription")
    {
        // Success
    }
  })
}

Create a Payment Intent

import * as stripe from "@appstitch/stripe";

const createPaymentIntent = () => {
    
    stripeClient.createPaymentIntent({
        customer: "cus_abc123"
        amount : 2500, // $25.00 
        currency:"usd",
        confirm:true
        receipt_email: "[email protected]"
    })
    .then(result => {
        if(result.object === "payment_intent")
        {
            // Success
        }
    })
}

Stripe Connect Options

All requests can be made on behalf of another Stripe Account. Here's how you do it

import * as stripe from "@appstitch/stripe";

const createPaymentIntent = () => {

   stripe.createPaymentIntent({
        customer: "cus_abc123"
        amount : 2500,
        currency:"usd",
        confirm:true
        receipt_email: "[email protected]"
        
        // Stripe Account ID         
        stripeAccount : "act_xyz890"
    })
    .then(result => {
        if(result.object === "payment_intent")
        {
            // Success
        }
    })
}

Note: Similar to Stripe's API, stripeAccount is in camel case

Exceptions

For Retrieve, Delete and Update requests, Stripe Api look something similar to this

// Update a customer
customers.update(id, {
    ...options
})

After consideration, we went for chose to go for this approach instead. Notice the invoice id is passed with the update options

// Update a customer
updateInvoice({
    id,
    ...options
})

Reference Stripe's Docs

Last updated

Was this helpful?