SVX API (4.0.0)

Download OpenAPI specification:

Organisations

Create application agent

Create application agent

Authorizations:
SVX-JWT
header Parameters
Meeco-Organisation-Id
required
string <uuid>
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "application": {
    }
}

Response samples

Content type
application/json
{
  • "application": {
    }
}

Load all application agents

Load all application agents

Authorizations:
SVX-JWT
header Parameters
Meeco-Organisation-Id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Get application agent information

Get application agent information

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-Id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "application": {
    }
}

Update application agent

Update application agent

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-Id
required
string <uuid>
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "application": {
    }
}

Response samples

Content type
application/json
{
  • "application": {
    }
}

Delete application agent

Delete application agent

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-Id
required
string <uuid>

Responses

Delete an organisation

Delete an organisation.

In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

View an organisation

Show an organisation.

In order to execute this action the current user must have

  • global security atom:global:view_all_orgs or
  • security right atom:tenant:view_tenant_orgs for the tenant
  • security right atom:org:view_org for the org with the ID in parameter org_id
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Responses

Response samples

Content type
application/json
{
  • "org": {
    }
}

Update an organisation

Update an organisation.

In order to execute this action the current user must have security right atom:tenant:create_org for the tenant with the ID in parameter tenant_id.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Request Body schema: application/json
required

Organisation attributes

authorised_officer_email
string

Authorised officer email

authorised_officer_first_name
string

Authorised officer first name

authorised_officer_last_name
string

Authorised officer last name

business_address
string

Business address

color
string

The color associated with the organisation in the hex format. Used for the UI.

company_number
string

Company number

company_url
string or null <uri>

URL of the company

legal_name
string

Legal number

lei_number
string

Legal entity identification number

logo_url
string <uri>

URL to a logo image

name
required
string

Name of the organisation to create

status_in_tenant
string

Status: signed legal agreement received or proof of concept

trading_name
string

Trading number

Responses

Request samples

Content type
application/json
{
  • "authorised_officer_email": "string",
  • "authorised_officer_first_name": "string",
  • "authorised_officer_last_name": "string",
  • "business_address": "string",
  • "color": "string",
  • "company_number": "string",
  • "company_url": "http://example.com",
  • "legal_name": "string",
  • "lei_number": "string",
  • "logo_url": "http://example.com",
  • "name": "string",
  • "status_in_tenant": "string",
  • "trading_name": "string"
}

Response samples

Content type
application/json
{
  • "org": {
    }
}

List admins of an organisation

List admins of an organisation.

It is also possible to request a list of archived admins of the organisation, that is, users who used to have organisation security rights for the given organisation, but do not have them now.

In order to execute this action the current user must have

  • security right atom:org:list_org_admins for the organisation with the ID in parameter org_id or
  • security right atom:tenant:list_admins_of_all_orgs_of_tenant for the parent tenant of the organisation org_id or
  • global security right `atom:global:list_admins_of_all_orgs
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

query Parameters
status
string
Enum: "active" "archived"

admin status: active, or archived

email
string

search admins by their email address. Currenty works only with status=archived

per_page
integer

number of admins per page

page
integer

Number of the page to serve. This parameter activates classic page-based pagination and cannot be used with parameter next_page_after which activates cursor-based pagination.

order
string
Enum: "asc" "desc"

order admins by given name in ascending or descending order

next_page_after
string

When cursor based pagination is used, each paginated response has value next_page_after which, if submitted as a parameter, allows to retrieve the next page. next_page_after is null is there is no next page. next_page_after cannot be used together with parameter page. page activates classic page-based pagination.

Responses

Response samples

Content type
application/json
{
  • "admins": [
    ],
  • "meta": { },
  • "next_page_after": "string"
}

Remove all organisation security rights from user

Remove all organisation security rights from user.

In order to execute this action the current user must one of the following security rights:

  • atom:global:assign_org_sr_to_user
  • atom:tenant:assign_org_sr_to_user
  • atom:org:assign_org_sr_to_user
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Show an admin of a given organisation

Show an admin of a given organisation.

In order to execute this action the current user must have

  • security right atom:org:list_org_admins for the organisation with the ID in parameter org_id or
  • security right atom:tenant:list_admins_of_all_orgs_of_tenant for the parent tenant of the organisation org_id or
  • global security right `atom:global:list_admins_of_all_orgs
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

