Get current user information
curl --request GET \
--url https://api-sandbox.rinne.com.br/core/v1/auth/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.rinne.com.br/core/v1/auth/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.rinne.com.br/core/v1/auth/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.rinne.com.br/core/v1/auth/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.rinne.com.br/core/v1/auth/me"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.rinne.com.br/core/v1/auth/me")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.rinne.com.br/core/v1/auth/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user": {
"id": "user123",
"identifiers": [
{
"id": "id1",
"type": "email",
"value": "[email protected]",
"verified": true,
"created_at": "2024-01-01T00:00:00.000Z",
"verified_at": "2024-01-01T01:00:00.000Z"
}
],
"primary_identifier": {
"id": "id1",
"type": "email",
"value": "[email protected]",
"verified": true,
"created_at": "2024-01-01T00:00:00.000Z",
"verified_at": "2024-01-01T01:00:00.000Z"
},
"auth_methods": [
"password"
],
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-01T00:00:00.000Z",
"roles": [
{
"id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2793",
"name": "admin",
"permissions": [
"user.create",
"user.read",
"role.create"
],
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-01T00:00:00.000Z",
"description": "Administrator role with full access",
"company_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2793",
"organization_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2794"
}
],
"first_name": "John",
"last_name": "Doe",
"suspended_at": "2024-01-01T00:00:00.000Z",
"metadata": "<unknown>"
},
"auth": {
"method": "jwt",
"auth_method": "password",
"current_company_id": "123e4567-e89b-12d3-a456-426614174000",
"permissions": [
"transaction.list",
"user.view"
]
},
"impersonation": {
"actor_email": "[email protected]",
"target_organization_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2794",
"jti": "b1f8c2e0-5a3d-4e7c-9b1a-2c3d4e5f6a7b",
"actor_name": "Joao Faria"
}
}{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Authentication required to access this resource",
"status": 401,
"details": {
"reason": "Invalid API key"
},
"path": "/companies/me",
"timestamp": "2023-12-01T10:00:00.000Z",
"requestId": "req_123456789"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Company with ID '123' not found",
"status": 404,
"path": "/companies/me",
"timestamp": "2023-12-01T10:00:00.000Z",
"requestId": "req_123456789"
}
}Authentication
Get current user information
Returns information about the currently authenticated user based on JWT token. Includes user identifiers, auth methods, and current company context if set.
When the bearer is an admin impersonation JWT (ADR-0018), the user
payload is synthesized from the JWT claims (no real User row exists
for the operator inside the target organization) and an additional
impersonation block is included with the actor identity and the
target organization id. Clients can detect impersonation by the
presence of that block.
GET
/
v1
/
auth
/
me
Get current user information
curl --request GET \
--url https://api-sandbox.rinne.com.br/core/v1/auth/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.rinne.com.br/core/v1/auth/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.rinne.com.br/core/v1/auth/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.rinne.com.br/core/v1/auth/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.rinne.com.br/core/v1/auth/me"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.rinne.com.br/core/v1/auth/me")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.rinne.com.br/core/v1/auth/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user": {
"id": "user123",
"identifiers": [
{
"id": "id1",
"type": "email",
"value": "[email protected]",
"verified": true,
"created_at": "2024-01-01T00:00:00.000Z",
"verified_at": "2024-01-01T01:00:00.000Z"
}
],
"primary_identifier": {
"id": "id1",
"type": "email",
"value": "[email protected]",
"verified": true,
"created_at": "2024-01-01T00:00:00.000Z",
"verified_at": "2024-01-01T01:00:00.000Z"
},
"auth_methods": [
"password"
],
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-01T00:00:00.000Z",
"roles": [
{
"id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2793",
"name": "admin",
"permissions": [
"user.create",
"user.read",
"role.create"
],
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-01T00:00:00.000Z",
"description": "Administrator role with full access",
"company_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2793",
"organization_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2794"
}
],
"first_name": "John",
"last_name": "Doe",
"suspended_at": "2024-01-01T00:00:00.000Z",
"metadata": "<unknown>"
},
"auth": {
"method": "jwt",
"auth_method": "password",
"current_company_id": "123e4567-e89b-12d3-a456-426614174000",
"permissions": [
"transaction.list",
"user.view"
]
},
"impersonation": {
"actor_email": "[email protected]",
"target_organization_id": "a3dbd0c2-9f79-4f86-8caa-47779b3f2794",
"jti": "b1f8c2e0-5a3d-4e7c-9b1a-2c3d4e5f6a7b",
"actor_name": "Joao Faria"
}
}{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Authentication required to access this resource",
"status": 401,
"details": {
"reason": "Invalid API key"
},
"path": "/companies/me",
"timestamp": "2023-12-01T10:00:00.000Z",
"requestId": "req_123456789"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Company with ID '123' not found",
"status": 404,
"path": "/companies/me",
"timestamp": "2023-12-01T10:00:00.000Z",
"requestId": "req_123456789"
}
}Authorizations
JWT token for user authentication
Response
User information retrieved successfully
⌘I

