Dwolla integration

Dwolla integration

We are excited to announce our brand new integration with Dwolla! Lots of traditional credit card payment gateways have added support for ACH over the years. These APIs lowered the barrier of entry for merchants to accept bank to bank transfers. Unfortunately, virtually all implementations offer transfer times of at least 3 to 4 days. Introducing Dwolla: the company has built over the years a robust infrastructure specifically designed to offer a more modern way to access and leverage the ACH transfer network. The result reduces the transaction time down to as little one day and provides the building blocks for all sorts of integrations, business models, payment flows and end-user experiences (your users don’t even need a Dwolla account). You can trigger a payment by having your customers authenticate into their online banking account, recurring, variable payments for subscriptions are supported through On-Demand Transfers and you can even trigger payouts if you are a marketplace. Building this integration had been on our radar for a very long time, but we just never had the time to focus on it. Luckily, once again, the community helped. A consulting firm from Argentina took on the task, and they did a terrific job implementing a full solution! This new plugin supports both Dwolla Direct (co-branded product, easier to setup), as well as Dwolla White Label (for deeper, seamless experiences within your own native applications). Funding sources can be verified through both IAV (Instant Account Verification) and Micro-deposit verifications, and Dwolla.js makes sure that no sensitive payment information hits your servers. You can even configure it to listen to webhooks, to get...
[Updated] Having fun with Docker, Stripe and Kill Bill

[Updated] Having fun with Docker, Stripe and Kill Bill

One of our most popular blog posts is Having fun with Docker, Stripe and Kill Bill, where we showed how easy it is to leverage the powerful subscription engine offered by Kill Bill while delegating payments to Stripe. A lot has happened over the past 18 months: tools like docker-machine and docker-compose have become better and recent releases of Kill Bill have removed the need to edit various configuration files post-installation. Let’s take a look at how simpler the installation process has become. I assume you already have Docker installed and created a Stripe account. The first step is to create a machine to run your containers. On a mac, you would typically use the virtualbox driver: docker-machine create -d virtualbox killbill eval $(docker-machine env killbill) Note that to deploy Kill Bill to the cloud, the steps are similar (simply replace the driver with your provider’s, such as Microsoft Azure for example). Next, create a docker-compose file similar to the one below: and run: docker-compose up 3 containers will start: one for MariaDB (shared database), one for Kill Bill itself and one for Kaui (Kill Bill admin UI). You can then explore Kill Bill APIs by going to http://192.168.99.100:8080/api.html or log-in to Kaui by going to http://192.168.99.100:9090 (username: admin, password: password) to create your tenant. Note: make sure to replace 192.168.99.100 with the IP of your machine which you can retrieve via docker-machine ip killbill The final step is to configure your Stripe credentials. Create a configuration file stripe.yml: :stripe: :api_secret_key: 'sk_test_aaaabbbbccccdddd' and upload it via Kaui at http://192.168.99.100:9090/admin_tenants/1:     That’s it! To test your installation, you can run our sample Sinatra app,...
Kill Bill monitoring with Datadog

Kill Bill monitoring with Datadog

The Kill Bill team loves data and measuring things. As part of our performance work last year, we did a pass at cleaning up all of our metrics. As a result, we now export over 600 metrics all over the stack, from latency of low-level database queries to overall rates of HTTP requests. These can be easily integrated with InfluxDB and Grafana: that’s how Groupon monitors its payment infrastructure. Maintaining a monitoring system is no easy task however, especially at scale. It’s no surprise that even companies like Stripe are outsourcing (some of) this work to Datadog. In this post, I’ll show you how to export Kill Bill metrics with Datadog’s standard agent, and some of the metrics you want to keep an eye on in production. I assume you already have Kill Bill running using our Docker image and that you have a Datadog API key. The first step is to enable JMX, by adding the following System Properties to your kpm.yml: ~ > docker exec -ti killbill /bin/bash [email protected]:/var/lib/tomcat7$ export TERM=xterm [email protected]:/var/lib/tomcat7$ vi /etc/killbill/kpm.yml # Add the following to the jvm: line # -Dcom.sun.management.jmxremote=true # -Dcom.sun.management.jmxremote.authenticate=false # -Dcom.sun.management.jmxremote.port=8000 # -Dcom.sun.management.jmxremote.ssl=false [email protected]:/var/lib/tomcat7$ exit ~ > docker restart killbill Then, install the Ubuntu Datadog agent (when prompted, the sudo password is tomcat7): ~ > docker exec -ti killbill /bin/bash [email protected]:/var/lib/tomcat7$ cd /var/tmp [email protected]:/var/lib/tomcat7$ DD_API_KEY=REPLACE_ME bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/dd-agent/master/packaging/datadog-agent/source/install_agent.sh)" [email protected]:/var/lib/tomcat7$ sudo /etc/init.d/datadog-agent start Note that the final installation step, when the agent tries to register with your account, may fail. Starting the agent manually afterwards fixes the issue. Go now to you Datadog account and enable the JMX integration. The final step is...
Kill Bill on Microsoft Azure

