Several Stripe APIs under one installation

Hello. We have four companies managed under one ERPNext installation (they provide different services, but belong to a single corporation). We are considering moving more operations to ERPNext, which means moving payment collection. All companies use Stripe to collect payments, but have separate Stripe and bank accounts. As far as I understand, Stripe API tokens are assigned to the whole ERPNext installation and can’t be configured separately, as per the company? Is there a workaround or solution allowing each company to have its own Stripe account and tokens? They are small businesses and very lovely to manage under one installation. I am not looking forward to breaking them into four different ERPNext installs and working on all four separately. Any help is much appreciated.

Both Stripe and ERPNext have robust APIs (the sky is the limit).

We are nearly finished with a Stripe enhancement. It’s part of a larger app, but the Stripe Plus module is the first component. We are creating a branch to make it easy to install just the code related to Stripe Plus.

We hope to push the finished code in a week or so (I hoped it was last week).

I’m not the developer, but I’m pretty sure the recommendation is to have a dedicated stripe account per site or business unit.

Keep an eye out for erpUSA.

We’ll keep an eye on that. Thanks.

You can make use of the Payment Gateway Account doctype to assign a different Stripe account to each company. This setup links the Stripe account with a company via Payment Gateway and Payment Account records. Here’s how to configure it:

  1. Create a Stripe Settings document for the company and enter the API keys provided by Stripe. Give it a distinctive name for easy identification.

  2. Create a new Payment Gateway document:

  • Set Stripe Settings as the gateway_settings doctype.
  • Set the Stripe Settings document you created as the gateway_controller.
  1. Create a Payment Gateway Account:
  • Use the Payment Gateway document from step 2 as the payment_gateway.
  • For payment_account, make sure the account belongs to the same company associated with the Stripe Settings.

With this, each company can have its own Stripe configuration, which you can use when making payment requests.

If you’re interested in automation, check out erpUSA! We’re building a module that automates the selling-accounting workflow using webhooks. It can automatically create Payment Entries and Journal Entries from Payment Requests—no manual steps required.

Interesting approach. Worth giving a try. We’ll see how this goes. Thanks for the hint!
And sure, bring erpUSA online! We are waiting. Cheers.

I’ll add to what @markguchi provided.

You may need to restrict permissions on the Stripe Settings because each company will be able to edit/access the stripe settings (may not be a big deal in your scenario).

The out-of-the-box experience with the Payments app, only allows credit card transactions which uses Stripe’s default configuration. There’s also no callback from Stripe to automate/confirm the payment entries and journal entries for payments and payouts. This is where erpUSA comes in.

Cheers!

Thanks for the heads-up! As I said, erpUSA looks like an interesting tool coming from someone knowledgeable and familiar with the product, so we are closely looking at what it offers. I’m looking forward to the official launch!