In connection with the conversion of OVPN into a Limited Liability Company we also acquired a Swish number for companies.
Last night I pushed up an integration of Swish as a payment method to OVPN. Here's how the integration looks like:
Once you have submitted the payment via the Swish app, click Verify payment. If you have sent the correct amount, the payment will be verified immediately and the time will be added to your account.
Therefore, no manual handling is required from us to activate your account if you choose Swish as your payment method.
OVPN is among the first companies in Sweden that can automatically verify whether a payment has been received via Swish.
Technical description of how Swish was integrated as a payment method
Our other payment methods have well-designed Application Programming Interfaces (APIs) that allow us not to manually verify whether a payment has been received.
Although Swish is a great way to transfer money to friends and buy services/products from companies, Swish unfortunately does not have an API that can be used to automatically verify whether a payment has been received.
Since we don't want to verify payments manually, we needed to find an alternative method to automate the process.
OVPN Integrity AB uses Swedbank as a bank, and unfortunately Swedbank does not have a public API either. Fortunately, Eric Wallmander has done the persistent work of reverse engineering the private API that Swedbank uses in their mobile apps.
So even though Swish and Swedbank do not have an API, we can by using Eric's unofficial wrapper retrieve a bank statement from Swedbank to see what payments have been made.
When you click on Verify payment we send a call to Swedbank to see if we have received a transaction from the telephone number that is specified.
We never store your phone number in our database, but we use it only to check if we have a payment from that phone number in the bank statement we receive from Swedbank.
However, Swedbank stores your phone number, which means that you cannot be anonymous in the payment process if you pay via Swish.