CadastroVendedor
CRUD do cadastro de Vendedor (SA3) via wrapper MATA040. Chave externa A3_COD no path. Suporta bloqueio TOTVS padrão (A3_MSBLQL/A3_MSBLQD) via helper U_C980Blq.
A3_MSBLQL="1" ou A3_MSBLQD < data-base) só aceita alterar os próprios campos A3_MSBLQL/A3_MSBLQD; qualquer outro campo retorna 422.Vinculação com o ERP
Convenções
Envelope canônico. { success, message, data }. POST/PUT retornam data.A3_COD.
Chave no path. POST/PUT/DELETE usam {vendedor} = A3_COD (max 6 chars).
Bloqueio MSBLQL/MSBLQD. PUT em vendedor bloqueado: só aceita os próprios campos do par bloqueio; outros → 422. Desbloqueio aceito por flag (A3_MSBLQL="2") ou data futura/vazia.
Whitelist de campos. Payload aceita A3_NOME, A3_NREDUZ, A3_TIPO, A3_EMAIL, A3_TEL, A3_COMIS, A3_CGC, A3_END, A3_BAIRRO, A3_MUN, A3_EST, A3_CEP, A3_MSBLQL, A3_MSBLQD. Demais ignorados.
A3_MSBLQD é Date. ISO YYYY-MM-DD ou vazia. Fica fora do CAMPOS_GET até U_RestMonta suportar Date-aware (transversal).
Vendedor — mutação
Inclusão / alteração / exclusão via MATA040.Descrição
Inclui vendedor em SA3. {vendedor} = A3_COD único; duplicidade → 409. A3_CGC validado por X3_VALID.
Path parameter
Cenário
Request body
POST https://erpapi.jetme.com.br/api/99/01/WsSA3/INCLUIR/000001 { "A3_NOME": "Joao Silva" }
POST https://erpapi.jetme.com.br/api/99/01/WsSA3/INCLUIR/000001 { "A3_NOME": "Joao Silva", "A3_NREDUZ": "JOAO", "A3_TIPO": "F", "A3_CGC": "12345678901", "A3_EMAIL": "joao@exemplo.com", "A3_COMIS": 3.5 }
Respostas
data.A3_COD.Descrição
Altera vendedor. Bloqueio TOTVS: vendedor bloqueado só aceita PUT em A3_MSBLQL/A3_MSBLQD; outros campos → 422.
Cenário
Request body
PUT https://erpapi.jetme.com.br/api/99/01/WsSA3/ALTERAR/000001 { "A3_EMAIL": "joao@nova.com", "A3_COMIS": 4.0 }
PUT https://erpapi.jetme.com.br/api/99/01/WsSA3/ALTERAR/000001 { "A3_MSBLQL": "1", "A3_MSBLQD": "2026-05-17" }
PUT https://erpapi.jetme.com.br/api/99/01/WsSA3/ALTERAR/000001 { "A3_MSBLQL": "2" }
Respostas
Descrição
DELETE via MATA040 op=5. Falha (422) quando referenciado em SC5/SC6 etc.
Cenário
Exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsSA3/EXCLUIR/000001
Respostas
Consulta
Consulta por código, listagem e typeahead.Descrição
Retorna campos do whitelist CAMPOS_GET.
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSA3/000001
{
"success": true,
"data": {
"A3_COD": "000001",
"A3_NOME": "Joao Silva",
"A3_TIPO": "F",
"A3_COMIS": 3.5,
"A3_MSBLQL": "2"
}
}Query parameters
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSA3/_list?nome=JOA&page=1&pageSize=25
Descrição
TCGenQry A3_NOME COLLATE Latin1_General_CI_AI LIKE q% — acento-insensitive. Mín 2, limit 10/25.
Query parameters
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSA3/_search?q=JOA&limit=5
Schemas
Componentes do contrato OpenAPICAMPOS_ALLOW.CAMPOS_GET). A3_MSBLQD não entra (Date pendente).{ A3_COD } em POST/PUT, dados completos em GET.success=false + message. Quando bloqueio TOTVS dispara: "Registro bloqueado a partir de DD/MM/YYYY (A3_MSBLQD)".Cenários
1-pra-1 comexamples: do YAML.Pendências conhecidas (rev2)
A3_MSBLQD fora do CAMPOS_GET. U_RestMonta não tem serialização Date-aware. A3_MSBLQD entra no PUT, não no retorno. Transversal.
Hierarquia (A3_GEREN, A3_SUPER). Não estão no whitelist. Adicionar quando precisar.