Link Search Menu Expand Document

Welcome to the docs page for Sandbar.

The sandbar API is built around GRPC and has a http proxy that sits in front of it, allowing it to be used either with an RPC client or an http client.

As of right now only the http endpoint is supported.

When making an HTTP request, you may use the basic auth credentials provided for your team. When specifying the media-type of the body of the request, please specify Content-Type: application/json in the request header.

If there are any questions or if you have any feedback, please reach out to our support email.

Table of contents

Service

SandbarDataService (sandbar.v0.SandbarDataService)

Data ingestion service ingests events describing change of state to / different information types.

SubmitEvents

Request type Response type
SubmitEventsRequest SubmitEventsResponse

This endpoint takes in events and processes them based on the metadata
associated with them.

GetEntity

Request type Response type
GetEntityRequest GetEntityResponse

This simple endpoint just takes in and returns an entity.

GetAccount

Request type Response type
GetAccountRequest GetAccountResponse

This end point is used to get information about a given account.

GetRuleOutputForEntities

This is to retrieve the set of latest rule outputs for a given entity for all rules.

GetAccountsForEntity

This endpoint retrieves all the accounts that are associated with a given entity.

GetTransactionsForEntity

This endpoint will return all the transactions for a given entity.

GetAlerts

Request type Response type
GetAlertsRequest GetAlertsResponse

This query will return a set of specified alerts.

GetInvestigations

This query will return a set of specified investigations.

GetAllInvestigations

This query will return all investigations for an entity.

CloseAlert

Request type Response type
CloseAlertRequest CloseAlertResponse

This allows a user to manually close a given alert. If this closes the last open alert in
an investigation, this call will close the enclolsed investigation as well.

CloseInvestigation

This allows a user to manually close a given investigation. This will close all enclosed
alerts that remain open.

GetRuleOutputHistoryForEntity

This is to retrieve the history of rule output for a given entity for all rules.
Entity search arg because we are essentially looking up the entity where we
then have to

HTTP bindings

Method Name HTTP Method Path
SubmitEvents POST /v0/submit_event
GetEntity POST /v0/get_entity
GetAccount POST /v0/get_account
GetRuleOutputForEntities POST /v0/results_for_entities
GetAccountsForEntity POST /v0/get_accounts_for_entity
GetTransactionsForEntity POST /v0/get_transactions_for_entity
GetAlerts POST /v0/get_alerts
GetInvestigations POST /v0/get_investigations
GetAllInvestigations POST /v0/get_all_investigations
CloseAlert POST /v0/close_alert
CloseInvestigation POST /v0/close_investigation
GetRuleOutputHistoryForEntity POST /v0/results_history_for_entity

Messages

Account (sandbar.v0.Account)

Object containing info about an account.

Field Type Description
optional
sandbar_account_id
optional int64 A sandbar ID for a given account.
account_identifier AccountIdentifier The information used to uniquely identify an account at a given point in time.
account_type AccountType The type of account.
optional
crypto_wallet_address
optional string If an account contains crypto-currency, this is the type of currency in the account.
optional
crypto_currency
optional string The type of crypto held in this wallet.
optional
account_open_date
optional string The date a given account was opened.
optional
account_close_date
optional string The date a given account was closed.

Account-Entity Links

Field Type Description
optional
sandbar_link_id
optional int64 Sandbar ID for the given link. Expected in any change or delete event, but not in a create event.
oneof account_id
source_account_identifier
AccountIdentifier Expect to see either this or sandbar_account_id. Identifying information for an account from client system.
oneof account_id
sandbar_account_id
int64 Expect to see either this or source_account_identifier. Identifying information for an account from sandbar system.
entity_id EntityQueryIdParam Information uniquely identifying an entity.
start_date string The date the account is linked to the entity.
optional
end_date
optional string The date the account is unlinked from the entity.
optional
description
optional string Free text field with information about the link.

AccountIdentifier (sandbar.v0.AccountIdentifier)

Information sufficient to identify a given account.

Field Type Description
account_number string An account number that is at any given point in time globally unique within a given institution.
bank_name string An institution that the given account belongs to.

Address (sandbar.v0.Address)

Object that keeps information about an address.

