Wire Reporting APIs are Here!
We have received multiple requests to get more expansive reporting on wire activity from customers that generate large volumes of incoming and outgoing wires. The feedback has been that, though the debits/credits associated with wire transactions always appear in the account history, often times the wire details are relied upon to attribute incoming wires to customer accounts which are held on our client’s systems. A bank’s core system will usually contain 5 or less fields related to a wire, and those fields are usually limited to the amount of the wire, some basic description lines, and payment dates. Full wire metadata is often not available via online banking, statements, or other methods, leaving some customers without visibility into their wire volume detail. Thus, being able to quickly and consistently look at wire metadata to understand where incoming funds should be attributed to is an important feature we are happy to provide via 2 new API calls:
- Wire Summary
- Wire Detail
In combination with the ability to create sub-accounts, transfer between accounts, and view account history over the API, fully automated account reconciliation and attribution is a reality many of our customers are leveraging the API for today.
How It Works
We’ve setup a process where data for all incoming and outgoing wires to Silvergate is extracted from our wire system and imported into our API database on a real-time basis. Via the API, we’re exposing this data so that clients can query their own wire records and pull back either the top 23 fields via the Wire Summary Post (many records at once) or 106 fields via the Wire Detail Post (1 at a time).
Wire Summary
The first method is the Account/Wiresummary Post. Simply put, it queries wire data and returns the resultant record(s)s using up to 4 filters. See API definition specifics on the API tab within this portal for format, optionality, etc. This summary should be expansive enough to solve 80% of all attribution related use cases. Additionally, you can see what wires may be held in outgoing review queues, giving you increased visibility into the wire workflow.
Wire Detail
The second method is the Account/Wiredetail Post. Like its partner, it queries wire data and returns the resultant record, but it uses only 2 filters and will only return 1 wire record at a time (for performance reasons). The benefit is the exhaustive data detail it provides as it will bring back 106 data points for each record. This method is especially useful for difficult “edge” cases, or instances where granular detail on a wire is required.
Tying Wire Reporting and Transaction History Data Sets Together
Did you know that every wire record will have a corresponding Transaction History Record? Its true, and to see the associated Transaction History, you can pull the transaction history for the same time period and look in Transaction Description Line 2 (TranDescS). The description starting with “PRN:XXXXXX” will be the same as the eWire TransactionID. The team is working to further enhance the tying of these two datasets through advanced versions of current Transaction History API endpoints.
Wire Data Deeper Dive
To help shed light on the 209 possible wire data points we have access to (so far we’re exposing 106 fields we think may be of interest), we broke it down into the related data groups explained below:
Group Name |
Explanation |
eWire Info |
These are the base fields from our wire system called eWire, including the unique Transaction Number which also shows up in transaction descriptions in online banking and statements. |
Basic Payment Info |
Includes basics like the Amount of the transaction and informative Fedwire codes. |
Sending Bank |
This group describes the bank which sends the currency. |
Receiving Bank |
This is group describes the bank which receives the currency. |
Originator |
The individual or entity whose currency is the source of funds. |
Originating Bank |
The bank of the individual or entity whose currency is the source of funds. |
Instructing Bank |
This is sometimes used when there is an extra bank facilitating the transfer. |
Beneficiary |
The ultimate recipient of the funds. |
Beneficiary Bank |
The ultimate bank of the recipient. |
Intermediary Bank |
This is sometimes used when there is an extra bank facilitating the transfer. |
Reference Numbers |
These are federal reference numbers including IMAD and OMAD data points. |
Charges |
Data related to any charges incurred across any participating bank. |
For further field by field definition, see this table:
Data Group Name |
Field Name |
Sample data |
Data Type |
Length |
eWire Info |
TransactionNumber_1 |
201709060037038 |
varchar |
15 |
MethodOfPayment_2 |
7 |
varchar |
10 |
|
InstitutionCode_3 |
H34 |
varchar |
10 |
|
BranchCode_4 |
1 |
varchar |
10 |
|
DepartmentCode_5 |
130 |
varchar |
10 |
|
BookCreditInstitutionCode_6 |
H34 |
varchar |
10 |
|
BookCreditBranchCode_7 |
1 |
varchar |
10 |
|
Basic Payment Info |
PaymnentDate_8 |
42984 |
date |
10 |
ValueDate_9 |
42984 |
date |
10 |
|
ExternalSequenceNumber_10 |
4265000351 |
varchar |
10 |
|
CurrencyCode_11 |
USD |
varchar |
10 |
|
Amount_12 |
10000000 |
integer (2 decimals) |
10 |
|
TotalBillCharges_13 |
30 |
integer (2 decimals) |
10 |
|
TotalDeductCharges_14 |
0 |
integer (2 decimals) |
10 |
|
BeneficiaryType_15 |
N |
varchar |
10 |
|
FedWireProductCode_16 |
CTR |
varchar |
10 |
|
FedwireType_17 |
10 |
varchar |
10 |
|
FedwireSubType_18 |
08 |
varchar |
10 |
|
AchClass_19 |
0 |
varchar |
40 |
|
AchCode_20 |
0 |
varchar |
40 |
|
SourceIndicator_21 |
FED |
varchar |
10 |
|
ReferenceForBeneficiary_22 |
1709061625000030 |
varchar |
16 |
|
SendersReference_23 |
3230758800055350 |
varchar |
16 |
|
Sending Bank |
SendingBankType_24 |
F |
varchar |
10 |
SendingBankId_25 |
325181248 |
varchar |
10 |
|
SendingBankName_26 |
Example Fed Bank |
varchar |
35 |
|
SendingBankAddress1_27 |
101 Main St. |
varchar |
40 |
|
SendingBankAddress2_28 |
New York |
varchar |
25 |
|
SendingBankAddress3_29 |
NY |
varchar |
10 |
|
AdviceAddress_30 |
0 |
varchar |
40 |
|
AdviceMethod_31 |
0 |
varchar |
40 |
|
Receiving Bank |
SwiftAdviceMessageType_32 |
0 |
varchar |
40 |
ReceivingBankType_33 |
F |
varchar |
10 |
|
ReceivingBankId_34 |
323371076 |
varchar |
11 |
|
ReceivingBankName_35 |
Example Fed Bank |
varchar |
35 |
|
ReceivingBankAddress1_36 |
101 Main St. |
varchar |
40 |
|
ReceivingBankAddress2_37 |
San Diego |
varchar |
25 |
|
ReceivingBankAddress3_38 |
CA |
varchar |
10 |
|
AdviceAddress_39 |
0 |
varchar |
40 |
|
AdviceMethod_40 |
0 |
varchar |
40 |
|
Originator |
SwiftAdviceMessageType_41 |
0 |
varchar |
40 |
OriginatorType_42 |
X |
varchar |
10 |
|
OriginatorId_43 |
205000100013506 |
varchar |
29 |
|
Name_44 |
Satoshi Nakamoto |
varchar |
35 |
|
Address1_45 |
100 Main St. |
varchar |
35 |
|
Address2_46 |
City, zip |
varchar |
35 |
|
Address3_47 |
City, zip, country |
varchar |
35 |
|
AdviceAddress_48 |
0 |
varchar |
161 |
|
AdviceMethod_49 |
0 |
varchar |
10 |
|
SwiftMessageType_50 |
0 |
varchar |
40 |
|
Originating Bank |
OriginatingBankType_51 |
S |
varchar |
10 |
Id_52 |
BANKXXXXX |
varchar |
14 |
|
Name_53 |
Fake Bank |
varchar |
35 |
|
Address1_54 |
100 Main St. |
varchar |
35 |
|
Address2_55 |
City, zip |
varchar |
35 |
|
Address3_56 |
City, zip, country |
varchar |
35 |
|
AdviceAddress_57 |
0 |
varchar |
40 |
|
AdviceMethod_58 |
0 |
varchar |
40 |
|
SwiftAdviceMessageType_59 |
0 |
varchar |
40 |
|
InstructingBankType_60 |
S |
varchar |
10 |
|
Id_61 |
BANKXXXXX |
varchar |
11 |
|
Name_62 |
Fake Bank |
varchar |
35 |
|
Address1_63 |
100 Main St. |
varchar |
35 |
|
Address2_64 |
City, zip |
varchar |
35 |
|
Address3_65 |
City, zip, country |
varchar |
35 |
|
AdviceAddress_66 |
0 |
varchar |
40 |
|
AdviceMethod_67 |
0 |
varchar |
10 |
|
SwiftAdviceMessageType_68 |
0 |
varchar |
40 |
|
Beneficiary |
BeneficiaryType_69 |
0 |
varchar |
10 |
BeneficiaryId_70 |
1234567890 |
varchar |
24 |
|
Name_71 |
Bene Name |
varchar |
35 |
|
Address1_72 |
101 address |
varchar |
35 |
|
Address2_73 |
101 address |
varchar |
35 |
|
Address3_74 |
101 address |
varchar |
26 |
|
AdviceAddress_75 |
0 |
varchar |
136 |
|
AdviceMethod_76 |
8 |
varchar |
10 |
|
SwiftAdviceMessageType_77 |
0 |
varchar |
40 |
|
Beneficiary Bank |
BeneficiaryBankType_78 |
D |
varchar |
10 |
Id_79 |
110000100010240 |
varchar |
15 |
|
Name_80 |
FRB WIRE SETTLEMENT |
varchar |
35 |
|
Address1_81 |
101 address |
varchar |
35 |
|
Address2_82 |
101 address |
varchar |
35 |
|
Address3_83 |
101 address |
varchar |
35 |
|
AdviceAddress_84 |
0 |
varchar |
25 |
|
AdviceMethod_85 |
8 |
varchar |
10 |
|
SwiftAdviceMessageType_86 |
0 |
varchar |
40 |
|
Intermediary Bank |
IntermediaryBankType_87 |
S |
varchar |
40 |
Id_88 |
1234567890 |
varchar |
40 |
|
Name_89 |
Bene Name |
varchar |
40 |
|
Address1_90 |
101 address |
varchar |
40 |
|
Address2_91 |
101 address |
varchar |
40 |
|
Address3_92 |
101 address |
varchar |
40 |
|
AdviceAddress_93 |
0 |
varchar |
40 |
|
AdviceMethod_94 |
0 |
varchar |
40 |
|
SwiftAdviceMessageType_95 |
0 |
varchar |
40 |
|
Basic Payment Info |
OriginatorToBeneficiaryInfoLine1_96 |
322286803 |
varchar |
35 |
OriginatorToBeneficiaryInfoLine2_97 |
3001215700 |
varchar |
35 |
|
OriginatorToBeneficiaryInfoLine3_98 |
18593612 |
varchar |
35 |
|
OriginatorToBeneficiaryInfoLine4_99 |
520286326 |
varchar |
35 |
|
BankToBAnkInfoLine1_100 |
405 |
varchar |
35 |
|
BankToBAnkInfoLine2_101 |
0 |
varchar |
35 |
|
BankToBAnkInfoLine3_102 |
0 |
varchar |
35 |
|
BankToBAnkInfoLine4_103 |
0 |
varchar |
26 |
|
BankToBAnkInfoLine5_104 |
0 |
varchar |
10 |
|
BankToBAnkInfoLine6_105 |
0 |
varchar |
40 |
|
eWire Info |
AdviceInformationLine1_106 |
0 |
varchar |
30 |
AdviceInformationLine2_107 |
0 |
varchar |
40 |
|
AdviceInformationLine3_108 |
0 |
varchar |
40 |
|
AdviceInformationLine4_109 |
0 |
varchar |
40 |
|
AdviceInformationLine5_110 |
0 |
varchar |
40 |
|
AdviceInformationLine6_111 |
0 |
varchar |
40 |
|
Reference Numbers |
ChipsIsn_112 |
0 |
varchar |
40 |
ChipsOsn_113 |
0 |
varchar |
40 |
|
ChipsPsn_114 |
0 |
varchar |
40 |
|
ChipsRsn_115 |
0 |
varchar |
40 |
|
ChipsSsn_116 |
0 |
varchar |
40 |
|
ImadCycleDate_117 |
20170906 |
date |
10 |
|
ImadCalendarDate_118 |
906 |
date (MMDD) |
10 |
|
ImadApplicationId_119 |
0 |
varchar |
40 |
|
Imsn_120 |
57377 |
varchar |
10 |
|
ImadLtermId_121 |
ABC1234 |
varchar |
10 |
|
ImadTime_122 |
2336 |
date |
10 |
|
OmadCycleData_123 |
20170906 |
date |
10 |
|
OmadCalendarDate_124 |
906 |
date |
10 |
|
OmadApplicationId_125 |
FT01 |
varchar |
10 |
|
OmadLtermId_126 |
ABC1234 |
varchar |
10 |
|
Omsn_127 |
62496 |
varchar |
10 |
|
OmadTime_128 |
2336 |
varchar |
10 |
|
Basic Payment Info |
CurrencyInstructedAmountIncomingMt103_129 |
USD12700,00 |
varchar |
13 |
ExchangeRateIncomingMt103_130 |
12662000 |
varchar |
10 |
|
Charges |
DetailOfChanrgesIncomingMt103_131 |
SHA |
varchar |
10 |
SendersChargesIncomingMt103_132 |
USD25,00 |
varchar |
10 |
|
SendersChargesIncomingMt103_133 |
USD25,00 |
varchar |
10 |
|
SendersChargesIncomingMt103_134 |
USD25,00 |
varchar |
40 |
|
SendersChargesIncomingMt103_135 |
0 |
varchar |
40 |
|
ReceiversChargesIncomingMt103_136 |
0 |
varchar |
40 |
|
Basic Payment Info |
TransactionTypeCodeIncomingMt103_137 |
0 |
varchar |
40 |
Reference Numbers |
EntryDate_138 |
42985 |
date |
16 |
CompletionDate_139 |
42984 |
date |
10 |
|
CancelDate_140 |
42984 |
date |
10 |
|
TerminateDate_141 |
0 |
date |
40 |
|
RolloverDate_142 |
42983 |
date |
10 |
|
PrintedDate_143 |
0 |
date |
40 |
|
eWire Info |
OfacCheckFlag_144 |
42 |
varchar |
10 |
Basic Payment Info |
EdiFlag_145 |
0 |
varchar |
10 |
PreNotificationFlag_146 |
0 |
varchar |
10 |
|
eWire Info |
TemplateName_147 |
0 |
varchar |
13 |
TemplateVersionNumber_148 |
1 |
varchar |
10 |
|
Memo_149 |
0 |
varchar |
536 |
|
Basic Payment Info |
BeneficiaryCountryCode_150 |
0 |
varchar |
10 |
BeneficiaryBankCountyCode_151 |
0 |
varchar |
40 |
|
ReasonPaymentLine1_152 |
0 |
varchar |
40 |
|
ReasonPaymentLine2_153 |
0 |
varchar |
20 |
|
DebitAccountType_154 |
D |
varchar |
10 |
|
DebitAccountId_155 |
000000001234567 |
varchar |
15 |
|
CreditAccountType_156 |
D |
varchar |
10 |
|
CreditAccountId_157 |
000000001234567 |
varchar |
15 |
|
LocalAmount_158 |
10000000 |
integer (2 decimals) |
10 |
|
PaidAmount_159 |
10000000 |
integer (2 decimals) |
10 |
|
OverrideCharges_160 |
30 |
integer (2 decimals) |
10 |
|
RemittanceCurrency_161 |
USD |
varchar |
10 |
|
RemitanceAmount_162 |
0 |
integer (2 decimals) |
10 |
|
RemitanceAppliedRate_163 |
0 |
varchar |
10 |
|
RemitanceType_164 |
0 |
varchar |
40 |
|
AdditionalPaymentDataFlag_165 |
0 |
varchar |
40 |
|
CoverOriginatorType_166 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOriginatorId_167 |
0 |
varchar |
40 |
|
Name_168 |
0 |
varchar |
40 |
|
Address1_169 |
0 |
varchar |
40 |
|
Address2_170 |
0 |
varchar |
40 |
|
Address3_171 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOrderingBankType_172 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOrderingBankId_173 |
0 |
varchar |
40 |
|
Name_174 |
0 |
varchar |
10 |
|
Address1_175 |
0 |
varchar |
40 |
|
Address2_176 |
0 |
varchar |
40 |
|
Address3_177 |
0 |
varchar |
40 |
|
AdditionalPaymentDataIntermediaryBankType_178 |
0 |
varchar |
40 |
|
AdditionalPaymentDataIntermediaryBankId_179 |
0 |
varchar |
40 |
|
Name_180 |
0 |
varchar |
40 |
|
Address1_181 |
0 |
varchar |
40 |
|
Address2_182 |
0 |
varchar |
40 |
|
Address3_183 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBeneficiaryBankType_184 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBeneficiaryBankId_185 |
0 |
varchar |
40 |
|
Name_186 |
0 |
varchar |
40 |
|
Address1_187 |
0 |
varchar |
40 |
|
Address2_188 |
0 |
varchar |
40 |
|
Address3_189 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBeneficiaryType_190 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBeneficiaryId_191 |
0 |
varchar |
40 |
|
Name_192 |
0 |
varchar |
40 |
|
Address1_193 |
0 |
varchar |
40 |
|
Address2_194 |
0 |
varchar |
40 |
|
Address3_195 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOriginatorToBeneficiaryInfoLine1_196 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOriginatorToBeneficiaryInfoLine2_197 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOriginatorToBeneficiaryInfoLine3_198 |
0 |
varchar |
40 |
|
AdditionalPaymentDataOriginatorToBeneficiaryInfoLine4_199 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine1_200 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine2_201 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine3_202 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine4_203 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine5_204 |
0 |
varchar |
40 |
|
AdditionalPaymentDataBankToBankInfoLine6_205 |
0 |
varchar |
40 |
|
AdditionalPaymentDataCurrencyInstructedAmtMt103_206 |
0 |
varchar |
40 |
|
AdditionalPaymentDataData_207 |
0 |
varchar |
40 |
|
DebitCustomer_208 |
0 |
varchar |
40 |
|
CreditCustomer_209 |
0 |
varchar |
40 |
Best of luck in leveraging this new feature. If you have questions or would like a detailed session with the API team, please contact us at APISupport@silvergatebank.com
The Silvergate API Team