Payment methods
How it works
On the Review & Pay step of the My Cart, customers pick from the payment methods their customer group allows. Their choice decides whether they pay now, and how the order arrives in your store.
| Payment method | For the customer | For you and the order |
|---|---|---|
| Pay on Account | Checks out without payment details. The order is charged to their account, for example on Net 30 terms. | An offline method. You can set a credit limit and net terms for each customer and collect payment later. |
| Pay by Invoice | Checks out without payment details, and pays later, for example on Net 30 terms. | An offline method. You take payment outside the store, for example by bank transfer, often against an invoice. You can set net terms, but there's no credit limit. |
| Pay Online by Card | Pays straight away in your store's standard checkout, by card or any other method your store offers. Sometimes called pro forma payment. | The order arrives paid (completed), with nothing to collect. |
Which method to offer
| If you want customers to... | Offer |
|---|---|
| Pay before you ship, for example new customers | Pay Online by Card |
| Order within a credit limit and pay on terms such as Net 30 or Net 60 | Pay on Account, with credit limits and net terms |
| Order now and pay later against an invoice, for example by bank transfer, with or without net terms but no credit limit | Pay by Invoice |
| Agree a price with your team before ordering | The Quoting Engine |
A group can have several methods, for example card and on account for long-standing customers, and card only for new ones.
Shopify only
To follow each method from checkout to payment, step by step, try the interactive guide How payments work.
Which payment methods work with the SparkLayer checkout?
Shopify only
| Payment method | Works? | How |
|---|---|---|
| Card gateways, such as Shopify Payments or PayPal | Yes | Through Pay Online by Card, which takes the customer to Shopify's checkout. |
| Manual (custom) methods, such as Zelle or bank transfer | Yes | Zelle isn't a Shopify automated gateway. Add it as a manual payment method in Settings,Payments (opens in your Shopify admin in a new tab), and it shows in Shopify's checkout with Pay Online by Card. Or offer Pay by Invoice and explain how to pay in a payment method message. |
| ACH bank transfer | Partly | It shows at Shopify's own payment step, the last step of the checkout, with Pay Online by Card. Full ACH support in the SparkLayer checkout is in development, with no date yet. |
| Pay on Account and Pay by Invoice | Yes | SparkLayer's own methods. The customer checks out without payment details and you collect payment later. |
| Quotes | Yes | Not a payment method: the customer chooses how to pay when they complete the quote. See Set up quotes. |
| Shopify gift cards | With card checkout only | Only in Shopify's checkout, with Pay Online by Card. Not with Pay on Account or Pay by Invoice. |
Each order has one payment method, so a customer can't split an order between methods, such as part on account and part by card.
How orders arrive in your store
Which payment method the customer chooses decides how the order arrives in your platform: paid and ready to fulfil, or waiting for you to collect payment.
| Payment method | How the order arrives |
|---|---|
| Pay on Account and Pay by Invoice | A draft order (opens in a new tab) by default, so you can make changes before you take payment and fulfil. To create completed orders instead, turn on Auto-complete draft orders. |
| Pay Online by Card | The customer pays in the Shopify checkout and the order arrives completed. If they don't finish paying, the order still shows in your Shopify draft orders. |
| Pay Online by Card, chosen by a sales agent or company user | The customer is emailed to complete payment, then the order continues as normal. |
Auto-complete draft orders is at Integrations,Platform,Shopify order actions (opens in your SparkLayer Dashboard in a new tab). See Complete draft orders automatically and Shopify payment methods.
Orders are created in your Wix admin under Sales > Orders. Every method except Pay Online by Card creates an unpaid order.
| Payment method | How the order arrives |
|---|---|
| Pay on Account | Payment status "UNPAID". Mark it as paid once you've received payment, for example offline. |
| Pay by Invoice | Payment status "UNPAID". Mark it as paid once you've received payment. |
| Pay Online by Card (Card at checkout in the customer group) | Payment status "PAID". You can fulfil it straight away. |
Pay Online by Card takes customers to the Wix checkout, with all the Wix payment methods you've set up, such as card or PayPal.
| Payment method | What happens |
|---|---|
| Pay on Account and Pay by Invoice | The customer places the order without entering payment details. |
| Pay Online by Card | The customer goes to your store's checkout, enters their card details and sees the payment methods you've set up there. |
For how orders are created on your platform, see the developer docs.
Choose which payment methods a customer group can use
- Go to Customers,Groups (opens in your SparkLayer Dashboard in a new tab) and click the group's name. To change every group, click Edit on the base customer group.
- Under Inherited rules, click + Override next to Payment methods (on the base group, + Customize). The rule moves up to Customized rules.
- Tick the methods the group can use: Pay by invoice ("Place an order and be invoiced later"), Payment on account ("Order on account, e.g. net terms and credit") and Card at checkout ("Pay online by card").
- Click Save.
Groups inherit the base customer group's methods until you override them. Click Reset on the rule to hand it back. See Customer groups.
Set up net terms and credit limits
Net terms (such as Net 30) are how many days a customer has to pay an order they didn't pay for at checkout, so they apply to both Pay on Account and Pay by Invoice. A credit limit applies to Pay on Account only. Both are on every plan. You set them on each customer in a metafield (an extra field on the customer record in your store admin). Customers see them in the Financials section of My Account. See Credit limits and net terms.
Rename payment methods
Change the names customers see at Storefront,Options,Translation overrides (opens in your SparkLayer Dashboard in a new tab), without code: add an override for the key and enter the new name. See Change checkout text.
| Default name | Translation key |
|---|---|
| Pay by Invoice | cart.checkout.payment-method.full.paymentByInvoice |
| Pay on Account | cart.checkout.payment-method.full.paymentOnAccount |
| Pay Online by Card | cart.checkout.payment-method.full.upfrontPayment |
Core Script code for your developer
A developer can set the same names in your Core Script:
translations: {
en: {
"cart.checkout.payment-method.full.paymentByInvoice": "Pay by Invoice",
"cart.checkout.payment-method.full.paymentOnAccount": "Pay on Account",
"cart.checkout.payment-method.full.upfrontPayment": "Pay Online by Card",
}
},<!-- SparkLayer Core Script: in your theme, just before </head>.
Already have window.sparkOptions? Add just the setting to it. -->
<script>
window.sparkOptions = {
translations: {
en: {
"cart.checkout.payment-method.full.paymentByInvoice": "Pay by Invoice",
"cart.checkout.payment-method.full.paymentOnAccount": "Pay on Account",
"cart.checkout.payment-method.full.upfrontPayment": "Pay Online by Card",
}
},
};
</script>To explain a method, such as how Pay by Invoice works, add a message under it. See Add a message for each payment method.
Change the order and default payment method
Customers see payment methods in a set order, and the first is selected by default. To change the order without code:
- Go to Storefront,Options (opens in your SparkLayer Dashboard in a new tab) and open Checkout.
- Under Payment methods, in order, drag the methods into the order you want.
- Click Save and publish.
The order only affects methods the customer's group can use.
Core Script code for your developer
A developer can set paymentMethodsOrder in your Core Script instead, using the Core Script names in Payment method names. Here, Payment on account is first, so it's the default:
paymentMethodsOrder: [
"paymentOnAccount",
"paymentByInvoice",
"upfrontPayment",
],<!-- SparkLayer Core Script: in your theme, just before </head>.
Already have window.sparkOptions? Add just the setting to it. -->
<script>
window.sparkOptions = {
paymentMethodsOrder: [
"paymentOnAccount",
"paymentByInvoice",
"upfrontPayment",
],
};
</script>To make card payment (upfrontPayment) the default, move it to the top:
paymentMethodsOrder: [
"upfrontPayment",
"paymentOnAccount",
"paymentByInvoice",
],<!-- SparkLayer Core Script: in your theme, just before </head>.
Already have window.sparkOptions? Add just the setting to it. -->
<script>
window.sparkOptions = {
paymentMethodsOrder: [
"upfrontPayment",
"paymentOnAccount",
"paymentByInvoice",
],
};
</script>Choose which card payment options customers see (Shopify)
Shopify only
Pay Online by Card takes customers to the Shopify checkout, with every Shopify payment method (opens in a new tab) you've set up, such as credit card, PayPal or cash on delivery.
To hide some of them from B2B customers on Shopify:
- Install a Shopify app that hides payment methods, such as ETP Hide and Sort Payment Methods (opens in a new tab) or Payfy Conditional Payments (opens in a new tab).
- In the app, add a rule for customers with the
b2btag, and choose the methods to hide, such as PayPal and Cash on Delivery.
Only Shopify Plus stores can hide the Credit card method. This is a limit of Shopify's Payment Customization API.
On other platforms, Pay Online by Card shows your standard checkout's payment methods.
Show payment status to customers
Shopify only
Payments visibility lets customers see whether each order is paid, their payment history and what they owe, in My Account. It's for Shopify only.
- Go to Settings,Configurations,Ordering (opens in your SparkLayer Dashboard in a new tab).
- Turn on Payments visibility ("Show the payment status of orders in the My Account area").
- Click Save.
It's the same setting as Show payment status at Storefront,Options,My Account (opens in your SparkLayer Dashboard in a new tab): turning on either turns on both. Once it's on:
- The My Account order list has a Payment column, showing Paid or Unpaid. It updates when you change the payment status in Shopify.
- The order's timeline logs each payment, with the amount and date, such as "US$666.90 paid against order".
- With Xero, payments against Xero invoices appear as transactions on the order.
Show a real-time account balance
Shopify only
With Payments visibility on, SparkLayer keeps a real-time account balance for each customer. The Financials section of My Account shows their Payment terms, Unpaid Balance and Credit Limit.
SparkLayer starts from an opening balance (what the customer owed on a given date), then tracks every new order and payment. This works with Shopify, Xero and QuickBooks Online, so customers can see which orders are paid or outstanding, and your team gets fewer balance queries.
Set an opening balance
Shopify only
The opening balance goes in the same customer metafield as the credit limit: Credit Limit and Account Balance (namespace sparklayer, key payment_on_account). To set up the metafield, see Credit limits and net terms.
- In the form below, enter the Balance the customer owes and the Balance date it applies from, plus their Credit limit and Net terms if they have them: the value replaces everything in the field. It writes the date in the format SparkLayer needs.
- In the Shopify admin, go to Customers (opens in your Shopify admin in a new tab) and open the customer.
- Paste the value into the Credit Limit and Account Balance metafield, replacing what's there, and save the customer.
sparklayer.payment_on_account| Property | What it is | Example |
|---|---|---|
balance | The amount owed on a specific date. | 150.00 |
balance_date | The date and time of the balance, in RFC 3339 format. | 2025-01-01T18:00:00+08:00 |
Whenever you update the metafield, SparkLayer recalculates the balance from the new values.
Payment method names
Each method has a different label in each part of SparkLayer: the checkout, a customer group's Payment methods rule at Customers,Groups (opens in your SparkLayer Dashboard in a new tab), and Payment methods, in order at Storefront,Options,Checkout (opens in your SparkLayer Dashboard in a new tab).
| Buyers see at checkout | Customer group rule | Storefront options | Core Script name |
|---|---|---|---|
| Pay on Account | Payment on account | Payment on account | paymentOnAccount |
| Pay by Invoice | Pay by invoice | Payment by invoice | paymentByInvoice |
| Pay Online by Card | Card at checkout | Upfront payment | upfrontPayment |
| Request for Quote (retired) | – | Quote | quote |
FAQs
Their customer group only allows Card at checkout. Customers see the payment methods their group allows, so a card-only group shows credit card (upfront) payment and nothing else. Tick Pay by invoice or Payment on account on the group: see Choose which payment methods a customer group can use.
On the customer group, untick Card at checkout and tick Pay by invoice, then click Save. Customers in the group then check out without paying upfront, and on Shopify the order arrives as a draft order by default, for you to invoice. See Choose which payment methods a customer group can use.
Whenever a new order is placed, or a payment syncs from your store or accounting tool (Xero or QuickBooks Online).
Yes. Update the Credit Limit and Account Balance metafield for several customers with Shopify's bulk editor or a CSV import tool.
The metafield keeps the values you set. The real-time balance is calculated and held in SparkLayer, not written back to the metafield.
No. Quotes use the Quoting Engine, and Request for Quote can't be selected in a customer group.
Yes. A message can show under each payment method on Review & Pay, the same for every customer. See Add a message for each payment method.
No. The first method in Payment methods, in order is selected by default, and the order is the same for every customer group. See Change the order and default payment method.
Zelle works as a Shopify manual payment method. ACH bank transfer shows at Shopify's own payment step, and full ACH support is in development. See Which payment methods work with the SparkLayer checkout?
Last updated