Xero API - Bank transactions missing - xero-api

The Xero API doesn't seem to return all bank transactions through the bank transactions endpoint. At least some transactions that are attached to payments and transfers don't seem to be returned. Is there a way around this?

I had the same problem and here is what I got from Xero support:
There are some differences between the BankTransactions API endpoint and the Bank >Transactions screen in the UI.
Most importantly the endpoint does not return payments applied to invoices, expense >claims or transfers between bank accounts. Most of these can be retrieved using other >endpoints.
So it seems that you should use Payments API instead.
The workaround I did was to download both Bank transactions and invoices and union all transactions (I only needed references anyway), but it might make more sense to use Payments API.

Related

What is the distinction between a payment and transaction in the Xero API?

What is the distinction between a payment and transaction in the Xero API? Does a payment create a transaction? Or are transactions only created when they are manually added? Are all organic transactions coming in as payments, rather than transactions?
A Journal entry is created for every type of transaction in Xero. So for the most comprehensive endpoint of the API I'd start there. However the greater level of detail will exist in the supplementary endpoints like invoices, bills, spent money, receive money.
There are other threads on here talking about the difference between "Bank Transactions" and the other API endpoints, as this actually excludes transactions that show in Xero but are not accessible through this specific endpoint.

Late fees for customer profiles with or without recurring billing subscriptions in authorize.net

For a school that has many enrollments of children and their parents making payments, is there a way in the Authorize.net API to charge customer profiles late fees? They may be enrolled in recurring billing subscriptions or not. Does authorize.net allow late fees and balances to be paid? I'm wondering how to implement this with the APIs.
I find these APIs helpful, but not the complete solution:
* Create a Subscription from Customer Profile
* Get Customer Profile
* Get Customer Payment Profile
There is no API call for handling with late fees. If your amounts to charge are going to vary for any reason, adding late fees being an example, you would want to build your own engine for making payments. The best way to do this is to use the CIM API to create and manage payment accounts and then charge against them. That way you can charge a varying amount if a late fee needs to be added. Of course this means you are responsible for handling all payments and cannot count on a built in scheduling engine like the one provided by the ARB API.

retrieve interest rates for credit cards using Yodlee

I am using Yodlee to get the transactional history and summary of accounts for my clients to do some predictive maths on their debt levels.
Is it possible to get the interest rate for a credit card account? Looking in the data model here there are references to APR and interest paid to date.
However using Testdrive These fields are not being returned using: getItemSummaryForItem1 or getContentServiceInfo1.
The banks I am using are ANZ (NZ) and ASB (NZ) I would like to know if these sites do not support credit card interest rates, if they do please let me know what api calls I need to make to retrieve them.
As a data field interest rate(APR) is supported, but it also depends upon the bank whether they provides it or not. If you are existing Yodlee customer, you can send a request to Yodlee Support team to get your doubts clarified. BTW, the API should be used- getItemSummariesForSite or getItemSummaryForItem1( if you are looking for further details, pass correct Data Extents, while making request).

Current PayPal Fees in web API?

Does anyone know if there is a publicly available PayPal resource that would allow me to calculate transaction fees in my Magento code?
For example, if someone buys something for $1.00, I'd like to know if $0.15 of that is a PayPal fee.
If there were a resource, like paypal.com/currentfees.xml or something that I could readout in my PHP code, I could that. Does it exist? I know there are different fees for different payment methods (e.g., AMEX) and fees could change at any time -> So it'd be good to have a dynamic way to calculate how much of Magento's order totals are really PayPal fees.
EDIT: To clarify, I'm not interested in charging customers more, just in knowing how much of my price is going to fees. For bookkeeping.
Thanks!
PayPal fees are not the same across accounts or even by transaction; there are different fees for cross-border transactions, PayPal Here transactions, large-merchant discounts, et cetera.
Have a look at https://www.paypal.com/webapps/mpp/paypal-fees for more detail.
So no, unfortunately you can't pull a resource to find the current fee.
However, PayPal does return the fees paid for each transaction in the API response.
For example, if you're integrated with PayPal Express Checkout, the DoExpressCheckoutPayment API (doc) is used to finalize a transaction. This API call returns a 'PAYMENTINFO_0_FEEAMT' parameter which contains the total fee amount paid for the transaction.
Should you wish to retrieve this information after the transaction has been completed; PayPal also offers the GetTransactionDetails API call (doc). This API call also returns 'FEEAMT' as a parameter.
Simply submit the TRANSACTIONID and read out the FEEAMT.
Note: Fees are only calculated on completed transactions. You won't get a FEEAMT back for any order or authorization-ID's (e.g. those starting with O-xxxxxxxx).

Parallel credit card payments (akin to Paypal Adaptive payments)

I'm not sure this is the right place to ask but anyway:
I have an e-commerce platform that I want to monetize based on a percentage of revenue made (eg. a store that uses my platform has an order for $100, so I get 1% or $1, while they get $99).
Currently I offer paypal and credit card payments (via my merchant bank) to all stores on the platform (ie. all payments made, regardless of the store, are through the same paypal and merchant account). I then pay these stores per month which is ok for the moment because there are only a few stores using the platform.
Moving forward I want to automate this process and ideally have it operate in real time.
Paypal have an "Adaptive Payments" API that allows chained or parallel payments on a single transaction processed in real time. This means I can skim my 1% and pass the rest of the money along my customer in real time.
I was wondering if there is a similar real-time service for Credit Card processing*? If not, is there a bank/merchant that allow API payment access so I can automate payments per day or week? OR should I just transfer all money from my bank to paypal and use this to pay my customers?
*I realise you can process credit card payments through Paypal without having to sign up, but this is less than ideal. I want the credit card processing to happen on my page as at the moment I'm seeing about 70% of orders using this over paypal.
I was wondering if there is a similar real-time service for Credit Card processing?
No there isn't. True merchant accounts do not allow for split payments. Only one entity can receive a payment and it must be the business the merchant account has been set up for. Receiving the payment for someone else is called factoring and is against all of the major credit card issuers' rules. If a merchant account is found to be factoring it will be closed and the merchant who owns the account will be blacklist. This will prevent them from ever having a true merchant account again. Additionally, there is no way to send money with a merchant account other then issuing a refund for prior purchases.
If not, is there a bank/merchant that allow API payment access so I can automate payments per day or week? OR should I just transfer all money from my bank to paypal and use this to pay my customers?
Other then using adaptive payments, this is definitely the easiest and most straight forward way to accomplish this.