Usuário
Resumo
Nessa API ocorre o registro dos usuários com perfil de membros de uma comunidade ou usuário de uma empresa.
O usuário como membro terá acesso a sua que ele pertence e o de empresa terá acesso as funcionalidades da empresa criada.
Os usuários serão associados a permissões especificas que darão acessos específicos a nível de funcionalidades e sub funcionalidades.
Como funciona
O cliente com perfil de empresa passa pelo onboarding e com isso recebe um um usuário e senha para que possa utilizar na autenticação e receber a credencial "bearer" token.
Objeto User
Endpoints
/User
(JWT) Lista dados do usuário logado
GET
https://goblockchain.io/gotokens-api/v1/user
Nível de permissionamento necessário: qualquer
Headers
authorization*
Bearer
JWT
{
"id": "633adbcaf51f5c4285saea8",
"name": "User 1",
"email": "[email protected]",
"address": "Av. Aristides Cunha, 1710, Itaiangá, São Paulo - SP - Brasil",
"companies":[
{
"id": "5i8u3d",
"role": "company_moderator"
}
],
"communities":[
{
"id": "4ew8wd",
"role": "community_admin"
}
]
}
(JWT) Salva as informações alteradas do usuário
PATCH
https://goblockchain.io/gotokens-api/v1/user
Nível de permissionamento necessário: qualquer
Headers
authorization*
Bearer
JWT
Request Body
name
String
Nome do Usuário.
String
E-mail do Usuário.
password
String
Senha do Usuário.
address
String
Endereço do Usuário.
{
"id": "633adbcaf51f5c42246d6ea6",
"name": "Clarisse",
"email": "[email protected]",
"password": "***********",
"address": "Av. Aristides Cunha, 1710, Itaiangá, São Paulo - SP - Brasil"
}
/Wallets
(JWT) Lista as wallets com status "active" do usuário logado
GET
https://goblockchain.io/gotokens-api/v1/wallets
Nível de permissionamento necessário: qualquer
Query Parameters
limit
String
Limite de resultados na busca
offset
String
Quantidade de resultados para avançar da busca
Headers
authorization*
Bearer
JWT
{
"wallets": [
{
"id": "5acfdde8-5c8c-11ed-9b6a-0242ac120002",
"address": "0x71080bc5bb5303053ef17ece60890f7e65573150",
"status": "active",
"provider": "firebase_google",
"providerId": "ddsooidnfos42x",
"email": "[email protected]",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
},
{
"id": "a049ff02-5c7d-11ed-9b6a-0242ac120002",
"address": "0x44c1767ed909e808cee9a92d016ce3956d60871f",
"status": "active"
},
{
"id": "5acfdde8-5c8c-11ed-9b6a-0242ac120002",
"address": "0x71080bc5bb5303053ef17ece60890f7e65573150",
"status": "active",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
}
]
}
(JWT) Cria uma wallet com as informações passadas
POST
https://goblockchain.io/gotokens-api/v1/wallets
Existem 3 padrões de parâmetros possíveis para criar uma wallet:
1 - Enviando apenas uma address
+ blockchain
e network
no body da requisição, é importada uma Wallet como externa, guardando apenas suas informações públicas.
2 - Enviando uma privateKey
+ blockchain
e network
no body da requisição, é instanciada uma Wallet assim como a original, a partir dessa privateKey
.
3 - Enviando email
, providerId
e provider
no body da requisição, é criada uma wallet nova, do zero. * Não há necessidade de envio de blockchain
e network
nesse caso. As wallets serão criadas por padrão em Ethereum
Nível de permissionamento necessário: qualquer
Headers
authorization*
Bearer
JWT
Request Body
address
String
Chave pública da Wallet
privateKey
String
Chave privada da Wallet
String
Email vindo do provider de autenticação externo de conta social (Ex: autenticação do Google via Firebase)
provider
String
Provider de autenticação externo de conta social (Ex: Google Firebase)
providerId
Id associado à conta social com a qual o usuário se cadastrou.
blockchain
Enum
"ethereum"
network
Enum
"ethereum_mainnet" | "ethereum_goerli" | "polygon_matic" | "celo_alfajores"
Enviando a privateKey
+ blockchain
e network
na requisição, é instanciada uma Wallet no banco de dados e a sua privateKey é salva em um Vault.
{
"id": "5acfdde8-5c8c-11ed-9b6a-0242ac120002",
"address": "0x71080bc5bb5303053ef17ece60890f7e65573150",
"status": "active",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
}
Enviando address
+ blockchain
e network
na requisição, é associada uma Wallet externa pelo endereço da wallet ao usuário.
{
"id": "5acfdde8-5c8c-11ed-9b6a-0242ac120002",
"address": "0x71080bc5bb5303053ef17ece60890f7e65573150",
"status": "active",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
}
Enviando email
, providerId
e provider
no body da requisição, é criada uma wallet nova, do zero com dados relacionados ao Provider externo de autenticação via conta social, além dos dados da carteira.
{
"id": "5acfdde8-5c8c-11ed-9b6a-0242ac120002",
"address": "0x71080bc5bb5303053ef17ece60890f7e65573150",
"status": "active",
"provider": "firebase_google",
"providerId": "ddsooidnfos42x",
"email": "[email protected]",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
}
(JWT) Lista dados de uma wallet do usuário logado
GET
https://goblockchain.io/gotokens-api/v1/wallets/:walletId
Nível de permissionamento necessário: qualquer
Path Parameters
walletId*
String
ID da Wallet
Headers
authorization*
Bearer
JWT
{
"id": "1",
"address": "0x041234567890",
"providerId": "35wda23dfes5",
"provider": "firebase_facebook",
"rescueDate": "01/01/2009",
"rescueIp": "192.168.100.002",
"status": "active",
"blockchain": "ethereum",
"network": "ethereum_mainnet"
}
(JWT) Altera o status de uma wallet do usuário logado
PATCH
https://goblockchain.io/gotokens-api/v1/wallets/:walletId
Nível de permissionamento necessário: qualquer
Headers
authorization*
Bearer
JWT
Request Body
status*
String
"active" | "disabled"
{
"id": "897erfs123grf",
"address": "0x041234567890",
"origin": "internal",
"providerId": "35wda23dfes5",
"provider": "firebase_google",
"rescueDate": null,
"rescueIp": null,
"status": "disabled"
}
(JWT) Revela uma chave privada de uma wallet do usuário logado
GET
https://goblockchain.io/gotokens-api/v1/wallets/:walletId/privatekey
Ao revelar a chave, registramos a data no banco.
Nível de permissionamento necessário: qualquer
Path Parameters
walletId*
String
ID da Wallet
Headers
authorization*
Bearer
JWT
{
"id": "r9etw13fgsd5",
"address": "0x041234567890",
"origin": "internal",
"providerId": "35wda23dfes5",
"provider": "firebase",
"privateKey": "ddw8431dwdwhtf4845htfcx",
"rescueDate": "01/01/2009",
"rescueIp": "192.168.100.002",
"status": "active"
}
/Users
(JWT) Lista usuários de acordo com os campos buscados e permissionamento
GET
https://goblockchain.io/gotokens-api/v1/users
Lista usuários que fazem parte da empresa ou comunidade do usuário logado.
Nível de permissionamento necessário: company_admin
, company_moderator
, community_admin
, community_moderator
Query Parameters
name
String
Nome do Usuário
String
E-mail do Usuário
status
String
"active" | "disabled"
limit
String
Limite de resultados na busca
offset
String
Quantidade de resultados para avançar da busca
Headers
authorization*
Bearer
JWT
{
"users":[
{
"id": "633adbcaf51f5c4285saea8",
"name": "User 1",
"email": "[email protected]",
"status": "active",
"companies":[
{
"id": "5i8u3d",
"role": "company_moderator"
}
],
"communities":[
{
"id": "4ew8wd",
"role": "community_admin"
}
]
},
{
"id": "633adbcaf51f5c42246dawd7",
"name": "User 2",
"email": "[email protected]",
"status": "active",
"companies":[]
"communities":[
{
"id": "4ew8wd",
"role": "community_moderator"
}
]
},
{
"id": "633adbcaf51f5c42246bxb43",
"name": "User 5",
"email": "[email protected]",
"status": "active",
"companies":[],
"communities":[]
}
]
}
(JWT) Cria um usuário e uma wallet com as informações do usuário passadas
POST
https://goblockchain.io/gotokens-api/v1/users
Nível de permissionamento necessário: company_admin
Request Body
name
String
Nome do Usuário
email*
String
E-mail do Usuário (único)
password*
String
Senha do Usuário
address
String
Endereço do Usuário
{
"id": "633adbcaf51f5c42246d6ea6",
"name": "Clarisse",
"email": "[email protected]",
"address": "Av. Aristides Cunha, 1710, Itaiangá, São Paulo - SP - Brasil",
"status": "active",
"walletPublicKey": "0x041234567890"
}
(JWT) Lista dados de um usuário de acordo com o permissionamento
GET
https://goblockchain.io/gotokens-api/v1/users/:userId
Nível de permissionamento necessário: company_admin
, company_moderator
, community_admin
, community_moderator
Path Parameters
userId*
String
ID do Usuário
Headers
authorization*
Bearer
JWT
{
"id": "633adbcaf51f5c42246d6ea6",
"name": "Clarisse",
"email": "[email protected]",
"address": "Av. Aristides Cunha, 1710, Itaiangá, São Paulo - SP - Brasil",
"status": "active"
}
/Users/Companies
(JWT) Lista as empresas em que um determinado usuário tem acesso
GET
https://goblockchain.io/gotokens-api/v1/users/:userId/companies
Lista à quais empresas um determinado usuário tem acesso em comum com o usuário logado. O acesso em comum garante que um usuário veja apenas empresas da qual ele também faz parte.
Nível de permissionamento necessário: company_admin
, company_moderator
Path Parameters
userId*
String
ID do Usuário
Query Parameters
limit
String
Limite de resultados da busca
offset
String
Quantidade de resultados para avançar da busca
Headers
authorization*
Bearer
JWT
{
"companies": [
{
"id": "123",
"name": "Company A"
"role": "company_moderator",
},
{
"id": "456",
"name": "Company B"
"role": "company_admin",
}
]
}
/Users/Communities
(JWT) Lista as comunidades em que um usuário participa
GET
https://goblockchain.io/gotokens-api/v1/users/:userId/communities
Lista à quais comunidades um determinado usuário tem acesso em comum com o usuário logado. O acesso em comum garante que um usuário veja apenas comunidades da qual ele também faz parte.
Nível de permissionamento necessário: company_admin
, company_moderator
, community_admin
, community_moderator
Path Parameters
userId*
String
ID do Usuário
Query Parameters
limit
String
Limite de resultados da busca
offset
String
Quantidade de resultados para avançar da busca
Headers
authorization*
Bearer
JWT
{
"communities": [
{
"publicId": "123",
"role": "member",
"name": "Community A",
"description": "Description of Community A"
},
{
"publicId": "456",
"role": "admin",
"name": "Community B",
"description": "Description of Community B"
}
]
}
/Users/Transactions
Fluxo de Status dos Pedidos
opened_order
Quando um usuário inicia uma solicitação de compra ou venda, é criado um Pedido com o status opened_order
.
pending_payment
Ao selecionar o meio de pagamento e gerar a solicitação de pagamento, o status do Pedido é alterado para pending_payment
.
processing_payment
Ao ser reconhecido o pagamento por meio do gateway, a ordem é processada e aguarda o retorno do gateway para o recolhimento do valor pago, identificado pelo status processing_payment
.
approved_payment
Aprovado e recebido o pagamento, o status do pedido é alterado para approved_payment
e é iniciado o processo de envio do token.
queue_send_token
Quando o token entra na fila para ser mintado/transferido, ele recebe o status queue_send_token
.
success_send_token
Quando o token foi devidamente enviado ao seu destinatário, o fluxo de compra termina com o status success_send_token
.
failed
Caso haja falha em algum dos passos anteriores, o status failed
é aplicado e o pedido entra em uma fila de retentativas.
cancelled
Caso o numero de retentativas em algum dos status seja maior que o estipulado, o envio do token é cancelado, finalizando o fluxo com o status cancelled
.
refounded
Caso o cancelamento de um pedido ocorra antes do envio do NFT com sucesso para seu comprador, o pagamento do mesmo será estornado para a origem e resultará no status de refounded
.
(JWT) Lista as transações recentes de um usuário
GET
https://goblockchain.io/gotokens-api/v1/users/:userId/transactions
Lista informações básicas das transações recentes de um determinado usuário .
Nível de permissionamento necessário: company_admin
, company_moderator
, community_admin
, community_moderator
Path Parameters
userId*
String
ID do Usuário
Query Parameters
limit
String
Limite de resultados da busca
offset
String
Quantidade de resultados para avançar da busca
lastStatus
String
Último status da transação
Headers
authorization*
Bearer
JWT
{
"transactions": [
{
"id":"wda8971da3w2"
"item":{
"tokenId": "8wad12wa3ds",
"communityId": "8f7es7fs65",
"companyId": "ef7sef5sef"
},
"operation":{
"type": "buy",
},
"payment": {
"price": "120",
"decimals": "2",
"currency": "ETH",
"method": "pix",
}
"lastStatus": "success_send_token"
},
{
"id":"2"
"item":{
"tokenId": "ferswad85f8",
"communityId": "8f7es7fs65",
"companyId": "ef7sef5sef"
},
"operation":{
"type": "sell",
},
"payment": {
"price": "70",
"decimals": "2",
"currency": "MATIC",
"method": "credit_card",
}
"lastStatus": "processing_payment"
},
]
}
Last updated
Was this helpful?