Archive an organisation admin

Remove a user from admins of the given organisation, and put the admin into the registry of former admins of that organisation.

In order to execute this action the current user must one of the following security rights:

  • atom:global:assign_org_sr_to_user
  • atom:tenant:assign_org_sr_to_user
  • atom:org:assign_org_sr_to_user
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Restore an archived organisation admin

Reinstate an archived user and make him/her a org admin again.

In order to execute this action the current user must one of the following security rights:

  • atom:org:assign_org_sr_to_user
  • atom:tenant:assign_org_sr_to_user
  • atom:global:assign_org_sr_to_user
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

List security rights of an organisation admin

List organisation security rights of a organisation admin.

In order to execute this action the current user must have security right atom:org:list_org_admin_sr for the organisation with the ID in parameter org_id or atom:tenant:list_org_admin_sr for the tenant that the organisation belongs to, or global security right atom:global:list_admin_sr_of_any_admin"

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of an organisation admin

Responses

Response samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Assign organisation security rights to a user

Assign organisation security rights to a user.

The endpoint can process security rights of 2 categories:

  • for_org = true and for_tenant = false
  • for_org = true and for_tenant = true, in this case the security right will be assigned to the tenant which organisation belongs to

In order to execute this action the current user must have one of the following security rights:

  • security right atom:org:assign_org_sr_to_user for the organisation with the ID in parameter org_id
  • security right atom:tenant:assign_org_sr_to_user for the tenant that the organisation belongs to
  • global security right atom:global:assign_org_sr_to_user"
Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

org_admin_id
required
string <uuid>

ID of an organisation admin

Request Body schema: application/json
required

list of security rights

security_rights
required
Array of strings

list of security rights

Responses

Request samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Archive an organisation

Archive an organisation.

In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Responses

Response samples

Content type
application/json
{
  • "org": {
    }
}

Restore an organisation

Restore an organisation.

In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Responses

Response samples

Content type
application/json
{
  • "org": {
    }
}

Add security rights to an organisation

Add security rights to an organisation.

In order to execute this action the current user must have security right atom:tenant:assign_sr_to_org for the tenant which the organisation belongs to.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

Request Body schema: application/json
required

list of security rights

security_rights
required
Array of strings

list of security rights

Responses

Request samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Response samples

Content type
application/json
{
  • "org": {
    }
}

Remove security rights from an organisation

Remove security rights from an organisation.

In order to execute this action the current user must have security right atom:tenant:assign_sr_to_org for the tenant which the organisation belongs to.

Authorizations:
SVX-JWT
path Parameters
org_id
required
string <uuid>

ID of the organisation

security_rights
required
string

Comma-separated security rights to remove

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

List organisation in a tenant

List organisations in a tenant.

In order to execute this action the current user must have global security atom:global:view_all_orgs or security right atom:tenant:view_tenant_orgs for the tenant with the ID in parameter tenant_id.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

query Parameters
status
string
Enum: "active" "archived" "all"

org status: active, archived, or all

per_page
integer

number of organisations per page

order
string
Enum: "asc" "desc"

order organisations by name in ascending or descending order

page
integer

Number of the page to serve. This parameter activates classic page-based pagination and cannot be used with parameter next_page_after which activates cursor-based pagination.

next_page_after
string

When cursor based pagination is used, each paginated response has value next_page_after which, if submitted as a parameter, allows to retrieve the next page. next_page_after is null is there is no next page. next_page_after cannot be used together with parameter page. page activates classic page-based pagination.

filter_by
string

Search organisations whose names contains the given string.

Responses

Response samples

Content type
application/json
{
  • "meta": { },
  • "next_page_after": "string",
  • "orgs": [
    ]
}

Create an organisation

Create an organisation.

