Páginas filhas
  • APIs Integrações - Clientes

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • Necessário a instalação do  serviço winthor-pedido-venda
  • Todos os campos obrigatórios do cadastro de cliente (Rotina 302) serão obrigatórios na API.
  • O atributo activityId, caso não seja enviado, a API utilizará o valor padrão "1" do parâmetro 4013 - Código do ramo de atividade para cadastro de clientes na Ciashop (CODATVCIASHOP)na rotina 132.

  • O atributo cnaeId, caso não seja enviado, a API utilizar um valor padrão "4729-6/99" do parâmetro 4585- Código do CNAE para cadastro de clientes e-commerce. (CODCNAEECOMMERCE) na rotina 132.

  • No Winthor, acessar a rotina 132 - Parâmetros da Presidência, parâmetro 4532 - "Permite alterar o cliente ao receber dados para inserção via ecommerce/API" permite ou não alteração do cadastro de cliente de forma automática ao receber dados do cliente ou pedido via API, por padrão esse campo receberá 'Sim' sendo possível sua configuração por filial. No corpo da requisição o atributo "branchParameterId" é correspondente a filial que permite ou não a alteração.
  • Obrigatoriamente os cadastro de clientes oriundos da integração deverão informar o atributo "customerOrigin" igual a "VT" (VTEX)
  • Ao inserir um novo cadastro a API priorizará o CEP informado no atributo "commercialZipCode".  Caso o CEP seja inválido e/ou a API (terceira de CEP) esteja indisponível, será considerado a Cidade informada "cityId" e posteriormente os atributos inseridos "businessCity", "businessState".
  • Ao integrar clientes será considerado o CNPJ/CPF e IE, se tiver um cadastro com o CNPJ/CPF validaremos a Inscrição estadual para cadastrar/alterar, caso seja uma nova Inscrição estadual, será integrado um novo cadastro.
  • O atributo "sellerId" , caso não seja enviado ou seu valor seja igual a 0, a API utilizará o valor padrão cadastrado no parâmetro "4012 - Código do RCA para cadastro de clientes na Ciashop" na rotina 132.

  • Ao inserir um novo registro, o valor do código RCA será registrado na coluna CODUSUR1 da tabela PCCLIENT, e em caso de alteração de um registro existente, o valor do código RCA será registrado na coluna CODUSUR3 da mesma tabela, mantendo o registro do código RCA inicial na coluna CODUSUR1.

  • O atributo documentType, caso não seja enviado, será gravado automaticamente como A, para AMBOS.

  • O parâmetro withDeliveryAddress dos endpoints de buscar clientes está disponível a partir da versão 1.2.0.1122 do winthor-pedido-venda



Aviso
titleImportante

Quando não houver preenchimento do campo DATA, exemplo (data de cadastro, data de alteração), nossas APIs retornará por padrão a informação "1900-01-01T00:00:00".

Caso necessário, realizar o ajuste nos cadastros para que a API apresente a data desejada.

Possíveis problemas:

Caso o ambiente esteja utilizando o antivírus Kaspersky, o serviço de consultas de cep que é realizado na integração de clientes VIACEP é bloqueado.

Para que o cadastro de clientes seja integrado com sucesso, é necessário verificar todas restrições referentes ao antivírus ou inativá-lo.

...

Totvs custom tabs box
tabsDados integrados com Winthor, Envio Parâmetros/Resposta da Requisição, Listar Dados Cliente
idspasso1,passo2,passo3

A integração consiste em receber e enviar dados que serão utilizados no E-Commerce.

Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

CUSTOMER              PCCLIENTReferência rotina 302


APIReferência Winthor DescriçãoTipo(Tamanho)ObrigatórioObservações
activityIdpcclient.codatv1

Código da atividade do Cliente - aba dados cadastrais

NUMBER(6,0)Sim
addressInfopcclient.enderent

Não

Esse parâmetro só é retornado no GET da requisição. Não é utilizado para gravar informações;
billingAddresspcclient.endercobEndereço Cobrança - aba endereço cobrançaVARCHAR2(40,0)Sim
billingAddressNumberpcclient.numerocobNumero do endereço de cobrança - aba endereço cobrançaVARCHAR2(6,0)Não
billingDistrictpcclient.bairrocobBairro - aba endereço cobrançaVARCHAR2(40,0)

