Documentation

Configuring a Payment Provider

SuperSaaS supports several payment providers to handle payments for appointments and for purchases in the credit shop. By default, PayPal will be used as the payment provider. No specific configuration is needed for PayPal, the system will assume the administrator’s email address to be the PayPal account.

You can add one or more additional payment gateways and optionally remove PayPal as a provider with the instructions below. Configuration can be done using the payment gateways form.

Changing the default PayPal gateway

The PayPal gateway is enabled by default. If you intend to use a different gateway you may want to switch off the default PayPal gateway. This can be accomplished by unchecking the checkbox under PayPal in the payment gateways form.

By default, the system will assume the administrator’s email address is linked to a PayPal account. You can instruct the system to use a different PayPal account by updating the email address shown in the PayPal email field.

You can enable multiple gateways. If there is more than one payment gateway enabled, the customer will be able to choose.

Add Stripe as payment gateway

Stripe

You can find comprehensive information about Stripe on their support page.

Stripe currently supports payments in more than 100 currencies and several payment methods. At this time the interface with Stripe supports credit card, Google Pay, Alipay, Sofort, giropay, Bancontact, EPS, Przelewy24 and iDEAL payment methods. Stripe charges your customers in the currency that you configure on the “Payment Setup” screen.

Are you based in Europe?
Our latest Stripe integration is compliant with the European PSD2 regulation. If you set up Stripe some time ago you can switch to the new version by clicking on the “Payment Gateways” button and then selecting Stripe “v2”.

To start using Stripe with your SuperSaaS account, navigate to the “API keys” section in your Stripe account to find the required keys:

  • Create a new “Restricted key” and give it “write” permission on the “PaymentIntents” resource.
  • Copy the “Publishable key” and this new “Restricted key”.
  • Now toggle the “Viewing Test Data” switch on the left, and repeat those steps to get a “Restricted” and a “Publishable” test key. These test keys are used for simulating payments without an actual money transfer, while the live keys are used for charging your customers.
  • Add these four keys to your SuperSaaS account on the Payment Setup screen by selecting the Stripe checkbox and populating the fields.
Stripe API Keys

Set up a webhook from Stripe to SuperSaaS (optional)

If a user closes their browser window quickly after completing the payment, there is a chance that the browser will not have had a chance to notify our server yet. This is most likely to happen with payment methods that redirect users to the website of their bank, such as the iDEAL payment method. If you use such a payment method it’s recommended to set up a webhook, which will make sure that Stripe’s servers contact us, even if the browser window is closed prematurely.

  • Navigate to the “Webhooks” section on the Stripe dashboard and click ‘Add an endpoint’
  • In the box ‘Endpoint URL’ enter
    https://www.supersaas.com/payment/stripe_webhook
  • Next click the ‘Select events’ button and select the following events: Payment Intent → payment_intent.canceled, payment_intent.payment_failed, payment_intent.succeeded
  • Optionally add the Charge → charge.refunded event so the system can automatically cancel appointments if a payment is refunded
  • Click ‘Add events’ to close the events selector and then click ‘Add endpoint’ to save the webhook details
  • Stripe stores the webhook separately for “live mode” and for “test mode”, you only need to add it for “live mode”

You can try out Stripe by switching to ‘Test Mode’ on the Payment Setup Screen in the Payment Settings section of your SuperSaaS account. Be aware that turning ‘Test Mode’ on will switch all your currently configured payment providers to ‘Test Mode’. After making the first successful test payment, you can consult your Stripe Dashboard in ‘Test Mode’. If the payment is listed in the ‘Payments’ section, you can switch the ‘Test Mode’ off and start using Stripe in ‘Live Mode’.

Credit card and / or other payment methods

By default, only the option for credit card payment is enabled. If you want to use the other payment options via Stripe you can do so by selecting the appropriate checkboxes, and optionally disabling the credit cards. Note that most payment options only work if the newer “Intents” options is selected, it’s not available on the legacy interface. Also make sure to enable the desired payment methods inside your Stripe account.

Legacy version

SuperSaaS has the option to use an older integration with Stripe. This is the v1-legacy version. This version is not compliant with the European PSD2. It is recommended to use the new v2 version if possible. A “Restricted” Stripe key for this legacy version requires the “write” permission on the “Charges” resource, instead of the “PaymentIntents” resource.

Secret key

Instead of a “Restricted” Stripe key you may provide a “Secret” key. However, this option is less secure than using a “Restricted” key, as that key gives full access to your Stripe account.

Add Mollie as payment gateway

Mollie

Logo iDEAL and Mister Cash Mollie is a European-focused payment provider that can be used to collect payments through the European SOFORT payment system, the Dutch iDEAL system and the Belgian Mister Cash system. It also provides an option to use “Klarna Pay Later”, a service that allows your customers can pay afterwards. If you have a Mollie account, you can connect it to your SuperSaaS account with API keys on the Payment Setup screen. You can find these keys in your Mollie account, under “Developers”, “API keys” with the names “Live and Test API keys”.

Mollie does not allow their payment screen to operate inside an iframe. Therefore, when you enter the checkout page our system will detect if the page is inside an iframe. If that happens to be the case then it will escape from the frame to ensure a subsequent click on the Mollie button will work.

Mollie API keys

Add Square as a payment gateway

Square

You can find comprehensive information about Square on their support page.

Square is a payment provider focused on credit card payments in US, Canada, Japan, Australia, and the United Kingdom.

Setup

Square will charge customers in the currency matching your account’s country setting. (e.g. US-based Square accounts can only handle transactions in USD.) The currency setting in your SuperSaaS account needs to match your Square currency. You can find this setting in your SuperSaaS dashboard under “Payment Setup”.

Get API keys

