Custody (1.0)

Download OpenAPI specification:Download

Account

List all Accounts for an Entity

Returns a list of all Accounts owned by the Entity specified in the request URL by its unique ID.

Request
path Parameters
entity_id
required
string

ID of the Entity.

query Parameters
object
sort
Array of strings
object
Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Create an Account

Creates a new Account under the ownership of the Entity specified in the request URL by its ID.

You must provide a valid Asset ID when creating an Account.

Request
path Parameters
entity_id
required
string

ID of the Entity to whom the new Account will belong.

Request Body schema: application/json
asset_id
required
string

The ID of an existing Asset to which the Account will be linked.

Responses
201

Successfully created the Account.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/accounts
Request samples
application/json
{
  • "asset_id": "00000000000000000000000000000001asst"
}
Response samples
application/json
{
  • "id": "09934947ffdd4bef50ba88ddc5eab0bfacct",
  • "entity_id": "359fe08986bbc6b62ea406f864b1ab90enty",
  • "asset_id": "00000000000000000000000000000001asst",
  • "balance": "123.45670000",
  • "available_balance": "123.45600000",
  • "type": "BASE",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Get a single Account

Returns the Account specified in the request URL by its unique ID.

Request
path Parameters
entity_id
required
string

ID of the Entity.

account_id
required
string

ID of the Account.

Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}'
Response samples
application/json
{
  • "id": "09934947ffdd4bef50ba88ddc5eab0bfacct",
  • "entity_id": "359fe08986bbc6b62ea406f864b1ab90enty",
  • "asset_id": "00000000000000000000000000000001asst",
  • "balance": "123.45670000",
  • "available_balance": "123.45600000",
  • "type": "BASE",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Address

List all Addresses linked to an Account

Returns a list of all Addresses linked to the Account specified in the request URL by its ID. NOTE: For token Accounts, the API will always return an empty list; the Addresses are linked to the corresponding base account.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Account.

account_id
required
string

ID of the Account.

query Parameters
object
sort
Array of strings
object
Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/addresses
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/addresses?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Create an Address

Creates a new Address and links it with the Account specified in the request URL. This Address can immediately be used to receive funds on the blockchain. As each Account is associated with a specific Asset, the new Address will also be linked to this particular Asset. Note: You cannot create Addresses for token accounts. Create them using the ID of the corresponding base Account instead.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Account.

account_id
required
string

ID of the Account.

Responses
201

The Address was successfully created.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

422

The request could not be processed because the referenced resource's current state prevents it.

For example, the API would return this error for an attempt to approve a FAILED ApprovalRequest, as this is not possible.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/accounts/{account_id}/addresses
Request samples
curl -i -X POST \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/addresses'
Response samples
application/json
{
  • "id": "dfddb6ba632e3ee65e49f37b059763cdaddr",
  • "account_id": "df10de8c583c8b2ca85ca169df349bffacct",
  • "address": "1NgiUwkhYVYMy3eoMC9dHcvdHejGxcuaWm",
  • "created_at": "2019-03-01T21:47:06Z",
  • "updated_at": "2019-03-01T21:47:06Z"
}

Get a single Address

Returns the Address specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Address.

account_id
required
string

ID of the Account with which the Address is linked.

address_id
required
string

ID of the Address to return.

Responses
200

The request was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/addresses/{address_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/addresses/{address_id}'
Response samples
application/json
{
  • "id": "dfddb6ba632e3ee65e49f37b059763cdaddr",
  • "account_id": "df10de8c583c8b2ca85ca169df349bffacct",
  • "address": "1NgiUwkhYVYMy3eoMC9dHcvdHejGxcuaWm",
  • "created_at": "2019-03-01T21:47:06Z",
  • "updated_at": "2019-03-01T21:47:06Z"
}

ApprovalMethod

List ApprovalMethods registered for this Entity

Retrieves a list of ApprovalMethods that were registered for an Entity with a given ID.

ApprovalMethods in ACTIVATED state can be used to approve Transactions initiated by this Entity.

There are different types of ApprovalMethods that can be used:

  • AUTHY_PUSH
  • SMS
  • DSA_ED25519
  • GROUP

Entities of type PERSON can use ApprovalMethods of type AUTHY_PUSH and SMS. Entities of type PARTNER can use ApprovalMethods of type DSA_ED25519.

Request
path Parameters
entity_id
required
string

Entity ID

query Parameters
object
sort
Array of strings
object
Responses
200

A list of ApprovalMethods registered for this Entity

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/approval_methods
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/approval_methods?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Create an ApprovalMethod for an Entity

Registers a new ApprovalMethod for the Entity specified in the request URL.

Choose one of the following ApprovalMethod types based on the Entity type:

  • AUTHY_PUSH: Multifactor authentication via push notification from Authy. Use this value when creating an ApprovalMethod for a PERSON Entity.
  • DSA_ED25519: Multifactor authentication based on ECDSA. Use this value when creating an ApprovalMethod for a PARTNER Entity.

You may only register one ApprovalMethod of each type per Entity.

Once registered, the ApprovalMethod will have a state of PENDING until it has been activated (either by the platform operator or by an external provider, e.g., Authy).

Only ApprovalMethods with a state value of ACTIVATED can be used to approve Transactions.

Request
path Parameters
entity_id
required
string

ID of the Entity for which you are creating an ApprovalMethod.

Request Body schema: application/json
type
required
string

The type of ApprovalMethod. Please note the guidelines in the description of this method.

Enum: "AUTHY_PUSH" "DSA_ED25519"
pub_key
string

(For DSA_ED25519 ApprovalMethods) A 32-byte Ed25519 public key in a hexadecimal representation derived from the public key portion of the Entity's Approval key.

Responses
201

The ApprovalMethod was successfully registered.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/approval_methods
Request samples
application/json
{
  • "type": "DSA_ED25519",
  • "pub_key": "f7bdb63a96ecee424a821d1a5e1f7d582eaabac453ba0560d4e05ff67ece2f20"
}
Response samples
application/json
{
  • "id": "6ec2fbc16ccb8238cbc89b3bf7ea7f39apmt",
  • "entity_id": "31adbcbbcede1a7a8cffb4a0e598ad5centy",
  • "type": "AUTHY_PUSH",
  • "state": "ACTIVATED",
  • "created_at": "2019-11-03T12:21:16Z",
  • "updated_at": "2019-11-03T12:46:10Z"
}

Get a single ApprovalMethod

Returns the ApprovalMethod specified in the request URL.

Request
path Parameters
entity_id
required
string

ID of the Entity.

approval_method_id
required
string

ID of the ApprovalMethod to return.

Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/approval_methods/{approval_method_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/approval_methods/{approval_method_id}'
Response samples
application/json
{
  • "id": "6ec2fbc16ccb8238cbc89b3bf7ea7f39apmt",
  • "entity_id": "31adbcbbcede1a7a8cffb4a0e598ad5centy",
  • "type": "AUTHY_PUSH",
  • "state": "ACTIVATED",
  • "created_at": "2019-11-03T12:21:16Z",
  • "updated_at": "2019-11-03T12:46:10Z"
}

ApprovalRequest

Create an ApprovalRequest for a Transaction

Requests the creation of an ApprovalRequest for a Transaction.
For ApprovalRequests of type GROUP, the Account holder (i.e., the Entity owning the Account) must approve the Transaction or Trade using two-factor authentication before it can be processed.
Please note the following:

  • Before calling this method, you must first create an ApprovalMethod for the Account holder using POST Create an ApprovalMethod for an Entity.
  • The type of ApprovalMethod to use for approving the Transaction depends on the type of Entity that owns the Account from which the Transaction is made:
  • Entity type ApprovalMethod type(s)
    PERSON Either AUTHY_PUSH or SMS
    PARTNER Either DSA_ED25519 or GROUP
    BUSINESS Either DSA_ED25519 or GROUP
    REPRESENTATIVE_PERSON Either AUTHY_PUSH or SMS
Request
Request Body schema: application/json

The request body.

entity_id
required
string

ID of the Entity that owns the resource to be approved.

approval_method_id
required
string

ID of the ApprovalMethod to use for the ApprovalRequest.

resource_type
required
string

The type of the resource to approve using this ApprovalRequest.

Enum: "TRANSACTION" "TRADE" "APPROVAL_REQUEST"
resource_id
required
string

ID of the resource to be approved.

Responses
201

The ApprovalRequest was successfully created.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

429

You have exceeded the allowed number of requests in a given time interval for this endpoint.

The API rate limits certain endpoints for performance or security reasons (e.g., creating ApprovalRequests of type SMS).

NOTE: This is a transient error. You may re-attempt the same request with the same attributes. Solaris recommends implementing a back-off strategy as a reaction to this error response.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/approval_requests
Request samples
application/json
{
  • "type": "DSA_ED25519",
  • "resource_type": "TRANSACTION",
  • "resource_id": "9c41ec8a82fb99b57cb5078ae0a8b569atrx",
  • "entity_id": "10ef67dc895d6c19c273b1ffba0c1692enty",
  • "approval_method_id": "aa28b780ec044732f2a02ab44e6275cfapmt",
  • "account_id": "9c41ec8a82fb99b57cb5078ae0a8b569acct"
}
Response samples
application/json
{
  • "id": "2f2fa4af79a1d7ce8a8ff4f54bfc9efaprq",
  • "state": "PENDING",
  • "entity_id": "c7cbbb0930f21e1525257cac1fc97e54enty",
  • "approval_method_id": "aa28b780ec044732f2a02ab44e6275cfapmt",
  • "resource_id": "d8ffb93a9269086393e271cf564dc1a7atrx",
  • "resource_type": "TRANSACTION",
  • "type": "AUTHY_PUSH",
  • "created_at": "2019-11-03T13:05:51Z",
  • "updated_at": "2019-11-03T13:05:51Z"
}

Retrieve an ApprovalRequest

Returns the ApprovalRequest specified in the request URL by its unique ID.

Request
path Parameters
approval_request_id
required
string

ID of the ApprovalRequest to return.

Responses
200

The ApprovalRequest was successfully retrieved.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/approval_requests/{approval_request_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/approval_requests/{approval_request_id}'
Response samples
application/json
{
  • "id": "2f2fa4af79a1d7ce8a8ff4f54bfc9efaprq",
  • "state": "PENDING",
  • "entity_id": "c7cbbb0930f21e1525257cac1fc97e54enty",
  • "approval_method_id": "aa28b780ec044732f2a02ab44e6275cfapmt",
  • "resource_id": "d8ffb93a9269086393e271cf564dc1a7atrx",
  • "resource_type": "TRANSACTION",
  • "type": "AUTHY_PUSH",
  • "created_at": "2019-11-03T13:05:51Z",
  • "updated_at": "2019-11-03T13:05:51Z"
}

Approve an ApprovalRequest of type DSA_ED25519 or SMS

This method approves a Transaction using an ApprovalRequest of type DSA_ED25519 or SMS.

Request
path Parameters
approval_request_id
required
string

ApprovalRequest ID

Request Body schema: application/json

The confirmation of the ApprovalRequest challenge (when the type is DSA_ED25519 or SMS).

object

(Optional) An object containing a SHA-256 hash of the challenge message for the API to use for validation.

response
required
string

The response to the challenge. For ApprovalRequests of type DSA_ED25519, submit the SDA_ED25519 signature. For ApprovalRequests of type SMS, submit the SMS code.

Responses
201

The transaction was successfully approved.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

422

The request could not be processed because the referenced resource's current state prevents it.

For example, the API would return this error for an attempt to approve a FAILED ApprovalRequest, as this is not possible.

429

You have exceeded the allowed number of requests in a given time interval for this endpoint.

The API rate limits certain endpoints for performance or security reasons (e.g., creating ApprovalRequests of type SMS).

NOTE: This is a transient error. You may re-attempt the same request with the same attributes. Solaris recommends implementing a back-off strategy as a reaction to this error response.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/approval_requests/{approval_request_id}/approve
Request samples
application/json
{
  • "challenge": {
    },
  • "response": "c5d5fac9e6fb6b7d27b141625f1c2c991aefc8b9f6e8a6eedb9cdbe9dd691ec310cbdc1bdd9fbd5fb4cfad72ee8fd51cc5f6e7198fecc92d5c465a61ef2c09a1"
}
Response samples
application/json
{
  • "id": "2f2fa4af79a1d7ce8a8ff4f54bfc9efaprq",
  • "state": "PENDING",
  • "entity_id": "c7cbbb0930f21e1525257cac1fc97e54enty",
  • "approval_method_id": "aa28b780ec044732f2a02ab44e6275cfapmt",
  • "resource_id": "d8ffb93a9269086393e271cf564dc1a7atrx",
  • "resource_type": "TRANSACTION",
  • "type": "AUTHY_PUSH",
  • "created_at": "2019-11-03T13:05:51Z",
  • "updated_at": "2019-11-03T13:05:51Z"
}

Asset

List all Assets

Returns a list of all Digital Assets.

Request
query Parameters
object
sort
Array of strings
object
Responses
200

The request was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/assets
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/assets?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Retrieve an Asset

Returns a single Asset, specified by its ID in the request URL.

Request
path Parameters
asset_id
required
string

ID of the Asset to return.

Responses
200

The Asset was fetched successfully.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/assets/{asset_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/assets/{asset_id}'
Response samples
application/json
{
  • "id": "00000000000000000000000000000001asst",
  • "code": "BTC",
  • "description": "Bitcoin",
  • "precision": 8,
  • "address_validation": "^(bc(0([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59})|1[ac-hj-np-z02-9]{8,87})|[13][a-km-zA-HJ-NP-Z1-9]{25,35})$",
  • "tx_min_amount": "0.00001",
  • "type": "BASE",
  • "created_at": "2019-03-01T22:46:38Z",
  • "updated_at": "2019-03-01T22:46:38Z"
}

ClosureRequest

List all ClosureRequests for an Entity

Returns a list containing all ClosureRequests associated with the Entity specified in the request URL.

Request
path Parameters
entity_id
required
string

ID of the Entity.

query Parameters
object
sort
Array of strings
object
Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/closure_requests
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/closure_requests?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Create a new ClosureRequest for an Entity

Initiates a ClosureRequest for the Entity specified in the request URL.

Request
path Parameters
entity_id
required
string

ID of the Entity.

Request Body schema: application/json

The content of the request.

reason
required
string

The reason for terminating the contract between Solaris and the Entity. Note that you may only create ClosureRequests with a reason of CUSTOMER_WISH.

Responses
201

Successfully created a ClosureRequest.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/closure_requests
Request samples
application/json
{
  • "reason": "CUSTOMER_WISH"
}
Response samples
application/json
{
  • "id": "ae93e4dcb3d0f5d0e36a227a94ff39e5creq",
  • "reason": "CUSTOMER_WISH",
  • "entity_id": "275cf8f7559fd88710b4c919f85777aaenty",
  • "state": "PROCESSING",
  • "valid_until": "2019-04-01T22:31:06Z",
  • "legal_closure_scheduled_at": "2019-03-01T22:31:06Z",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Get a single ClosureRequest

Returns the ClosureRequest specified in the request URL by its unique ID.

Request
path Parameters
entity_id
required
string

ID of the Entity.

closure_request_id
required
string

ID of the ClosureRequest to return.

Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/closure_requests/{closure_request_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/closure_requests/{closure_request_id}'
Response samples
application/json
{
  • "id": "ae93e4dcb3d0f5d0e36a227a94ff39e5creq",
  • "reason": "CUSTOMER_WISH",
  • "entity_id": "275cf8f7559fd88710b4c919f85777aaenty",
  • "state": "PROCESSING",
  • "valid_until": "2019-04-01T22:31:06Z",
  • "legal_closure_scheduled_at": "2019-03-01T22:31:06Z",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Confirm a ClosureRequest

Confirms a ClosureRequest of type COMPLIANCE_IMMEDIATE_INTERNAL or ORDINARY_INTERNAL.

Request
path Parameters
entity_id
required
string

ID of the Entity to which the ClosureRequest belongs to.

closure_request_id
required
string

ID of the ClosureRequest to confirm.

Responses
200

Successfully confirmed the ClosureRequest.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/closure_requests/{closure_request_id}/confirm
Request samples
curl -i -X POST \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/closure_requests/{closure_request_id}/confirm'
Response samples
application/json
{
  • "id": "ae93e4dcb3d0f5d0e36a227a94ff39e5creq",
  • "reason": "COMPLIANCE_IMMEDIATE_INTERNAL",
  • "entity_id": "275cf8f7559fd88710b4c919f85777aaenty",
  • "state": "PROCESSING",
  • "valid_until": "2019-04-01T22:31:06Z",
  • "legal_closure_scheduled_at": "2019-03-01T22:31:06Z",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Entity

List all Entities

Returns a list of all Entities under your control.

Request
query Parameters
object
sort
Array of strings
object
Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Create an Entity

Creates a new Entity of type PERSON or BUSINESS under your control.

You must specify a person_id attribute when creating an Entity of type PERSON. See POST Create a person API reference for instructions on how to create a person.

You must specify a name attribute when creating an Entity of type BUSINESS. See the POST Create a business API reference for instructions on how to create a business.

Request
Request Body schema: application/json
person_id
required
string

The ID of the person resource that corresponds with the Entity.

business_id
string

The ID of the business resource that corresponds with the Entity. Required if creating an Entity of type BUSINESS.

type
required
string

The type of the Entity.

Enum: "PERSON" "BUSINESS"
name
string

The name of the business that corresponds with the Entity. Derived from the name property of the corresponding business resource.

Responses
201

Successfully created the Entity.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities
Request samples
application/json
{
  • "person_id": "f0af0d2164f3f8bcc44bf68d7beecce3cper",
  • "type": "PERSON"
}
Response samples
application/json
{
  • "id": "1cbce42a62fc0cdeb1cf17df3ecd6fd6enty",
  • "type": "PARTNER",
  • "state": "ACTIVE",
  • "business_id": "880bbac68a34add190786b9c74f4c82fcbiz",
  • "trading_terms_conditions_signed_at": "2019-03-01T22:45:06Z",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Get a single Entity

Returns the Entity specified in the request URL by its unique ID.

Request
path Parameters
entity_id
required
string

ID of the Entity to return.

Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}'
Response samples
application/json
{
  • "id": "1cbce42a62fc0cdeb1cf17df3ecd6fd6enty",
  • "type": "PARTNER",
  • "state": "ACTIVE",
  • "business_id": "880bbac68a34add190786b9c74f4c82fcbiz",
  • "trading_terms_conditions_signed_at": "2019-03-01T22:45:06Z",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Accept terms and conditions

Records an Entity's acceptance of the Solaris Digital Assets Terms and Conditions. The API will store a UTC timestamp from when the Entity accepted the Terms and Conditions in its terms_conditions_signed_at property.

Request
path Parameters
entity_id
required
string

ID of the Entity accepting the terms and conditions.

Responses
201

Successfully accepted the terms and conditions.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/terms_and_conditions
Request samples
curl -i -X POST \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/terms_and_conditions'
Response samples
application/json
{ }

Accept terms and conditions for trading

Records an Entity's acceptance of the Solaris Digital Assets Trading Terms and Conditions. The API will store a UTC timestamp from when the Entity accepted the Trading Terms and Conditions in its trading_terms_conditions_signed_at property.

Request
path Parameters
entity_id
required
string

ID of the Entity that is accepting the trading terms and conditions.

Responses
201

Successfully accepted the trading terms and conditions.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/trading_terms_and_conditions
Request samples
curl -i -X POST \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/trading_terms_and_conditions'
Response samples
application/json
{ }

Retrieve the current active Tier for an Entity

Returns the currently activated Tier (if any) for the Entity specified in the request URL. The response includes information about when the Tier was activated and how much volume has been transacted in that Tier.

Request
path Parameters
entity_id
required
string

ID of the Entity whose Tier should be returned.

Responses
200

Successfully fetched the Entity's activated Tier info.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/tier
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/tier'
Response samples
application/json
{
  • "id": "56fae07897534327a5275ab2a28a15ff",
  • "send_limit": "20000",
  • "send_interval": 604800,
  • "advancement_volume": "200000",
  • "advancement_interval": 6048000,
  • "volume": "1000",
  • "activated_at": "2022-10-27T14:25:53Z"
}

LedgerEntry

List all Ledger Entries associated with an Account

Returns a list of all Ledger Entries associated with the Account specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Account.

account_id
required
string

ID of the Account.

query Parameters
object
sort
Array of strings
object
Responses
200

The request was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/ledger_entries
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/ledger_entries?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Get a single Ledger Entry

Returns the Ledger Entry specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Ledger Entry.

account_id
required
string

ID of the Account.

ledger_entry_id
required
string

ID of the Ledger Entry to return.

Responses
200

The request was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/ledger_entries/{ledger_entry_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/ledger_entries/{ledger_entry_id}'
Response samples
application/json
{
  • "id": "1c0fb8dbafa519adba070bba252b1263lent",
  • "account_id": "1570f8eba8a6cffebf6354b718c138e7acct",
  • "transaction_id": "ce9e6e3d62d7d0811a3f8c8aabbac466tran",
  • "type": "WITHDRAWAL_AMOUNT",
  • "amount": "-1.00000000",
  • "created_at": "2019-03-01T22:31:06Z",
  • "updated_at": "2019-03-01T22:31:06Z"
}

Tier

List all Tiers

Returns an array containing all Tiers configured for you.

Request
query Parameters
object
sort
Array of strings
object
Responses
200

Successfully retrieved the list of Tiers.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/tiers
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/tiers?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Get a single Tier

Returns information about the Tier specified in the request URL.

Request
path Parameters
tier_id
required
string

ID of the Tier to return.

Responses
200

Successfully fetched a single Tier.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/tiers/{tier_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/tiers/{tier_id}'
Response samples
application/json
{
  • "id": "56fae07897534327a5275ab2a28a15ff",
  • "level": 1,
  • "send_limit": "20000",
  • "send_interval": 604800,
  • "advancement_volume": "200000",
  • "advancement_interval": 6048000,
  • "created_at": "2022-10-27T14:25:53Z",
  • "updated_at": "2022-10-27T14:25:53Z"
}

Retrieve the current active Tier for an Entity

Returns the currently activated Tier (if any) for the Entity specified in the request URL. The response includes information about when the Tier was activated and how much volume has been transacted in that Tier.

Request
path Parameters
entity_id
required
string

ID of the Entity whose Tier should be returned.

Responses
200

Successfully fetched the Entity's activated Tier info.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/tier
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/tier'
Response samples
application/json
{
  • "id": "56fae07897534327a5275ab2a28a15ff",
  • "send_limit": "20000",
  • "send_interval": 604800,
  • "advancement_volume": "200000",
  • "advancement_interval": 6048000,
  • "volume": "1000",
  • "activated_at": "2022-10-27T14:25:53Z"
}

Transaction

List all Transactions linked to an Account

Returns a list of all Transactions associated with the Account specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity.

account_id
required
string

ID of the Account.

query Parameters
object
sort
Array of strings
object
Responses
200

The operation was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/transactions
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/transactions?filter%5Battribute_name%5D=string&sort=string&pagination%5Bsize%5D=100'
Response samples
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Cancel a Transaction

Cancels the Transaction specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Transaction.

account_id
required
string

ID of the Account from which the Transaction would be made.

transaction_id
required
string

ID of the Transaction to cancel.

Responses
200

The Transaction was successfully canceled.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

422

The request could not be processed because the referenced resource's current state prevents it.

For example, the API would return this error for an attempt to approve a FAILED ApprovalRequest, as this is not possible.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/accounts/{account_id}/transactions/{transaction_id}/cancel
Request samples
curl -i -X POST \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/transactions/{transaction_id}/cancel'
Response samples
application/json
{
  • "id": "f59e8c8188500efce5be51eb71e9db08tran",
  • "account_id": "ff6dc60c4f76dcea784bdc2ffed66e6facct",
  • "type": "DEPOSIT",
  • "state": "PENDING",
  • "amount": "1.23450000",
  • "end_to_end_id": "7a444b4839658d2a0c0c8c02a74b6a1207b1f579d9c79afe491a6fe4d56fb0f6",
  • "fee_amount": "0.00000000",
  • "fee_account_id": "ff6dc60c4f76dcea784bdc2ffed66e6facct",
  • "address": "1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN",
  • "blockchain_txid": "b2715bcc492ccfa30beaa7cf0d64bee751d5247a459966ce5b9d190eb1c2f185",
  • "blockchain_output_n": 0,
  • "created_at": "2019-03-01T20:31:38Z",
  • "updated_at": "2019-03-01T20:46:07Z"
}

Get a single Transaction

Returns the Transaction specified in the request URL by its ID.

Request
path Parameters
entity_id
required
string

ID of the Entity that owns the Transaction.

account_id
required
string

ID of the Account with which the Transaction is associated.

transaction_id
required
string

ID of the Transaction to return.

Responses
200

The request was successful.

401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

get/entities/{entity_id}/accounts/{account_id}/transactions/{transaction_id}
Request samples
curl -i -X GET \
  'https://api.solarisdigitalassets.com/entities/{entity_id}/accounts/{account_id}/transactions/{transaction_id}'
Response samples
application/json
{
  • "id": "f59e8c8188500efce5be51eb71e9db08tran",
  • "account_id": "ff6dc60c4f76dcea784bdc2ffed66e6facct",
  • "type": "DEPOSIT",
  • "state": "PENDING",
  • "amount": "1.23450000",
  • "end_to_end_id": "7a444b4839658d2a0c0c8c02a74b6a1207b1f579d9c79afe491a6fe4d56fb0f6",
  • "fee_amount": "0.00000000",
  • "fee_account_id": "ff6dc60c4f76dcea784bdc2ffed66e6facct",
  • "address": "1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN",
  • "blockchain_txid": "b2715bcc492ccfa30beaa7cf0d64bee751d5247a459966ce5b9d190eb1c2f185",
  • "blockchain_output_n": 0,
  • "created_at": "2019-03-01T20:31:38Z",
  • "updated_at": "2019-03-01T20:46:07Z"
}

Transfer

Create a Transfer

Issues a request to create a new Transfer from the Account specified in the request URL to another Account associated with the same Asset.

The API creates two Transactions in the course of processing a Transfer:

  1. A Transaction of type `TRANSFER_OUTGOING` associated with the sender's Account.
  2. A Transaction of type `TRANSFER_INCOMING` associated with the receiver's Account. The API only creates this Transaction when the previous Transaction successfully executes.

The required reference property acts as an idempotency key and must be unique for each Transaction. If you make two requests with identical attributes, including the value of the reference attribute, the API will respond with the same response body each time and only create one Transfer.

You must specify either the amount or the total_amount in this request. The amount property indicates the "transacted amount," i.e., the exact amount that will be sent to the recipient Account. The total_amount property indicates indicates the amount that will be deducted from the sender Account balance. Solaris determines the amount that will be sent to the recipient after calculating and applying the fees. Use total_amount if, for example, the sender wishes to transfer the entire Account balance.

The 201 response contains an ID for a Transaction, but the API will not create the underlying Transaction right away. If you attempt to get this Transaction by its ID and receive a 404 error, then please wait a bit before trying again.

Request
path Parameters
entity_id
required
string

ID of the Entity.

account_id
required
string

ID of the Account.

Request Body schema: application/json
amount
string

The amount to transfer (required if total_amount is not specified).

total_amount
string

The total amount to deduct from the Account (required if amount is not specified).

reference
required
string

A unique reference identifier for this Transfer. Acts as an idempotency key.

receiver_account_id
required
string

ID of the recipient Account.

Responses
201

Successfully processed the Transfer request.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/accounts/{account_id}/transactions/transfer
Request samples
application/json
{
  • "reference": "something-d4cbde56778cc85c2baf4d1b24c4097f-unique",
  • "receiver_account_id": "8edc66729b14bf1921292ad7ee0fbce8acct",
  • "total_amount": "10.00000000"
}
Response samples
application/json
{
  • "transaction_id": "afa4bcc92adaad64fdaad3c48b8cb840tran"
}

Withdrawal

Create a Withdrawal

Issues a request to create a new Withdrawal Transaction from the Account specified in the request URL to an address specified in the request body. The required reference property acts as an idempotency key and must be unique for each Transaction. If you make two requests with identical attributes, including the value of the reference attribute, the API will respond with the same response body each time and only create one Withdrawal. You must specify either the amount or the total_amount in this request. The amount property indicates the "transacted amount," i.e., the exact amount that will be withdrawn to the recipient Address. The total_amount property indicates indicates the amount that will be deducted from the sender Account balance; Solaris determines the amount that will be withdrawn after calculating and applying the fees. Use total_amount if, for example, the sender wishes to withdraw the entire Account balance. The 201 response contains an ID for a Transaction, but the API will not create the underlying Transaction right away. If you attempt to get this Transaction by its ID and receive a 404 error, then please wait a bit before trying again.

Request
path Parameters
entity_id
required
string

ID of the Entity.

account_id
required
string

ID of the Account.

Request Body schema: application/json
amount
string

The amount to transfer (required if total_amount is not specified).

total_amount
string

The total amount to deduct from the Account (required if amount is not specified).

reference
required
string

A unique reference identifier for this Transfer. Acts as an idempotency key.

address
required
string

The digital asset address to which the funds will be withdrawn.

Responses
201

Successfully processed the Withdrawal request.

400

The request contains invalid parameters.

This error response includes a params object, which contains all invalid attributes from the request and their associated error codes.

List of possible error codes:

  • blank: This attribute requires a value, but none was provided in the request.
  • invalid: An invalid value was provided for this attribute in the request. Some examples include an invalid data type, improper formatting, or an incorrect blockchain address.
  • not_found: A resource referenced by this attribute was not found. This may happen when sending a request that contains an attribute that references another resource, e.g., when creating an Account and using asset_id to reference the Asset.
  • taken: The value provided for this attribute is expected to be unique, but it is already taken by another resource, e.g., when creating a Transaction with a previously used reference key.
401

Authentication failed for the request, either because the authentication scheme is invalid (e.g., missing nonce), or the produced signature is invalid.

404

The requested resource was not found.

500

Internal server error. An underlying or external service failed in an unspecified manner.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

503

The request could not be processed because the underlying or external service is temporarily unavailable.

NOTE: This is a transient error. You may re-attempt the same request with the same attributes.

post/entities/{entity_id}/accounts/{account_id}/transactions/withdrawal
Request samples
application/json
{
  • "reference": "something-daada07e2bcd43ccc443750568effbe2-unique",
  • "address": "1MbH8VxfH74VLcv8q3BjBQizcnV2c7Tmre",
  • "amount": "1.15000000"
}
Response samples
application/json
{
  • "transaction_id": "afa4bcc92adaad64fdaad3c48b8cb840tran"
}