Não


billingIdpcclient.codcobCódigo de cobrança - aba posição financeira - valor padrão "D"VARCHAR2(4,0)

Não


billingStatepcclient.estcobEstado - aba endereço cobrançaVARCHAR2(2,0)

Não


billingZipCodepcclient.cepcobCEP - aba endereço cobrançaVARCHAR2(9,0)Sim
branchParameterIdFilial de referência para considerar o parâmetro ALTERACLIAUTOECOMMERCE

Não
businessCitypcclient.municentCampo município - aba endereço comercialVARCHAR2(15,0)Não
businessCityIdpcclient.codcidadecomCidade - aba endereço entregaNUMBER(6,0)NãoRelaciona o ID da cidade cadastrado no banco de dados.
businessDistrictpcclient.bairroentBairro - aba endereço comercialVARCHAR2(40,0)Sim
businessStatepcclient.estentEstado - aba endereço entregaVARCHAR2(2,0)Não
cityIdpcclient.codcidadeCidadeNUMBER(10,0)SimRelaciona o ID da cidade cadastrado no banco de dados.
cnaeIdpcclient.codcnaeCNAE - aba capaVARCHAR2(60,0)Não
commercialAddresspcclient.enderentEndereço comercial - aba endereço comercialVARCHAR2(40,0)Sim
commercialAddressNumberpcclient.numeroentNumero do endereço comercial - aba endereço entregaVARCHAR2(6,0)Não
commercialZipCodepcclient.cepcomCEP - aba endereço entregaVARCHAR2(9,0)Sim
complementBillingAddresspcclient.complementocobComplemento endereço de cobrança - aba endereço cobrançaVARCHAR2(80,0)Não
complementBusinessAddresspcclient.complementoentComplemento endereço de cobrança - aba endereço comercialVARCHAR2(80,0)Não
complementDeliveryAddresspcclient.complementocomComplemento endereço de cobrança - aba endereço entregaVARCHAR2(80,0)Não
corporatepcclient.tipofjTipo de Pessoa - aba capaVARCHAR2(1,0)SimCampo Booleano. true é para pessoa jurídica("J") e false para pessoa física ("F"); Como padrão, caso parâmetro não seja enviado, será definido de acordo com o CGC informado, caso seja enviado um CPF será pessoa física ("F"), caso seja CNPJ será pessoa jurídica("J").
corporatePhonepcclient.telentTelefone - aba endereço comercialVARCHAR2(13,0)NãoO valor é criado na tabela 'pcclient.telent'.
deliveryPhonepcclient.telcomTelefone comercial - aba endereço de entregaVARCHAR2(13,0)NãoO valor é criado na tabela 'pcclient.telcom'.
billingPhonepcclient.telcobTelefone comercial - aba endereço de cobrançaVARCHAR2(13,0)NãoO valor é criado na tabela 'pcclient.telcob'.
countryIdpcclient.codpaisCódigo do pais - aba endereço comercialNUMBER(6,0)Sim
createDatepcclient.dtcadastroData e Hora de cadastro - aba dados cadastraisDATE(7,0)SimO formato correto de envio é: "yyyy-MM-dd'T'HH:mm:ss.SSS".
Sendo: yyyy para ano com quatro dígitos, MM para mês com dois dígitos, dd para dia com dois dígitos, HH para hora com dois dígitos, mm para minutos com dois dígitos, ss para segundos com dois dígitos, e SSS para milésimos com três dígitos. Exemplo de input válido: "2021-12-02T15:35:20.003".  Para 'CustomerOrigin' sendo 'VT', o campo não é obrigatório e pega os dados do de data e horário da requisição.
customerOrigin


SimOs valores aceitos para esse campo são: "VT" - VTEX; "WB" - WEB; "WTN" - Winthor não Web; "WTW" - WTA - Winthor Web; "N" - Nenhum;
deliveryAddresspcclient.endercomEndereço - aba endereço entregaVARCHAR2(40,0)Não
deliveryAddressNumberpcclient.numerocomNumero do endereço de entrega - aba endereço entregaVARCHAR2(6,0)Não
deliveryDistrictpcclient.bairrocomBairro - aba endereço entregaVARCHAR2(40,0)Não
deliveryStatepcclient.estcomEstado - aba endereço entregaVARCHAR2(2,0)Não
deliveryZipCodepcclient.CEPENTCEP - aba endereço COMERCIALVARCHAR2(9,0)Não
document