In order to execute this action the current user must have security right atom:tenant:create_org for the tenant with the ID in parameter tenant_id.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

query Parameters
no_first_user
boolean

If true, the current user will not become the first admin of the organisation, and the organisation will have not admins. By default the current user becomes the first admin of the organisation

add_all_external_security_rights
boolean

By default only all internal org-level security rights of the parent tenant are added to a new organisation If this parameter is true, also all external org-level security rights of the parent tenant are added to a new organisation.

Request Body schema: application/json
required

Organisation attributes

authorised_officer_email
string

Authorised officer email

authorised_officer_first_name
string

Authorised officer first name

authorised_officer_last_name
string

Authorised officer last name

business_address
string

Business address

color
string

The color associated with the organisation in the hex format. Used for the UI.

company_number
string

Company number

company_url
string or null <uri>

URL of the company

legal_name
string

Legal number

lei_number
string

Legal entity identification number

logo_url
string <uri>

URL to a logo image

name
required
string

Name of the organisation to create

status_in_tenant
string

Status: signed legal agreement received or proof of concept

trading_name
string

Trading number

Responses

Request samples

Content type
application/json
{
  • "authorised_officer_email": "string",
  • "authorised_officer_first_name": "string",
  • "authorised_officer_last_name": "string",
  • "business_address": "string",
  • "color": "string",
  • "company_number": "string",
  • "company_url": "http://example.com",
  • "legal_name": "string",
  • "lei_number": "string",
  • "logo_url": "http://example.com",
  • "name": "string",
  • "status_in_tenant": "string",
  • "trading_name": "string"
}

Response samples

Content type
application/json
{
  • "org": {
    }
}

Show a list of organisations which current user can see.

Show a list of organisations which the current user can see. These are the following organisations:

  • If the current user has global security right atom:global:view_all_tenants, all organisations are shown
  • Organisations of all tenants for which the current user has tenant security right atom:tenant:view_tenant_orgs
  • Organisations for which current user is an admin and has security right atom:org:view_org

Can take optional parameter tenant_id which will restrict the list of organisations to one tenant only.

Authorizations:
SVX-JWT
query Parameters
tenant_id
string <uuid>

This parameter is the ID of a tenant and if present it restricts the list of organisations to one tenant only.

Responses

Response samples

Content type
application/json
{
  • "orgs": [
    ]
}

Monitoring

Return the API version

Return the API version

Responses

Response samples

Content type
application/json
{
  • "component": {
    }
}

Return the API version

Return the API version

Responses

Response samples

Content type
application/json
{
  • "component": {
    }
}

Return the API version

Return the API version

Responses

Response samples

Content type
application/json
{
  • "component": {
    }
}

/alive/platform

Responses

Helpers

Obtain a signed upload URL

Create a signed upload URL for one of the supported file storages. This endpoint is the first step in creating a file.

SVX Utilities generates a random key under which a file will be registered, and creates a record in the database where the key is stored along with the filename and the content type. A client is then expected to use a signed URL present in response field upload_url to upload a file to a cloud file storage. This URL is only valid for a short period of time specified in response field upload_url_expires_in_seconds.

Uploading is done via HTTP method PUT. The response of this endpoint contains a list of headers which much be included in the PUT request.

The following is an example curl command to upload a file:

curl --location --request PUT \
'https://meecodevstorage0.blob.core.windows.net/dev/66c35456-eb64-42fb-a31a-806530786fe2?se=2023-01-23T08%3A49%3A29Z&sig=mzuonk01F8L%2F0q7avsMvvenk2NwLFVXYsyWJeu5Jdgc%3D&sp=rw&sr=b&sv=2018-11-09' \
--header 'x-ms-blob-type: BlockBlob' \
--data-binary '@/home/john/file.jpg'

After the file is uploaded to Azure Blob Storage, the client is supposed to confirm this upload calling PUT /blobs/{key}.

The response to POST /blobs also contains a URL to retrieve the file, but that functionality is only available after the upload has been confirmed, otherwise it will result in 404 NotFound.

All expired and not confirmed records created with this endpoint will be removed after a while.

