6

The Imaginary Scenario:

The Affiliates earn money on my website by selling items/services/widgets to their clients. You can think of it as a simple affiliate program. This money is stored in a single account until the Affiliate requests their money.

The Affiliates don't want to wait for a check to come in the mail; they want to log-on to their administration section (on my site) and click the magical "Transfer My Hard-Earned Money Now! Fool" button and have their millions deposited directly to their bank account (this transfer might take "3-4 days" if it has to --- the Affiliates just want to feel like they can always take control over their money).

Now, PayPal already does the "Send My Hard-Earned Money Now! Fool." function just fine. Their API even allows transferring money from one Paypal account to another; it just doesn't allow deposits to bank accounts. The Affiliates are lazy and don't want to log-in to their Paypal account to transfer their money.


So, what can a developer do?

  • I don't want to bother with Storing Credit Card information (PCI compliance...no thank you).
  • I don't really care to integrate directly with a bank
  • I want to (in psudeo code):

.

// affiliate and crdentials are pulled from my database.
Affiliate affiliate = db.Affiliates.GetByID(123456);
Credentials creds = affiliate.GetBankCredentials();
// paymentAPI is, well, its an API.
Xml response = paymentAPI.InitiateMoneyTransfer({from: myAccountCrdentials, to: creds, amount: 123, currency: "USD"});
if(response.success){
    print "Bling Bling! Transfer initiated";
}
else{
    print response.msg;
}

p.s. I'm in the USA

David Murdoch
  • 87,823
  • 39
  • 148
  • 191
  • 2
    You could try to automate wire transfers through home banking if your bank supports it. The Wikipedia article on [HBCI](http://en.wikipedia.org/wiki/FinTS) suggests that something similar exists in the US. Maybe you can ask your bank if they support any standard home banking protocol and look for an open source implementation of it. – dtb Oct 19 '10 at 23:17

2 Answers2

2

Go with a different payment processor/gateway. Use Paypal for Paypal related accounts/transactions, and Authorise.NET, Chase Payment TEK or similar provider of the sort to do deposits to real bank accounts.

You will not be able to get away with PCI compliance. Moreover, you will not be able to get away without a payment gateway such as the one's listed above.

So the scenario is simple:

Return (from paypal) Paypal->YourBankAccount->Authorize.NET->Consumer Account.

Return (from your bank account) YourBankAccount->Authorize.NET->Consumer Account.

bleepzter
  • 9,607
  • 11
  • 41
  • 64
  • 1
    Authorize.NET doesn't really support deposits to bank accounts. It can credit an account based on an initial transaction, or send e-checks, but it's not really the solution in this case. I'm still looking for the right answer myself... – Noah Heldman Mar 01 '11 at 16:40
2

We decided to go with ACH Works for our project. It's the only provider I found that understood exactly what I wanted to do (which is very similar to what you're doing), and was very helpful in explaining exactly how to do it. They have a very simple SOAP API for triggering ACH transfers.

Another possible option is PayPal's PayFlow Pro ACH Payment Service.

Here's the PayFlow Pro ACH API Doc.

Someone else recommended Payments Gateway, but I don't have any experience with them...

Noah Heldman
  • 6,724
  • 3
  • 40
  • 40