Não
documentType*pcclient.tipodocumentoTipo de documento - aba condições comerciais - opçõesVARCHAR2(1,0)NãoOs valores aceitos são 'A' para Ambos, 'C' para Cupom ou 'N' para Nota Fiscal.
emailpcclient.emailE-mail - aba endereço comercialVARCHAR2(100,0)Sim
emailNfepcclient.emailnfeE-mail NF-e - aba endereço comercialVARCHAR2(3500,0)NãoCaso esse parâmetro não seja enviado, será replicado o valor do campo 'email' para o 'emailNfe'.
finalCostumerpcclient.consumidorfinalConsumidor Final  - aba condições comerciais - opçõesVARCHAR2(1,0)NãoCampo booleano. true para 'S', false para 'N'.
ibgeIdpccidade.codibge
NUMBER(10,0)NãoNão é um campo obrigatório porém por redundância, o cliente pode envia-lo para verificar se o ID do IBGE existe no banco de dados. Campo utilizado no POST somente para validação de dados - e o envio deve ser feito pelo body como String.
id*pcclient.codcliCódigo - aba capaVARCHAR2(9,0)Não
lastChangepcclient.dtultalterData e Hora da última alteração - aba dados cadastraisDATE(7,0)SimO formato correto de envio é: "yyyy-MM-dd'T'HH:mm:ss.SSS".
Sendo: yyyy para ano com quatro dígitos, MM para mês com dois dígitos, dd para dia com dois dígitos, HH para hora com dois dígitos, mm para minutos com dois dígitos, ss para segundos com dois dígitos, e SSS para milésimos com três dígitos. Exemplo de input válido: "2021-12-02T15:35:20.003". 
namepcclient.clienteCampo cliente - Nome do cliente - aba capaVARCHAR2(60,0)Sim
paymentPlanIdpcclient.codplpagPlano de pagamento - aba condições comerciais  - parâmetrosNUMBER(4,0)Não
personIdentificationNumberpcclient.cgcentCNPJ/CPF - aba capaVARCHAR2(18,0)Sim
phone*Não é gravado em tabela nenhumaTelefone comercial - aba endereço comercialVARCHAR2(13,0)Não
sellerIdpcclient.codusur1RCA 1 - Código do RCANUMBER(4,0)Sim
squareIdpcclient.codpracaCampo praça - endereço comercialNUMBER(6,0)Sim
stateInscriptionpcclient.ieentIns. Est./ Produtor - aba dados cadastrais: Informar Inscrição Estadual. Caso não tenha, informar ISENTO. VARCHAR2(15,0)Sim
tradeNamepcclient.fantasiaFantasia - aba capaVARCHAR2(40,0)Não
permissions.acceptValidateZipCodeOnline

booleanNão

Default: true

Em caso de 'false' a aplicação não irá validar se o CEP está valido em API terceiros (ViaCEP e ByJG)


Obs: opção disponível a partir da versão: 1.2.0.1087



Observações da requisição POST:

Se a origem do pedido for "VT": 

  • Será utilizado o CEP para preencher os dados do nome da cidade, nome do estado, e o bairro (tanto comercial, de cobrança e entrega).  Caso os dados da API de consulta falhem, serão utilizados valores informados na requisição do corpo;
  • O parâmetro: "CommercialZipCode" irá definir os campos: 'CepComercial', 'CepEntrega' e 'CepCobranca'. Sendo assim, esses valores serão iguais;
  • O parâmetro: "ComplementBusinessAddress" irá definir os campos: 'ComplementoEnderecoComercial', 'ComplementoEnderecoEntrega' e 'ComplementoEndereçoCobranca'. Sendo assim, esses valores serão iguais;
  • O parâmetro: "CommercialAddressNumber" irá definir os campos: 'NumeroEnderecoComercial', 'NumeroEnderecoEntrega' e 'NumeroEnderecoCobrança'. Sendo assim, esses valores serão iguais;
  • O parâmetro: "CommercialAddress" irá definir os campos: 'EnderecoComercial', 'EnderecoEntrega' e 'EnderecoCobrança'. Sendo assim, esses valores serão iguais;
  • O parâmetro: "corporatePhone" irá definir os campos: 'Telefone comercial', 'TelefoneEntrega' e 'TelefoneCobranca'. Sendo assim, esses valores serão iguais;
  • O CNAE padrão será 4729-6/99;
  • Código Pais será 10581 que representa o Brasil;


Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo JSON do envio da requisição e dados do retorno:

