Note: this article is in reference to European institutions only
After a transaction has been posted on your banking statement, it will be associated with two distinct DateTime values: the BookingDateTime and the ValueDateTime. To provide some context:
- The
BookingDateTimesignifies the date and time when a transaction entry is posted to an account - The
ValueDateTimerepresents the date and time at which assets become available to the account owner for credit entries or cease to be available to the account owner in case of debit transaction entries
When Plaid returns a posted transaction via the transactions API, it will consistently return the BookingDateTime as the posted date and time. This is because returning the BookingDateTime is mandatory as per the Open Banking specification, meaning banks must return this value in their API responses. In contrast, the ValueDateTime is optional as per the Open Banking specification, meaning that banks are not obliged to provide the ValueDateTime value.
Generally, most banks will use the BookingDateTime as the posted date and time for transactions on banking statements. However, it's worth noting that a few banks, with Barclays bank being a notable example, opt to use the ValueDateTime on their banking statements instead.
To determine if a date discrepancy is related to this issue, you can examine Plaid's transactions API response and verify the dates returned in the date and authorized_date fields. The date field corresponds to the BookingDateTime, while the authorized_date represents the ValueDateTime.