Ambos os serviços são do TOTVS Mensagem padronizada, ou seja para exportação de pedidos e clientes.
PROTHEUS - API Nativa - [Exportação] Adicionar/reescrever campos customizados em Pedido e Cliente
Abaixo estão as documentações que a nossa integração implementa como padrão:
CustomerVendor - Cliente:
De/Para dos campos SFA → Mensagem Padronizada TOTVS → Protheus:
{
"Header": {
"UUID": "GERADO AUTOMATICAMENTE",
"GeneratedOn": "GERADO AUTOMATICAMENTE",
"DeliveryType": "sync",
"ProductName": "TOTVSSFA",
"SourceApplication": "TOTVSSFA",
"ProductVersion": "1.0.0",
"SubType": "Event",
"Event": "upsert",
"Transaction": "customerVendor",
"Type": "BusinessMessage",
"Version": "2.005",
"CompanyId": "OLHAR ITEM 2 DA DOC",
"BranchId": "OLHAR ITEM 2 DA DOC"
},
"Content": {
"ListOfCommunicationInformation": [
{
"Type": "1",
"Email": "A1_EMAIL", --localemail.email onde idnpadrao = 1
"PhoneNumber": "A1_TEL", --substring a partir do terceiro caractere de localtelefone.telefone do local principal
"DiallingCode": "A1_DDD", --substring do primeiro até o segundo caractere de localtelefone.telefone do local principal
"HomePage": "A1_HPAGE" --parceiro.homepage
}
],
"EntityType": A1_PESSOA,
"GovernmentalInformation": [
{
"Id": "A1_CGC", --pessoafisica.documentoidentificacao ou pessoajuridica.documentoidentificacao
"Name": "SE PESSOA JURIDICA ENTÃO CNPJ SENÃO CPF",
"Scope": "Federal"
},
{
"Id": "A1_INSCRM", --localidentificacao.documentoidentificacao quando sigla = inscricaomunicipal
"Name": "INSCRICAO MUNICIPAL",
"Scope": "Municipal"
},
{
"Id": "A1_SUFRAMA",--localidentificacao.documentoidentificacao quando sigla = inscricaosuframa
"Name": "SUFRAMA",
"Scope": "Federal"
},
{
"Id": "A1_INSCR",--localidentificacao.documentoidentificacao quando sigla = inscricaoestadual
"Name": "INSCRICAO ESTADUAL",
"Scope": "State"
},
{
"Id": "A1_INSCRUR",--localidentificacao.documentoidentificacao quando sigla = cartaoprodutor
"Name": "INSCRICAO RURAL",
"Scope": "State"
}
],
"InternalId": "SFA+IDPARCEIRO",--SFA||parceiro.idparceiro
"Code": "SFA+IDPARCEIRO",--SFA||parceiro.idparceiro
"StrategicCustomerType": "A1_TIPO",--coalesce(classificacaoparceiro.codigoerp,classificacaoparceiro.codigo)
"Name": "A1_NOME",--parceiro.nomeparceiro
"ShortName": "A1_NREDUZ",--coalesce(parceiro.nomeparceirofantasia,parceiro.nomeparceiro)
"RegisterDate": null,
"RegisterSituation": "Active",
"Address": { --Local principal do cliente (tipolocal = PRI)
"Address": "A1_END",--local.logradouro
"Complement": "A1_COMPLEM",--local.complemento
"Number": "",
"District": "A1_BAIRRO",--local.bairro
"ZIPCode": "A1_CEP",--local.cep
"City": {
"CityCode": "A1_COD_MUN", --cidade.codigo
"CityDescription": "A1_MUN" --cidade.descricao
},
"State": {
"StateCode": "A1_EST" --unidadefederativa.codigo
},
"Country": {
"CountryDescription": "FIXO Brasil"
},
"Region": {
"RegionCode": "A1_REGIAO" --regiao.codigoerp
}
},
"BillingInformation": {--Local de cobrança do cliente (tipolocal = COB)
"Address": {
"State": {
"StateCode": "A1_ESTC"--unidadefederativa.codigo
},
"Address": "A1_ENDCOB",--local.logradouro
"Complement": "",
"Number": "",
"City": {
"CityCode": "A1_MUNC",--cidade.codigo
"CityDescription": "A1_MUNC"--cidade.codigo
},
"District": "A1_BAIRROC",--local.bairro
"ZIPCode": "A1_CEPC"--local.cep
}
},
"ShippingAddress": { --Local principal do cliente (tipolocal = ENT)
"Address": "A1_ENDENT",--local.logradouro
"Complement": "A1_COMPENT",--local.complemento
"Number": "",
"District": "A1_BAIRROE",--local.bairro
"ZIPCode": "A1_CEPE",--local.cep
"City": {
"CityCode": "A1_CODMUNE",--cidade.codigo
"CityDescription": "A1_CODMUNE"----cidade.codigo
},
"State": {
"StateCode": "A1_ESTE" --unidadefederativa.codigo
},
"Country": {
"CountryDescription": "FIXO Brasil"
}
},
"Segment": [
{
"Name": "Segment1",
"CodeERP": "A1_SATIV1" --segmento.codigoerp
}
],
"StoreId": "A1_LOJA", --quarta parte de local.codigoerp, se for um cliente novo feito no SFA envia 01 fixo
"Type": FIXO 1,
"FreightType": {
"Code": "A1_TPFRET", --fixo F
"Description": "SE A1_TPFRET IGUAL A C ENTÃO CIF SENÃO FOB"
},
"CarrierCode": "",
"PaymentConditionCode": "A1_COND",--segunda parte de condicaopagamento.codigoerp
"PriceListHeaderItemCode": "A1_TABELA",--tabelapreco.codigo
"VendorInformation": {
"VendorType": {
"Code": "A1_VEND"--segunda parte de usuario.codigoerp
}
},
"CreditInformation": {
"CreditLimit": A1_LC, --local.limitesugerido
"MaturityCreditLimit": ""
}
}
}
Order - Pedido:
De/Para dos campos SFA → Mensagem Padronizada TOTVS → Protheus:
{
"Header": {
"Version": "4.003",
"CompanyId": "OLHAR ITEM 2 DA DOC",
"BranchId": "GRUPO_EMPRESA+UNIDADE+C5_FILIAL", --terceira, quarta e quinta parte do campo local.observacaointegracao (EMP)
"BusinessUnit": "OLHAR ITEM 2 DA DOC",
"GeneratedOn": "GERADO AUTOMATICAMENTE",
"Enterprise": "20",
"ProductVersion": "12",
"SourceApplication": "TOTVSSFA",
"ProductName": "TOTVSSFA",
"Transaction": "ORDER",
"StandardVersion": "1.000",
"UUID": "GERADO AUTOMATICAMENTE",
"SubType": "event",
"Event": "upsert",
"Type": "BusinessMessage",
"DeliveryType": "sync"
},
"Content": {
"BranchId": "GRUPO_EMPRESA+UNIDADE+C5_FILIAL", --terceira, quarta e quinta parte do campo local.observacaointegracao (EMP)
"InternalId": "TOTVSSFA_+IDPEDIDO",--pedido.idpedido
"CustomerCode": "C5_CLIENTE+C5_LOJACLI",--segunda e terceira parte do campo parceiro.codigoerp (CLI)
"DeliveryCustomerCode": "",
"DeliveryCustomerGovernmentalInformation": "",
"DeliveryAddress": "",
"CustomerOrderId": "",
"CarrierCode": "C5_TRANSP",--segunda parte do campo parceiro.codigoerp (TRA)
"PaymentTermCode": "C5_CONDPAG",--segunda parte do campo condicaopagamento.codigoerp
"Discounts": C5_DESC1,--pedido.valordesconto
"FinancialDiscount": FIXO 0,
"TotalDiscount": null,
"SellerCode": "C5_VEND1",--segunda parte do campo usuario.codigoerp
"RegisterDate": "C5_EMISSAO",--coalesce(pedido,datafinalizado, pedido.datapedido)
"PriceTableNumber": "C5_TABELA",--segunda parte do campo tabelapreco.codigoerp
"FreightType": "1 - CIF; 2 - FOB; 3 - SFT",--tipofrete.sgltipofrete (C, F e S)
"FreightValue": C5_FRETE,--pedidoentrega.valorfrete
"InsuranceValue": C5_SEGURO,--pedidoentrega.valorseguro
"RedeliveryCarrierCode": "C5_REDESP",--segunda parte do campo parceiro.codigoerp (TRA)
"InvoiceMessages": "C5_MENNOTA",--pedido.observacaonotafiscal
"GrossWeight": C5_PBRUTO,--pedidoproduto.pesobruto * pedidoproduto.quantidade
"NetWeight": C5_PESOL,--pedidoproduto.pesomedio* pedidoproduto.quantidade
"TotalValue": VALORTOTAL DO PEDIDO (Sem De/Para Conhecido),--pedido.valortotal
"Event": "upsert",
"OperatorCode": "AUTOMATICO",
"OrderPurpose": "FIXO 2",
"SalesOrderItens": [
{
"BranchId": "GRUPO_EMPRESA+UNIDADE+C5_FILIAL", --terceira, quarta e quinta parte do campo local.observacaointegracao (EMP)
"OrderId": "IDPEDIDO",--pedidoproduto.idpedido
"OrderItem": "C6_ITEM",--pedidoproduto.ordem
"ItemCode": "C6_PRODUTO",--segunda parte do campo produto.codigoerp
"Quantity": C6_QTDVEN,--pedidoproduto.quantidade
"WarehouseInternalId": "C6_LOCAL",–pedidoproduto.idtipoestoque ou se nulo, pedido.idtipoestoque
"UnityPrice": C6_PRUNIT,--pedidoproduto.precooriginal ou --pedidoproduto.precotabela conforme parâmetro CAMPO_PRCLISTA
"TypeOperation": "C6_TES | C6_OPER",--tipopedido.codigoerp do item, ou, se nulo, tipopedido.codigoerp do cabeçalho. Caso receba o campo menor igual a duas posições, caso contrário considera como TES do Protheus
"DeliveryDate": "C6_ENTREG",--pedidoentrega.dataentrega, ou, se nulo, pedidoproduto.dataentrega, ou, se nulo, data corrente
"ItemUnitOfMeasure": "C6_UNSVEN",--vazio
"InternalId": "TOTVSSFA_+IDPEDIDOPRODUTO+", --pedidoproduto.idpedidoproduto
"QuantityReached": C6_QTDVEN,--pedidoproduto.quantidade
"FreightValue": null,
"CustomerOrderNumber": "C6_PEDCLI",--pedido.numeropedidocliente
"ItemDiscounts": {
"ItemDiscount": C6_VALDESC,--pedidoproduto.valordesconto
},
"OperationCode": "FIXO F"
}
]
}
}