Is there a way to add a GL Transaction and Normal Transaction in Quickbook? - intuit-partner-platform

I want to add GL accounts and normal account transaction in quickbook. So I can see separate report for both. Is it possible to add GL Transaction and Normal Transaction in Quickbook?

QuickBooks does not have any concept of a "GL Transaction" or a "Normal Transaction".
It does have Invoices, Payments, Sales Orders, Journal Entries, and other specific types of transactions.
You're going to have to be a bit more specific about what you're looking for...

Related

Paypal how to differentiate between multiple subscriptions for a same user

I'm currently programming a small basket app and I was wondering what was the variable that would be used to differentiate between subcriptions for one user.
Let say my user has 4 subscriptions, and it is now the time to receive its recurring payment. I receive the payment message from Paypal, parse it and do my DB update. How do I know which recurring I need to process?
From what I read, its probably the subscr_id=I-HPDM8GP... that I need to check but I'm not sure?
Thanks
This is a pretty broad question so I'm going to have to make a couple of assumptions...
1) You're using standard subscription buttons..??
2) You have a users table in your database already, and it relates to an orders/invoices table in your database by customer ID..??
If those assumptions are accurate, then what I would recommend is that you include the order ID from your system in the "invoice" parameter with the subscription button code.
If you're not already using it then it would be wise to setup an IPN solution to process subscription payments, and within the IPN data you would get the same order ID back in that "invoice" parameter, so within that solution you could update your system accordingly using that order ID which then relates back to your customer IDs in your own system.
With all of this data included and related correctly in your system you could easily pull reports for different users that include all of their subscriptions and payment history.

Braintree API Update Subscription