Bloco de código
languagejs
titleURI - Cadastrar Cliente
method: 'POST',
url: '/api/wholesale/v1/customer/'
Bloco de código
languagejs
titleBody
{
    "corporate": true,
    "name": "string",
    "personIdentificationNumber": "string",
    "stateInscription": "string",
    "commercialAddress": "string",
    "businessDistrict": "string ",
    "commercialZipCode": "string",
    "email": "string",
	"emailNfe": "string",
    "customerOrigin": "VT",
    "finalCostumer": "false",
    "billingId": "string",
    "paymentPlanId":0,
    "commercialAddressNumber": "string",
    "billingAddressNumber": "string",
    "deliveryAddressNumber": "string",
    "squareId": 0,
    "activityId": 0,
    "complementBillingAddress": "string",
    "complementBusinessAddress": "string",
    "complementDeliveryAddress": "string",
    "BusinessCity": "string",
    "sellerId": 0,
    "businessCity": "string",
    "cityId": 0,
    "countryId": 0,
	"documentType": "A"
}


Exemplo JSON da resposta:  

Bloco de código
languagejs
titleBody Response
{
    "Id": 0
}
Bloco de código
languagejs
titleBody Response - Error
{
    "code": "WT-PV-000000",
    "message": "Erro ao validar itens",
    "detailedMessage": "Lista de validações em details",
    "details": [
        {
            "code": "WT-PV-0000XX",
            "message": "Campo obrigatório",
            "detailedMessage": "Detalhes do campo obrigatório. ",
            "details": []
        }
    ]
}
Totvs custom tabs box items
defaultno
referenciapasso3

Enviar as requisições conforme indicação abaixo para listar os cadastros existentes:

Bloco de código
languagejs
titleURI Parameters - Listar um único cadastro
method: 'GET',
url: '/api/wholesale/v1/customer/'

*PARAMS:*
customerId  : 0      -    Informar o código do cliente withDeliveryAddresscliente 
withDeliveryAddress  : false - Informe para retornar os endereços de entregas do cliente 
Bloco de código
languagejs
titleURI Parameters - Listar todos cadastros
method: 'GET',
url: '/api/wholesale/v1/customer/list'

*PARAMS:*
withDeliveryAddress  : false     -    Informe para retornar os endereços de entregas do cliente 
Bloco de código
languagejs
titleBody Response - Exemplo para todos os casos
{
    "corporate": true,
    "name": "string",
    "personIdentificationNumber": "string",
    "stateInscription": "string",
    "commercialAddress": "string",
    "businessDistrict": "string ",
    "commercialZipCode": "string",
    "email": "string",
	"emailNfe": "string",
    "customerOrigin": "VT",
    "finalCostumer": "false",
    "billingId": "string",
    "paymentPlanId":0,
    "commercialAddressNumber": "string",
    "billingAddressNumber": "string",
    "deliveryAddressNumber": "string",
    "squareId": 0,
    "activityId": 0,
    "complementBillingAddress": "string",
    "complementBusinessAddress": "string",
    "complementDeliveryAddress": "string",
    "BusinessCity": "string",
    "sellerId": 0,
    "businessCity": "string",
    "cityId": 0,
    "countryId": 0,
	"documentType": "A",
	"phone": "string",
	"corporatePhone": "string",
	"billingPhone": "string",
	"deliveryPhone": "string",
    "deliveryAddresses": [
            "id": "number",
            "receiverName": "string",
            "receiverEmail": "string",
            "customerId": "number",
            "squareId": "number",
            "zipCode": "string",
            "state": "string",
            "city": "string",
            "district": "string",
            "address": "string",
            "complement": "string",
            "cityId": "number",
            "number": "number",
            "tradeName": "string",
            "lastChangeDate": "string",
            "receiverCountryId": "number",
            "receiverPhone": "number",
            "referencePoint": "string"
     ]
	"permissions":{
        "acceptValidateZipCodeOnline": false
    } 
}

...