Combining the capabilities of a pioneer in online payment processing with the world's #1 CRM.

Integration into Salesforce’s CPQ & billing products

Integration into Salesforce’s CPQ & billing products

2+M

businesses use Square POS

$53B

quarterly GPV

19%

retail industry share

Business environment

Square (Block) is one of the top 5 largest electronic payment processing companies by market share today. The company offers payment processing, software (e.g. BNPL) development, and hardware (e.g. POS) manufacturing. 

It seemed inevitable that integration with the most popular CRM ecosystem (Salesforce aka SFDC) would eventually be explored. Square was particularly interested in two Salesforce products: CPQ and Billing (now called Revenue Cloud and is also a part of Sales Cloud). 

Salesforce CPQ helps SFDC users configure, price, and quote complex products and services.

Salesforce Billing streamlines business invoicing and payments. It optimizes quote-to-cash workflows, improving operational efficiency.

Grinteq had the privilege of assisting Square with the integration between their features and Salesforce CPQ and Billing solutions. This integration was meant to improve productivity and profitability for Square customers who use Salesforce by streamlining the quote-to-cash process among other things. We had to make some important Square's features available via the Salesforce integration package.

Our global aim was to help customers take advantage of Square and Salesforce's seamless synergistic integration, so that they can reduce errors, streamline workflows, and boost efficiency by leveraging the great capabilities of both platforms.

Project brief

Services

Development
Integration
Support
Maintenance

Tech

Salesforce
Experience Cloud
Salesforce Billing
Salesforce CPQ
Revenue Cloud
Discuss my project
Integration into Salesforce’s CPQ & billing products

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.

Drop us a line, and we will come up with some well-fit options for your project.

Thank you!

Your message was successfully delivered to our inbox, and we've already started to consider your request carefully.
Get back to you soon!
While you are here, feel free to check top ecommerce insights.
Check our blog
Get in touch with Grinteq, ecommerce development agency
Oops! Something went wrong while submitting the form.