A solicitação de autorização é o mecanismo que permite aos parceiros solicitar acesso aos dados de clientes da conta digital Nuvende. Este processo garante que o cliente tenha controle total sobre quais dados serão compartilhados e para qual finalidade.
O processo de autorização funciona da seguinte forma:
Quando um cliente autoriza uma aplicação, o parceiro pode:
Importante: Transferências e pagamentos diretos não são permitidos por questões de segurança.
/api/v2/partners/requestsCria uma nova solicitação de autorização vinculada a uma aplicação específica.
curl --location 'https://api-h.nuvende.com.br/api/v2/partners/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data '{
"application_id": "abnks92-cb57-4ee3-a997-655fb5d0ea45",
"name": "João Silva",
"document": "12345678901",
"email": "[email protected]",
"phone": "11999999999",
"origin": "partner",
"scopes": [
"cob.read",
"cob.write"
],
"webhook_url": "https://meusite.com/webhook",
"metadata": [
"Solicitação via app mobile",
"Cliente VIP"
]
}'
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
application_id | string | Sim | ID da aplicação que fará a solicitação |
name | string | Sim | Nome completo do cliente |
document | string | Sim | CPF ou CNPJ do cliente |
email | string | Sim | E-mail do cliente |
phone | string | Sim | Telefone do cliente |
origin | string | Sim | Origem da solicitação (ex: "partner") |
scopes | array | Sim | Escopos solicitados |
webhook_url | string | Não | URL para receber notificações |
metadata | array | Não | Informações adicionais |
{
"id": "c3sdaa792-f8b6-4fe1-ad19-f8ea16a723c5",
"partner": {
"id": "650c723160-98d9-45d3-a1e0-eb24db30d22e",
"name": "Nome do Parceiro",
"contact_email": "[email protected]",
"contact_phone": "11999999999",
"status": "active"
},
"application": {
"id": "2fdd5217-cb57-4ee3-a997-655fb5d0ea45",
"name": "Minha Aplicação",
"description": "Descrição da aplicação",
"scopes": [
"cob.read",
"cob.write"
],
"status": "active"
},
"status": "pending",
"scopes": [
"cob.read",
"cob.write"
],
"origin": "partner",
"name": "João Silva",
"document": "12345678901",
"email": "[email protected]",
"phone": "11999999999",
"webhook_url": "https://meusite.com/webhook",
"decision_at": null,
"user_id": null,
"account_id": null,
"metadata": [
"Solicitação via app mobile",
"Cliente VIP"
],
"created_at": "2025-01-15T14:27:14-03:00",
"updated_at": "2025-01-15T14:27:14-03:00"
}
/api/v2/partners/requestsLista todas as solicitações realizadas pelo parceiro autenticado.
curl --location 'https://api-h.nuvende.com.br/api/v2/partners/requests' \
--header 'Authorization: Bearer {access_token}'
| Parâmetro | Tipo | Descrição |
|---|---|---|
page | integer | Número da página (padrão: 1) |
per_page | integer | Itens por página (padrão: 10) |
status | string | Filtrar por status |
{
"data": [
{
"id": "c3sdaa792-f8b6-4fe1-ad19-f8ea16a723c5",
"status": "approved",
"scopes": [
"cob.read",
"cob.write"
],
"name": "João Silva",
"document": "12345678901",
"email": "[email protected]",
"phone": "11999999999",
"decision_at": "2025-01-15T15:30:00-03:00",
"created_at": "2025-01-15T14:27:14-03:00"
}
],
"links": {
"first": "https://api-h.nuvende.com.br/api/v2/partners/requests?page=1",
"last": "https://api-h.nuvende.com.br/api/v2/partners/requests?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 10,
"to": 1,
"total": 1
}
}
| Status | Descrição |
|---|---|
pending | Aguardando decisão do cliente |
approved | Aprovada pelo cliente |
rejected | Rejeitada pelo cliente |
expired | Expirada (não respondida) |
const createAuthorizationRequest = async (token, requestData) => {
const response = await fetch('https://api-h.nuvende.com.br/api/v2/partners/requests', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
application_id: requestData.applicationId,
name: requestData.clientName,
document: requestData.clientDocument,
email: requestData.clientEmail,
phone: requestData.clientPhone,
origin: 'partner',
scopes: requestData.scopes,
webhook_url: requestData.webhookUrl,
metadata: requestData.metadata
})
});
if (!response.ok) {
throw new Error(`Erro ao criar solicitação: ${response.status}`);
}
return response.json();
};
Após a criação da solicitação:
O sistema executa os seguintes passos:
client_id e client_secret específicos// Criar solicitação de autorização
const requestAuthorization = async (token, clientData) => {
try {
const request = await createAuthorizationRequest(token, {
applicationId: 'abnks92-cb57-4ee3-a997-655fb5d0ea45',
clientName: clientData.name,
clientDocument: clientData.document,
clientEmail: clientData.email,
clientPhone: clientData.phone,
scopes: ['cob.read', 'cob.write'],
webhookUrl: 'https://meusite.com/webhook',
metadata: ['Solicitação via app', 'Cliente premium']
});
console.log('Solicitação criada:', request.id);
return request;
} catch (error) {
console.error('Erro ao criar solicitação:', error);
throw error;
}
};
// Listar solicitações
const listRequests = async (token) => {
const response = await fetch('https://api-h.nuvende.com.br/api/v2/partners/requests', {
headers: {
'Authorization': `Bearer ${token}`
}
});
return response.json();
};
// Uso
const requests = await listRequests(accessToken);
console.log('Solicitações:', requests.data);
Após criar uma solicitação: