Are there any APIs available in the UK to allow someone to look up the transaction code (company name that appears in your bank statements) and get extra information about that transaction.
For example, if I had a transaction at a petrol station it could see that the transaction was for a petrol station and suggest the category to be "Vehicle Fuel" or something like that?
Must be able to specifically handle data from UK businesses.
I think what you're referring to is 'Transaction Description'.
This data is completely controlled by the organisation which debits the account so there is no standard, also some organisations also include transaction details in this making lookups extremely complex. Some examples below:
Shell Petrol Station CD 5487 < Includes last four digits of card
Some Restaurant 15/10 < Includes date
Google Apps Tran #16598745 < Includes transaction code
There are some sites that have an ability to search these transaction descriptions but I think these are user contributed, there is no official source as far as I'm aware.
Related
Let us assume there is a situation when I have an invoice from a supplier to my company (e.g. 1000 EUR). My company returns all the goods because of a problem. The supplier shall issue a credit invoice in amount of 1000 EUR, which I register in my system. As a result I will have (on behalf of the supplier) an account payable of 1000 EUR and an account receivable in the same amount. What is the preferred way of handling this situation, because there will be no money transferred, either way.
Should I generate a paymentApplication to both invoices? I want to see them as +1000 -1000 = 0 EUR.
The current data model and services do not support applying an invoice to an invoice, i.e. canceling part or all of one invoice with another. That is something I have considered but IMO is messy... even if it is a common practice in certain parts of the world (from my limited knowledge of it an archaic practice that isn't so commonly used any more). That could be supported though, I have certainly considered it (adding an entity or perhaps modifying PaymentApplication to support it, adding a service to do it and a corresponding GL posting service to balance AP/AR accounts).
Right now the best thing to do a cancel the original invoice, which does the proper reverse GL postings if the invoice has already been posted.
If you want both invoices in the system and canceling entries somewhere the currently supported approach is to use a FinancialAccount, basically use FinancialAccount payments to pay both invoices and then the balance of the FinancialAccount represents the amount due or owed to the external party. There is full support for these sorts of FinancialAccount transactions, doing payments both ways (withdrawals and deposits), representing the liability for positive balances in the GL, etc.
I am successfully pulling transactional data, but all transactions have a categoryLevelId of 3. In the getUserTransactionCategories API, I see one item containing a childCategory block with items listed as categoryLevelId: 4.
How do I access user transactions with more in-depth categorization data? For example, I have a transaction with a merchantName of "Dunkin' Donuts". This is a coffee shop, so I'd like to be able to differentiate this transaction from a dine-out restaurant.
I have tried a competing aggregator (Plaid). They have the same concept of supercategories, categories, and subcategories. These are the categories they support. Is there something like that with Yodlee?
categoryLevelId:4 is a sub category created by the user.
This means user can create sub-categories under a specific category and re-categorize transactions to that specific category, Yodlee will learn that and onward transactions for that users having the same description keywords will be categorised.
I have hear from the some where the char of account is used based on the different country it means that the char of account used based on different different country and analytical account is used as in service type of products.
I don't know am i right or wrong.
Please clarify me in depth which situation we are using the chart of account and which is not and which situation we are using the analytical account in ODOO (Formally) and which is not.
In principle, accounts that made up the chart of accounts are taken into general ledger posting i.e used to prepare BS, P/L etc, while the analytical accounting are mainly used only for companies internal use and doesn't affect anything in real accounting.
The general accounting system is a legal obligation. It must conform to certain accounting principles and must represent a fair picture of the financial situation of the company by producing a balance sheet and a profit and loss statement. Its foundation is the Chart of Accounts, made up of eight classes. Classes 1-5 are balance sheet accounts and classes 6 and 7 (expenses and revenues) are used for the profit and loss statement. All journals and accounts post to the General Ledger.
The second accounting system used in some countries is called Analytical Accounting. Its main purpose is to track expense and revenue accounts by categories in order to derive profit and loss by activity. Its foundation is a separate Chart of Accounts made up of a single class (class 9). Its journals and accounts post to a separate ledger (the Analytical Ledger.)
Some European countries use two types of accounting systems. (The United States and most other countries use only one.)
The chart of accounting will differ from country to country. For example US uses Account receivable and Account payable accounts which is equal to Debtors and Creditors accounts in Indian accounting. So Odoo keeps the chart of account based on the country.
Chart of Accounts are real accounts used for legal Purpose but Analytic Accounts are Just like same but only for Analysis Purpose like Budget Management Purpose etc.
How do the rest of you handle complex names when submitting a transaction to Authorize.net using AIM?
Nearly every ecommerce application on the planet asks the user to fill in the "Name as it appears on your credit card". For some odd reason, Authorize.net wants you to submit x_First_Name and x_Last_Name however.
This is fine when you're dealing with Mary Jones or Jack Smith. It becomes a real hassle when you've got Margret A. Jones-Robinson and H. William Robert Van Horn, Sr. though.
Is there a best practice here?
First & Middle names in the x_First_Name field?
Last Name, Hyphenated Name and/or Suffix in the x_Last_Name field?
Has anyone developed a routine to parse names accordingly?
Thanks!
Have two fields on your payment form. One for their first name and one for their last name. However the customer chooses to complete the form is how you should submit it (and save it in your database if you choose to do so). FYI, the name on the credit card is not used in the processing of the credit card so you do not have to transmit it to Authorize.Net to process the transaction. You should do it anyway as it helps to keep your records accurate and complete which is handy when doing audits of your transaction history.
You should generally try to avoid using one field for names as it opens up the possibility for people to enter bad information like, "The Smith Family" or "Barabara and Steve". By having two clearly delimited fields you greatly reduce the occurrence of this.
You should use 2 fields on your payment section. First name and last name.
The name on the credit card is actually used by certain cards for some services, so if you signed up for AVS and fraud detection they will use that name and provide feedback as to if its a match or not.
Alternatively, and what we have done in the past is ask the customer for:
-prefix
-first name
-middle initial
-last name
-suffix
This allows the customer to feel in control and you avoid them filling garbage in the 2 main fields (first name, last name). Authorize.net and other merchant service providers dont care for then other fields and you may choose not to either, it is just a way to keep the data "cleaner".
We create point of sale software for the mac, and are looking to revamp our tax engine. It's pretty simple now, with taxes consisting of a name, code and rate that can be applied to every product individually. While this is good enough for some people, we've had lots of requests to handle more advanced situations. Some examples are US City/County sales tax, Canadian compound (stacked) taxes, French ecotax and NYC luxury tax.
We've identified most of the characteristics that these taxes have and are leaning towards a sort of rule-engine based implementation. We don't have to support every case out there, but we want to be able to extend it if needed (to avoid another rewrite).
We're looking for advise from people who built something like this before, or examples of projects that try to solve the same in an elegant way.
My suggestion would be to use database tables for what they are good for (storing values) and rules for what they are good for (business logic). I would certainly not put things like tax rates or lists of jurisdictions in rules - those should be in tables. What I would use a rules engine for is defining the logic that determines which rate to apply to which transactions. So, for instance, if I buy a set of products online from a company based in State X that ships from State Y to three different locations, what tax rates apply to which parts of the transaction?
This combination of rules and database tables is very common - the rules make sure you look up the right things while the tables aid in reporting etc. For instance, the California DMV did this with vehicle registration fees - all the various fees are stored in a database while the rules that determine which fee applies to which car are managed in a rulebase.
If you try and put everything in rules you will not be able to report well and if you try and put everything in database tables you will end up with dozens of tables to manage all the exceptions and corner cases.
JT
I would recommend a set of database tables and joins.
Example:
Jurisdiction: list of states, counties, countries, cities, etc.
Product: obvious
Store: list of locations you sell from
StoreJurisdiction(StoreID, JurisdictionID): the list of Jurisdictions the store is
responsible to collect taxes for
ProductTaxCode(ProductID int, TaxCodeID int): the type of product for the purposes of taxes: basic, luxury, etc.
JurisdictionTaxCodeRate(JurisdictionID, TaxCodeID, InterestRate, RateType): for each applicable combination of Jurisdiction and Tax Code, provide the tax rate to be applied, and the type of rate (compound, simple, etc.).
To find the list of taxes to apply, all you need is an INNER JOIN of the store, its jurisdictions, the jurisdictiontaxcoderates for those Jurisdictions, and the product's tax codes.
You could define ProductTaxCode as a View so all products receive a default TaxCode unless a special one is provided. By abstracting TaxCode, you can have the same metadata about a product ("Food" for instance) apply to different regions in different ways. If a particular jurisdiction has its own definition of "food", you just add a jurisdiction-specific code and apply it to products as needed.
This may require some tweaking for Internet purchases, wholesale purchases, and other situations where the sale is somehow exempt from taxes or the customer is responsible for remitting them. It would also need tweaking for situations where the customer's location, rather than the store, decides the tax rate.
Other tweaks: here in Texas, for instance, we have a "tax-free" weekend where state and local taxes are not collected on some classes of products where the individual item's sale price is less than $100. The idea is to provide cheaper school supplies, clothing, etc. for children heading off to school for a new year. This sort of tweak could be implemented by having a date range table for each JurisdictionTaxCodeRate going off in the future as far as they can be planned.
Here is an example of a "home rule" city in the Denver, CO metropolitan area:
http://www.c3gov.com/pages/about/division_salestax.html
You, as a retailer, may also need to send the tax payments to different locations. For cities that are not "home rule" cities (which is a special term that probably only applies to Colorado, but then probably every state has some equally special term like it), you'll send all the tax payments to the state who will then deal them out to the relevant parties. Colorado has a feature where there are "special tax districts" that are permitted to collect sales taxes for certain benefits (on the example link, RTD is the public transportation district, and "Invesco Field" is the stadium where the Denver Broncos play).
To expand upon Mr Tallent's answer on this thread, you'll need to also include in the Jurisdiction table some way of representing that the taxes may go to different places.