Verifying Accounts and Identities with the Sila API

The Sila app is an application programming interface (API) that allows users to send and receive mobile money in the form of Sila tokens. This app is a kind of payment gateway, which acts as a router between users. It allows users a convenient method for making mobile money payment requests and ACH payments.

All APIs rely on endpoints to transmit each request. Therefore, think of “common Sila endpoints” as common requests that will be made within the Sila app.

When navigating the Sila app, users will need to do some basic functions to be cleared to use the service. These include: registering their information for the app under Know Your Customer (KYC) guidelines, giving out Sila money, transferring Sila tokens, and redeeming Sila tokens.

To better understand these common requests, this article will do the following:

  • Define endpoints as they relate to APIs
  • Describe the user actions for each common request
  • Describe developer expectations and common responses

What are Endpoints?

Both a REST API and SOAP API communicate through touchpoints called endpoints. These touchpoints are the communication channels where the API can send and receive requests and information. Endpoints are a secure access point for information and can range from a server URL to a service.

APIs work based on these requests and responses. Whenever a request is made from one endpoint to another, the originating endpoint will receive a response. Therefore, as a developer, it is important that you understand the requests and expected responses for the Sila app.

Any user who wants to use the Sila services must be approved under certain guidelines. Most APIs require that you register with the service. The API must also register some sort of verification process, such as an API key.

How to Register For the Sila App

Registering for the Sila app is the most basic request to be made on the Sila API, and it allows external users to use the Sila app and it gives them a user handle. Registering for the app requires that users provide some basic information to Sila for identity verification under KYC regulations.

Fields that are required include the user information (below) and a new and unique Ethereum private key, one that has not been used in a smart contract or Sila before this instance.

This user information needed for ID verification includes:

  • Full legal name
  • U.S. Social Security Number (SSN)
  • Date of birth
  • A valid street address
  • An email address
  • A phone number

/register Endpoint for Developers

This endpoint is used to create a new user and attach their relevant identity information. This does not start the verification of the KYC data; it only adds the data to be verified. To verify KYC status, see /request_kyc and /check_kyc. Developers will need to link the /register endpoint to the KYC information provided above, as well as the Ethereum blockchain address.

The API endpoint request body is the entity_msg JSON object. An authsignature header is required for this request.

In sandbox only, you can register a user that will always fail KYC by passing in a “first_name”, “last_name”, or “full_name” field with a value of “FAIL” (case-insensitive). For example, values of “fail”, “Fail”, and “fAiL” will all result in failures, but values like “Fail “, “FAILURE”, and “fail1” will pass sandbox KYC.

Developer Responses

Status CodeStatus AttributeDescription200“SUCCESS”Handle successfully added to the system with KYC data.400“FAILURE”Invalid request body format (validation_details key will have more information if this is the case), handle already in use, or blockchain address already in use.401“FAILURE”authsignature header was absent or incorrect.

How to Give Out Sila Money

A Sila token is our form of cryptocurrency that exists based on blockchain currency once transferred from another type of currency like USD. To use Sila tokens, you must first transfer your currency into Sila tokens through the mobile app.  

Sila tokens are valued at USD 0.01 per token. To request the debit of $795.43, for instance, you would request “amount”: 79543. Minimum transaction amounts for this endpoint are 1 SILA in the sandbox, and 1 SILA in production.

Keep in mind that when giving out Sila tokens, the money must first be debited from the linked user’s bank account. Therefore, the user and app must account for the processing times associated with an Automated Clearing House (ACH) transfer.

This process usually takes about two business days. Once the transaction is completed, the Sila tokens will be issued to the recipient’s blockchain address.

/issue_sila Endpoint for Developers

The /issue_sila endpoint starts the debit of a user’s linked bank account; once that transaction has officially settled, a process that takes about two business days to complete, the recipient’s blockchain address will be issued Sila tokens.

Developers can check the results of a transaction using the /get_transactions endpoint.

The request body at this endpoint is the issue_msg JSON object.

Developer Responses

Status Codesuccess AttributeDescription200trueThe issuance process started.400falseBad request format – check validation_details for more information.400falseauthsignature or usersignature header was absent or incorrect.

How to Transfer Sila Money

Transferring Sila money is easy, and it can essentially be done to and from any blockchain address. To transfer using Sila money, though, the recipient must be registered with the Sila app and have an associated handle.

Each transfer of Sila money will create one blockchain transaction on the Ethereum platform. Be aware that the wallet from which tokens are transferred is the one used to generate the usersignature header.

/transfer_sila Endpoint

The /transfer_sila endpoint starts a transfer of the requested amount of Sila to the requested destination handle.

This request triggers a transfer of Sila tokens over the blockchain, going from the currently authenticated user to the specified destination handle. Minimum transaction amounts for this endpoint are 1 Sila in the sandbox, and 1 Sila in production.

Developer Responses

Status CodeSuccess AttributesDescription200trueThe transfer process started.400falseBad request format – check validation_details for more information.401falseauthsignature or usersignature header was absent or incorrect.

How to Redeem Sila Money

Once Sila money has been transferred, you can redeem that money into the equivalent monetary amount. Redeeming Sila token will “burn” that amount on the blockchain address and then deposit the credit into the designated bank account.

/redeem_sila Endpoint for Developers

Redeeming Sila is essentially the reverse process for /issue_sila. Tokens are removed from the associated address and then the process of crediting the money to the bank account starts. This process usually takes about 1 business day.

Minimum transaction amounts for this endpoint are 1 Sila in the sandbox, and 1 Sila in production.

If the bank account cannot be credited (for instance, if the account has been closed), this operation will roll back and re-mint the tokens at the handle’s address.

The amount field is the amount of Sila tokens to issue, which is equivalent to a dollar amount x 100, or the amount in cents. For example, to debit $1 from a user’s account, you would request an amount of 100 Sila tokens.

Developer Responses

Status CodeSuccess AttributeDescription200trueThe redemption process started.400falseBad request format – check validation_details for more information.401falseauthsignature or usersignature header was absent or incorrect.

Common Sila Endpoints

The four endpoints including in this area are four of the most common Sila endpoints that developers will use when working with the Sila app. For our full list of Sila endpoints, refer to our Developer Documentation and click on the subheaders under Endpoints by Function.