Field Type Description
optional
street_address_line_1
optional string  
optional
street_address_line_2
optional string  
optional
city
optional string  
optional
state_or_province
optional string  
optional
zip
optional string  
country string two-letter ISO3166 country code
optional
type
optional AddressType Indicates if the address is a standard address, military, PO Box, etc.

Alert (sandbar.v0.Alert)

When a rule creates an output that is deemed sufficiently risky, we are able to create an alert. An alert groups all relevant information after the initial trigger into one place.

Field Type Description
sandbar_alert_id int64 Sandbar identifier for a given alert.
outputs repeated RuleOutput Set of rule outputs associated with a given Alert.
investigation_target InvestigationTarget The investigation target associated with this alert.
next_steps repeated NextStep Set of next steps a user may be able to take to help assess the risk associated with a given alert and help an analyst decide whether or not to file a SAR.
rule string A human readable name of the rule associated with the Alert.
rule_version int64 This indicates a version of a given rule that is being run.
high_water_mark_risk_score double High water mark within look-back window
status InvestigationStatus The status of the investigation into the alert.

CloseAlertRequest (sandbar.v0.CloseAlertRequest)

A request to close an alert.

Field Type Description
sandbar_alert_id int64 Sandbar identifier of alert to be closed.

CloseAlertResponse (sandbar.v0.CloseAlertResponse)

A response carrying information about the result of a request to close an alert.

Field Type Description
result CloseResult Information about the disposition of the closed alert.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

CloseInvestigationRequest (sandbar.v0.CloseInvestigationRequest)

A request to close an investigation.

Field Type Description
sandbar_investigation_id int64 Sandbar identifier of investigation to be closed.

CloseInvestigationResponse (sandbar.v0.CloseInvestigationResponse)

A response carrying information about the result of a request to close an investigation.

Field Type Description
result CloseResult Information about the disposition of the closed investigation.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

Entity (sandbar.v0.Entity)

Object containing information about a given entity. An entity represents a person, company, or other thing that is potentially able to be an owner of an account.

Field Type Description
optional
sandbar_entity_id
optional int64 The sandbar ID of the given entity.
optional
source_entity_id
optional string The ID of the entity in the source system.
optional
relationship_begin_date
optional string The date the relationship between this entity and the institution began.
optional
name
optional string Name of the entity.
optional
birth_incorporation_date
optional string If a person, this field contains their birthdate. If a company, the field contains the incorporation date of the entity.
optional
primary_address
optional Address The primary address of the entity. For a business, to better assess risk, using a registration address, or a P.O. box gives less information than a headquarters, or a place of operation.
optional
email
optional string Best email address to reach a client at.
optional
tax_id
optional string A tax identifier for an entity; a TIN or SSN in the U.S. would be preferred.
optional
ein
optional string Employer ID Number.
optional
naic_code
optional string For a business, the NAIC code of the industry they operate in. A full list of NAIC classifications and descriptions can be found at https://www.census.gov/naics/2017NAICS/2017_Definition_File.pdf.
optional
website_url
optional string For a business, the website they use to operate.
optional
generated_entity_id
optional string In the event that we are working with an incomplete entity, this generated ID may be used. This field should not be set upon creation. Sandbar will create this id on the callers behalf.

EntityQuery (sandbar.v0.EntityQuery)

Query containing entity information.

Field Type Description
id EntityQueryIdParam A parameter containing information needed to identify an entity.

EntityQueryIdParam (sandbar.v0.EntityQueryIdParam)

Identifying information about a given entity.

Field Type Description
oneof entity_id
sandbar_entity_id
int64 Sandbar entity ID, expect to see one of this, source_entity_id, or generated_entity_id.
oneof entity_id
source_entity_id
string Entity ID in the source system, expect to see one of this, sandbar_entity_id, or generated_entity_id.
oneof entity_id
generated_entity_id
string Sandbar generated ID for incomplete entities, expect to see one of this, sandbar_entity_id, or source_entity_id.

Event (sandbar.v0.Event)

