Reconciling and Simplifying Transaction History and Wire Queries

Early in our API development cycle we knew a transaction unique identifier would be a valuable add to our feature set. A number of clients were taking on great efforts of their own to assign a unique identifier to records retrieved via the Account History call. Given this challenge and our insider stance we thought it would be easier if we took on the logic and standardization across all transaction sets to alleviate this burden; and to allow the same standard to be leveraged across multiple calls. Not only would this feature help simplify future queries, it could help solve for reconciling new transactions as history was pulled and scraped over a single day. Last, if designed the right way it could act as a unifier between wire warehouse data and core account transaction history.

We found a solution by creating a composite key in the form of a class object serialized to a json string, then converted to a bytearray and back to a base64string. The technical hoop jumping allows us to obfuscate data that is sensitive and makes it look cool (we think so anyway). This is what is returned as the UniqueId in our Account History, Wire Summary and Wire Detail call.

Unique ID is tied closely with Transaction types

We knew a good solution must be unique, permanent, immediate, and universal for every transaction types. In order to solve all 4 tenets we ended up having to use a little creativity and classify transactions into 3 types. On the plus side, all tenets including immediacy hold true for SEN transfers and wire transactions, which have crucial immediacy use cases for quickly scraping and reconciling returned records against subsequent history calls. There is also a group of transaction types for which the UniqueId only becomes permanent after that transaction is submitted and then runs through the next banking day close process (which occurs only on banking days at roughly 8:00 PM PST). As a result, we hold back in creating and displaying those values until they become static. To summarize, there are 3 total transaction types explained below:

  1. Immediate – these include SEN transfers, incoming wires, outgoing wires, and more. Like the name implies UniqueIds for these are available in the account history call immediately after a transaction is submitted.
  2. Delay – this group includes Debit and Credit card transactions amongst others which undergo changes to their metadata during the first close of banking day process after they are submitted. During this initial period you will notice we will return “Pending” as the UniqueId value. After the process run it will be replaced by a permanent usable UniqueId.
  3. Ignore – There is a third transaction code group which are pre-authorizations only. We do not return any value for Unique for these because, once a pre-authorization becomes permanent the transaction code migrates to a different Tran Code in the Immediate or Delay types.

Wire Data Connections

To unify account transactions and wire data, we are running a Webjob every few minutes to process new Wire records, compare against core history, and append the appropriate UniqueId the associated wire warehouse record. This means that Wire Summary and Wire Detail calls will now include a UniqueId which can then be used on subsequent wire calls or Account History calls.

 

Conclusions

For Request and Response specifics please refer to the console pages for each call. You can try it out in the Sandbox by initiating your own Internal or SEN transfers, then pulling back the history for the associated account. We think UniqueId can be a key building block for consuming and utilizing account data over the API, so we’d love to discuss this topic further with you over email or a call. See the detailed TranCode type classifications below or we can send in a file via email, plus help with setting up sample transactions to interrogate. You can always reach us at APIsupport@silvergate.com.

 

TranCode Specifications

TranCode TranCode Description UniqueId Type
20 Deposit Immediate
25 Transfer Credit Immediate
71 Insufficient Funds Charge Immediate
82 Transfer Debit Immediate
90 Check Immediate
4005 SEN TSFR CREDIT 4005 Immediate
4025 API Transfer Credit Immediate
4051 Wire Credit Immediate
4052 Wire Credit Immediate
4054 Foreign Wire Credit Immediate
7580 Construction Proj Disbursement Reversal Immediate
9055 Wire Debit Immediate
9056 Wire Debit Immediate
9057 Foreign Wire Debit Immediate
9058 Foreign Wire Debit Immediate
9061 Wire Debit Immediate
9062 Wire Debit Immediate
9063 Foreign Wire Debit Immediate
9064 Foreign Wire Debit Immediate
9071 Foreign Outgoing Wire Fee Immediate
9073 Domestic Outgoing Wire Fee Immediate
9075 Domestic Outgoing Wire Fee Immediate
9077 Foreign Outgoing Wire Fee Immediate
9082 API Transfer Debit Immediate
9084 SEN TSFR DEBIT 9084 Immediate
23 ATM Credit (authorization - temporary) Ignore
53 ATM Debit (authorization - temporary) Ignore
64 POS Debit (authorization - temporary) Ignore
10 Debit Reversal (Non-Printing) Delay
15 Interest Paid at Closing Delay
16 Closing Debit Delay
21 ACH Credit Delay
22 ATS Credit Delay
28 Telephone Transfer Deposit Delay
30 Credit Memo Delay
39 Interest Earned Delay
41 Debit Reversal (Printing) Delay
46 Mail / Lockbox Deposit Delay
51 Credit Reversal (Printing) Delay
52 Chargeback Delay
54 Branch Withdrawal Delay
56 Check Delay
60 Debit Memo Delay
61 Returned/Reprocessed Item Handling Fee Delay
68 Debit Accruals Delay
75 Service Charge Delay
76 Cashiers Check Delay
83 Bank Float Delay
84 Telephone Transfer Withdrawal Delay
86 ATS Debit Delay
89 ACH Debit Delay
92 Loan Payment Delay
103 Refund Outgoing Wire Fee Delay
111 Refund Returned/Reprocessed Item Fee Delay
1075 Service Charge Credit Delay
2025 eBANKING EXTERNAL TRANSFER CREDIT Delay
2100 ACH Return Credit Delay
2190 ACH Offset for Originated Debits Delay
2191 Federal Benefit Payment Delay
2195 ACH Medical Payment Credit Delay
2202 Surcharge Rebates Credit Delay
2274 POS Purchase Return - PIN Delay
2275 POS Purchase Return - PIN Delay
2500 CD Interest Transfer to Internal DD/SV Delay
2504 Sweep Primary Credit Delay
2505 Sweep Secondary Credit Delay
2506 ODP Primary Credit (Cycle) Delay
2510 ZBA Primary Credit Delay
2511 ZBA Secondary Credit Delay
4020 Remote Deposit Delay
4030 Mobile Deposit Delay
5101 Stop Payment Fee Delay
5302 ACH Origination Fee Delay
5303 Office Deposit Fee Delay
7082 eBANKING EXTERNAL TRANSFER DEBIT Delay
7100 ACH Return Debit Delay
7189 Bill Pay Debit Delay
7190 ACH Offset for Originated Credits Delay
7214 ATM Withdrawal Delay
7215 ATM Withdrawal Delay
7255 POS Purchase With PIN Delay
7264 POS Purchase Non-PIN Delay
7265 POS Purchase Non-PIN Delay
7504 Sweep Primary Debit Delay
7505 Sweep Secondary Debit Delay
7506 ODP Secondary Debit (Cycle) Delay
7510 ZBA Primary Debit Delay
7511 ZBA Secondary Debit Delay