Conta-corrente do representante
Lê o extrato e o saldo de crédito de um representante e faz lançamentos manuais de crédito ou de redução.
Cada representante comercial tem uma conta-corrente de crédito para desconto: é o saldo que ele pode gastar dando desconto aos clientes. A cada desconto concedido em um pedido, o valor é debitado; a empresa também pode creditar ou reduzir o saldo à mão. A comissão do representante entra no extrato, mas não altera o saldo.
GET devolve o extrato (os lançamentos, do mais novo para o mais antigo) e o saldo atual. POST faz um lançamento manual. Os dois exigem um usuário administrador.
/api/v1.0/manager_transactionsAdminVenddor 1.0: extrato e saldo de um representante
Identifique o representante por um dos três parâmetros. Se mais de um vier, vale a ordem manager_id, internal_code, user_id.
Parâmetros de consulta
manager_idstringinternal_codestringREP-001).user_idstringtypestringCDC mostra só as comissões, D só os descontos concedidos em pedidos. Os lançamentos manuais não entram em nenhum dos dois filtros; sem type aparecem todos.pageintegerpadrão: 1items_per_pageintegerpadrão: 10search.items_per_page mostra o valor usado)./api/v1.0/manager_transactionsAdminVenddor 1.0: lançar crédito ou redução na conta de um representante
Soma ou subtrai um valor do saldo de crédito. Identifique o representante no corpo, pelos mesmos três campos do extrato (mesma ordem de prioridade).
Corpo da requisição
amountnumberobrigatório12.5). Não pode ser zero. Um valor negativo é tratado como positivo. Use no máximo duas casas decimais.scopestringobrigatórioA soma ao saldo (aceita também a). Qualquer outro texto, como R, subtrai.manager_idstringinternal_codestringuser_idstring/api/manager_transactionsAdminExtrato e saldo de um representante, forma sem versão
Igual a GET /api/v1.0/manager_transactions. Os parâmetros são os mesmos.
Parâmetros de consulta
manager_idstringinternal_codestringuser_idstringtypestringCDC) ou descontos (D).pageintegerpadrão: 1items_per_pageintegerpadrão: 10/api/manager_transactionsAdminLançar crédito ou redução, forma sem versão
Igual a POST /api/v1.0/manager_transactions, com o mesmo corpo.
Corpo da requisição
amountnumberobrigatórioscopestringobrigatórioA soma; qualquer outro texto subtrai.manager_idstringinternal_codestringuser_idstringExemplo de requisição
# extrato
curl "$BASE_URL/api/v1.0/manager_transactions?manager_id=2&items_per_page=20" \
-u "$ADMIN_EMAIL:$API_KEY"
# creditar R$ 50,00
curl -X POST "$BASE_URL/api/v1.0/manager_transactions" \
-u "$ADMIN_EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":50,"scope":"A","manager_id":2}'Resposta
{
"success": true,
"message": "",
"balance": "150.00",
"transactions": [
{
"transaction_id": "41",
"manager_id": "2",
"type": "C",
"object_type": "O",
"object_id": "",
"amount": "50.00",
"balance": "150.00",
"timestamp": 1791749845,
"description": "manual"
}
],
"search": { "page": 1, "items_per_page": 10, "total_items": 1 }
}{
"success": true,
"result": { "transaction_id": 41, "balance": "150.00", "timestamp": 1791749845 },
"message": ""
}Campos da resposta
successbooleantrue quando a chamada foi processada. No lançamento, true não garante que houve lançamento: confira result.messagestringuser not found quando o representante não foi encontrado.balancestringtype.transactions[].transaction_idstringtransactions[].manager_idstringtransactions[].typestringCDC quando o valor soma (crédito ou comissão), D quando subtrai (desconto ou redução manual).transactions[].object_typestringO.transactions[].object_idstringtransactions[].amountstringtransactions[].balancestringtransactions[].timestampintegertransactions[].descriptionstringmanual nos lançamentos feitos por esta rota.searchobjectpage, items_per_page e total_items.resultobjecttransaction_id (número), balance (saldo depois do lançamento, em string decimal) e timestamp. É null quando o representante não foi encontrado.Erros
| Status | Quando | Corpo |
|---|---|---|
| 200 | (extrato) manager_id que não é número, internal_code/user_id sem representante, ou nenhum identificador: lista vazia e saldo "0.00" | {"success":true,"message":"","transactions":[],"balance":"0.00", ...} |
| 200 | (lançamento) identificador que não é número, ou internal_code/user_id sem representante | {"success":true,"result":null,"message":"user not found"} |
| 400 | Corpo que não é JSON, ou amount enviado como texto | {"message":"Invalid JSON body","status":400} |
| 400 | amount ausente ou zero | {"message":"amount is required","status":400} |
| 400 | amount menor que 0,01 (vira 0 centavos) | {"message":"amount must be positive","status":400} |
| 400 | scope ausente | {"message":"scope is required (A=add, R=reduce)","status":400} |
| 400 | Redução maior que o saldo | {"message":"insufficient credit balance","status":400} |
| 400 | (lançamento) manager_id numérico que não existe | {"message":"trade rep not found","status":400} |
| 401 | Sem credenciais, chave inválida ou token expirado | {"message":"Invalid credentials","status":401} |
| 403 | Usuário que não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | (extrato) manager_id numérico que não existe | {"message":"trade rep not found","status":500} |