Authorizations:
SVX-JWT
query Parameters
storage_name
required
string

Name of the file storage. This parameter so optional, if no name is specified, the default file storage is used

Request Body schema: application/json
required

File name and content type

content_type
string

content type of the file to be uploaded

filename
required
string

name of the file to be uploaded

Responses

Request samples

Content type
application/json
{
  • "content_type": "image/jpeg",
  • "filename": "logo.jpg"
}

Response samples

Content type
application/json
{
  • "blob": {
    }
}

Redirect to a file in a cloud file storage

Redirect to a file in a cloud file storage.

This endpoint is public and it only requires the file key in the URL.

The Content Disposition header in the response is hardcoded to be inline for now, but it can be made a parameter to this endpoint in future if needed. The filename and the content type included in Content Disposition are taken from the database record created in POST /blobs."

path Parameters
id
required
string

Blob key

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "http_code": 401,
  • "message": null
}

Confirm a blob upload

Confirm a blob upload.

After a client retrieves an uploads URL via POST /blobs and uploads a file to that URL, a client is expected to inform SVX Utilities that the upload is successful. The file is not accessible unless the upload is confirmed.

This call may only be performed by the same user who retrieved the upload URL.

The response to the endpoint contains one more upload URL. A client can use it to upload a newer version of the file under the same key. No confirmation is required in this case.

See documentation for POST /blobs for more information.

Authorizations:
SVX-JWT
path Parameters
id
required
string

Blob key

Responses

Response samples

Content type
application/json
{
  • "blob": {
    }
}

View blob info

View information about the file.

This call may only be performed by the same user who retrieved the upload URL and uploaded the file.

Along with a URL to read the file the response to the endpoint contains one more upload URL. A client can use it to upload a newer version of the file under the same key. No confirmation is required in this case.

See documentation for POST /blobs for more information.

Authorizations:
SVX-JWT
path Parameters
id
required
string

Blob key

Responses

Response samples

Content type
application/json
{
  • "blob": {
    }
}

View blob info

View public information about the file.

See documentation for POST /blobs for more information.

path Parameters
id
required
string

Blob key

Responses

Response samples

Content type
application/json
{
  • "blob": {
    }
}

List SVX Wallet deployments for an organisation

Returns a paginated list of SVX Wallet deployments for a specific organisation

Authorizations:
SVX-JWT
path Parameters
org_id
required
string

Organisation ID

query Parameters
per_page
integer

Number of deployments per page

page
integer

Page number

order
string
Enum: "asc" "desc"

Order direction: asc or desc

Responses

Response samples

Content type
application/json
{
  • "deployments": [
    ],
  • "meta": {
    }
}

Create an SVX Wallet deployment

Create an SVX Wallet deployment

Authorizations:
SVX-JWT
path Parameters
org_id
required
string

Organisation ID

Request Body schema: application/json
optional

Deployment request

description
string

Optional human-readable description for this SVX Wallet instance.

version_series
string

Version series to deploy (e.g. "0.1"). Defaults to the configured default_version_series if omitted.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "version_series": "string"
}

Response samples

Content type
application/json
{
  • "instance_id": "550e8400-e29b-41d4-a716-446655440000"
}

Delete an SVX Wallet deployment by instance ID

Deletes a specific SVX Wallet deployment by instance ID

Authorizations:
SVX-JWT
path Parameters
id
required
string

Instance ID

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "http_code": 401,
  • "message": null
}

Get an SVX Wallet deployment by instance ID

Returns a specific SVX Wallet deployment by instance ID

Authorizations:
SVX-JWT
path Parameters
id
required
string

Instance ID

Responses

Response samples

Content type
application/json
{
  • "all_workflows_successful": null,
  • "current_user_id": null,
  • "description": "Acme Corp production wallet",
  • "error": null,
  • "external_idp_client_id": "some-client-id",
  • "git_workflow": null,
  • "git_workflow_duration": null,
  • "git_workflow_log": [
    ],
  • "inserted_at": "2023-12-01T10:00:00Z",
  • "instance_config_for_workflow_retries": null,
  • "instance_id": "xbkm9-vxnve",
  • "internal_domain": "acme.wallet.internal",
  • "online_at": null,
  • "online_check_counter": 0,
  • "online_status_checked_at": null,
  • "public_domain": "acme.meeco.app",
  • "redis_db": 3,
  • "status": "config_values_generated",
  • "versions": {
    },
  • "workflow_reports": null
}

