Credit card expiration dates - Inclusive or exclusive? - e-commerce

Say you've got a credit card number with an expiration date of 05/08 - i.e. May 2008.
Does that mean the card expires on the morning of the 1st of May 2008, or the night of the 31st of May 2008?

It took me a couple of minutes to find a site that I could source for this.
The card is valid until the last day of the month indicated, after the last [sic]1
day of the next month; the card cannot be used to make a purchase if the
merchant attempts to obtain an authorization.
- Source
Also, while looking this up, I found an interesting article on Microsoft's website using an example like this, exec summary: Access 2000 for a month/year defaults to the first day of the month, here's how to override that to calculate the end of the month like you'd want for a credit card.
Additionally, this page has everything you ever wanted to know about credit cards.
This is assumed to be a typo and that it should read "..., after the first day of the next month; ..."

If you are writing a site which takes credit card numbers for payment:
You should probably be as permissive as possible, so that if it does expire, you allow the credit card company to catch it. So, allow it until the last second of the last day of the month.
Don't write your own credit card processing code. If^H^HWhen you write a bug, someone will lose real money. We all make mistakes, just don't make decisions that turn your mistakes into catastrophes.

Have a look on one of your own credit cards. It'll have some text like EXPIRES END or VALID THRU above the date. So the card expires at the end of the given month.

In my experience, it has expired at the end of that month. That is based on the fact that I can use it during that month, and that month is when my bank sends a new one.

According to Visa's "Card Acceptance and Chargeback Management Guidelines for Visa Merchants"; "Good Thru" (or "Valid Thru") Date is the expiration date of the card:
A card is valid through the last day of the month shown, (e .g ., if
the Good Thru date is 03/12,the card is valid through March 31, 2012
and expires on April 1, 2012 .)
It is located below the embossed account number. If the current transaction date is after the "Good Thru" date, the card has expired.

I process a lot of credit card transaction at work, and I can tell you that the expiry date is inclusive.
Also, I agree with Gorgapor. Don't write your own processing code. They are some good tools out there for credit card processing. Here we have been using Monetra for 3 years and it does a pretty decent job at it.

lots of big companies dont even use your expiration date anymore because it causes auto-renewal of payments to be lost when cards are issued with new expiration dates and the same account number. This has been a huge problem in the service industry, so these companies have cornered the card issuers into processing payments w/o expiration dates to avoid this pitfall. Not many people know about this yet, so not all companies use this practice.

How do time zones factor in this analysis. Does a card expire in New York before California? Does it depend on the billing or shipping addresses?

I had a Automated Billing setup online and the credit card said it say good Thru 10/09, but the card was rejected the first week in October and again the next week. Each time it was rejected it cost me a $10 fee. Don't assume it good thru the end of the month if you have automatic billing setup.

In your example a credit card is expired on 6/2008.
Without knowing what you are doing I cannot say definitively you should not be validating ahead of time but be aware that sometimes business rules defy all logic.
For example, where I used to work they often did not process a card at all or would continue on transaction failure simply so they could contact the customer and get a different card.

Related

Why is Amazon's Vendor Central API not giving POs changed on a certain date?

I'm using Amazon's Vendor Central API to find all purchase orders changed on a given date. The API runs fine, but it seems to be excluding some results. Can someone tell me what I'm missing?
Example:
I want to know of any POs changed on 12/10. I know PO 8ZTZJAZD was changed on that date because if I search for the specific PO I get a changed date of 12/10:
However, when I run the API for any POs on 12/10, I don't get any results:
Why does a record clearly changed on 12/10 not coming up when I ask for all records changed after 12/10 12 a.m. and before 12/10 11:59 p.m.?
As of March 2021, the whole vendor central/direct fulfillment API system is extremely delicate and riddled with bugs, this is unfortunately just something you'll have to deal with using business logic.

odoo 11 accounting fiscal periods

i just installed odoo 11 CE and managed to get the accounting features by activating in the user settings. However the most important functions to create fiscal periods and to close a fiscal year properly seems to be completely missing.
If this is the case and this is only available in the enterprise version the CE version becomes pretty much useless for accounting.
Thanks for any hint
Peter
Peter,
In odoo 11 (and I think since odoo 9) there are not Fiscal Periods anymore. The way to act is to create Date Ranges, that are multi propose ranges to use anywhere.
Conceptually there is not a closing of the fiscal year, but you can filter all your data by Date Ranges and make all your reporting based on this new model.
This seems to be a more flexible and powerful tool, but here is the bad news. One basic thing I think Odoo has missed out is the functionality of close a period or, in other words, to prevent of creating journal entries to the users when they are in a period. You have to use locking dates. This functionality is half implemented but it is very blocking. After the locking date, you cannot register payments because they are creating journal entries after the blocking date. I have searched a lot and I have found this PR in the OCA related with a set of functionalities to solve all this scenario.
Hope it helps to give you a scope of the functionality and limitations.
Cheers,
Pere
You can specify the fiscal year end in Odoo by entering the Fiscal year last day, and specifying locking status as below:
After this, there is no need to make a 'physical closure' for the fiscal year.
In Odoo there is no need to do a specific year end closing entry in
order to close out income statement accounts. The reports are created
in real-time, meaning that the Income statement corresponds directly
with the year-end date you specify in Odoo.
Reference:
https://www.odoo.com/documentation/user/11.0/accounting/others/adviser/fiscalyear.html
From Odoo 11, closing of fiscal years happen automatically at designated year end i.e balances of P&L accounts are zeroed out and the net is carried forward in the Balance sheet. All you need to do is to decide how to allocate the current year earning.