Kill Bill on Microsoft Azure

The open-source Kill Bill platform provides advanced subscription management as well as payment APIs. Businesses of any size, from the 2-person startup to public companies, rely on it for their e-commerce recurring billing and shopping cart payment needs. Lots of SaaS companies have similar offerings. Choosing the right partner from the get go is critical however, as migrations are error-prone and difficult. If you are a young startup, you probably want something simple, cheap and low-maintenance, which can adapt to your needs as you grow. Kill Bill combined with Microsoft Azure BizSpark for startups gives you just that, which probably explains the uptick of requests we’ve had recently regarding integration with Microsoft Azure. Thanks to our Docker images, this is quite easy – this tutorial will show you how to deploy Kill Bill integrated with Stripe in a few commands. Pre-requisites Create a Microsoft Azure account Write down your subscription id: log-in to https://portal.azure.com, click on the account dropdown, then “My permissions” Install the latest version of docker-machine VM setup Create the VM using docker-machine: docker-machine create -d azure \ --azure-ssh-user ops \ --azure-subscription-id AZURE_SUBSCRIPTION_ID \ --azure-open-port 8080 \ --azure-open-port 3000 \ azure You should see it running at https://portal.azure.com/#blade/HubsExtension/BrowseAllResourcesBlade. Write down the IP of the machine by running docker-machine ip azure Configure your shell for the rest of the tutorial: eval $(docker-machine env azure) Database setup For this tutorial, we will simply run a MySQL database in a Docker container on the same host: docker run -tid \ --name db \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ -e MYSQL_DATABASE=killbill \ mariadb Modify the database to make sure it...
Postman Collections for Kill Bill

Postman Collections for Kill Bill

We consider Kill Bill as a platform first, upon which you can build your billing and payment infrastructure. As such, we are working hard to make sure (almost) every aspect of the system is accessible through APIs (subscriptions, invoices and payments management, but also system configuration, plugins management, etc.). As we’re approaching 200 Kill Bill APIs, interacting with the system can be intimidating. I personally have entire folders full of cURL recipes, for Kill Bill itself but also for our various plugins. We publish our documentation using Swagger (available at runtime at http://127.0.0.1:8080/api.html), which is incredibly useful for discovering APIs and one-off requests, less so for keeping a library of snippets. Enter Postman, a free Chrome and Mac App which helps you construct, send and store HTTP requests. Once you have it installed, just import the Kill Bill Postman Collection. Select a request template, modify the query parameters and/or JSON body and click “Send”. Voilà! Postman sends the request to Kill Bill and automatically pretty-prints the response. You can even generate the equivalent cURL command (useful to share it on a bug report). You can also create your own private Collections, for example one for common requests you make in your development environment (trigger a payment, restart a plugin, etc.) and one for requests to help debugging your production environment (e.g. retrieve details for a specific account or payment). I’ve just started using it, mainly as a fancy repository of cURL snippets, but it offers lots of advanced features like requests scripting, a test runner and team collaboration tools. Go give it a...
Kill Bill Certified for Avalara’s Sales Tax Automation Solution

Kill Bill Certified for Avalara’s Sales Tax Automation Solution

Kill Bill’s plugin architecture has grown significantly over the past couple of years. We already have about 50 open-source plugins extending Kill Bill with new features and offering tight integrations with payment gateways, fraud detection solutions, etc. (and we have first-hand knowledge of well over a dozen closed-source plugins, developed by companies we have advised). Not all plugins are created equal though. Some can be very simple (e.g. send an email when an invoice is generated), others — very complex (e.g. the Adyen plugin, which provides more than 250 payment methods worldwide). For some of these more advanced ones, that integrate with third-party solutions, we recently started formal review and certification processes. The goal of the process is twofolds. First, it gives us direct access to the vendor technical team, which helps us make sure the connector is optimized for that particular integration. Second, it gives us an opportunity to educate the partner on Kill Bill and on the very unique open-source nature of the project. Today, we are pleased to announce that we have added Avalara to the list of such certified integrations. To give you a peek of the work that happened behind the scenes, we had our initial introduction meeting on April 15th (surprisingly enough!) of this year and finalized the certification last week. During this time, we made sure the Avatax™ plugin passed all the required integration tests and verified that the data from Kill Bill is mapped correctly to the generated tax documents. The Avalara team also educated us on some of the more advanced sales topics that we need to keep in mind...