Redirect to the logo of an organisation

Redirect to the logo of an organisation.

This endpoint is public and it only requires the organisation ID in the URL.

path Parameters
org_id
required
string <uuid>

Organisation ID

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Redirect to the logo of a tenant

Redirect to the logo of a tenant.

This endpoint is public and it only requires the tenant ID in the URL.

path Parameters
tenant_id
required
string <uuid>

Tenant ID

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Security Rights

List all users with global security rights

List all users with global security rights.

It is also possible to request a list of archived global admins, that is, users who used to have global security rights, but do not have them now.

In order to execute this action the current user must have "security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
query Parameters
email
string

search admins by their email address

status
string
Enum: "active" "archived"

admin status: active or archived

per_page
integer

number of admins per page

order
string
Enum: "asc" "desc"

order admins by name in ascending or descending order

page
integer

Number of the page to serve. This parameter activates classic page-based pagination and cannot be used with parameter next_page_after which activates cursor-based pagination.

next_page_after
string

When cursor based pagination is used, each paginated response has value next_page_after which, if submitted as a parameter, allows to retrieve the next page. next_page_after is null is there is no next page. next_page_after cannot be used together with parameter page. page activates classic page-based pagination.

Responses

Response samples

Content type
application/json
{
  • "admins": [
    ],
  • "meta": { },
  • "next_page_after": "string"
}

Remove all global security rights from a user

Remove a user from global admins, that is, remove all global security rights from a user.

In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Show a user with global security rights

Show a user with global security rights

In order to execute this action the current user must have "security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

Archive a global admin

Remove a user from global admins, and put the admin into the registry of former global admins.

In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Restore an archived global admin

Reinstate an archived user and make him/her a global admin again.

In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

Assign global security rights to a user

Assign global security rights to a user.

The user we are assigning security rights to does not need to be known by ATOM.

In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of a user to whom security rights are assigned

Request Body schema: application/json
required

list of security rights

security_rights
required
Array of strings

list of security rights

Responses

Request samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Remove global security rights from a user

Remove global security rights from a user.

In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.

Authorizations:
SVX-JWT
path Parameters
id
required
string <uuid>

ID of a user from whom security rights are removed

security_rights
required
string

List of comma-separated security rights to remove

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

All security rights of the current user

Show all security rights of the current user for all active tenants and organizations

Authorizations:
SVX-JWT

Responses

Response samples

Content type
application/json
{
  • "orgs": [
    ],
  • "security_rights": [
    ],
  • "tenants": [
    ]
}

Show all security rights known to ATOM

Show all security rights known to ATOM

query Parameters
with_inactive
boolean

By default only active security rights are fetched. with_inactive allows to retrieve all security rights including inactive.

Responses

Response samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Tenants

List all tenants

List all tenants.

In order to execute this action the current user must have security right atom:global:view_all_tenants.

Authorizations:
SVX-JWT
query Parameters
status
string
Enum: "active" "archived" "all"

tenant status: active, archived, or all

per_page
integer

number of tenants per page

order
string
Enum: "asc" "desc"

order tenants by name in ascending or descending order

page
integer

Number of the page to serve. This parameter activates classic page-based pagination and cannot be used with parameter next_page_after which activates cursor-based pagination.

next_page_after
string

When cursor based pagination is used, each paginated response has value next_page_after which, if submitted as a parameter, allows to retrieve the next page. next_page_after is null is there is no next page. next_page_after cannot be used together with parameter page. page activates classic page-based pagination.

filter_by
string

Search tenants whose names contains the given string, or by their ID.

Responses

Response samples

Content type
application/json
{
  • "meta": { },
  • "next_page_after": "string",
  • "tenants": [
    ]
}