To set up Square in SuperSaaS on the Payment Setup screen you will need 6 keys: an “Application ID”, “Personal Access Token” and “Location ID” for live payments, and an “Application ID”, “Personal Access Token” and “Location ID” for test/sandbox payments. You can find these keys as follows:

  • Login to the Square developer dashboard
  • Click the plus sign to create a new application, and give it a recognizable name. (e.g. “SuperSaaS”)
  • Click “Open” on the application you just created. It will now show you the “Sandbox Application ID” and the “Sandbox Access token”.
  • To find the two production keys you need to flip the switch at the top of the page to “Production Settings”.
  • To find the Location ID click “Locations” in the left-hand menu, this will give you the Location ID for the Sandbox
  • Flip the switch at the top of the page to find the Location ID for the Production environment

Add the keys to SuperSaaS

Add all 6 keys to your SuperSaaS account by selecting Square checkbox and filling in the form.

Test mode

You can try out Square by switching to ‘Test Mode’ on the Payment Setup Screen in the Payment Settings section of your SuperSaaS account. Be aware that turning ‘Test Mode’ on will switch all your currently configured payment providers to ‘Test Mode’. After making the first successful test payment, you can check the dashboard of the Square ‘Default Test Account’ to see if the payment went through. You can find the ‘Default Test Account’ on the Square Developer Dashboard. If the payment is listed in the ‘Transaction’ section, you can switch the ‘Test Mode’ off and start using Square in ‘Production Mode’.

Add ePay as payment gateway

ePay

There is also a Danish version of this guide

Worldline / Bambora, formerly ePay, is a Danish payment provider which supports a variety of payment methods, including Dankort. If you have an ePay account you can enable the ePay gateway by selecting the ePay checkbox and filling in the fields.

Furthermore, you will need to add the domain of your schedule in the ePay administrator setup. If the domain is not registered, you will get an error message. You can find this setting here: “Settings” → “Payment system” → “Domains created for relay-script”.

Unless you are using SuperSaaS with a custom domain, you can simply enter “supersaas.dk” here. If you are using a custom domain you need to enter your custom domain here. Furthermore, if you configure that the user will be redirected after a successful booking, the domain of that page needs to be in ePay’s system too. To add more than one domain you will need to contact ePay support. However, their system does accept requests from subdomains of the registered domain. So, when using a custom domain, a solution is to register the top level of your own domain with ePay and use a subdomain for your SuperSaaS schedule.

Enable the MD5 secret key

It is recommended that you enable an MD5 hash check on your account with a secret key. If there is no secret key present a hacker could spoof payment messages, causing appointments to be listed as paid when in reality no payment took place.

If the secret keys do not match exactly the system will move appointments to the trash, marking them with the message “Fraud check failed”, even if payment was successful.

Credit shop limitations for ePay

If you are using the credit shop, you will need to switch the setting “Unique orderID” to “Not using Unique orderID” on the “Settings for the payment system” page. Otherwise, you would only be able to sell each product once, because the product ID is used as the order ID. When paying for appointments the order ID is a unique reservation number, so it’s fine to enable the setting in that case. Note that the feature to allow the customer to enter their own quantity is not available when using ePay.

Advanced ePay settings

If you use the same ePay account for multiple purposes you might like to create a separate “window”, which can have its own customization such as the logo.

If you switch on “instant capture” the payment will automatically be captured right after the authorization step.

Note that MD5 must be enabled to be able to set the window ID, and the window ID must be present to enable instant capture. If you do not know what a window ID is, you can simply use the number 1.

Add PayU as payment gateway

PayU

PayU is a payment provider for Poland and the Czech Republic. If you have a PayU account you can enable the gateway by selecting PayU checkbox and filling in the details:

You populate your POS ID which was provided to you by PayU when you signed up. Fill-in the second key field with the actual second key from your PayU account. Finally, you need to enter the three letter currency code of the currency that you are using in PayU. Ensure that the currency configured on the Payment Setup screen in SuperSaaS is the same currency as in your PayU account.

Test mode

In order to test the PayU without making actual payments, you can provide an extra POS ID, “second_key” and currency of a PayU sandbox account. (Learn more about PayU sandbox accounts). Then, on the Payment Setup Screen under the Gateway Settings section, turn on ‘Test Mode’.

Be aware that turning on ‘Test Mode’ will switch all your currently configured payment providers to ‘Test Mode’. Once you have made a successful transaction with PayU in test mode, you should be able to find the transaction in your PayU Sandbox account, under “Online Payments” → “Transactions” → “List of transactions”. If everything is working correctly you can turn off the Test mode in SuperSaaS.

Add Paystack as payment gateway

Paystack

Paystack is a payment provider operating in Africa. If you have a Paystack account you can enable the gateway.

You will need to place your Live Secret Key which you can find in the Settings area inside your Paystack dashboard. Ensure that the currency configured on the Payment Setup screen in SuperSaaS is the same currency as in your Paystack account.

Test mode

In order to test the Paystack gateway without making actual payments, you can provide an extra Test Secret Key. (Learn more about Paystack Sandbox and Live keys). Then, on the Payment Setup Screen under the Gateway Settings section, turn on ‘Test Mode’.

Be aware that turning on ‘Test Mode’ will switch all your currently configured payment providers to ‘Test Mode’. Once you have made a successful transaction with Paystack in test mode, you should be able to find the transaction in your Paystack Sandbox account, under “Transactions”. If everything is working correctly you can turn off the Test mode in SuperSaaS.

Add a custom payment gateway

If you need to integrate with another provider not listed here, or if you want to use your own payment backend, then it’s possible to add your own gateway. Note that this requires considerable technical proficiency.

You can find the details in the developer documentation about the custom payment gateway.