In the Quickbooks SDK Manual, there is a section called "Using ReceivePayment for Credit Card Authorization and Capture". It reads...
Using ReceivePayment for Credit Card Authorization and Capture
If the company is subscribed to QBMS, you can record a ReceivePaymentAdd that is basically a pending transaction. That is, in this usage, you want to save a QBMS authorization transaction into QuickBooks. Thus, the ReceivePaymentAdd contains a CreditCardTxnInfo aggregate with a CreditCardTxnType of Authorization. QuickBooks saves this as a pending transaction. Later, when the authorized charge is captured to become a real charge in QBMS, you can record that charge into QuickBooks by modifying that ReceivePayment (ReceivePaymentMod). The ReceivePaymentMod will have a CreditCardTxnInfoMod containing data from the QBMS capture transaction, with a CreditCardTxnType of Capture. QuickBooks automatically removes the pending status and records the transaction.
My question is, How do you actually do that with QBXML?
Right now, I have a VB.NET application that sends invoices to quickbooks, but then users have to switch to quickbooks, and click "Customers -> Receive Payments" to charge their credit card (using Quickbooks Merchant Services). It would be awfully nice to automate this in some way, perhaps by sending Quickbooks an XML message to charge the card?)
I'm not quite sure what you mean... the way I would approach it is:
Use the QBMS XML API to authorize the card
Push the receive payment and authorization to QuickBooks
When ready, use the QBMS API to charge the card
Issue an ReceivePaymentMod to record the capture in QuickBooks
As far as I know, there is no way to tell QuickBooks to do the capture on it's own. But you can use the QBMS API to do the capture.
Related
I am an iOS developer working on a mobile app
Our app business model is based on creating a niche marketplace between users. i.e a user can request a service and any user can provide the service and get payed by the requester.
We want to prevent misuse of the app by rouge users.
We want to create a user license agreement that will state then once the user submitted a new request to the marketplace with a specific amount then in case all of the criteria will be fulfilled later on - the app will complete the transfer.
Is there an option to put paypal funds on hold to be freezed/ unfreezed later on via the mobile idk/ backend server ?
If a user consents for a future payment, does it guarantee the availability of the funds later on?
Which Paypal API should I use?
Thank you,
Shai
I have an application, that process payment to application owner.
When user clicks "buy" on an item, the checkout operation should authorize certain amount on the user's account until some date. And when that date comes authorized money will be captured from user's account to application owner's account.
There is also a possibility, that user may cancel this authorization through the application.
We are free to user Paypal API or Stripe. Which is better and how it could be implemented?
Yes , it is possible through paypal adaptive payment api.
I am not sure what does 'freeze certain amount on the user account' mean, but you can surely transfer the amount to a holding account(admin account) and then on the particular date you can transfer it to the owner's account, meanwhile if the user cancels the payment the amount can be transferred from holding account back to user's account. This option is there in paypal.
What you're looking for is a functionality called auth/capture. What you're essentially doing is authorizing the funds (holding them on the user's payment source) and then capturing them at a later time. This is the same premise as a hotel putting a hold on your credit card for incidentals, and later canceling the hold.
You can do all of this with the PayPal REST API. Here are the features you're looking for:
Authorizing funds: https://developer.paypal.com/docs/api/#authorizations
Capturing funds (at a later time): https://developer.paypal.com/docs/api/#captures
Voiding (canceling) an authorized hold of funds: https://developer.paypal.com/docs/api/#void-an-authorization
Here's the Ruby SDK that you'll probably want to take a look at using, to make the authorization process easier: https://github.com/paypal/PayPal-Ruby-SDK
A few notes here. With authorization, I believe the funds are guaranteed to be there for 3 days. You can continue trying to capture the funds for up to, I believe, 29 days, but the funds are not guaranteed to be there.
Hope that helps
I have a client who is dead-set on using PayPal for Credit Card processing. The application must be able to charge cards without the user entering the information every time. Digging around, I've found the Credit Card Vault feature, which would at least let me store credit card information for future use. Unfortunately, as far as I can tell, there's no JS based tokenization procedure in the RoR Paypal SDK gem -- in order to store data in the vault, the information first has to hit my server. Which means I have to provide PCI compliance.
Is there any way to tokenize a credit card for later use in Paypal that will let the token be valid indefinitely?
In the REST API they call it the vault and they have documentation specific to it.
In the Classic API it's called a reference transaction, in which case you would use Payments Pro (DoDirectPayment or PayFlow) to process an original authorization or sale transaction, and then pass that transaction ID into future calls to process payments with the card data PayPal has saved on their server.
If using DoDirectPayment you would use DoReferenceTransaction. If using PayFlow you would just change some of the parameters in the typical request to make it a reference transaction. The doc links above cover all of that.
As long as you aren't saving any card data on your server then the only thing you'll need to be compliant is an SSL certificate on your site, but that's becoming a recommended practice regardless of whether or not you're processing payments.
If you want to completely avoid hitting your server then you'll have to go with Payments Advanced, which embeds a PayPal hosted iframe into your site. I don't think it supports reference transactions, though, and it's a lot more limited than REST or Payments Pro.
Is it possible to send payments via Quickbooks Online API?
We are looking to basically initiate a ACH transfer from the QBO Client's bank account to another account, not just record a transaction.
Is this possible? If so via which API / Method? I have been looking all over the QB Documentation and can't find a clear answer. Support calls say it's possible but don't give any direction where to get stated.
I have already registered as a developer, created an app and have been able to implement authorization and tokens and manipulate basic QBO Data, jsut need to figure out where or how to send payments if possible.
Is it possible to send payments via Quickbooks Online API?
No.
I was wondering how can I send customer credit card data from ecommerce website to Quickbooks. There are some concepts i am confused.
From my understanding, basically I can process credit card on my ecommerce website using "Merchant Service for Web Stores" API, and i found there is a "Payment wallet" function, is the connected to customer credit card info on desktop Quickbooks? What's the proper way to process credit card for my ecommerce site and at the meantime sending the customer credit card data into my desktop Quickbooks, saved there and for future use?
Any help would be greatly appreciated.
ps: The ecommerce site is by PHP
I was wondering how can I send customer credit card data from ecommerce website to Quickbooks.
Are you sure you actually need the credit card data in QuickBooks? You should know that if doing this, you likely won't be PCI compliant without jumping through a lot of hoops - and remember that storing credit card data on site is incredibly dangerous from a litigation/security/legal standpoint. You're setting yourself up to get sued when that data gets stolen.
From my understanding, basically I can process credit card on my ecommerce website using "Merchant Service for Web Stores" API,
Yes.
and i found there is a "Payment wallet" function,
Yes, and this is what you should be using. It securely stores the data with Intuit instead of with you, so that you are still PCI compliant and the card data is safe.
It allows you to push credit card data to Intuit, and they return a unique ID value to you which you can use to charge the credit card at any time in the future, without actually having to know the card number itself.
is the connected to customer credit card info on desktop Quickbooks?
No, it's not.
What's the proper way to process credit card for my ecommerce site and at the meantime sending the customer credit card data into my desktop Quickbooks, saved there and for future use?
You don't want to do this. There is no proper way to do this. It's a terrible, insecure practice. Don't do it.
Instead, charge the credit card via the QBMS API, and then store the credit card in the payment wallet and store the payment wallet unique ID in your database. You can then write a simple program that lives and uses that unique wallet ID to charge them again at any time.
Since you're using PHP, this is the best place to start (disclaimer: I'm the author of the below code):
open source QuickBooks PHP DevKit
Specifically, you'll want to look at the QuickBooks Merchant Service examples:
PHP - charge credit cards with Intuit QuickBooks Merchant Services
PHP - store credit card info securely with Intuit QuickBooks Merchant Services
Before you can really utilize the code, you'll have to go through a very simple registration process with Intuit (register in DESKTOP mode for easiest implementation).
Quick-start for Intuit QuickBooks Merchant Services with PHP