Create a tenant

Create a tenant.

In order to execute this action the current user must have security right atom:global:create_tenant. The current user becomes the first admin of the tenant.

Authorizations:
SVX-JWT
query Parameters
with_external_security_rights
boolean

By default new tenants receive all internal security rights only. with_external_security_rights also adds all external security rights to the tenant.

Request Body schema: application/json
required

Tenant attributes

authorised_officer_email
string or null [ 0 .. 72 ] characters

Authorised officer email

authorised_officer_first_name
string or null [ 0 .. 72 ] characters

Authorised officer first name

authorised_officer_last_name
string or null [ 0 .. 72 ] characters

Authorised officer last name

business_address
string or null [ 0 .. 72 ] characters

Business address

color
string or null [ 0 .. 20 ] characters

The color associated with the tenant. Used for the UI.

company_number
string or null [ 0 .. 72 ] characters

Company number

id
string <uuid>

ID of the tenant. This parameter is optional. If missing, ATOM will choose a random UUID

legal_name
string or null [ 0 .. 72 ] characters

Legal number

lei_number
string or null [ 0 .. 72 ] characters

Legal entity identification number

logo_url
string or null <uri>

URL to a logo image

name
required
string

Name of the tenant

status_in_tenant
string or null [ 0 .. 72 ] characters

Status: signed legal agreement received or proof of concept

trading_name
string or null [ 0 .. 72 ] characters

Trading number

Responses

Request samples

Content type
application/json
{
  • "authorised_officer_email": "string",
  • "authorised_officer_first_name": "string",
  • "authorised_officer_last_name": "string",
  • "business_address": "string",
  • "color": "string",
  • "company_number": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "legal_name": "string",
  • "lei_number": "string",
  • "logo_url": "http://example.com",
  • "name": "string",
  • "status_in_tenant": "string",
  • "trading_name": "string"
}

Response samples

Content type
application/json
{
  • "tenant": {
    }
}

Delete a tenant

Delete a tenant.

In order to execute this action the current user must have security right atom:global:create_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Show a tenant

Show a tenant.

In order to execute this action the current user must have either global security right atom:global:view_all_tenants or tenant security right atom:tenant:view_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Update a tenant

Update a tenant.

In order to execute this action the current user must have security right atom:global:create_tenant.

It is possible to modify 3 fields:

  • name
  • logo_url
  • color
Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Request Body schema: application/json
required

Tenant attributes

authorised_officer_email
string or null [ 0 .. 72 ] characters

Authorised officer email

authorised_officer_first_name
string or null [ 0 .. 72 ] characters

Authorised officer first name

authorised_officer_last_name
string or null [ 0 .. 72 ] characters

Authorised officer last name

business_address
string or null [ 0 .. 72 ] characters

Business address

color
string or null [ 0 .. 20 ] characters

The color associated with the tenant. Used for the UI.

company_number
string or null [ 0 .. 72 ] characters

Company number

id
string <uuid>

ID of the tenant. This parameter is optional. If missing, ATOM will choose a random UUID

legal_name
string or null [ 0 .. 72 ] characters

Legal number

lei_number
string or null [ 0 .. 72 ] characters

Legal entity identification number

logo_url
string or null <uri>

URL to a logo image

name
required
string

Name of the tenant

status_in_tenant
string or null [ 0 .. 72 ] characters

Status: signed legal agreement received or proof of concept

trading_name
string or null [ 0 .. 72 ] characters

Trading number

Responses

Request samples

Content type
application/json
{
  • "authorised_officer_email": "string",
  • "authorised_officer_first_name": "string",
  • "authorised_officer_last_name": "string",
  • "business_address": "string",
  • "color": "string",
  • "company_number": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "legal_name": "string",
  • "lei_number": "string",
  • "logo_url": "http://example.com",
  • "name": "string",
  • "status_in_tenant": "string",
  • "trading_name": "string"
}

Response samples

Content type
application/json
{
  • "tenant": {
    }
}

List admins of a tenant

List admins of a tenant.

In order to execute this action the current user must have