Field Type Description
type EventType This is an indication of the type of event that is being sent and of how the data is intended to be processed.
oneof payload
entity
Entity Entity payload for the event. The object in this field represents the state of the object at the time of the event. Expect one of this, account, transaction, or account_entity_link.
oneof payload
account
Account Account payload for the event. The object in this field represents the state of the object at the time of the event. Expect one of this, entity, transaction, or account_entity_link.
oneof payload
transaction
Transaction Transaction payload for the event. The object in this field represents the state of the object at the time of the event. Expect one of this, entity, account, or account_entity_link.
oneof payload
account_entity_link
AccountEntityLink Account entity link payload for the event. The object in this field represents the state of the object at the time of the event. Expect one of this, entity, account, or transaction.
incomplete bool We may have information about a thing that is not quite complete. It may
be missing required info. If you use this flag we will try to make a complete
item, but we will remove some of the validation and requirements that some
pieces of information must be present. We may also generate a uuid as the
source ID if one is not provided.
Incomplete items can be tracked and later appended, merged, etc. if necessary.

EventResponse (sandbar.v0.EventResponse)

Field Type Description
sandbar_id int64 The sandbar ID of the item created/changed/deleted by the event.
source_id string The source ID of the item created/changed/deleted by the event that the time the event was sent.
is_successful bool Indicator of whether or not a call is successfully processed.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.
generated_id string In the event that there is an incomplete item, this is the sandbar-generated ID for the object.

GetAccountRequest (sandbar.v0.GetAccountRequest)

The request sent when trying to get a specific account from sandbar.

Field Type Description
oneof id
sandbar_account_id
int64 A sandbar ID for a given account.
oneof id
account_identifier
AccountIdentifier The information used to uniquely identify an account at a given point in time.

GetAccountResponse (sandbar.v0.GetAccountResponse)

Response containing requested account related information and a message.

Field Type Description
accounts repeated Account Set of accounts
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetAccountsForEntityRequest (sandbar.v0.GetAccountsForEntityRequest)

A request payload that allows a user to get a set of accounts for a given entity.

Field Type Description
request EntityQuery Information about the entity qe are trying to get accounts for.

GetAccountsForEntityResponse (sandbar.v0.GetAccountsForEntityResponse)

A response payload that contains information about a set of accounts owned by a single entity.

Field Type Description
accounts repeated Account Set of accounts
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetAlertsRequest (sandbar.v0.GetAlertsRequest)

Request for one or more alerts.

Field Type Description
sandbar_alert_id repeated int64 Sandbar IDs for requested alerts.

GetAlertsResponse (sandbar.v0.GetAlertsResponse)

Response containing requested alerts.

Field Type Description
alerts repeated Alert Requested alerts.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetAllInvestigationsRequest (sandbar.v0.GetAllInvestigationsRequest)

An unfiltered request for investigations.

Field Type Description
optional
options
optional GetAllInvestigationsRequest.Options Options for a given investigation request.

GetAllInvestigationsRequest.Options (sandbar.v0.GetAllInvestigationsRequest.Options)

Options for the investigation request.

Field Type Description
include_closed bool If set to true, the response will include closed investigations.

GetAllInvestigationsResponse (sandbar.v0.GetAllInvestigationsResponse)

A response sent in response to a request for all investigations.

Field Type Description
investigations repeated Investigation The set of requested investigations.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetEntityRequest (sandbar.v0.GetEntityRequest)

A request containing information necessary to get a given entity.

Field Type Description
request EntityQuery Specifies entities to request detailed information on.

GetEntityResponse (sandbar.v0.GetEntityResponse)

A response containing requested entity information.

Field Type Description
entity repeated Entity Contents the entities requested.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetInvestigationsRequest (sandbar.v0.GetInvestigationsRequest)

A request for a set of investigations

Field Type Description
sandbar_investigation_id repeated int64 Sandbar IDs of investigations to request detailed information on.

GetInvestigationsResponse (sandbar.v0.GetInvestigationsResponse)

A response containing the requested set of investigations.

Field Type Description
investigation repeated Investigation Set of requested investigations.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetRuleOutputForEntitiesRequest (sandbar.v0.GetRuleOutputForEntitiesRequest)

A request containing information necessary to get rule outputs for a given entity.

Field Type Description
requests repeated EntityQuery Specifies which entities to request for rule outputs for.

GetRuleOutputForEntitiesResponse (sandbar.v0.GetRuleOutputForEntitiesResponse)

Field Type Description
responses repeated RuleOutputResponse Requested rule outputs.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetRuleOutputHistoryForEntityRequest (sandbar.v0.GetRuleOutputHistoryForEntityRequest)

A request payload that contains entity information used to get rule output history for that entity.

