Print page

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’ widget at the top left of the box under “Message to show at the top of the shop page” or by placing the magic word $gateway in the message box.

Payment Gateway button location

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 with this code:

$gateway{nopaypal}

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 adding the following ‘magic word’:

$gateway{paypal email@example.com}

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

Add Stripe as payment gateway

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

Stripe currently supports payments in more than 100 currencies and businesses registered in around two dozen countries can charge customers using Stripe. 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 by clicking on ‘Payment Gateways’ under “Message to show at the top of the shop page” or by adding the following text manually:
    $gateway{stripe pk_live_12example34 rk_live_12example34
    pk_test_12example34 rk_test_12example34 intents}

    Remember to replace the example API keys with your API keys.

Stripe API Keys

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’.

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 options is less secure than using a “Restricted” key, as that key gives full access to your Stripe account.

Add Mollie as payment gateway

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. If you have a Mollie account you can enable the gateway using the ‘Payment Gateways’ widget at the top left of the box under “Message to show at the top of the shop page” or by using the magic word in this example (replace the keys in the example with the API keys you can find inside your Mollie account on the “Website profiles” page):

$gateway {mollie test_abc123xyz live_abc123xyz}

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.

Add Square as a payment gateway

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.

The Square payment gateway is currently in Beta and still being tested. If you are interested in using Square and/or helping us test the gateway, then please contact us at support@supersaas.com.

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 you will need 4 keys: an “Application ID” and “Personal Access Token” for live payments, and an “Application ID” and “Personal Access Token” for test/sandbox payments. You can find these keys as follows:

  • Login to your Square dashboard
  • Go to “Apps” then “My Apps”
  • Click “Go to Developer Dashboard”
  • Click “New Application”, and give it a recognizable name. (e.g. “SuperSaaS”)
  • Click “Create application”. It will now show you the two sandbox keys.
  • To find the next two production keys you need to flip the switch at the bottom left of the page to “Production Settings”.

Add the keys to SuperSaaS

Add these keys to your SuperSaaS account by clicking ‘Payment Gateways’ under “Message to show at the top of the shop page”. Alternatively you can enter the following text into the field manually (remember to replace the example keys with your own keys):

$gateway{square sq123-12-application_id-45 EAAAE123-personal_access_token-456
sandbox-sq123-12-sandbox_app_id-45 EAAAE123-sandbox_personal_access_token-456}

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

There is also a Danish version of this guide

ePay is a Danish payment provider part of the Bambora network, which supports a variety of payment methods, including Dankort. If you have an ePay account you can enable the ePay gateway using the following syntax:

$gateway{epay 123456}

Replace “123456” with the merchant ID you obtained from ePay. 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 sub-domains 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 sub-domain 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. To switch on the MD5 hash check use the following syntax:

$gateway{epay 123456 secret}

Replace “secret” with a word of your own choosing and enter the exact same word in your ePay administration screen here: “Settings” → “Payment system” → “Settings for the payment system” → “MD5 key”.

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. You can instruct the system to use a different window with this syntax: $gateway{epay 123456 secret 2}, where 2 is the window ID.

If you switch on “instant capture” the payment will automatically be captured right after the authorization step. You can enable instant capture by adding “1” as a fourth parameter, like this:

$gateway{epay 123456 secret 1 1}

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 is a payment provider for Poland and the Czech Republic. If you have a PayU account you can enable the gateway using the following syntax:

$gateway {payu 123456 second_key EUR}

You would need to replace the example number sequence “123456” with your actual POS ID which was provided to you by PayU when you signed up. You would also need to replace the example’s “second_key” with the actual second key from your PayU account. Finally, you need to enter the currency that you are using in PayU. Ensure that the currency configured on the Payment Setup screen in SuperSaaS is the same as the one in your PayU account.