The Braintree API docs aren't entirely clear on a few things dealing with subscriptions.
We're building a system with multiple subscription tiers and want to give the user the ability to change tiers at any time. Updating the subscription is easy enough, and we've enabled prorated billing (though we're still not entirely clear on what Braintree is doing under the hood there).
The part I'm not seeing is how to update the price. If I change the plan id, the price does not change. I would expect the subscription to use the new plan's price - I can't imagine when it would ever make sense to not update the price. I see that I can pass a new price along with a new plan id, so I can update the price in the same call that I update the plan, but this means I have to store the price in my code as well as in Braintree. I know I can call the plans on Braintree to get the price information, but it should not be necessary to add the overhead of an additional API call.
Am I overlooking something? Is there really not a way to tell Braintree to use the price of the new subscription?
I am a developer at Braintree. Our plans are templates that are used to populate the subscription when it is created.
From our docs:
A plan is a template for your subscriptions: when you create a plan, it will be used to populate the following attributes when a new subscription is created:
plan name
description
trial period
billing day of month
number of billing cycles
amount
currency
billing cycle
Additionally our subscriptions do not inherit a new plan's price when updated
If you update the subscription's plan, the subscription will not inherit the new plan's price.
We implemented plans as templates so that merchants can safely update a plan without affecting subscriptions with existing customers.
We try to not make any assumptions about the state of a subscription when the plan id has changed to prevent its values from being changed unexpectedly. There is not a solution at this time to inherit select properties from a plan when changing a plan's subscription.
Since there is no language tag to this question, I'll use PHP.
If your customer changes subscription, what you have to do is update his current subscription in Braintree to the new plan AND set the new price of the plan too in that call.
Basically plans in Braintree are just templates (as said by pblesi). You can override any value you want. You can in theory create a $1/month plan called tiny in Braintree, but in your code subscribe the user to the tiny plan with a $500/month subscription price.
I think (guessing from here on) that Braintree just provides this system so people can add plans to their apps/websites without updating any code, because you can query all existing Braintree plans on your account and populate your GUI with their contents. If you implement something like this you can add plans later on and they will automatically appear on your site/app. On the other hand you can edit the price for existing plans on their site and it would only impact new subscribers as old customers will keep on paying the old price.
Now for the code, in PHP:
First I create a subscription:
Braintree_Subscription::create([
'paymentMethodToken' => $paymentMethodToken,
'planId' => $planId,
'price' => $price
]);
Price is just a number, the currency depends on your account configuration
Imagine my user changes his subscription on the website, I can update his subscription as follows:
Braintree_Subscription::update($subscriptionId,[
'planId' => $planId,
'price' => $price
]);
where $subscriptionId is the ID of the subscription you created when he/she first signed up (to be stored somewhere with the user info in your db for instance), $planId is the new plan and $price is the price of the new plan.
I've just implemented support for Braintree myself, and indeed, the user manual isn't always very clear, but once you know how it works it's actually a very easy system to use. A lot easier than PayPal recurring billing, for that matter.

How to link related transactions obtained by TransactionSearch and GetTransactionDetails?

TL;DR- How do I know if I really did get paid, via the PayPal NVP API?
Longer version
I'm writing code to automagically process and classify transactions from our PP business account. I have code that calls NVP methods TransactionSearch and GetTransactionDetails and fills a few database tables with the results that are returned. This happens every day for the previous 24 hours' worth of transactions. So far, so good.
I began from the assumption that the same information available via manual CSV export via the PayPal web interface would be available via the API, but I'm now discovering that either this is not the case, or there is another API call I should be making to get the rest of the information I need.
In particular, GetTransactionDetails doesn't seem to return the equivalent of CSV field "Reference Txn ID" and, in a few cases, I can't see how to connect related transactions.
So, my question is how can I obtain the reference transaction ID, or how do I otherwise connect these associated transactions?
Example 1
This is (probably) the most common sort of situation where the reference transaction ID is needed.
Depending on the buyer's funding source, you may either see a purchase complete instantly or, if the transaction must be cleared, complete across three separate transactions:
The original payment, detail of which gives buyer's name, email, address, invoice number, item ID, gross, fee and net amounts etc.
followed immediately by a debit of the net amount
followed, in a few days, by a credit of the net amount.
It is crucial to match the three transactions because you don't know whether the payment will succeed or be declined (and therefore whether you've actually got the money) unless you do.
In the data I have available to me at the moment, there is only one such example of this situation, and calls to GetTransactionDetails for the settlement transactions fail completely ("The transaction could not be loaded") — possibly because, in that one instance, I know that the payment was made with a credit card by somebody who doesn't have a PayPal account.
This might be an anomaly, or it might be the common case. I have seen this triplet of transactions quite frequently in other PayPal accounts, but not this one, so I can't be sure.
Example 2
A payment in a foreign currency will typically generate three transactions, rather like in Example 1:
The original payment (eg in €), the detail of which gives the sender's name and email address etc;
this is then followed by an immediate debit of the (probably net) amount in €
and then an immediate credit in USD.
From the point of view of the NVP API, GetTransactionDetails usually returns values labelled SETTLEAMT and SETTLEAMTCURRENCYCODE for the original payment. No further processing is required.
However, a recent such transaction (for reasons that even PayPal could not adequately explain) did not auto-convert, and the GetTransactionDetails call lacks the settlement values even after the conversion was performed manually.
The transactions are all there — but I cannot see any programmatic way to associate them because an attempt to call GetTransactionDetails on currency conversion transactions returns the error "You can not get the details for this type of transaction".
—
Any advice or experience relating to automatic processing of PayPal transactions? Is there any way to duplicate, programmatically, the same data included in the CSV export?
If necessary, I'd be happy to process the CSV export if there were some way to generate it programmatically, but I don't even know of a way to do that (short of a Selenium-driven solution full of pitfalls).
GetTransactionDetails will include a PARENTTRANSACTIONID if there is a related transaction. For example, a refund transaction would have a parent transaction ID.

How to save credit card and make re-bill based on varying amount and frequency (not recurring billing)) using paypal

I want to save credit card info of customers and later I want to bill them on different time period. Billing amount and frequency may change. Is this possible via paypal??
To do this you'll want to have Reference Transactions enabled on your PayPal account. This allows you to process future orders for existing customers who have 'stored' a Credit Card on a previous order. When processing new orders you/your customer will no longer need the originally used card, just select to 'Use Stored Card'.
However, you're cart/custom code will need to support Reference Transactions in order for this to work.

PayPal Subscription IPN and other

I am wondering is this even possible or is there a simple way to do this. I am building a file-sharing site like Droplr or CloudApp and by fun chance unlike those two sites I do not offer fixed pricing, instead I offer pay-per-use billing on the amount of storage the customer uses up. But there is a small yearly fee for plans.
So lets say customer selects Tier 1 - Basic Plan. The plan allows for 5GB max file size, $5/yr fee and $1.00/gb
How would I go about charging the customer for this? Sure the first $5/yr can processed fairly easy and added to PayPal subscription and recurring payments, but should there be 2nd subscription for the storage?
I would recommend taking a look at the Adaptive Payments API, specifically Preapproval and Pay.
That will allow people to setup preapproved payments with you based on criteria set when the profile is created. Then you can charge them at any time with variable amounts as long as they fall within the profile's criteria.
Another option would be to utilize Reference Transactions (DoReferenceTransaction) after running an original Auth or Sale through Express Checkout or Payments Pro.