What is it like to sell products on a global scale, and in a myriad of currencies? BandCamp does this on a daily basis, allowing musicians around the world to sell directly to their fans. The payment numbers Kevin discusses during his talk are astounding, showcasing not only a great platform - but also a story of musicians all over the world that can credit Bandcamp for a portion of their success.
Was it always this way? What did it take to build a payments system to serve a global audience?
Kevin walks through the history of payments at Bandcamp, and how things worked in the beginning in 2008. Originally, fans paid artists directly, and Bandcamp would withdraw their revenue share later - somewhat like settling a tab. As the site grew and more bands signed up, the payments team decided there had to be a better way to pay artists, while also collecting their revenue share.
Now, Bandcamp takes a revenue share in real time, in whatever the seller's currency happens to be. They do this to the tune of about 20 currencies at the moment. In some scenarios, they're also calculating additional items on the transaction, like VAT for example. It's a great example of a well thought out payments flow.
Watch Kevin's talk above to find out how they did it, and what they learned along the way.
Kevin Mooney: All right. So yeah, this presentation is called Multi-currency Marketplaces and You. But more appropriately, it could probably be called the history of payments at one particular multi-currency marketplace and that place is Bandcamp, where I work.
Kevin Mooney: So who am I? I'm Kevin Mooney. I live in Austin, Texas. I'm just going to repeat Peter's introduction. I'm an engineering manager at Bandcamp and I'm an individual contributor on the payments team there. I've been working in payments and e-commerce. I told Peter 20 years before I started and I only did that math when I was preparing this presentation and it terrified me.
Kevin Mooney: So my first e-commerce site was built in Miva Merchant. I don't know if anybody's heard of that. I did it in 1999 and I've been building systems to take your money ever since.
Kevin Mooney: So what's a Bandcamp? Actually, can I get a show of hands? Have you heard of Bandcamp? Whoa. That's way more people than I thought. That's so exciting. That's super cool. So what you probably know then, is that it's a global marketplace for music. I'm showing you sort of a recording of our homepage and you can see our live feed, which shows sales as they're happening.
Kevin Mooney: In my opinion, it's the best place for bands and labels to get paid for their work. We take a 10 to 15% rev share and we provide a platform that lets bands and labels sell digital music and physical merch on behalf of themselves on our platform. Physical merch can be vinyl records, it can be tapes, tote bags, T-shirts, buttons, patches, all physical merch.
Kevin Mooney: So this is us. We're a completely distributed organization. We have folks in California, Japan, Vermont, Texas, France. I said Franch, I don't know. British Columbia, Australia, pretty much everywhere. We've had people have sort of a boring, mundane workday from every continent, except Antarctica and I am really excited for Antarctica Day. It'll happen and I will be there for it. It's going to be great.
Kevin Mooney: This is what a Monday morning dev stand up looks like for our team. We have about 20 engineers. There's about 15 people on this slide, so a few people had the day off. That's a typical Monday morning. You can see I'm touching my face on camera, which is unfortunate. Our general development team, like I said, has 20 people and we just use teleconferencing tools like Zoom, Slack, to stay in touch and get things done.
Kevin Mooney: We also opened a performance space, a record store and an office space in Oakland, California. It's a nice way for us to showcase our favorite music and provide a place for the community to experience it directly. Experiencing it directly means, hanging out and listening to music in listening booths, which you can see in this picture. It means live performances in a pretty cool space, that's open to the public. So if you are in Oakland, please stop by and check it out. So I wanted to talk for a second about Bandcamp payments by the numbers.
Kevin Mooney: You probably saw this when I was showing albums sliding by. Fans have paid artists $374 million since our start in 2008. That's a lot. In fact, a fun fact about this slide is that I've been working on this presentation for a couple of weeks and when I started, I checked the number and it was 369 million, which means that we've paid $5 million or that fans have paid artists $5 million, since I made the first draft and yesterday when I revised it. So, that's kind of a lot.
Kevin Mooney: In the last 30 days, fans of paid artists on our platform, $8.3 million. If you look at the site now, it might be a little more than 8.3, who knows, a little more, a little less. It's a lot. So to get those numbers, to let fans pay that much, we sell one album every 2.3 seconds, 24 hours a day. Is anybody getting a calculator out? If you have your calculator out, put it away because that's 38,000 records sold every day. If you still have your calculator out, please put it away because that's about a million records sold every month. That includes digital and physical, digital and merch.
Kevin Mooney: So that's a lot of sales and it's lot of payments and we do it with a pretty small team. Our payments team has a recurring cast of characters. Some people cycle in and out, but there's sort of five people who are always thinking about payments at Bandcamp and it's these folks with the arrows over their heads.
Kevin Mooney: So Ben has the orange arrow and he is our a fearless team lead. Sean has the red arrow. Sean's in the audience. There he is, he's great. He's our CTO and he warns us when we have bad ideas. It's a really hard job and he's a clearing house for my bad ideas.
Kevin Mooney: Jason and I are the blue and pink arrows. We are meager developers. And Brian who has the salmon arrow, I had to look up the color, he runs support for payment related issues, which of course there are not. I'm just kidding. It's software, right? There's always issues and Brian's an absolute hero for dealing with them, so yeah.
Kevin Mooney: So from west to east, our team is in San Francisco, Los Angeles, Austin, Texas, Oxford, England and Paris, France. So it's a highly distributed team and it's a global team, or at least, we stretch halfway around the globe, just five people halfway around the globe. It's kind of appropriate because half of our sales come from outside the USA.
Kevin Mooney: So this slide shows a the percentage of the total amount that was paid five days ago, April 10th, six days ago, April 10th. It was five days ago when I practiced this yesterday. And our sales were about 53% in US dollars, 47-ish percent of our sales we're in 18 other currencies. Yeah, 18 that's a lot of currencies, 19 altogether.
Kevin Mooney: When I was putting the slide together, this was weird. So we did 0.01% of our sales in Hungarian forints, which I thought actually until I made this slide, I thought they'd been discontinued in favor of the euro. But they're this cool non-decimal European currency. So Japanese yen are non-decimal, US dollars, you can have cents, 100 cents in a dollar. In euros, you can have... I presume they're called euro cents. You can have a hundred euro cents in a euro.
Kevin Mooney: But forints are not divisible. So there's sort of an atomic unit and I was really surprised to see that we were selling things in forints, just a couple of days ago. But yeah, it turns out, I looked on Wikipedia, they're a fully convertible currency and they'll probably continue to be in wide circulation until the mid 2020s. So keep an eye out for forints.
Kevin Mooney: It turns out it was this band that was selling them. They're a Hungarian hip-hop group. I translated it just to make sure there was nothing, like on the off chance that it happened to be profanity and some of you happen to speak Hungarian and it's not. It's actually pretty tame but it's pretty cool. You can listen to it. It's hip-hop.
Kevin Mooney: So yeah, you can see their sign, their digital album for about 1,500 Huff's and that works out to about $5.30 and you can buy their whole discography for 6,314 huffs and that's like around 20 bucks. It depends on which currency converter you use. So this is all to say, we sell a lot of stuff in a lot of different currencies.
Kevin Mooney: So I wanted to talk for a second about the history of payments at Bandcamp. We've grown up to a point where we're selling a lot of stuff, but in the beginning there were no payments at all. We had a site where bands could post music and fans could listen to the music or download, but there was no way to enable a marketplace and the team was small. It was five people at the time. I was not one of those people. At the time, there weren't a lot of marketplace type solutions available. Today, Stripe and PayPal, others offer turn key products that are designed to allow marketplaces to sell goods on behalf of others and you split the difference. The seller keeps part of the sale, the marketplace keeps part of the sale.
Kevin Mooney: That's a luxury we have in 2019 and in 2008, there was nothing like that. There was no way to do it, but we had to come up with something and this guy had a cool idea. This guy's name is also Kevin. His idea was this thing that we called internally, and I think this might be the first time anybody inside Bandcamp is talking about this with people outside of Bandcamp, but we called it a yoink.
Kevin Mooney: This is I think my crowning achievement as a developer. I just wanted to put this on a movie screen and watch it. I made this gif myself. So what's the deal with yoinks. When a seller signs up, they supply their PayPal address. When a fan buy something from a band, they just pay directly via PayPal.
Kevin Mooney: In the meantime, Bandcamp just kept track of how much the band owed us. We kept track of our 10 to 15% rev share on the transaction. Depending on the band, depending on what they were selling. When a band makes a sale that's less than or equal to the amount of their tab, we'd just yoink that payment. Which meant that we changed the payment email address for PayPal from the band's email address to ours and we'd get their money.
Kevin Mooney: So, this is a typical situation, where the buyer just pays the seller directly. The sellers tab is less than the sale amount most of the time and so, the buyer pays the seller and Bandcamp just keeps track of the tab. So the buyer pays the seller $10. Bandcamp says, "By the way, we're just going to scribble on this ledger over here, you owe us a dollar." So imagine this happens 10 times. The buyer pays the seller 10 bucks, 10 times. That's $100. We keep track, we write down $1, 10 times, that's $10. So the next time there's a $10 charge, we would just redirect it. So when the tab gets big enough, a sale that's less than a tab amount, we just redirect the sale to our own PayPal account.
Kevin Mooney: We didn't call that yoinks, when we talked about it with the general public. We called it a revenue share balance. So it's a fancy phrase and I used a fancy font. As we grew up, we sort of internally also started calling it a rev share balance and that's actually what I'm comfortable calling it. So I'm going to call it that from now on. So what was great about this system?
Kevin Mooney: It's kind of funny and the first time I heard about it I kind of laugh too. But there are some things that are really awesome about it. First of all, artists really liked it. In exchange for an occasional yoink, they were paid directly by the fan. They made 100% of what they sold and by the time we sent the seller an email that told them that they had made a sale, the money was already in their PayPal account and ready to be spent.
Kevin Mooney: Bands loved this. They could pay their rent, they could buy beer, they could do whatever they wanted to do and as soon as they got the notification, the money was there. There's no waiting. It worked really well for us for a long, long time. It was a great way for us to get payment system in place quickly with a small team. It served artists and it served us, as well.
Kevin Mooney: As far as the currency situation goes, artists could pick whatever currency was supported by PayPal and then they'd get paid directly by the fan in their chosen currency. So when Bandcamp did a yoink, we'd maintain the balance in each currency. Then we'd convert to US dollars down the line. Really easy, really simple, almost no work.
Kevin Mooney: So if this is working and it did, why would we change it? So for one thing, we had a lot of chunky balances. A band would get paid. We'd eventually recover some of the balance, but then you'd end up with lots of bands with lots of very small balances. At first, it was a little bit of money, but as we grew up and more bands signed up, we kind of ended up with this long tail of small balances that were owed to us, that we'd probably never recover.
Kevin Mooney: Oh, so if an artist became dormant or stopped selling for whatever reason, we'd just be owed that balance forever. Accountants don't love this. Are there any accountants in the audience? Raise your hand if you're an accountant. Yes. Alright. Alright. That's fewer than I thought, but you're going to like this part.
Kevin Mooney: So because of the limitations of rev share balances and our yoink system, we decided to start aggregating all payments for digital goods. We called this digital aggregation and it was a big old project, which I'll explain some of the details. But the idea was simple. Instead of running a tab, we would act as a clearing house for every payment. Instead of paying the seller directly, the buyer would pay us. We'd calculate the rev share on the fly and pay the seller in about a day. That meant for a large portion of our sales, we didn't need to run a tab anymore.
Kevin Mooney: So to recap, all payments for digital goods, go to band camp. We built an accounting system, no big deal. Then we pay out bands after about 24 hours. We chose to only use aggregation for digital goods because we can guarantee the delivery of digital stuff. Since physical goods are fulfilled by the seller, it's a little bit riskier for us to act as the merchant of record in that scenario. Many years later, well not many years later, years later, we would start to aggregate a limited number of physical sales. But that's a story for another time. Come find me in the hallway if you want to hear it.
Kevin Mooney: Now the payouts were our responsibility. We had to build new tools to provide clarity to bands and labels about what they would get paid and when. This is an example of an artist payments page that shows upcoming payments, in process payments, and recently completed payouts. It also shows historical sales totals. This is just a test band, so it's only $8. but for more established artists, this page can get pretty involved.
Kevin Mooney: So let's talk about the risks of aggregation. Once we become responsible for the sale, we have to ensure that the payout mechanism always works and it always calculates the rev share correctly. We also need to make sure it's really easy to check that the balances are always right. To do that, we rolled our own double entry accounting system. It lets us keep track of rev share balances, payables and cash on hand, and pretty much any other instrument we can dream up.
Kevin Mooney: We also use it to calculate and maintain accounts for VAT remittance to the EU for digital goods. A big risk is that mistakes are a bigger deal when we're the merchants and we're handling other people's money. It's important to prevent mistakes with improved tools and processes and actually doing this drove improved processes on our team.
Kevin Mooney: There are other risks around messaging and user experience anytime we change something about money. In this case, this artist was carrying a $2.03 balance and after we deployed aggregation, we were able to recover their whole balance from part of one sale, which would've been exactly what we wanted it to do. Before we switched to aggregation, we notified everyone who'd be affected about the change. But not everyone reads their email and not everyone understands their emails when they read them. I mean, how many of you have erased an email with a subject line that starts with, important information about your account? I erase those all the time.
Kevin Mooney: So it's likely that this artist would never see a receipt that looks like this again. But we have to have a team that explains what's going on, that reaches out to sellers to ensure that they're feeling good about what's happening. Anytime you change anything to do with money and maybe any aspect of your product that faces humans, it's really important that you do so with empathy. That you understand what the experience will be from your user's perspective and that you design changes. Even ones that might prove to be a little bit unpopular from a place of kindness and understanding and we've tried to do that.
Kevin Mooney: So with the increased risk comes increased reward. Three party transactions, which I talked about before. New payment methods and capabilities. We can even build new product features based on our core payments tech. With aggregation, the currency story is mostly the same. Buyers pay with PayPal, sellers pick their currency. Everything works the same way, except that since we pay out now with PayPal's mass pay system, we need to ensure that we're maintaining minimum balances in each currency that artists are going to be paid out.
Kevin Mooney: So we have to make sure we have positive cash flow in about 20 currencies. To do this, we've built admin tools that our ops folks can use to check our balances, what our payables for artists are and also, to know exactly how much rev share is safe to claim from each account, from each currency account.
Kevin Mooney: Maintaining a balance in each currency means that we don't have to pay any conversion fees until it's time for us to withdraw our rev share. Because we implemented aggregation and were able to perform third-party transactions, we were then able to offer new payment methods and the most obvious next step for us was to offer buyers credit cards as a payment option.
Kevin Mooney: The idea with credit cards is that the buyer pays us with either PayPal or with a credit card. We calculate the rev share, same way we always have and we pay out the seller the same way we've always done it. Nothing changes, as far as the seller experience goes. I'd like to point out on this slide, I drew that credit card myself. I'm really proud of it.
Kevin Mooney: So, since we were already using PayPal, Payflow was a natural choice as a credit card processor. Using Payflow allowed us to accept credit card payments like grownups, but the money from the credit card sales would go directly to our PayPal account. That means we don't have to transfer money from a merchant bank to a PayPal account to payout out our sellers. As a side effect, it means we don't have to manage multi-currency stuff. We don't have to manage multi-currency balances because we keep the balance in the transaction that it was paid in.
Kevin Mooney: So yeah, the buyer pays a seller in the currency of the sellers choice. We accept the payment in that currency and we maintain balances in all currencies to ensure that sellers are paid out in their chosen medium of exchange.
Kevin Mooney: One of the features that we wanted to provide was also to store a card. As we were building our Payflow integration, in fact, not when we were building it, when we were testing it, we discovered there was a limitation to the way reference transactions would work for card storage. So we were using Payflow reference to store a card or at least maintain the ability to charge the same instrument again, after an initial transaction.
Kevin Mooney: We could see that storing a reference transaction would allow us to make subsequent transactions against the same card, which is great. Without storing PAN on our servers or even touching our network. However, when we were testing, we discovered that reference transactions would only allow buyers to make subsequent purchases in the same currency that they initially bought in.
Kevin Mooney: That meant that if a buyer store to card after making a purchase in US dollars, we could only allow them to make future purchases in dollars. Which means if you want to buy Hungarian hip-hop, you can't use a stored card, which is not ideal. So if you tried to make a purchase in euros against the same reference, it wouldn't work.
Kevin Mooney: So about one month from launch, we were testing what we thought was going to be a complete integration. When we realized that reference transactions were limited to just one currency, we calmly evaluated our options. What we found was that Spreedly's payment message distribution API met our needs really well. It allowed us to vault our cards and perform Payflow transactions in multiple currencies. Practically using the integration we had already built.
Kevin Mooney: After credit cards, we added lots of other new features that used our accounting and payments core as their base. Those include, gift cards which have their own host of currency issues and limitations. Talk to me about it if you're interested. It's fun. We provided physical aggregation, which is sort of acting as a payment's clearing house for physical goods and we've been working on tools to improve risk mitigation, including fraud models, payment approval systems and similar.
Kevin Mooney: Well, this is about to wrap it up. So yeah, to sort of close this out, when we started in 2008 we didn't take payments at all. We invented a cool way to connect buyers to sellers and eventually, get paid ourselves. We built a high quality accounting system and a payout mechanism from the ground up to ensure that artists are paid in a timely manner. We added credit cards and card storage and we did it in a way that protects sensitive data. We've done a bunch more cool stuff in the meantime, please come talk to me about it if you're interested. There's more cool stuff coming very soon. That is it. I'm done.