SuiteCRM - Payment Gateway integration

Hello,
is there a plugin available to integrate SuiteCRM with PayPal, Stripe, Square or any other major payment gateway in order for embed “Pay Now” button on issued invoices?
Thanks!
Roy

Hi, welcome to the Community! :tada:

Have you searched the SuiteCRM Store?

I don’t think you will find any free options, though…

What do you mean by issued invoices? Are these PDFs attached to emails? Or just emails? Or…?

Hi pgr,
thanks for replying to my post.
I did look through the store but did not find any solution.
Basically, when I issue (generate) the invoice in SuiteCRM, I would like my customer to be able to pay it online by clicking at “Pay Now” button embedded in the invoice automatically.

Without such plugin, I have to basically double my work. I first have to issue the invoice in SuiteCRM, then make the same in PayPal or Stripe, so that I can have a link to a payment gateway.
Any idea would be appreciated.
Regards,
Roy

Pay Now button would be inside the PDF generated for Invoice?
are the sums for invoice fixed (like 3 subscriptions option) or they are variable depending on the Product Line items they have purchased?

I don’t know exactly what is required to make such a button. Is it just a static bit of HTML? Or is it dynamic, like you have to reach out to a server somewhere to get codes?

If it’s static, you might be able to achieve what you want with the standard PDF based SuiteCRM templates.

If it needs more fancy dynamic work you’ll have to get some add-on, like my PowerReplacer.

Anyway, please provide some more details about your process, down to the level of “which module”, “which view”, “which menu option or button you press”, in order to

  • generate the invoice
  • send it to the customer

because in SuiteCRM not all screens produce emails and PDFs in the same way, so to be accurate in my replies I need to know exactly how you plan to do it. Thanks

FYI, I found an online service providing various extensions for SuiteCRM - one of which being the payment processing plugin.
Sadly the price tag does not justify the needs, In other words, it is way too expensive…

Nonetheless, if you come across a payment processing solution for SuiteCRM please drop me a line.
Regards,
Roy

If you can provide some of the information I asked maybe some easier solution can be obtained. If you can’t afford a full integration (which is understandable) sometimes a couple of simpler customizations or a smaller add-on will do the trick.

Since the reason to create an invoice is to get paid, it is a good idea to have a payment gateway (like PayPal for example) to be integrated with SuiteCRM. What it means, once the invoice is made and emailed, your buyer/customer can pay the invoice online because the invoice would have embedded “Pay Now” button in it. Once the payment is made, the SuiteCRM “gets” an info from the Gateway (PayPal) and marks the invoice as “paid”.
Without the integration, after I email my invoice out, I have to double my work in PayPal by creating another invoice with the same amount as my SuiteCRM one and email it to the buyer to get paid.
Having the Payment gateway integrated with SuiteCRM would simplify the entire process.
I suppose, another walk around would be to embed a PayPal invoice link into my SuiteCRM invoice. One way or another without the Payment integration the whole thing defines the purpose of CRM.
I use another CRM “Jetpack CRM” that has the online payment option integrated.
I much prefer to use SuiteCRM thou, but the lack of payment gateway integration is an obstacle.

Once again, thank you for looking at this issue.

I just checked and this seems to be what you need:

https://developer.paypal.com/api/nvp-soap/paypal-payments-standard/integration-guide/buy-now-step-1/

This takes you to a site where you can enter button details:

https://www.paypal.com/buttons

… and it produces a bit of code for you to embed:

<div id="smart-button-container">
      <div style="text-align: center;">
        <div id="paypal-button-container"></div>
      </div>
    </div>
  <script src="https://www.paypal.com/sdk/js?client-id=sb&enable-funding=venmo&currency=USD" data-sdk-integration-source="button-factory"></script>
  <script>
    function initPayPalButton() {
      paypal.Buttons({
        style: {
          shape: 'rect',
          color: 'gold',
          layout: 'vertical',
          label: 'paypal',
          
        },

        createOrder: function(data, actions) {
          return actions.order.create({
            purchase_units: [
                  {"description":"My Item",
                   "amount":{"currency_code":"USD",
                                           "value":26.25,
                                           "breakdown":{
                                                   "item_total":{
                                                           "currency_code":"USD",
                                                           "value":25},
                                           "shipping":{
                                                          "currency_code":"USD",
                                                          "value":0},
                                           "tax_total":{
                                                          "currency_code":"USD",
                                                          "value":1.25}}
                                  }}]
          });
        },

        onApprove: function(data, actions) {
          return actions.order.capture().then(function(orderData) {
            
            // Full available details
            console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));

            // Show a success message within this page, e.g.
            const element = document.getElementById('paypal-button-container');
            element.innerHTML = '';
            element.innerHTML = '<h3>Thank you for your payment!</h3>';

            // Or go to another URL:  actions.redirect('thank_you.html');
            
          });
        },

        onError: function(err) {
          console.log(err);
        }
      }).render('#paypal-button-container');
    }
    initPayPalButton();
  </script>

With my add-on PowerReplacer you could definitely put that bit of HTML into an email or a PDF, and it could adapt to the actual Quote you’re working on, grab the appropriate values, run logic to decide on the tax and shipping, etc. This would all be in a “low-code” sort of way, not with buttons and drag-and-drop features.

Note that not all programs on the client-side will happily execute Javascript for you. So you can send the button but the email client might refuse to work; or a PDF and the pdf reader will no trigger the button, or maybe it will but with warnings. So maybe a better approach (but with some extra custom coding there) would be to just have a link to bring your customer into a browser and visit a landing page in your CRM. And you would have the Paypal button there.

You are absolutely correct!
However, this requires me to take action outside of SuiteCRM - which at the end of the day is not such a big deal.
What I was looking for was a plugin that would do this automatically without having to leave SuiteCRM environment.
Nonetheless, it is not a big deal, especially if the solution to have this integrated with SuiteCRM would cost an “arm and a leg”.

Thank you for your reply.
Best regards,
Roy!