PortaBilling allows payments to be processed online, without the intervention of a service provider, by charging the customer’s credit card or debiting their bank account. Payments may be initiated:
- By your customers from the web interface.
- By PortaBilling automatically (these are called “auto-payments”).
Payment flow
The payment flow is the following:
Let’s say a user logs in to the self-care interface and fills in credit card details to set up auto-payments. Once the payment is initiated (by the user or auto-payment), PortaBilling triggers one of the payment modules in Add-on Mart, e.g., module B.
Upon receiving the payment data, module B transfers it via API to the corresponding online payment processor, e.g., online payment processor B to handle the transaction.
Once the online payment processor B confirms that the transaction is successful, PortaBilling modifies the user’s balance. Later on, all funds accumulated for some period are transferred to the service provider’s bank account.
Legacy plug-ins for payment systems
PortaBilling includes legacy plug-ins for a payment system that were integrated before Add-on Mart was introduced. These are built-in plug-ins such as PayPal, Skrill, AuthorizeNet, etc. (refer to the Supported online payment processors section to see the list of payment processors).
For built-in plug-ins, the payment flow is the following:
PortaBilling stores required information, such as customer name and address, credit card number, and so on, in the database.
When payment is initiated (either by the user from web self-care, or automatically) the system connects to the online payment processor, e.g., payment processor B, and performs the transaction. The online payment processor B verifies the credit card information (and performs optional steps such as address verification or CVV control).
Once the online payment processor B confirms that the transaction is successful, PortaBilling modifies the user’s balance. Then, later on, all funds accumulated for some period are transferred to the service provider’s bank account.
Merchant account
When a service provider wants to use a payment processor (e.g., Stripe), they open a merchant account there.
Online payment processor
After the merchant account is opened, the service provider can start processing credit card payments via POS terminal. However, it is inconvenient for users to come to the service provider’s office to make payments. So, the service providers encourage users to pay online (either from web self-care or automatically).
If the service provider wants to initiate transactions from their own server via the Internet, this service is provided by online payment processors such as Authorize.Net. The service provider opens an account with an online payment processor and in return, they receive credentials (username, password, etc.) for API. The service provider enters these credentials into the payment processor configuration in PortaBilling. Now PortaBillilng can use the API to initiate transactions after providing valid authentication information. To find the list of supported online payment processors refer to the Supported online payment processors section.
Supported payment methods
The choice of available payment methods depends on the online payment processor. In general, however, PortaBilling supports the following payment methods:
- American Express
- E-check (direct debit from bank account)
- Direct Debit
- Discover
- Switch/Maestro
- MasterCard
- VISA.
Service providers and their resellers can also accept Bitcoin cryptocurrency payments for services provided. Refer to the Bitcoin support section for more details.
Recurring payments without storing credit card info
Auto-payment helps improve the payment process for both the end user and the service provider since it is convenient and requires minimum effort on either part. When configured by either an administrator or end user, recurring payments are automatically charged to the user’s credit card and applied to the user’s balance.
However, auto-payment requires that the service provider store the end user’s credit card information. Typically, this means that the service provider must obtain PCI DSS or similar security certification, a time-consuming process that requires periodic updating.
There is an alternative method for dealing with this situation. It takes advantage of the fact that some payment processors can store credit card information securely on their servers. They do this by generating a token after the initial transaction. The token is not the credit card information but an identifier of it, and so the token can be used for subsequent payments.
With token-based payment processing, the payment process proceeds as follows. When a customer makes a first-time online payment via the self-care interface, the credit card information entered is stored for use with future payments and forwarded to the payment processor. If the transaction is successful, the payment processor returns a token, which is stored, and when the next payment needs to be made, it is made automatically based on the stored token rather than the actual credit card data.
PortaBilling supports token-based payment processing for the Secure Hosting and Payments, Authorize.Net, Payment Express and Virtual Card Services payment processors. Future releases will support additional token-based payment processors.
With token-based payment processing Auto-payment can be launched almost immediately since no PCI DSS certification is required.
Payments via payment systems that require user redirection to their website
There are online payment systems that redirect user to their website for payment processing, e.g., PayPal.
How it works
Payments via such payment systems work like this: a customer logs onto the customer self-care interface, chooses a specific payment method, and clicks Pay. The customer is then redirected to the web page of a payment system. Once the customer confirms the payment information on the external web page, they are directed back to their self-care interface where they can check their balance.
PayPal
PayPal is a multinational payment system that provides users with a virtual wallet. Service providers can accept PayPal payments made by their customers via the customer self-care interface. The customer logs onto the customer self-care interface, chooses PayPal as a payment system, and clicks Pay Now. The customer is then redirected to the PayPal website where they log into their PayPal account, choose the funding source, and confirm their payment. PayPal then processes the payment and sends the payment information to PortaBilling, so the customer’s balance is updated. The customer is then redirected to the self-care portal where they can check the payment status and their balance.
Payarena
Payarena is a payment system in Nigeria. Nigerian service providers can allow their customers to make payments using Payarena via the customer self-care interface.
The payment flow is similar to other payment processors that require user redirection to their website.
Remita
Nigerian service providers can also accept payments via Remita – another payment system in Nigeria. Customers can make payments using Remita via the customer self-care interface.
The payment flow is similar to other payment processors that require user redirection to their website.
All sensitive information such as credit card details, CVV code, etc. are handled by Remita. Thus, service providers don’t need Payment Card Industry (PCI) certification. This enables service providers to launch their e-payment processing almost immediately.
Implementation specifics:
- Remita processes payments starting from 50 NGN. Thus, an administrator must define 50 NGN as the minimum payment for the Remita payment system on the Currencies panel.
- To process a payment, a customer e-invoice is generated on the Remita portal. The payer’s phone number and email address are obligatory for the e-invoice. These fields are prepopulated with the data pulled from the end user’s account in PortaBilling. Therefore, the phone number and email address fields on customer/account records must be filled in.
PayNearMe
PayNearMe is a payment system that allows customers to pay for services in cash at any 7-Eleven or ACE Cash Express store across the United States. This option is useful for customers who may not have access to a credit card or bank account.
The payment process is the following:
- A customer views the PayNearMe payment slip on his self-care interface and prints it.
- The payment slip contains the barcode to be scanned at a 7-Eleven or ACE Cash Express location.
- Customer pays cash to the store clerk, who then records the transaction – the payment information is immediately delivered to the service provider via the PayNearMe network.
- PortaBilling records the transaction and updates the customer’s balance so the customer can immediately start using the service.
Receiving payments from external payment gateways
With external payment gateways, service providers can enable their customers to pay for consumed services in cash, e.g., via payment terminals. The transaction data is then sent to PortaBilling via the external payment gateway and PortaBilling updates the customer’s balance.
When a customer makes a payment via a payment terminal, the payment process is the following: the customer chooses a service provider on the screen of a payment terminal, enters the customer ID or account ID, inserts cash into the payment terminal and confirms the payment. The payment is processed, and a request is sent to PortaBilling along with confirmation of successful payment. The request is then processed by PortaBilling and the customer’s balance is updated.
Some minor integration with PortaBilling is required for supporting a specific external payment gateway. This is performed with the help of a plug-in created by PortaOne.
Bitcoin support in PortaBilling
Service providers and their resellers can accept Bitcoin cryptocurrency payments for services provided. To enable Bitcoin payments in PortaBilling an administrator/reseller needs to specify the address of a centralized Bitcoin wallet which will store all received bitcoins and define a minimum payment.
For each end user, the centralized Bitcoin wallet generates a unique address where payments are sent. This address is shown on the self-care interface when the end user chooses the Pay with Bitcoin option. The end user then sends the top-up amount to this address from his/her individual Bitcoin wallet. Once the payment is received, it is transferred to the centralized Bitcoin wallet that is owned by the service provider or reseller and that end user’s balance is topped up.
For user convenience, the Bitcoin address can be scanned with a QR code.
The principal strength of Bitcoin is that it offers anonymity to end users. When a Bitcoin transaction takes place, no personal identifying information such as name and address are required. With Bitcoin support in PortaBilling, service providers and resellers are able to offer their services to their customers who care about privacy and want it preserved.