Field Type Description
request EntityQuery Specifies the entity to request information on.

GetRuleOutputHistoryForEntityResponse (sandbar.v0.GetRuleOutputHistoryForEntityResponse)

A message containing a history of rule outputs for a given entity.

Field Type Description
response RuleOutputResponse All rule outputs generated throughout history for a given entity.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

GetTransactionsForEntityRequest (sandbar.v0.GetTransactionsForEntityRequest)

A request that allows a user to get all the transactions associated with a given entity.

Field Type Description
request EntityQuery Specifies the entity to request information on.

GetTransactionsForEntityResponse (sandbar.v0.GetTransactionsForEntityResponse)

A set of transactions associated with a requested entity.

Field Type Description
transactions repeated Transaction Set of requested transactions.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

Investigation (sandbar.v0.Investigation)

An investigation is a unit of work comprised of one or more alerts. This is the thing that an analyst or a group of analysts should be working on. There may be one or more targets, and one or more types of risk topographies. By default an investigation groups alerts on a given investigation unit.

Field Type Description
sandbar_investigation_id int64 Sandbar ID of the given investigation.
alerts repeated Alert Set of alerts associated with the investigation.
target repeated InvestigationTarget The targets of a given investigation.
status InvestigationStatus The status of the investigation.

InvestigationTarget (sandbar.v0.InvestigationTarget)

Information about a target of an investigation.

Field Type Description
oneof target
entity_id
TargetEntityId Information for an entity type target.

NextStep (sandbar.v0.NextStep)

In an Alert, a Next Step is a suggested course of action that an analyst may take to either confirm or alleviate the given described risk.

Field Type Description
description string A description of the action to be taken.

RuleOutput (sandbar.v0.RuleOutput)

Certain actions prompt sandbar to run our suite of rules against an investigation target. Each time this happens, a rule output is generated with information about the risk assessed for that target. This object contains that information.

Field Type Description
rule string This is a unique human-readable name of a given rule.
rule_version int64 This indicates a version of the rule being run.
risk_score double A score indicating the riskiness associated with this rule output. The risk score is bounded between 0 and 100.
narrative string A narrative constructed based on the circumstances around the rule being run.
timestamp string The time when the given rule output was generated.
investigation_target InvestigationTarget Identifies the investigation target the rule ran against.

RuleOutputResponse (sandbar.v0.RuleOutputResponse)

A response containing rule outputs for a given investigation target.

Field Type Description
investigation_target InvestigationTarget Identifies the investigation target the rule ran against.
output repeated RuleOutput Rule outputs associated with the given investigation target.

SubmitEventsRequest (sandbar.v0.SubmitEventsRequest)

Set of events to be processed and ingested by sandbar.

Field Type Description
events repeated Event List of events to be processed.

SubmitEventsResponse (sandbar.v0.SubmitEventsResponse)

Response from a call to submit events endpoint.

Field Type Description
responses repeated EventResponse List of responses. Not guaranteed to be in the same order as the requests.
message string Message containing information about the processing of the request, including error messages
and information about failure states of one or more request payloads.

TargetEntityId (sandbar.v0.TargetEntityId)

Identifying information about an entity as an Investigation Target

Field Type Description
sandbar_entity_id int64 Sandbar entity ID for the given investigation target.
optional
source_entity_id
optional string Entity ID in the source system for the given investigation target.
optional
generated_entity_id
optional string Sandbar generated ID for incomplete entities for the given investigation target.

Transaction (sandbar.v0.Transaction)

TRANSACTION

