Link copied to clipboard

PortaBilling allows payments to be processed online, without the intervention of an operator, by charging the customer’s credit card or debiting his bank account. Payments may be initiated by:

  • Your subscribers from the web interface (called “online payments” because payment is triggered by the customer, who is using the web interface at the moment the payment is made).
  • The PortaBilling system itself. These payments are called auto-payments, because they usually happen automatically.

Payment flow

Link copied to clipboard

The following picture illustrates the individual components of the online payment system: Payment flow

Merchant account

Link copied to clipboard

A merchant account must be opened at a bank. Its purpose is similar to that of a normal checking account. It stores funds you have received from credit card payments.

Online payment processor

Link copied to clipboard

A merchant account is usually enough to start processing credit card payments via charge slips. However, if you wish to initiate transactions from your own server via the Internet, this service is provided by online payment processors such as Authorize.Net. You establish an account with an online payment processor, providing it with your merchant account information, and in return you receive credentials (username, password, etc.) for using its API. So now your application can connect to the API’s server and, upon providing valid authentication information, initiate transactions. You can find the list of supported online payment processors in APPENDIX F. Supported Online Payment processors.

PortaBilling payment support

Link copied to clipboard

PortaBilling stores required information, such as customer name and address, credit card number, and so on, in the database. Multiple merchant accounts are supported (for instance, your merchant account A accepts payments in USD, while account B takes payments in euros). You may define a “minimum allowed payment” and a list of supported card types (VISA, MC, etc.) for every merchant account. When payment is initiated (either by the customer from web self-care, or automatically) the system connects to the online payment processor and performs the transaction. The online payment processor verifies the credit card information (and performs optional steps such as address verification or CVV control). Upon receiving confirmation that the transaction was successful, PortaBilling writes transaction information to the PortaBilling database and modifies the balance for the account/customer.

Supported payment methods

Link copied to clipboard

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 crypto currency payments for services provided. Refer to the Bitcoin Support in PortaBilling section for more details.

Recurring payments without storing credit card info

Link copied to clipboard

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

Link copied to clipboard

There are online payment systems that require user redirection to their website for payment processing, e.g., PayPal.

How it works

Link copied to clipboard

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 redirected back to their self-care interface where they can check their balance.

Recurring (automatic) payments are not supported for the payment systems that require user redirection to their website.


Link copied to clipboard

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.


Link copied to clipboard

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.


Link copied to clipboard

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:
Link copied to clipboard
  • 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.


Link copied to clipboard

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:

  1. A customer views the PayNearMe payment slip on his self-care interface and prints it.
  2. The payment slip contains the barcode to be scanned at a 7-Eleven or ACE Cash Express location.
  3. 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.
  4. 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

Link copied to clipboard

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

Link copied to clipboard

Service providers and their resellers can accept Bitcoin crypto currency 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.

Enable Accept Bitcoin payments option

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.

Pay with bitcoin

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.

Mobile payment remittance

Link copied to clipboard

This service allows your customers to transfer funds from their accounts in PortaSwitch to a mobile phone’s balance in another country. This service is very popular in expat communities, since people who regularly use a VoIP service to call their families back home can also top up the balance on their relative’s cell phone.

Mobile payment remittance

What is a remittance processor?

Link copied to clipboard

A remittance processor (such as TransferTo) is a transaction processing system that delivers international top-up services. You create an account with an online remittance processor, provide it with your company information and establish the method of transferring funds from you to it on a periodic basis. In return, you receive credentials (username, password, etc.) for initiating transactions via the remittance API. Now your application can connect to the API server and, upon providing valid authentication information, request that funds be transferred to a customer of a mobile carrier. The system functions in the following way:

  1. Customer A subscribes to VoIP services provided by company X using the PortaSwitch platform. A adds funds to his account in PortaSwitch (cash payment, credit card, voucher, etc.).
  2. A wants to send funds to the mobile phone of his relative, B.
  3. A uses PortaSwitch (via web interface, IVR or SMS) to initiate a mobile remittance transaction. Funds are withdrawn from his account in PortaSwitch and the remittance processor Y is instructed to transfer the funds to B’s mobile phone.
  4. Y contacts the mobile carrier that owns the network that B’s mobile phone is connected to, and instructs that funds be added to B’s account.
  5. Later (on a periodic basis), service provider X transfers funds to the remittance processor to cover the total of all such transactions in the period.