Introduction
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 counterparty connections. SEN transfers can be initiated via 3 channels: business online banking (aka BeB), API, or through the Portal--Silvergate's proprietary online banking platform. 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/transfer/sen 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 (transaction_code) 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 "sen_transfer_response", where standard descriptive data is pre-parsed for API and Portal transactions; SEN transfers conducted via business online banking are a legacy method and cannot be pre-parsed.
The above are further illustrated in the table below. Also reference detailed GET history info here.
Transaction Type | transaction_code | transaction_description | transaction_description2 |
---|---|---|---|
SEN Debit via API v2 | 9084 |
| Values entered in POST transfer/sen Body “account_from_description2” are mapped to this field |
SEN Debit via API v3 | 9086 |
| Values entered in POST transfer/sen Body “account_from_description2” 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 |
| transaction_description captures optional sender memo from online banking; and if transaction_description exceeds 40 characters, remaining characters are mapped to transaction_description2 field |
SEN Credit via API v2 | 4005 |
| Values entered in POST transfer/sen Body “account_to_description2” are mapped to this field |
SEN Credit via API v3 | 4007 |
| Values entered in POST transfer/sen Body “account_to_description2” 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 |
| transaction_description captures optional sender memo from online banking; and if transaction_description exceeds 40 characters, remaining characters are mapped to transaction_description2 field |
POST transfer/sen Body Example
{
"amount": 1,
"account_number_from": "1111111111",
"account_number_to": "2222222222",
"account_from_description2": "ID 6MacE3E16XVe18j",
"account_to_description2": "ID 6MacE3E16XVe18j"
}
Response from GET account/history endpoint as the Sender of the API SEN transfer (irrelevant fields hidden)
{
"records": [
{
"transaction_code": "9084",
"transaction_amount": 1,
"transaction_description": "SEN to 1111111111+1245118573661",
"transaction_secondary_description": "ID 6MacE3E16XVe18j",
"effective_date": "2021-09-30T00:00:00",
"debit_credit_flag": "debit",
"sen_transfer_response": {
"counter_party_account_number": "1111111111",
"timestamp": "1245118573661",
"sender_memo": "ID 6MacE3E16XVe18j",
"counter_party_legal_name": null
}
}
]
}
Response from GET account/history endpoint as the Receiver of the API SEN transfer (irrelevant fields hidden)
{
"TRANSACTION": [
{
"effective_date": "2020-04-01T00:00:00",
"transaction_code": "4007",
"transaction_amount": 1.00,
"transaction_description": "SEN from 1111111111+1245118573661",
"transaction_secondary_description": "ID 6MacE3E16XVe18j",
"debit_credit_flag": "credit",
"sen_transfer_response": {
"counter_party_account_number": "1111111111",
"timestamp": "1245118573661",
"sender_memo": "ID 6MacE3E16XVe18j",
"counter_party_legal_name": null
}
}
]
}