Field Type Description
optional
sandbar_transaction_id
optional int64 A transaction ID generated by Sandbar that uniquely identifies a transaction in our system.
source_transaction_id string The unique internal client ID identifying this specific transaction. This should remain unchanged across transaction states.
transaction_amount double The amount of cash moved in a given transaction.
transaction_currency string The currency of the cash that is moved in a given transaction.
account_identifier AccountIdentifier Account the transaction is associated with.
transaction_source_entity_id string A unique identifier in a source system for a given transaction. This should be consistent between any state transfers that occur for a given transaction.
optional
counterparty_source_entity_id
optional string The identifier in the source system for the transaction counterparty.
optional
counterparty_account_identifier
optional AccountIdentifier The identifier in the source system for the counterparty account.
optional
originator_to_beneficiary_information
optional string Free text field used by either party of a transaction to explain the purpose of the activity.
transaction_type TransactionType The type of the specified transaction.
execute_transaction_date_time string The date and time that a transaction was executed.
is_credit bool Field which indicates whether funds flowed into or out of the account.
optional
description
optional string Free form text field with information about a transaction.
optional
is_card_present
optional bool Indicates whether a card was present at the time of the purchase.
optional
merchant_name
optional string Name of the merchant on the transaction.
optional
settle_transaction_date_time
optional string The date and time that a transaction settles.
optional
transaction_time_zone
optional string The time zone that the transaction occurred in,
as the TZ database name that appears in the IANA time zone database.
Examples include “America/New_York” and “US/Eastern”.
optional
cvv_test
optional bool Indicates whether the cvv test was issued.
optional
ip_address
optional string The IP address from which a transaction is initiated.
optional
counterparty_swift_identifiers
optional string Swift identifiers of the counterparty bank.
optional
merchant_address
optional Address Address of the merchant on the transaction.
optional
branch_address
optional Address Address of the bank branch where the transaction occurred.
optional
atm_address
optional Address Address of the ATM where a transaction occurred.
optional
card_reference_number
optional string Single point of reference which ties together credit cards by the same issuer of the same rewards type
optional
device_imei
optional string 15 digit International Mobile Equipment Identity number that is unique to the device regardless of who manufactured it
optional
device_serial_number
optional string Unique number used by each manufacturer to identify the device
optional
device_sim
optional string Unique Subscriber Identification Module assigned to each card by the service provider
optional
instrument_serial_number
optional string Alphanumeric string that uniquely identifies the check, money order, cashier’s check, traveler’s check, etc. used in the transaction
optional
shipping_address
optional Address Shipping address associated with a given transaction.
optional
billing_address
optional Address Billing address associated with a transaction.
product_type ProductType Instrument used for the transmission of funds. See enumerated list for options and descriptions.
optional
merchant_type
optional string Merchant Category Code (MCC) number which identifies the industry of the business. List of relevant MCC codes can be found here: https://www.web-payment-software.com/online-merchant-accounts/mcc-codes/
optional
transaction_status
optional TransactionStatus The status of a transaction.
optional
transaction_source_routing_number
optional int32 The routing number associated with a given transaction.
optional
counterparty_routing_number
optional int32 The routing number associated with a counterparty in a given transaction.

Enums

AccountType (sandbar.v0.AccountType)

Type of account

Name Number Description
ACCOUNT_TYPE_UNSPECIFIED 0  
ACCOUNT_TYPE_CHECKING 1 A checking account
ACCOUNT_TYPE_SAVINGS 2 A savings account
ACCOUNT_TYPE_CREDIT_CARD 3 A credit card
ACCOUNT_TYPE_BROKERAGE 4 A brokerage account, intended to hold and trade securities.
ACCOUNT_TYPE_OTHER 100 Another account type not specified here.

AddressType (sandbar.v0.AddressType)

An enum specifying the type of address being used.

Name Number Description
ADDRESS_TYPE_UNSPECIFIED 0  
ADDRESS_TYPE_RESIDENTIAL 1 A residential address, usually a home or apartment.
ADDRESS_TYPE_BUSINESS 2 A business address.
ADDRESS_TYPE_PO_BOX 3 A Post Office box.
ADDRESS_TYPE_MILITARY 4 A military address.
ADDRESS_TYPE_OTHER 100 Another address type not enumerated here.

CloseResult (sandbar.v0.CloseResult)

The various possible results of a request to close an alert or investigation.

Name Number Description
CLOSE_RESULT_UNSPECIFIED 0  
CLOSE_RESULT_SUCCESSFUL 1 The item was successfully closed.
CLOSE_RESULT_NOT_FOUND 2 The object was not found.
CLOSE_RESULT_ALREADY_CLOSED 3 The object was already closed and nothing changed.
CLOSE_RESULT_FAILED 4 There was some issue closing this item, specified in the message.
CLOSE_RESULT_OTHER 100  

EventType (sandbar.v0.EventType)

The type of event sent over by the user.