In order to execute this action the current user must have security right atom:tenant:list_tenant_admins for the tenant with the ID in parameter tenant_id

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

query Parameters
status
string
Enum: "active" "archived"

admin status: active or archived

email
string

search admins by their email address. Currenty works only with status=archived

per_page
integer

number of admins per page

order
string
Enum: "asc" "desc"

order admins by given name in ascending or descending order

page
integer

Number of the page to serve. This parameter activates classic page-based pagination and cannot be used with parameter next_page_after which activates cursor-based pagination.

next_page_after
string

When cursor based pagination is used, each paginated response has value next_page_after which, if submitted as a parameter, allows to retrieve the next page. next_page_after is null is there is no next page. next_page_after cannot be used together with parameter page. page activates classic page-based pagination.

Responses

Response samples

Content type
application/json
{
  • "admins": [
    ],
  • "meta": { },
  • "next_page_after": "string"
}

Remove all tenant security rights from a user

Remove tenant admin privileges from a tenant admin.

In order to execute this action the current user must have one of the following security rights:

  • atom:global:assign_tenant_sr_to_tenant_admin
  • atom:tenant:assign_tenant_sr_to_tenant_admin
Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

tenant_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Show an admin of a given tenant

Show an admin of a given tenant

In order to execute this action the current user must have security right atom:tenant:list_tenant_admins for the tenant with the ID in parameter tenant_id

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

tenant_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

Archive a tenant admin

Remove a user from admins of the given tenant, and put the admin into the registry of former admins of that tenant.

In order to execute this action the current user must have one of the following security rights:

  • atom:global:assign_tenant_sr_to_tenant_admin
  • atom:tenant:assign_tenant_sr_to_tenant_admin
Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

tenant_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Restore an archived tenant admin

Reinstate an archived user and make him/her a tenant admin again.

In order to execute this action the current user must have one of the following security rights:

  • atom:tenant:assign_tenant_sr_to_tenant_admin
  • atom:global:assign_tenant_sr_to_tenant_admin
Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

tenant_admin_id
required
string <uuid>

ID of the admin

Responses

Response samples

Content type
application/json
{
  • "admin": {
    }
}

Assign tenant security rights to a user

Assign tenant security rights to a user.

The user we are assigning security rights to does not need to be known by ATOM.

In order to execute this action the current user must have security right atom:tenant:assign_tenant_sr_to_tenant_admin for the tenant with the ID in parameter tenant_id.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

tenant_admin_id
required
string <uuid>

ID of a tenant admin

Request Body schema: application/json
required

list of security rights

security_rights
required
Array of strings

list of security rights

Responses

Request samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Archive a tenant

Archive a tenant.

In order to execute this action the current user must have security right atom:global:create_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Responses

Response samples

Content type
application/json
{
  • "tenant": {
    }
}

Restore a tenant

Restore a tenant.

In order to execute this action the current user must have security right atom:global:create_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Responses

Response samples

Content type
application/json
{
  • "tenant": {
    }
}

Add security rights to a tenant

Add security rights to a tenant.

In order to execute this action the current user must have security right atom:global:assign_sr_to_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

Request Body schema: application/json
required

list of security rights

security_rights
required
Array of strings

list of security rights

Responses

Request samples

Content type
application/json
{
  • "security_rights": [
    ]
}

Response samples

Content type
application/json
{
  • "tenant": {
    }
}

Remove security rights from a tenant

Remove security rights from a tenant.

In order to execute this action the current user must have security right atom:global:assign_sr_to_tenant.

Authorizations:
SVX-JWT
path Parameters
tenant_id
required
string <uuid>

ID of the tenant

security_rights
required
string

Comma-separated security rights to remove

Responses

Response samples

Content type
application/json
{
  • "error": "unauthorized",
  • "extra_info": {
    },
  • "file": "lib/source/file.ex",
  • "http_code": 401,
  • "line": 85,
  • "message": null
}

Users

Show a list of organisations the current user is an admin of

Show a list of organisations the current user is an admin of. Can take optional parameter tenant_id which restricts the list of organisations to one tenant only.

