UCRM - Setting Up Online Payment Gateways


Overview


This guide is an introduction on online payments, explaining how to set up UCRM to enable clients to pay their invoices online. There are two types of payments: one-time payments which are used by clients to pay for a single invoice; and recurring payments which clients use to pay for a series of recurring invoices. This guide covers both types as well as current restrictions in each system.


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

These types of online-payments are currently available in UCRM:

  • One-time payments which are used to pay for a single invoice.
  • Subscriptions which are used to charge your clients with a fixed amount on a specified day and frequency. Then this amount is associated to any existing unpaid invoice or it is turned into client credit.
  • Linked Subscriptions which are similar to the regular subscriptions but the payment amount is not fixed here, it’s linked to the client’s service. The current price of the service is paid by this linked subscription. This feature is currently enabled for Stripe.
  • ACH Payments - Automated Clearing House (ACH) payments allow you to receive debit payments directly from a customer's bank account instead of using credit or debit cards. This feature is currently enabled for Stripe.

With UCRM WISPs can choose which types of online payments they 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 the 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 and Recurring Payments (AutoPay)


Back to Top

One-Time Payments

To enable one-time payments follow these steps:

  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)

To enable recurring payments follow these steps:

  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.

After the subscriptions are configured, you need to enable them in UCRM in System → Billing → Invoicing.

NOTES:
 
  1. The same currency must be used in UCRM and in your PayPal account. Otherwise, the payment could be rejected by PayPal.
  2. Make sure you have activated recurring billing in your PayPal account.

Setting Up Stripe


Back to Top

One-Time payments

To enable one-time payments, 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. Using the left-hand side menu, navigate to the API section and see the keys there.
  3. Make sure LIVE credentials are being used 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 explained above. After those steps are completed, 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 the 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.

ACH Payments

To start using Stripe ACH payments, it must be enabled for the Stripe account, as well as on UCRM under the organization settings (System > Organizations).

You can read more about accepting ACH payments in Stripe documentation.

To allow a client to pay via ACH, their bank account must be connected to Stripe and verified with the following process:

  1. Client must have valid US bank account filled in his profile. You can add the bank account on the client's detail page or the client can fill it on his own in Client Zone.
  2. To connect the bank account with Stripe, click the "Connect" link next to the bank account in the Stripe ACH box on client's detail page.
  3. Two micro-deposits will be made to verify this account. The transfers can take 3-4 business days to appear on the account. The statement description for these deposits will be AMNTS: and then the values of the two micro-deposits that were sent.
  4. Once they've been received by your client, the amounts for each deposit will need to be provided to the verification form.
  5. You can access the verification form by clicking the "Verify" link next to the connected bank account. Fill in the deposit amounts to verify the bank account.
  6. After the bank account is verified, it can be used to make payments in UCRM.
  7. This process can be done either by you or by your client in the Client Zone.

In addition to verifying the bank account information, you must also get the client's authorization to deduct funds from their accounts. See Stripe help for more information.


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.

Server ports

Please note, that Authorize.Net requires you use standard server ports. That means UCRM must be running on port 80 or 443, otherwise Automated Recurring Billing will not work.


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. If there is more than one unpaid invoice, the payment is matched to all of them up to the payment amount, starting from the oldest invoice to the newest one. 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

The recurring payment is only cancelled automatically if the client is archived / deleted or if subscriptions are turned off in System Settings by the administrator. An 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

UCRM - How to Setup Network, Client Services and Suspension

UCRM - Network and Suspension Feature


We're sorry to hear that!