Instantly share code, notes, and snippets.

Embed
What would you like to do?
Create a standalone Stripe invoice to be paid manually (check, wire, etc) using NetSuite and http://SuiteSync.io/
# Michael Bianco <mike@suitesync.io>
#
# Description: Create a standalone invoice to be paid manually using NetSuite
# Link: https://gist.github.com/iloveitaly/8e6bce2aec361dce38b5c61c48d037ea
#
# Usage:
# gem install stripe
# export STIRPE_KEY=sk_test_123
# ruby create_standalone_manual_invoice.rb
require 'stripe'
Stripe.api_key = ENV['STRIPE_KEY']
customer = Stripe::Customer.create({
description: "Sample customer",
email: "sample@example.com"
})
# NOTE adding a payment source is omitted here since you are creating a invoice for manual payment
invoice_item = Stripe::InvoiceItem.create({
customer: customer.id,
amount: 50_00,
currency: "usd",
# this description appears on the line item level in NetSuite
description: "A line item",
# NOTE you can specify exactly which NetSuite line item you'd like to connect to
# using metadata. More info: https://dashboard.suitesync.io/docs/field-customization
# metadata: {
# netsuite_service_sale_item_id: 123
# }
})
# creating this invoice in Stripe will create an open invoice in NetSuite
# if you manually pay the invoice in Netsuite, the payment information is pushed
# back to Stripe and the invoice is marked as paid.
# More information:
# https://dashboard.suitesync.io/docs/invoices#manual-invoice-payments
# https://stripe.com/docs/subscriptions/ach-credit
invoice = Stripe::Invoice.create(
customer: customer.id,
billing: 'send_invoice',
days_until_due: 30
)
puts "Stripe Invoice ID #{invoice.id}"
# NOTE with SuiteSync enabled, the NetSuite invoice ID is added to the Stripe metadata
# shortly after it's created.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment