Skip to main content
Offer Pay on Account to B2B customers
Michiel Sikkes avatar
Written by Michiel Sikkes
Updated over 2 months ago

With Firmhouse, you can add Pay on Account as payment method to your Shopify store. Pay on Account is currently supported for merchants using Mollie as payment provider using SEPA Direct Debit as payment method.

When Pay on Account is turned on, eligible customers can place orders in Shopify without having to pay immediately at Checkout. Firmhouse will take care of deducting the order amount from the bank account stored on your customer's B2B profile in Firmhouse.

Note: Offering Pay on Account feature for B2B customers is currently incompatible with regular product Subscriptions. Enabling the B2B feature will break Subscription checkouts on your current Shopify store. It's advised to only enable Pay on Account on Shopify stores meant for B2B.

How it works

The Pay on Account feature consists of a few components. Here is a high level overview of how it works:

You set up in Shopify and Firmhouse which payment method should serve as the Pay on Account payment method. On Shopify Checkout, only eligible customers can then select this payment method as their means of payment. They can place their order like normal and will not have to provide any payment and the moment of ordering.

Firmhouse will then automatically process any Shopify order that is placed with the configured pay on account payment method. All order lines will be copied to an invoice document is generated in Firmhouse. Then, a SEPA direct debit or charge for the total order amount.

Making a customer eligible for Pay on Account

There are two ways to enable pay on account for your customers:

  1. By letting your customers check out a special "Pay on account" activation product with a small amount of €0,50. Firmhouse then takes care of creating the customer profile and stores their bank account number for future automatic debits.

  2. By manually creating the customer as a Subscription in Firmhouse and entering their IBAN number. And then setting a metafield firmhouse.can_pay_on_account on the Customer object in Shopify.

Option 1 is by far the smoothest experience for you and your customer.

But if you want more control or if you already have a set of customers you want to import, option 2 could be the most viable route.

In the steps below you'll learn how to set up Pay on Account for your Shopify store.


Get started

First, enable the B2B feature on the Shopify app in Firmhouse.

Go to Settings > Apps > Subscriptions using Shopify > Configure and click the tab B2B. If you do not see B2B as an option, please reach out to our support so we can enable the feature on your Firmhouse project.

Step 1: Choose the name of the payment method

Enter the desired name of the payment method you want to show on Shopify Checkout in the Name of the Manual Payment Method in Shopify field.

Firmhouse will make sure that only this payment method will show up in Shopify Checkout for customers that you've made eligible.

For example, you can choose a name such as:

  • Pay on account (SEPA

  • Betalen op rekening (SEPA

  • Zahlen auf rechnung (SEPA)

Step 2: Create a custom payment method in Shopify

In Shopify, go to Settings > Payments. Under Manual payment methods, add a new manual payment method by choosing Create custom payment method and give it the name you entered in the previous step in Firmhouse.

Note: Make sure the payment method you configured in Firmhouse exactly matches the payment method name you added in Shopify. Even if one character or space is different, Firmhouse cannot recognize pay on account orders from Shopify.

Step 3: Set up special "Pay on Account" activation product metafield

First, we're going to create a Product metafield in Shopify. After creating the metafield we can create a new Product and configure it as "Pay on Account activation" product.

To create the metafield, in your Shopify store go to Settings > Custom Data > Products.

Click Add definition on the top-right and enter:

  • Name: Firmhouse: Pay on Account Activation

  • Namespace and key: firmhouse.pay_on_account_activation

  • Select type: True or false

Click Save to save the metafield definition for products.

Step 4: Create the special Pay on Account activation Product

Now we're going to create a regular Product in your Shopify catalog and we'll set the special metafield we created in the previous step.

Once the product is set up, your customers can then place an order with this product in their Checkout to activate their pay on account for their Shopify customer.

In Shopify, create a new regular Product in your catalog:

  • Name: For example: Activate Pay on Account (English) or Betalen op rekening activeren (Dutch).

  • Price: €0,50 (suitable for iDeal and Bancontact).

  • Under Metafields set Firmhouse: Pay on Account Activation to True.

Click Save to create the product.

Step 5: For convenience: Share a direct link to Pay on Account activation with your customers

To make it easier for your customers to activate their Pay on Account option, you can create a Cart permalink to a Shopify Checkout that already has the special Pay on Account activation Product in it. You can then create a button or link on your Shopify store to promote the option for your customers to activate their Pay on Account option.

You can build a cart permalink with the Variant ID of the Pay on Account activation product as follows:

https://myshopifystore.com/cart/<activation product variant id>:1

For example:

https://myshopifystore.com/cart/54151458718041:1

You can obtain the Variant ID of the product by going to to the product page on your store and using View source in your browser and such for var meta where you will get something like the following snippet. You can find the variant id in the variants key.

var meta = {"product":{"id":15170590638425,"gid":"gid://shopify/Product/15170590638425","vendor":"My Shop","type":"","variants":[{"id":54151458718041,"price":50,"name":"Betalen op rekening activatie","public_title":null,"sku":""}]},"page":{"pageType":"product","resourceType":"product","resourceId":15170590638425}};
Did this answer your question?