Name Number Description
EVENT_TYPE_UNSPECIFIED 0  
EVENT_TYPE_CREATE 1 To be sent when creating a new item. If sent when an item already exists
a creation event will fail and nothing will be created in the system.
EVENT_TYPE_UPDATE 2 To be sent when updating an existing item. If the item does not exist
the update will fail and nothing will be changed in the system.
EVENT_TYPE_DELETE 3 Delete an entity. This will delete the item as of the time of the call to SubmitEvents().
If an item does not exist the delete will fail.
Please use caution with deletes. They may have some odd side effects that are not
expected as other objects referencing this object may have to continue to use
the deleted item (i.e. if an entity is deleted, an investigation on that entity
may be required to continue to exist.)

InvestigationStatus (sandbar.v0.InvestigationStatus)

The status of a given investigation.

Name Number Description
INVESTIGATION_STATUS_UNSPECIFIED 0  
INVESTIGATION_STATUS_OPEN 1 An open investigation that requires attention.
INVESTIGATION_STATUS_AUTO_CLOSED 2 An investigation that has been automatically closed by Sandbar due to its age.
INVESTIGATION_STATUS_MANUALLY_CLOSED_CLEARED 3 An investigation that has been manually closed by a user upon assessment that the activity
does not warrant a SAR filing.
INVESTIGATION_STATUS_MANUALLY_CLOSED_SUSPICIOUS 4 An investigation that has been manually closed by a user upon assessment that the activity
is suspicious and requires a SAR filing.
INVESTIGATION_STATUS_ON_HOLD 5 An investigation that is oh hold pending some internal or external action necessary
to continue the assessment.
INVESTIGATION_STATUS_IN_PROGRESS 6 An investigation that is in the process of being worked on by an investigator.
INVESTIGATION_STATUS_OTHER 100 Another investigation status that is not specified here.

ProductType (sandbar.v0.ProductType)

A transaction may operate on a specific product type. This field indicates which type of product. These product types are currently derived from the product types used to file SAR forms.

Name Number Description
PRODUCT_TYPE_UNSPECIFIED 0  
PRODUCT_TYPE_US_CURRENCY 1 official government issued currency of the United States
PRODUCT_TYPE_FOREIGN_CURRENCY 3 official government issued currency of any country or jurisdiction not including the United States
PRODUCT_TYPE_CHECK 4 physical paper instrument written, dated, and signed that directs a bank to pay a specific sum of money to the bearer
PRODUCT_TYPE_WIRE 5 electronic transfer of funds across a network of banks
PRODUCT_TYPE_ACH 6 electronic bank-to-bank transfers processed through the Automated Clearing House network
PRODUCT_TYPE_ELECTRONIC_FUNDS_TRANSFER 7 electronic transfer of money over an online network
PRODUCT_TYPE_DEBIT_CARD 8 payment card that deducts money directly from a checking account
PRODUCT_TYPE_CREDIT_CARD 9 payments card in which charges are made against a line of credit instead of deposits
PRODUCT_TYPE_PREPAID_CARD 10 reloadable card allowing for only the amount of spending that has been deposited to the account
PRODUCT_TYPE_MONEY_ORDER 11 certificate, usually issued by a government or banking institution, that allows the stated payee to receive cash on demand
PRODUCT_TYPE_CASHIER_CHECK 12 certificate, issued by a banking institution, that allows the stated payee to receive cash on demand
PRODUCT_TYPE_TRAVELER_CHECK 13 physical paper instrument with a fixed amount typically used by people on vacation in foreign countries
PRODUCT_TYPE_COMMERCIAL_PAPER 14 short-term unsecured promissory notes issued by companies
PRODUCT_TYPE_STOCKS 15 certificates that assign ownership of a public company
PRODUCT_TYPE_BOND_NOTE 16 fixed income instrument which represents a loan made by an investor to a borrower
PRODUCT_TYPE_COMMERCIAL_MORTGAGE 17 mortgage loan secured by a commercial property
PRODUCT_TYPE_MORTGAGE 18 loan that the borrower uses to purchase or maintain a home or other form of real estate and agrees to pay back over time
PRODUCT_TYPE_FUTURES 19 legal agreement to buy or sell a particular commodity asset, or security at a predetermined price at a specified time in the future
PRODUCT_TYPE_INSURANCE 20 policy where an individual or entity receives financial protection or reimbursement against losses
PRODUCT_TYPE_MUTUAL_FUND 21 investment vehicle that pools money from investors to purchase a variety of different assets
PRODUCT_TYPE_OPTION 22 derivative instrument that allows, but does not obligate, the holder to buy or sell the underlying asset
PRODUCT_TYPE_MICROCAP_SECURITY 23 equity of a public company with low market capitalization value, usually below $300MM
PRODUCT_TYPE_DERIVATIVE 24 security with a value that is reliant upon or derived from, an underlying asset or group of assets
PRODUCT_TYPE_GAMING_INSTRUMENT 25 issued by a casino or card club which denotes the convertable amount to USD
PRODUCT_TYPE_OTHER 100 Another product type that is not enumerated here.

