And rbritton, as the guy in charge of the API these days, I'd love to hear how I can make it better.
I found the process of actually taking and charging a card to be a bit cumbersome with having to tokenize the card (wait for response), create the customer record (wait for response), associate the card token (wait for response), and finally create the debit (wait for response).
The tokenizing I'm absolutely fine with since it offloads the bulk of PCI compliance to Balanced, but the last three steps seemed a bit much when all I wanted to do was debit the card. I don't have any need to save a permanent customer and card record. This is a process Stripe doesn't have as far as I can tell, but I was ultimately willing to deal with it for the faster payouts.
I also like Stripe's two-factor authentication support.
And, on another note, I was a bit disappointed with both Balanced and Stripe's iOS libraries. They only support tokenizing a card. Though this is likely going to be the bulk of use by many people it meant creating everything else from scratch.
I've made an issue to track this on GitHub, let's talk more over there: https://github.com/balanced/balanced-api/issues/472
This is great feedback!
Is this essentially what you're looking for?
require 'balanced'
Balanced.configure('ak-test-2ficCWmYvpRBBSzC7Me62ZTX0Y2DPGjgt')
card = Balanced::Card.find('/cards/CC4TsBYO9E4IRQqg0jvrEg9i')
card.debit(
:amount => 5000,
:appears_on_statement_as => 'Statement text',
:description => 'Some descriptive text for the debit in the dashboard'
)Balanced employee here.
>> I found the process of actually taking and charging a card to be a bit cumbersome with having to tokenize the card (wait for response), create the customer record (wait for response), associate the card token (wait for response), and finally create the debit (wait for response).
Couldn't agree more. Tracking this issue here: https://github.com/balanced/balanced-api/issues/472. We will have news very shortly on some changes that you might be interested in.
>> I also like Stripe's two-factor authentication support.
This is already done AFAIK. Email me directly -- m@balancedpayments.com
>> And, on another note, I was a bit disappointed with both Balanced and Stripe's iOS libraries. They only support tokenizing a card. Though this is likely going to be the bulk of use by many people it meant creating everything else from scratch.
May I ask that you open a github issue on https://github.com/balanced/balanced-ios with exactly what you're looking for?
Thank you very much.
https://docs.balancedpayments.com/current/overview.html?lang...
and while the code for "Collecting Credit Card Information" makes a lot of sense I find the steps under "Charge a credit card" unclear. Why does one need to create a customer to charge a card that has been tokenized ? I would also suggest making it more clear in this tutorial what the different numbers mean. For example where did CUXj7DWHSxlMvGDLGSYRI3o come from in step 2 ? As for the card_uri I'm guessing that is the uri that was obtained in the prior tutorial, but guessing makes me a little uncomfortable so it would be nice if that were made more explicit.
I'm also wondering why the balancedpayments documentation emphasizes marketplaces over simple e-commerce sites. Does this mean that balanced is a less appropriate solution for simpler sites (ie. where payments are made directly from a site's users to the site itself) ?
Balanced employee here.
You're right. That tutorial could be made much more clear. In fact, this guide and others are being extensively rewritten. The example itself is specific to charging a Card. Therefore, the guide assumes you have an existing Customer since Customer creation is a separate topic. You are correct that the card_uri is an example of one that would be obtained from the previous example. Let me clear up how to charge a credit card.
First, the card needs to be tokenized (information sent to Balanced and securely vaulted), https://docs.balancedpayments.com/current/api.html?language=....
Next, either find an existing Customer or create a new one, https://docs.balancedpayments.com/current/api.html?language=....
Now add the Card to the Customer, https://docs.balancedpayments.com/current/api.html?language=....
Lastly, go ahead and create a new debit, https://docs.balancedpayments.com/current/api.html?language=....
A requirement of the current API is that a Card or BankAccount must first be associated to a Customer before it can be used. This is mainly due to the fact that v1.0 of the API is very Customer resource centric, something that's changing in the upcoming 1.1 release. A Customer resource will no longer be required to charge Cards.
If you have any other questions feel free to hop in #balanced on freenode IRC. We love questions!