Stripe is one of the most widely used payment processing systems in the world and supports over 135 currencies. It provides a simple and transparent fee structure and supports payments using both credit card information and tokens.
Stripe payment system is different from other payment processors available in PortaBilling as it is integrated with the help of Add-on Mart. This means that PortaBilling doesn’t send the requests directly to Stripe. PortaBilling sends the request to Add-on Mart cloud infrastructure (AMCI), and AMCI “talks” to Stripe via API.
Pre-requisites for using Stripe as a payment system in PortaBilling:
- Active Add-on Mart subscription
- Stripe Add-on Mart integration activated by PortaOne engineers
- Existing active Stripe Merchant account (corresponding API key)
Configure Stripe as your payment processor
- On the navigation menu, select Financial, then select E-payments, and open the Payment systems panel.
- On the Create payment system panel, fill in the following information:
- Name – type in an arbitrary name you assign to the payment system.
- Payment processor – select Stripe.
- Login – type in any info as it is ignored by Add-on Mart (however, this field is obligatory and the input must be longer than 4 characters).
- Password – input the Stripe API key.
The Stripe API uses API keys to authenticate requests. Every account is provided with separate keys for testing (sk_test_) and for running live transactions (sk_live_).
There are also two types of API keys: publishable and secret.
Publishable API keys are meant solely to identify accounts with Stripe; they aren’t secret and are used for the test mode.
Secret API keys can perform any API request to Stripe without restriction and are used for live transactions.
- Test mode – disable this option to use Stripe for live transactions (only enable for test mode if you intend to use it).
- Click Save.
- On the Payment system panel, click on the Payment methods link.
- On the Payment methods page, select all the checkboxes for the payment methods that you intend to enable with Stripe (VISA, MasterCard, American Express, or Discover).
- On the Data protection page, select one of the following options for stored card information handling:
- Token only – during the first payment, all the credit card information is collected and sent to Stripe once, and a payment token is created. This token is used for all further transactions (no need to enter the card information again).
- Full card info except the CVV – during every payment, all the credit card information is sent to Stripe.
- Click Save.
Assign Stripe as a payment system for a particular currency
- On the navigation menu on the left, select Financial and then Currency management.
- On the Currencies panel, select the desired currency (for example, USD or CHF).
- Click the Edit icon.
- Click the Add icon next to Payment and remittance systems.
- Specify the following information:
- Type of system – select Payment system.
- Payment system – select Stripe.
- Minimum payment – set “0.5 USD” (or equivalent in other currency you use, e.g., 0.46 CHF).
Transaction limitations apply for Stripe. 0.5 USD is the minimum allowed transaction size. If the end user attempts to make a payment lower than 0.5 USD (or equivalent in other supported currency), Stripe will return an error in PortaBilling and a notification about an unsuccessful transaction (for example, “Your payment must be no less than 0.5 USD”) will also be displayed to the end user on self-care portal.
- Click Add.
- Click Save.
Now that Stripe is configured as a payment system, all the standard payment processor functions are available for it (Add/Save/Delete the payment method (card), etc.). The only transaction type that’s unavailable is Void because in Stripe, all the authorized transactions expire in 7 days. The transactions cannot be voided (Stripe will return an error upon attempt to void a transaction).
Specify email for a customer
In order to use token-based payments in Stripe, it’s necessary to set a valid email for a customer. An email is necessary for the first transaction – for the token to be generated. Without it, Stripe returns an error.
To specify an email for a customer, e.g., John Doe:
- Open John Doe’s record.
- On the Personal page, go to General info.
- Input a valid email belonging to John Doe into the Email field.
- Click Save.