TransactionStatus (sandbar.v0.TransactionStatus)

A transaction may go through many different states in its lifetime. This represents the different stages of a life cycle. A user may update the state on a single transaction over time as it transitions.

Name Number Description
TRANSACTION_STATUS_UNSPECIFIED 0  
TRANSACTION_STATUS_INITIATED 1 A transaction that has been initiated but not yet confirmed. Can be ignored in many calculations if never finished.
TRANSACTION_STATUS_PROCESSING 2  
TRANSACTION_STATUS_FINISHED 3 For most transactions this should be the status that they remain in. This represents a transaction that has been
processed and is now final.
TRANSACTION_STATUS_DECLINED 4 A transaction that has been declined by the processor.
TRANSACTION_STATUS_VOIDED 5 A transaction that has been voided by the user.
TRANSACTION_STATUS_RETURNED 6 A transaction that has been returned.
TRANSACTION_STATUS_OTHER 100  

TransactionType (sandbar.v0.TransactionType)

Each transaction must specify a transaction type to indicate how money was moved. These are presently derived from the transaction types used to file SAR forms.

Name Number Description
TRANSACTION_TYPE_UNSPECIFIED 0  
TRANSACTION_TYPE_WITHDRAWAL 1 Results in a decrease to the balance of the account
TRANSACTION_TYPE_DEPOSIT 2 Results in an increase to the balance of the account
TRANSACTION_TYPE_CURRENCY_EXCHANGE 3 Exchange of funds between two different government issued currencies
TRANSACTION_TYPE_CASH_EXCHANGE 4 Exchange of denominations in physical cash or coins
TRANSACTION_TYPE_FEES 5 Price charged for a specific service
TRANSACTION_TYPE_TAXES 6 Compulsory contribution to state revenue, levied by the government on workers’ income and business profits
TRANSACTION_TYPE_LIENS 7 Claim upon a part of another’s property that arises because of an unpaid debt related to that property
TRANSACTION_TYPE_BUY 8 Instruction by an investor to a broker to acquire stock shares, bonds, or other assets
TRANSACTION_TYPE_SELL 9 Instruction by an investor to a broker to sell stock shares, bonds, or other assets
TRANSACTION_TYPE_LIMIT_ORDER 10 Uses a price to designate the least acceptable amount for the transaction to take place
TRANSACTION_TYPE_STOP_ORDER 11 Uses a price to merely trigger an actual order once the specified price has been traded
TRANSACTION_TYPE_ACCOUNT_CLOSING_DEBIT 12 Final transaction to fully zero out the account balance when closing the relationship
TRANSACTION_TYPE_P2P_PAYMENT 13 Electronic transfer of funds between two individual parties
TRANSACTION_TYPE_BANK_TRANSFER 14 Electronic transfer of funds between two financial institutions
TRANSACTION_TYPE_CRYPTO_TRANSFER 15 Electronic transfer of funds involving the exchange of cryptocurrency assets
TRANSACTION_TYPE_FOREX 16 Trade involving international currencies or their derivatives
TRANSACTION_TYPE_GOVERNMENT_PAYMENT 17 Funds distributed by a local, state, or federal agency
TRANSACTION_TYPE_SWAP 18 Derivative contract where two parties exchange the cash flows or liabilities from two different financial instruments
TRANSACTION_TYPE_OTHER 100 Another transaction type that is not enumerated here.

Scalar Value Types

.proto Type Notes
double  
float  
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.
uint32 Uses variable-length encoding.
uint64 Uses variable-length encoding.
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28.
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56.
sfixed32 Always four bytes.
sfixed64 Always eight bytes.
bool  
string A string must always contain UTF-8 encoded or 7-bit ASCII text.
bytes May contain any arbitrary sequence of bytes.