Transaction time - is it Yodlee's time?

On this page, you explain that "most sites do not provide the time stamp for a transaction". Yet, on the example output of getUserTransactions you do show field named postDate and transactionDate. What is the meaning of those fields?
Thanks!
transactionDate- This will return the date on which the transaction happened.
postDate- This will return the date on which the transaction was posted/reflected on the banking website.
For e.g., generally credit card transactions get posted on online banking site after 2-3 days of actual transaction execution.
Note:- This depends on the availability of these details on the bank websites.
On the other hand when Yodlee says -"most sites do not provide the time stamp for a transaction" this means sites do not provide actual timestamp(date + time) when any transaction got executed, while they provide the date.

How to Query for Due Dates in Access 2007

I have a 2 access 2007 tables with the following fields:
Table 1: Loan Release Table
ReleaseDate as Date
Maturity as Date
MemberName as Text
MemberNo as Text
Term (in months) as Number
Mode (M/Q/Semi-Monthly) as Text
LoanType as Text
LoanAmount as Currency
LoanCode as Text
Table 2: Payments Table
ReceiptNo as Text
DatePaid as Date
MemberName as Text
MemberNo as Text
LoanCode as Text
LoanReceivable as Currency
InterestPaid as Currency
I would like to ask on how to use Query to create a temporary table that will display Members that should pay on current date or a specified date base on their Term, Mode of Payment and Loan Type (Regular Loans every 30 days to pay, Special Loans every 45 days to pay) and their remaining balance.
Here's my First Attempted Query: I tried to subtract 30 days from Current Date and it obviously gave me just the transactions last month. I would like it to list all transactions including those for example Member with Regular Loan 12 month term on their 3rd monthly payment, Member with Special Loan that is due today.
I am thinking of creating another table that contains the schedule of payments of every Loan released and then go from there.
Is there another way than this? Like a Query that can be run everyday without the need for a bulky ScheduleOfPayments table?
I'm an office clerk who 'graduated' from Excel and a novice using Access at worst and I'm not afraid of VBA codes if that is necessary.
If you know of a better way of doing this, please do tell me or point me in the right direction. I'm all for learning new things and having read and learned a lot from stackoverflow before, I am sure that with your help, my question is as good as solved.
Thank you guys for reading my inquiry.
You have here two solutions:
You can write a procedure that will, when needed, calculate\generate a matrix containing payment schedule for each loan and compare it to payment done.
You can write a procedure that will, when a loan is created, generate corresponding records in a payment schedule table. further comparison will be done between the ScheduledPayment table and the Payment table.
So basically you have to manage a similar set of data, either as a calculated/on the fly matrix or as a permanent set of data kept in a table.
The second version is by very very far the most effective one. You think of it as bulky but it is exactly the opposite, and indeed what is done every time you get a loan from a bank, where your banker will let you sign the reimbursement schedule.
The table solution will allow you to make use of all querying facilities, while the calculated solution will force you to write specific procedures each time you'll want to do some data mining. Just think about a question like "What are the expected reimbursements for the month of April 2014?". Answering this question with the ScheduledPayment table will be as easy as getting a cafe out of your nespresso machine. The same answer without the ScheduledPayment table will be like having to do the whole coffee production process before getting your cup ready.

Authorize.net - delayed payment and recurring

I have a question regarding Authorize.net.
Heres the scenario:
User signs up and is charged $5 right away for a sample product (and credit card is registered into ARB recurring billing profile). Two weeks later they are subscribed to the monthly product subscription if they don't cancel, and are charged a 'membership' fee on their first monthly payment.
So payments:
First purchase: $5
First month: $20membership + $30/mth
Rest of the months: $30/mth
From my research it looks the first purchase and then setting up a monthly payment with recurring with a two week trial period will be easy.
However, how should I deal with the first month membership payment? It is a one off payment that needs to be delayed two weeks after the first payment. This system being built is very simplistic and am not using any database backend, so solutions must be able to be done at time of purchase, or through the authorize.net backend.
ARB offers trial periods which allows you to set a special price to be charged for a set time period before the regular subscription price kicks in. This will do exactly what you need. As for when the subscription starts, just set the start date to be two weeks from today's date.