views:

404

answers:

1

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?)

A: 

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.

Keith Palmer
Your right. I had to use QBMS to capture charge, then do a ReceivePayment on the specific invoice. The documentation (above) seems to claim there is an easier way, but I couldn't find it.
maxsilver