UCRM - Setting Up Online Payment Gateways

Overview


This guide introduces online payments. You will learn how to setup UCRM to enable clients to pay online for their invoices.

There are two types of payments: one time payments which are used by your clients to pay for a single invoice; and recurring payments which clients use to pay for a series of recurring invoices.

You will learn what must be done by a WISP to set up both types of payments, how your clients can subscribe for the recurring payment, as well as current restrictions.

Table of Contents


  1. General Information
  2. One-Time Payments and Recurring Payments (AutoPay)
  3. Setting Up PayPal
  4. Setting Up Stripe
  5. Setting Up Authorize.Net
  6. Client Side
  7. Admin Side
  8. Automatic Cancellation
  9. Related Articles

General Information


Back to Top

As a WISP you can choose which types of online payments you want to enable. The one-time payments are easier to set up, the recurring payments require a few more settings. UCRM never stores clients' credit card numbers or any other sensitive data. However, both types of payments require HTTPS enabled on your UCRM domain with a valid SSL certificate. See more at https://stripe.com/docs/security/ssl

Note: It is possible to enable PayPal and Authorize.Net one time payments without using https. However, it is highly recommended to use https for greater security. 

One-Time Payments


Back to Top

In general, to enable one-time payments a WISP must:

  1. Ensure the UCRM domain enables HTTPS with a valid SSL certificate. See more at: https://stripe.com/docs/security.
  2. Fill in the credentials for selected providers.
  3. Set up selected payment provider using the guide below.

Recurring Payments (AutoPay)

In general, to enable recurring payments a WISP must:

  1. Ensure the HTTPS is enabled with a valid SSL certificate, as stated above.
  2. Enable the Recurring Payments feature in System → Billing → Invoicing.
  3. Set up selected payment provider using the guide below.

Setting up PayPal


Back to Top

One-Time Payments

To enable one-time payments, you must provide a PayPal Client ID and Secret in the organization settings (System → Organizations).

To get these you must create a PayPal application at https://developer.paypal.com/:

  1. Log in with your PayPal account.
  2. Go to Dashboard → My Apps & Credentials.
  3. Create an app under "REST API apps".
  4. You will receive a Client ID and Secret.
  5. Make sure you use LIVE credentials on production.

Recurring Payments (AutoPay)

To enable recurring payments, you must provide a PayPal Client ID and Secret in the organization settings (System → Organizations).

The process is the same as with one-time payments (see above).

After this is set up, PayPal's IPN must be configured:

  1. Go to your PayPal profile and enable IPN by providing the IPN listener URL. See: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/#id089EG030E5Z.
  2. IPN listener URL can be found in the UCRM organization details, go to System → Organizations → Your organization details.
  3. Note that the IPN listener URL must be publicly accessible.

Setting up Stripe


Back to Top

One-Time payments

To enable one-time payments, you must provide the Stripe Publishable and Secret keys in the organization settings (System → Organizations).

To get these, follow instructions below:

  1. Log in to your Stripe account.
  2. In the left-hand side menu, go to the API section and you will see your keys there.
  3. Make sure, you use LIVE credentials on production.

Recurring Payments (AutoPay)

To enable recurring payments, you must provide the Stripe Publishable and Secret keys in the organization settings (System → Organizations).

The process is the same as with one-time payments (see above).

After this is set up, Stripe's Webhook service must be configured:

  1. In the left side menu, go to Webhooks sections.
  2. Click on the Settings link on top of the page (next to the Webhooks heading).
  3. Click the Add endpoint... button.
  4. Fill in your Stripe webhook URL (the Webhook URL can be found in the UCRM organization details, go to System → Organizations → Your organization details).
  5. Make sure LIVE mode on production is selected.
  6. Click Create endpoint.

Note that the Webhook URL must be publicly accessible.

Setting up Authorize.Net


Back to Top

One-Time payments

