/api/account/login
Login with your credentials
Request body · Credentials
Responses
200 Success, 401 Unauthorized
The Unibright ONE service API is a REST API with JSON payloads, callable from ERP and legacy systems. Every function of the platform is available as a service call; the web dashboard is optional.
Request a token with your account credentials. The token is valid for 24 hours. Send it with every call that is marked Bearer token:
POST /api/account/token
Content-Type: application/json
{ "username": "you@example.com", "password": "…" }
→ use the returned JWT as
Authorization: Bearer <token>
Signatures: when you notarize with a UserSecret, the signature is
SHA256(payload + user + userSecret), otherwise
SHA256(payload + user). The user defaults to your account email address.
Authenticate with your Unibright ONE credentials. API calls use a JWT bearer token.
/api/account/login
Login with your credentials
Request body · Credentials
Responses
200 Success, 401 Unauthorized
/api/account/logout
Sign out from a previous login
Responses
200 Success
/api/account/token
Request a JWT token with your credentials to make API calls
JWT token is valid for 24 hours
Request body · Credentials
Responses
200 Success, 401 Unauthorized
Notarize strings or business objects on the blockchain of your choice, optionally with a workgroup decision.
/api/Notarizations
Bearer token
Get all your notarizations
Responses · Notarization[]
200 Success, 401 Unauthorized, 403 Forbidden
/api/Notarizations/{id}
Bearer token
Get notarization by ID
Parameters
| Name | In | Description |
|---|---|---|
| id int64 | path | ID of requested notarization required |
Responses
200 Success, 401 Unauthorized, 403 Forbidden
/api/Notarizations/AllNotarizationTargets
Bearer token
Get all notarization targets/blockchains. Used for overwriting the default notarization for a certain request.
Responses · string[]
200 Success, 401 Unauthorized, 403 Forbidden
/api/Notarizations/NotarizeString
Bearer token
Notarize a string value and optionally have a workgroup decide on notarization
Will notarize the hash of your input string along with the hash of your signature on that notarization in the given target chain
Parameters
| Name | In | Description |
|---|---|---|
| NotarizationPayload string | query | String to notarize - its hash notarized |
| Workgroup string | query | [Optional] The workgroup to decide upon notarization - all members will be notified and asked for approval/rejection |
| UserSecret string | query | [Optional] Allows for more entropy in the signature |
| OverwriteBlockchainTarget string | query | [Optional] Define a different blockchain target for this request - otherwise your default setting will be used |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Notarizations/NotarizeSyncTreeJSON
Bearer token
Notarize a Business Object and optionally have a workgroup decide on notarization
Will notarize the root hash of your input business object in JSON notation along with the hash of your signature on that notarization in the given target chain.
Parameters
| Name | In | Description |
|---|---|---|
| MaskedAttributes string | query | [Optional] Array of masked attributes semicolon-separated for example: name; shipTo:city |
| Workgroup string | query | [Optional] The workgroup to decide upon notarization - all members will be notified and asked for approval/rejection |
| UserSecret string | query | [Optional] Allows for more entropy in the signature |
| OverwriteBlockchainTarget string | query | [Optional] Define a different blockchain target for this request - otherwise your default setting will be used |
Request body · JSON
Business Object in JSON notation to notarize - will be transformed into a Synctree with its root hash notarized
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
Turn business objects into SyncTrees and back, with optional masking of attributes.
/api/SyncTree/CalculateSyncTree
Bearer token
Calculates a SyncTree from a given business object JSON representation with all nodes and hashes
Parameters
| Name | In | Description |
|---|---|---|
| maskedAttributes string | query | [Optional] Array of masked attributes semicolon-separated for example: name; shipTo:city |
Request body · JSON
Sample request
{
"name": "John Smith",
"sku": "20223",
"price": 23.95,
"shipTo": {
"name": "Jane Smith",
"address": "123 Maple Street",
"city": "Pretendville",
"state": "NY",
"zip": "12345"
},
"billTo": {
"name": "John Smith",
"address": "123 Maple Street",
"city": "Pretendville",
"state": "NY",
"zip": "12345"
}
}
Responses
200 Success, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/SyncTree/RecreateObjectFromSyncTree
Bearer token
Recreates a business object JSON out of a calculated SyncTree
Request body · JSON
Sample request
{
"RootProof": "3c0677a62b5b8df6deaf70e32051ea92",
"Nodes": [
{
"SyncTreeNodeID": "cc9e88f2-0334-47f5-b604-9aa5c7dcb9bd",
"ParentNodeId": "29b70794-50ed-4f08-851f-8e55b62f866e",
"Value": "name: John Smith",
"IsLeaf": true,
"IsRoot": false,
"IsHash": false,
"IsCovered": false,
"Level": 0,
"Index": 0
},
{
"SyncTreeNodeID": "b597e39b-6745-48fd-b6e1-1cfa9fecd25a",
"ParentNodeId": "29b70794-50ed-4f08-851f-8e55b62f866e",
"Value": "sku: 20223",
"IsLeaf": true,
"IsRoot": false,
"IsHash": false,
"IsCovered": false,
"Level": 0,
"Index": 1
},
"… 29 more nodes"
]
}
Responses
200 Success, 500 Server Error, 401 Unauthorized, 403 Forbidden
Verify that a notarization exists on chain and that it was signed by the claimed user.
/api/Verifications/AllNotarizationTargets
Bearer token
Get all notarization targets/blockchains. Used for overwriting the default notarization for a certain request.
Responses · string[]
200 Success, 401 Unauthorized, 403 Forbidden
/api/Verifications/VerifyExistenceAndOwnership
Bearer token
Verify existence and ownership (signature) of an existing string notarization
Parameters
| Name | In | Description |
|---|---|---|
| blockchainTarget string | query | Target blockchain target used for notarization |
| blockchainTxId string | query | Target blockchain specific ID of notarization transaction |
| PayloadToVerify string | query | Payload to verify against notarized payload |
| SignatureToVerify string | query | Signature to verify against notarized signature |
| originalUser string | query | User identification used for signing - default is email address of user |
| userSecret string | query | [Optional] User secret used for signing, if any |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Verifications/VerifySynctree
Bearer token
Verify existence and ownership (signature) of an existing business object notarization.
Original business object JSON was transformed in to a SyncTree with its root hash notarized - given hash of SynctreePayloadToVerify will be verified against stored hash
Parameters
| Name | In | Description |
|---|---|---|
| blockchainTarget string | query | Target blockchain target used for notarization |
| blockchainTxId string | query | Target blockchain specific ID of notarization transaction |
| SignatureToVerify string | query | Signature to verify against notarized signature |
| originalUser string | query | User identification used for signing - default is email address of user |
| userSecret string | query | [Optional] User secret used for signing, if any |
Request body · JSON
SyncTree payload to verify against notarized payload
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Verifications/VerifySignature
Bearer token
Signature used when UserSecret given: SHA256-HASH( PAYLOAD + USER + USERSECRET) else SHA256-HASH( PAYLOAD + USER)
Parameters
| Name | In | Description |
|---|---|---|
| payload string | query | Data to sign AKA payload |
| user string | query | User identifier within Unibright.ONE - default is user's email address |
| userSecret string | query | [Optional] salt given by user for more entropy in signature |
Responses
200 Success, 401 Unauthorized, 403 Forbidden
Create workgroups, invite participants and manage invitations.
/api/Workgroups
Bearer token
Get all workgroups created by you with their participants
Responses · Workgroup[]
200 Success, 401 Unauthorized, 403 Forbidden
/api/Workgroups/{id}
Bearer token
Get a specific workgroup created by you and its participants
Parameters
| Name | In | Description |
|---|---|---|
| id string | path | ID of Workgroup to query required |
Responses
200 Success, 401 Unauthorized, 403 Forbidden
/api/Workgroups/GetPendingWorkgroupInvitations
Bearer token
Get all your pending workgroup invitations
Responses · WorkgroupParticipant[]
200 Success, 401 Unauthorized, 403 Forbidden
/api/Workgroups/Create
Bearer token
Create a new workgroup with the given description. Participants are to be invited via invoking "InviteParticipant"
Parameters
| Name | In | Description |
|---|---|---|
| Description string | query | Workgroup description |
| ApprovalsForAutomaticAcceptance int32 | query | Number of needed approvals for automatic acceptance within workgroup |
| AutomaticApprovalExiting boolean | query | If set to true will exit an approval within workgroup |
| ApprovalVetoPossible boolean | query | If set to true, one rejection within workgroup will prevent approval of notarization |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Workgroups/InviteParticipant
Bearer token
Invite participants via their email to a workgroup. Users need to be registered in Unibright.ONE with the given email address
Parameters
| Name | In | Description |
|---|---|---|
| WorkgroupId string | query | ID of workgroup |
| ParticipantEmail string | query | Email address of the participant |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Workgroups/AcceptInvitation
Bearer token
Accept a pending workgroup invitation
Parameters
| Name | In | Description |
|---|---|---|
| WorkgroupId string | query | ID of workgroup |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Workgroups/Leave
Bearer token
Leave a workgroup you are member of
Parameters
| Name | In | Description |
|---|---|---|
| WorkgroupId string | query | ID of workgroup |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
/api/Workgroups/RemoveParticipant
Bearer token
Remove a participant from a workgroup you created by email used for inviting the participant
Parameters
| Name | In | Description |
|---|---|---|
| WorkgroupId string | query | ID of workgroup |
| ParticipantEmail string | query | Email address of the participant |
Responses
200 Success, 404 Not Found, 500 Server Error, 401 Unauthorized, 403 Forbidden
| Field | Type | Notes |
|---|---|---|
| username | string | |
| password | string |
| Field | Type | Notes |
|---|---|---|
| userId | string | nullable |
| id | int64 | |
| status | string | required |
| target | string | required |
| mode | string | required |
| payload | string | nullable |
| userSecret | string | nullable |
| payloadHash | string | nullable |
| signature | string | nullable |
| arguments | string | nullable |
| costsInCredits | double | nullable |
| targetId | string | nullable |
| targetTransactionQuery | string | nullable |
| workgroup | string | nullable |
| notificationApprovals | int32 | nullable |
| notificationRejections | int32 | nullable |
| exitPerformed | boolean | |
| exitNotarizationUserId | string | nullable |
| exitNotarizationId | int64 | |
| createTime | date-time | required |
| Field | Type | Notes |
|---|---|---|
| workgroupId | string | required |
| description | string | required |
| numberOfApprovalsForAcceptance | int32 | |
| automaticExitWhenApproved | boolean | |
| approvalVetoPossible | boolean | |
| creatorID | string | required |
| creatorEmail | string | required |
| participants | WorkgroupParticipant[] | nullable |
| Field | Type | Notes |
|---|---|---|
| workgroupId | string | required |
| participantEmail | string | required |
| status | string | required |
| workgroup | Workgroup |