challenge
Square needed a team of top-tier Salesforce professionals that could manage and maintain a high-end integration procedure that would allow Salesforce CPQ and Billing to authorize and capture payments via Square on both a one-time and stored card basis.
Plus, this integration should have utilized both the Square Payment Form and Square Invoices to seamlessly pull in order and invoice data into Square.
In a nutshell, we had to connect Square capabilities with Salesforce CPQ and Billing products within a single application and offer it as a Payment Gateway for merchants to pay their invoices.
Our main challenge was velocity. We had to ramp up our team extra fast, orchestrating a group of Salesforce professionals, who wouldn’t have troubles while fusing their forces, and working seamlessly as a team.
Solution
Integration
Payments sync
Grinteq allowed payments to be made "By Invoice," by rendering the Square Payment Form (Web Payments SDK) as a payment method in the Salesforce products. Specifically, we established the Square Payment Form as a Payment Gateway in Salesforce Billing. On top of this, we ensured support for multiple currencies including USD, CAD, JPY, GBP, and AUD, and implemented the Web Payments SDK to capture credit card details.
Invoice sync
Our development crew managed to support the Square Invoice API for generating Invoice Payments by providing admin functionality within Salesforce CPQ to send invoices through a custom button that triggers the Invoice API call. To generate Square API requests, we utilized Salesforce data from Salesforce Accounts, Invoices, and Orders objects.
Orders data sync
We enabled the procession of Square payments by leveraging the Square V2 Payments API. The team configured the Square system using the Orders API, extracting Salesforce order data from the Salesforce CPQ order object, and getting Salesforce invoice details from the Salesforce invoice object.
Customer data sync
The Grinteq developers implemented data pulling to update the payment status when a customer pays the invoice. As part of this process, we created a mechanism to search for or create a customer in the Square system, pulling customer information from the Salesforce Account.
Reporting and Dashboards
Also, Grinteq built dashboards - to display successful and failed payments - where information about the payment status and its associated schedule are presented. If a payment fails, a user can retry or choose a different payment option. These features aim to provide a convenient and efficient payment experience for both users and customers, while also offering reporting and analytics capabilities to track payment statuses.
OAuth configuration
The Grinteq team implemented a solution that allows merchants to configure application credentials within Salesforce for the Self-Hosted OAuth flow. This ensures that API access tokens are securely encrypted when stored and are automatically refreshed on a weekly basis.
Location configuration
Our development crew managed to enable Square online merchants to configure default locations for payments and invoices.
POS & Terminals
Enabling Square terminal options via SFDC Opportunity
Grinteq developed a feature that allows users to create payments on a Salesforce Opportunity using Square Terminal, Square Invoices, Square Virtual Terminal, or another payment method, providing the flexibility to initiate full or partial payments based on a selected quote or a custom amount, and ensuring that a successful payment in Square generates a corresponding payment custom record reflecting the payment status.
Payment Schedule via Card on File
The team established the functionality that allows users to create a new payment schedule tied to an account and a SFDC Opportunity. The payment schedule allows for recurring billing of customers based on a card on file.
Terminal Pairing Dashboard
Additionally, Grinteq’s custom development allowed Square’s users to have the ability to pair and manage terminal devices used for initiating terminal payments.
Experience Cloud
Experience Cloud
Grinteq developed a feature set to allow customers manage their payment methods, including adding or removing saved methods. Customers can also set up a payment method for auto pay. The payment center allows customers to view their past payments on their account.
Payment Methods Component
The team leveraged a so-called Payment Methods Component. The component’s functionality allows customers to save a card or bank account on file, specify a default payment method, remove existing payment methods, and update their default payment method in Experience Cloud without having to actively pay for an invoice.
Invoice Dashboard
We also developed an Invoice Dashboard in the Salesforce Experience Cloud, enabling customers to conveniently view their previously paid invoices.
Home and Site page mode
Plus, we built a Lightning component that enables the Square Payment Center to be seamlessly embedded on the Experience Cloud home page or accounts page, providing users with a convenient and integrated payment experience.
Impact
The integration of Salesforce CPQ & Billing with Square Payment Form and Square Invoices has significantly streamlined online merchants' payment processing and invoice administration processes.
Due to Grinteq's contribution, there is an increase in the variety of invoice types and acceptable methods of payment. The integration has made it simpler for online shops to accept recurring and one-time card payments.
Today, Square makes it simple for online retailers using Salesforce to sync their order and invoice data, streamlining the process. Thus, companies that use Salesforce as their billing platform find that using Square as a Payment Gateway expands their potential customer base.
See our another project for Square payments.