Authorizations:
SVX-JWT
query Parameters
tenant_id
string <uuid>

This parameter is the ID of a tenant and if present it restricts the list of organisations to one tenant only.

Responses

Response samples

Content type
application/json
{
  • "archived_orgs": [
    ],
  • "orgs": [
    ]
}

List invitations

Requires no security rights


Endpoint works for a tenant and organisation user based on the Meeco-Organisation-ID header.

Returns a list of invitations available to the caller.

In case of tenant context, endpoint returns all invitations available in the tenancy.

In case of organization context, endpoint returns all invitations available in the organisations.

Authorizations:
SVX-JWT
query Parameters
status
string
Example: status=pending

Filter invitation by status attribute: e.g. pending,expired.
Available values: pending, accepted, expired.
To filter by more than one status separate values by using comma.

order
string
Enum: "ASC" "DESC"

order invitation, Default ordering: DESC (Supported: ASC, DESC)

order_by
string
Value: "given_name"

order invitation for columnName, defaults column: created_at (Supported: given_name)

per_page
integer
Example: per_page=10

Number of records per page

page
integer
Example: page=1

Page number (starting from 1)

header Parameters
Meeco-Organisation-ID
string
Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f

Specify Organisation ID to set request context to organisation

Responses

Response samples

Content type
application/json
{
  • "invitations": [
    ],
  • "meta": {
    }
}

Invite admin to join the platform

Creates an invitation for user to join the platform. If user already exists, he/she will be added to the target organisation or tenant.

Payload example to invite an admin:

{ 
"invitation": {
"email": "email@meeco.me",
"given_name": "Peter",
"family_name": "Peterson",
}
}

Tenant admin will be invited to is determined by the tid attribute value inside the JWT token & empty the Meeco-Organisation-ID query param value in request.

Org admin will be invited to is determined by the tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.

Global admin will be invited to is determined by the empty value in tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.

The user who is sending the invitations can only invite other users within the tenant or organization they have selected.

For example, if the user is in the tenant context, they can only manage tenant users and invitations. Similarly, in the org context, they can only manage org users and invitations, and in the global context, they can only manage global users and invitations.

Authorizations:
SVX-JWT
header Parameters
Meeco-Organisation-ID
string
Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f

Specify Organisation ID to set request context to organisation

Request Body schema: application/json
required
required
object (PlatformCreateInvitationDto)

Responses

Request samples

Content type
application/json
{
  • "invitation": {
    }
}

Response samples

Content type
application/json
{
  • "invitation": {
    }
}

Delete the invitation

Deletes a pending or expired invitation.

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-ID
string
Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f

Specify Organisation ID to set request context to organisation

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Fetch information about the invitation

Fetch information about the invitation.

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-ID
string
Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f

Specify Organisation ID to set request context to organisation

Responses

Response samples

Content type
application/json
{
  • "invitation": {
    }
}

Resend invitation

Resend invitation email to the user.

Authorizations:
SVX-JWT
path Parameters
id
required
string
header Parameters
Meeco-Organisation-ID
string
Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f

Specify Organisation ID to set request context to organisation

Responses

Response samples

Content type
application/json
{
  • "invitation": {
    }
}

Update a user detail

This endpoint updates a user detail

Authorizations:
SVX-JWT
Request Body schema: application/json
required
required
object (PlatformUpdateUserDto)

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Change user password

This endpoint updates a user password

Authorizations:
SVX-JWT
Request Body schema: application/json
required
required
object (PlatformUpdatePasswordDto)

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{ }

Show info about the current user

Show information about the user with a valid JWT:

  • User ID from the JWT (taken from sub)
  • Tenant name
  • Whether the user is known to ATOM
Authorizations:
SVX-JWT

Responses

Response samples

Content type
application/json
{
  • "administered_archived_orgs": [
    ],
  • "administered_archived_tenants": [
    ],
  • "administered_orgs": [
    ],
  • "administered_tenants": [
    ],
  • "family_name": "string",
  • "given_name": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "tenant_in_jwt": {
    },
  • "user_known_to_atom": true,
  • "user_type": "string"
}