About Login
Account Info
Account Information displays all data associated with your account, including your Mock Wallets (Avenia API Wallets), which are automatically created when you set up your Business Account. Detailed information on these wallet capabilities will be provided later.
HTTP GET Request:
https://api.sandbox.avenia.io:10952/v2/account/account-info
Parameters
Field | Type | Description |
---|---|---|
subAccountId | string | The ID of your sub-account. Instead of fetching data from your main account, it retrieves data from this sub-account. |
Remember that you can only pass a subAccountId if you have already created a subAccount.
When you create a business account, the Bank Account - BRL is automatically initialized, providing a PIX key (linked to your entire Business Account) and a unique BR Code for each account and subaccount.
cURL Example:
curl -X GET "https://api.sandbox.avenia.io:10952/v2/account/account-info" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Sample JSON Response:
{
"id": "00000000-0000-0000-0000-000000000000",
"accountInfo": {
"id": "11111111-1111-1111-1111-111111111111",
"accountType": "INDIVIDUAL",
"name": "xxxxx"
},
"wallets": [
{
"id": "be85cef0-d70a-47cc-9847-9014570efed5",
"walletAddress": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"chain": "EVM"
}
],
"pixKey": "11111111-1111-1111-1111-111111111111",
"brCode": "00020126740014br.gov.bcb.pix01365c2c61a1-134b-4c34-958f-ea3122ac717f0212Avenia Deposit5204000053039865802BR5917Avenia API Ltda6009Sao Paulo621005060000016304DBD5",
"createdAt": "2025-02-18T17:00:39.854943Z"
}
Account Balance
Here, we’ll retrieve all current balances for your main account or subaccount.
Keep in mind that the operation is still being performed by the subaccount, so it’s also necessary to include the subAccountId parameter here.
HTTP Get Request
https://api.sandbox.avenia.io:10952/v2/account/balances
Example Json Response
{
"balances": {
"BRLA": "9457.170326",
"USDC": "0",
"USDT": "42.07732"
}
}
Access
An Access is linked to account credentials, functioning as a login that grants access tokens. It allows management of both the Business Account and SubAccounts, depending on the assigned permissions.
Each access can create up to 100 additional accesses, but only admin accesses can create new ones.
YOU NEED TO HAVE MFA OTP ENABLED TO CREATE AND EDIT ACCESSES
Access Creation
The creation process consists of two steps:
- The Access Admin initiates the creation by providing the email and OTP of the new access. A validation request is then sent to the specified email.
- With the email token, the new access completes the process by setting up a password.
Access Creation (STEP 1)
HTTP POST Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/
Field | Type | Description |
---|---|---|
otp | string | One-time password required for creation. |
email | string | Email of the new access being created. |
payIn | boolean | Permission for pay-ins. |
payOut | boolean | Permission for pay-outs. |
convert | boolean | Permission for conversions. |
onChain | boolean | Permission for on-chain transactions. |
Sample JSON body:
{
"otp": "999999",
"email": "your.new.access.email@provider.com",
"permissions": {
"payIn": true,
"payOut": true,
"convert": true,
"onChain": true
}
}
cURL Example:
curl -X POST "https://api.sandbox.avenia.io:10952/v2/auth/accesses/" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-d '{
"otp": "999999",
"email": "your.new.access.email@provider.com",
"permissions": {
"payIn": true,
"payOut": true,
"convert": true,
"onChain": true
}
}'
A token will be sent to the provided email to complete the process.
Validation of Access Creation (STEP 2)
HTTP POST Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/validate/{token}
Field | Type | Description |
---|---|---|
password | string | New password for the access. |
passwordConfirm | string | Must match the password field. |
Sample JSON Body:
{
"password": "UseAStrongPassword123!",
"passwordConfirm": "UseAStrongPassword123!"
}
cURL Example:
curl -X POST "https://api.sandbox.avenia.io:10952/v2/auth/accesses/validate/eyJhdXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{"password": "UseAStrongPassword123!", "passwordConfirm": "UseAStrongPassword123!"}'
Once validated, the new access is ready.
Update Access Permissions
HTTP PATCH Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/
Sample JSON Body:
{
"id": "00000000-0000-0000-0000-000000000000",
"otp": "999999",
"permissions": {
"payIn": true,
"payOut": true,
"convert": true,
"onChain": true
}
}
cURL Example:
curl -X PATCH "https://api.sandbox.avenia.io:10952/v2/auth/accesses/" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-d '{ ... }'
View Accesses
HTTP GET Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/
Parameter | Type | Description |
---|---|---|
email | string | Filters accesses by specified email. |
payIn | boolean | Filters based on pay-in permission. |
payOut | boolean | Filters based on pay-out permission. |
convert | boolean | Filters based on conversion permission. |
onChain | boolean | Filters based on on-chain permission. |
cURL Example:
curl -X GET "https://api.sandbox.avenia.io:10952/v2/auth/accesses?email=your.new.access.email@provider.com&payIn=true&payOut=true&convert=true&onChain=true" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Sample JSON Response
{
"accesses": [
{
"id": "00000000-0000-0000-0000-000000000000",
"email": "your.new.access.email@provider.com",
"createdAt": "2025-02-07T19:54:17.727744Z",
"updatedAt": "2025-02-07T19:54:17.727744Z",
"frozenUntil": "0001-01-01T00:00:00Z",
"accessPermission": {
"id": "00000000-0000-0000-0000-000000000000",
"permissions": {
"admin": true,
"payIn": true,
"payOut": true,
"convert": true,
"onChain": true
},
"updatedAt": "2025-02-07T19:54:17.727744Z"
},
"mfa": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2025-02-18T00:36:47.329722Z",
"updatedAt": "2025-02-18T00:36:47.329722Z"
}
},
...
]
}
View a Specific Access
HTTP GET Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/{ACCESS_UUID_HERE}
Field | Type | Description |
---|---|---|
id | string | The ID of an existing access. |
cURL Example:
curl -X GET "https://api.sandbox.avenia.io:10952/v2/auth/accesses/00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Sample JSON Response
{
"id": "00000000-0000-0000-0000-000000000000",
"email": "your.new.access.email@provider.com",
"createdAt": "2025-02-07T19:54:17.727744Z",
"updatedAt": "2025-02-07T19:54:17.727744Z",
"frozenUntil": "0001-01-01T00:00:00Z",
"accessPermission": {
"id": "00000000-0000-0000-0000-000000000000",
"admin": true,
"payIn": true,
"payOut": true,
"convert": true,
"onChain": true,
"updatedAt": "2025-02-07T19:54:17.727744Z"
},
"mfa": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2025-02-18T00:36:47.329722Z",
"updatedAt": "2025-02-18T00:36:47.329722Z"
}
}
Delete an Access
HTTP DELETE Request:
https://api.sandbox.avenia.io:10952/v2/auth/accesses/{ACCESS_UUID_HERE}?otp=999999
Field | Type | Description |
---|---|---|
id | string | The ID of an existing access. |
otp | string | One-time password (OTP) required to confirm delete. |
cURL Example:
curl -X DELETE "https://api.sandbox.avenia.io:10952/v2/auth/accesses/00000000-0000-0000-0000-000000000000?otp=999999" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
And that's it. After the OK
, that access has been deleted.
Viewing Current Access Information
HTTP GET Request:
https://api.sandbox.avenia.io:10952/v2/account/access-info
cURL Example:
curl -X GET "https://api.sandbox.avenia.io:10952/v2/account/access-info" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Conclusion
You have learned how to manage Account Information and Accesses, including:
- ✅ Retrieving Account Information
- ✅ Managing Accesses
- ✅ Creating and Validating a New Access
- ✅ Updating Access Permissions
- ✅ Viewing Accesses
- ✅ Deleting an Access
- ✅ Checking Your Current Access Information
Following these steps provides a structured approach to handling authentication, authorization, and account management.