CadastroTransportadora
CRUD do cadastro de Transportadora (SA4) via wrapper MATA050. Chave externa A4_COD no path. Suporta bloqueio TOTVS padrão (A4_MSBLQL/A4_MSBLQD) via helper U_C980Blq.
A4_MSBLQL="1" ou A4_MSBLQD < data-base) só aceita alterar os próprios campos A4_MSBLQL/A4_MSBLQD; qualquer outro campo retorna 422.Vinculação com o ERP
Convenções
Envelope canônico. { success, message, data }. POST/PUT retornam data.A4_COD.
Chave no path. POST/PUT/DELETE usam {transportadora} = A4_COD (max 6 chars).
Bloqueio MSBLQL/MSBLQD. PUT em transportadora bloqueado: só aceita os próprios campos do par bloqueio; outros → 422. Desbloqueio aceito por flag (A4_MSBLQL="2") ou data futura/vazia.
Whitelist de campos. Payload aceita A4_NOME, A4_NREDUZ, A4_EMAIL, A4_TEL, A4_CGC, A4_END, A4_BAIRRO, A4_MUN, A4_EST, A4_CEP, A4_MSBLQL, A4_MSBLQD. Demais ignorados.
A4_MSBLQD é Date. ISO YYYY-MM-DD ou vazia. Fica fora do CAMPOS_GET até U_RestMonta suportar Date-aware (transversal).
Transportadora — mutação
Inclusão / alteração / exclusão via MATA050.Descrição
Inclui transportadora em SA4. {transportadora} = A4_COD único; duplicidade → 409. A4_CGC validado por X3_VALID.
Path parameter
Cenário
Request body
POST https://erpapi.jetme.com.br/api/99/01/WsSA4/INCLUIR/000001 { "A4_NOME": "Transportes XYZ" }
POST https://erpapi.jetme.com.br/api/99/01/WsSA4/INCLUIR/000001 { "A4_NOME": "Transportes XYZ", "A4_NREDUZ": "TRANSP", "A4_VIA": "F", "A4_CGC": "12345678901", "A4_EMAIL": "contato@xyz.com", "A4_VIA": R }
Respostas
data.A4_COD.Descrição
Altera transportadora. Bloqueio TOTVS: transportadora bloqueado só aceita PUT em A4_MSBLQL/A4_MSBLQD; outros campos → 422.
Cenário
Request body
PUT https://erpapi.jetme.com.br/api/99/01/WsSA4/ALTERAR/000001 { "A4_EMAIL": "contato@nova.com", "A4_VIA": R }
PUT https://erpapi.jetme.com.br/api/99/01/WsSA4/ALTERAR/000001 { "A4_MSBLQL": "1", "A4_MSBLQD": "2026-05-17" }
PUT https://erpapi.jetme.com.br/api/99/01/WsSA4/ALTERAR/000001 { "A4_MSBLQL": "2" }
Respostas
Descrição
DELETE via MATA050 op=5. Falha (422) quando referenciado em SC5/SC6 etc.
Cenário
Exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsSA4/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/WsSA4/000001
{
"success": true,
"data": {
"A4_COD": "000001",
"A4_NOME": "Transportes XYZ",
"A4_VIA": "F",
"A4_VIA": R,
"A4_MSBLQL": "2"
}
}Query parameters
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSA4/_list?nome=JOA&page=1&pageSize=25
Descrição
TCGenQry A4_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/WsSA4/_search?q=JOA&limit=5
Schemas
Componentes do contrato OpenAPICAMPOS_ALLOW.CAMPOS_GET). A4_MSBLQD não entra (Date pendente).{ A4_COD } em POST/PUT, dados completos em GET.success=false + message. Quando bloqueio TOTVS dispara: "Registro bloqueado a partir de DD/MM/YYYY (A4_MSBLQD)".Cenários
1-pra-1 comexamples: do YAML.Pendências conhecidas (rev2)
A4_MSBLQD fora do CAMPOS_GET. U_RestMonta não tem serialização Date-aware. A4_MSBLQD entra no PUT, não no retorno. Transversal.
Hierarquia regional. SA4 não tem campos de hierarquia padrão; agrupamento por região pode usar A4_EST/A4_MUN.