SEN Data and Automated Attribution
The Silvergate Exchange Network (SEN) allows instant transfers 24/7/365 between participating Silvergate customers. To participate, companies need to onboard to SEN; a customer’s service contact(s) can help facilitate legal agreements and connections. SEN transfers can be initiated via 3 channels: Online banking (aka BeB), API, or through the Silvergate Portal (in Alpha/Beta phase as of May 2020). Each methods translates to unique results on our back end core banking system, so that API consumers can automatically attribute source of funds and analyze transaction history.
Sending Transfers via API
To transfer U.S. dollars via SEN, use the POST account/transfersen endpoint. Use link for Request Body definitions.
Connection to GET History and Attributing SEN Transaction Details
The keys to identifying SEN transfers via GET history are:
- Tran Codes (TRANCD) illustrated in the following tables, specific to originating channel. For complete list of tran codes, see this post.
- Description Lines which serve the purpose of adding critical metadata.
- Note each record has a SEN metadata sub object labeled "SenTransferResponse", where standard descriptive data is pre-parsed. It is available on SEN data for API and Portal transactions but not for Online Banking SEN as this is a legacy method.
The above are further illustrated in the table below. Also reference detailed GET history info here.
Transaction Type | TRANCD | TRANDESC (aka Description Line 1, is always “stamped” with data as described below) | TRANDESCS (aka Description line 2, holds optional memos) |
---|---|---|---|
SEN Debit via API | 9084 (API v2) and 9086 (API v3) |
|
Values entered by sender in transferSEN Body “AccountFromDescription2” are mapped to this field |
SEN Debit via Portal | 9028 |
|
Values entered by sender in Portal Memo are mapped to this field |
SEN Debit via Online Banking | 82 |
|
TRANDESC captures optional sender memo from online banking; and if TRANDESC exceeds 40 characters, remaining characters entered by sender are mapped to the TRANDESCS field |
SEN Credit via API | 4005 (API v2) and 4007 (API v3) |
|
Values entered by sender in transferSEN Body “AccountToDescription2” are mapped to this field |
SEN Credit via Portal | 4028 |
|
Values entered by sender in Portal Memo are mapped to this field |
SEN Credit via Online Banking | 25 |
|
TRANDESC captures optional sender memo from online banking; and if TRANDESC exceeds 40 characters, remaining characters entered by sender are mapped to the TRANDESCS field |
POST transferSEN Body Example
{
"Amount": 1,
"AccountNumberFrom": "1111111111",
"AccountNumberTo": "2222222222",
"AccountFromDescription2": "ID 6MacE3E16XVe18j",
"AccountToDescription2": "ID 6MacE3E16XVe18j"
}
Response from GET account/history endpoint as the Initiator of the API SEN transfer [1]
{
"TRANSACTION": [
{
"TRANDATE": "2020-04-01",
"TRANCD": "9084",
"TRANAMT": 1.00,
"TRANDESC": "SEN to 1111111111+1245118573661",
"TRANDESCS": "ID 6MacE3E16XVe18j",
"DRCRFLAG": "D",
"SenTransferResponse": {
"CounterPartyAccountNumber": "1111111111",
"Timestamp": "1245118573661",
"SenderMemo": "ID 6MacE3E16XVe18j",
"CounterPartyLegalName": null
}
}
]
}
Response from GET account/history endpoint as the Receiver of the API SEN transfer [2]
{
"TRANSACTION": [
{
"TRANDATE": "2020-04-01",
"TRANCD": "4005",
"TRANAMT": 1.00,
"TRANDESC": "SEN from 1111111111+1245118573661",
"TRANDESCS": "ID 6MacE3E16XVe18j",
"DRCRFLAG": "C",
"SenTransferResponse": {
"CounterPartyAccountNumber": "1111111111",
"Timestamp": "1245118573661",
"SenderMemo": "ID 6MacE3E16XVe18j",
"CounterPartyLegalName": null
}
}
]
}