To enable one-time payments, you must provide the Authorize.Net API Login ID, Transaction Key and MD5 hash in the organization settings (System → Organizations).

To get these follow the instructions below:

  1. Log in to your Authorize.Net account.
  2. On the top menu, go to Account.
  3. Go to API Credentials & Keys under the General Security Settings.
  4. You will find your API Login ID there and you can create the Transaction Key after answering your secret question.
  5. Go to MD5 Hash under the General Security Settings.
  6. You can set up your hash there. Note that the hash can be a maximum of 20 characters long.
  7. One-Time payments are implemented via DPM (Direct Post Method), HTTPS is not required as the form is POSTed directly to Authorize.Net servers. However, it is highly recommended to use it for added security.

Recurring Payments (AutoPay)

To enable recurring payments, you must provide the Authorize.Net API Login ID, Transaction Key and MD5 hash in the organization settings (System → Organizations).

The process is the same as with one-time payments (see above).

After this is set up, Customer Information Manager and Transaction Details API must be enabled.

Enabling the Customer Information Manager

  1. Log in to your Authorize.Net account.
  2. In the top menu, go to Tools.
  3. Go to Customer Information Manager in the left menu.
  4. Click the Sign up for Customer Information Manager (CIM) Now link at the bottom of the page.
  5. Agree with the Customer Information Manager TOS.

Enabling the Transaction Details API

  1. Log in to your Authorize.Net account.
  2. In the top menu, go to Account.
  3. Go to Transaction Details API under the General Security Settings.
  4. Answer your security question and click the Enable Transaction Details API button.

Card Code Verification

When CCV is used, Authorize.Net must be configured properly.

Client Side


Back to Top

General

  • The client can set up recurring payments by subscribing to an invoice in the client zone (as long as the WISP enables this feature in System > Billing).
  • The client can also create the subscription at any time with any amount not related to any invoice or service.
  • After clicking on the "subscribe" button, a payment plan is created and client is redirected to online payment gateway where they can choose payment provider (Stripe or PayPal).
  • Payment plan contains amount to be paid, period, and linked services.
  • Then, a new payment plan is created, but inactive until Stripe/PayPal confirms.
  • Payment plan can be cancelled by the client at any time in the client zone.
  • When the service price is changed or even deleted, the subscription remains active.
  • The incoming recurring payment is always attached. If there are any invoices present, they will be covered from the oldest to newest and any overpayment is added to credit.

Stripe

  • After choosing Stripe as the subscription provider, the client is prompted to enter credit card information.
  • The credit card information is sent to the Stripe server. UCRM app does not store any sensitive data. Stripe only sends an identification token to UCRM.
  • Using this token, the client is subscribed to our payment plan and the first payment is processed immediately.
  • Future payments are processed automatically based on the payment plan period. (i.e. next payment will be processed on today + period length).

PayPal

  • After choosing PayPal as the subscription provider, the PayPal payment plan is created via API and the client is redirected to PayPal
  • In PayPal, the client must provide the payment plan agreement.
  • If done correctly, the first payment is processed automatically (on PayPal this is called setup fee) and future payments will be processed automatically.
  • Note that the maximum period for recurring payments is 12 months.

Admin Side


Back to Top

Payment Matching

When the payment processor confirms the payment, UCRM will try to match the payment with an invoice. These restrictions and checks are applied:

  • Recurring payment can be created by both admin (in administration zone and also in the client-zone) and by the client in client zone.
  • The incoming recurring payment is always attached to the proper client in UCRM. If there are any client’s invoices present, they will be covered from the oldest to newest and any overpayment is added to client’s credit.

Automatic Cancellation


Back to Top

Recurring payment plans will be automatically cancelled in the following cases:

  • The recurring payment is only ever cancelled automatically if the client is archived / deleted or subscriptions are turned off in system settings by the admin

Email notification is sent to the client if their subscription is cancelled. Text of the notification can be changed in System > Notifications.

Related Articles


Back to Top

Powered by Zendesk