Unveiling Cross-subsidiary Payments - NetSuite Payment Workflows
Abhijeet Khanna, Paystand's Product and Engineering Lead, writes about the Product department's latest and most complex feature release.
"B2B payments aren’t payments; they are workflows," says Matt Brown in his Notes, marking a crucial insight into the intricacies of the industry.
As I approached my two-year mark in B2B payments, the note resonated deeply with me because rather than focusing on “payment” issues on a daily basis, I found myself dedicating resources to understanding the customers' workflows and industries to create products that support workflows across industries.
Matt’s Notes raise an important point, “workflows and data that are the precursor to the payment being made” are harder problems to solve in B2B payments:
-
Workflows and data that result from a successful payment are equally important and hard to solve.
Example of Advanced Payments: to support payments (advance payments) on Quotes and Estimates (Q&E) in NetSuite, it is crucial to support the conversion of Q&E to Sales Order after successfully accepting the payment but before posting the payment into NetSuite.
Example of Custom Fields: custom fields in a payment record should mirror the customer fields that were part of the original invoice to help with downstream reporting and analytics. -
Cross-Subsidiary Payments are HARD: One of the most complicated features I had the opportunity to work on was cross-subsidiary payments for NetSuite customers. More often than not, a payer (buyer) interacts with more than one subsidiary of the seller’s company.
-
Payer’s POV (Bad UX): receiving multiple notifications from what they think of as a single seller (but are different subsidiaries) often results in a sub-optimal payment experience.
Historically, Paystand’s customers could send a click-to-pay link to their payer, allowing the payer to:
- Review all its open invoices
- Select the entire set or a subset of open invoices
- Subsequently, make a single payment to pay the selected invoice(s).
Still, all these invoice(s) must belong to a single subsidiary in Netsuite. This feature has become a standard and a must-have across the B2B payment ecosystem. However, our team was challenged to build a feature where a payer can review their open invoices across multiple subsidiaries and pay them within a single payment experience.
Building this feature meant working through workflows and data, both pre and post-payment, within a subsidiary and across multiple subsidiaries, thereby providing a superior payment experience to the payer.
Going through the competitive landscape, I found that none of the competitors provide this functionality. I wondered why - how hard can it be to extend open invoice functionality across subsidiaries? As it usually is, the problem was more challenging than it appeared at first glance.
We identified and resolved the following key questions:
- Does NetSuite allow you to post a single payment that can be applied to invoices across subsidiaries?
- Should the payer be charged once or multiple times when the payer pays invoices across multiple subsidiaries?
- If the payer’s card is charged multiple times, how do you ensure that a card is not blocked because of excessive use?
- Paystand provides customization at the subsidiary level—each subsidiary has its own branding and fee settings. How does one obey these while having a single payment experience?
- How should the payments, refunds, and disputes be accounted for across subsidiaries? Which subsidiary(ies) should see the impact?
- How can one avoid duplicate payments in case of processing delays without closing an invoice and always keep NetSuite records up to date?
Working through each of the above problems resulted in an out-of-the-box solution! Paystand is the first company to provide an elegant solution to a complicated use case - providing a superior experience to payers whereby a single payment experience can be leveraged to pay for invoices from multiple subsidiaries while ensuring sellers have their AR on auto-pilot.