Obtendo os valores padrões para um novo cliente

Para todo e qualquer cadastro que exista, há registros que são uma relação com outro registros, e no cadastro de clientes não é diferente. O SalesOne possui alguns serviços para capturar os dados padrões para um novo registro e relacionados através do serviço abaixo:

GET api/Partners/New.json?includeReference=true

O serviço dever retornar os dados padrões para campos do cliente e alguns registros que podem ser informados ao cadastrar um novo registro, segue o retorno que se espera da chamada apresentada acima. “Os valores podem estar diferentes de acordo com cada configuração realizada dentro do SalesOne”:

//Lista de Cadastros Auxiliares
{
        //Valor padrão configurado dentro do SalesOne para Tipo de Frete
        "incotermsId": 0,
        //Valor padrão do usuário logado para o campo de vendedor
        "SlpCode": -1,
        //Campo padrão para o campo Grupo do Cliente
        "GroupCode": 100,
        //Código da Condição padrão para novos clientes
        "GroupNum": -1,
        //´Tipo de Cliente padrão para novos clientes
        "CardType": 0,
        //Código da Transportadora Padrão
        "CarrierCode": "T000001",
        //Formas de Pagamento padrão para novos clientes,
        "partnerPayMethods": [
                {
                        //Código da Condição de Pagamento
                        "PymCode": "Boleto"
                },
                {
                        //Código da Condição de Pagamento
                        "PymCode": "Boleto Banco do Brasil"
                },
        ],
        //Lista de Formas de Pagamento Disponíveis
        "PayMethods": [
                {
                        //Código
                        "id": "Boleto",
                        //Descrição da Forma de Pagamento
                        "text": "Pagamento com Boleto"
                }
        ],
        //Lista de Municípios Disponíveis,
    "counties": [
        {
            "absId": 0,  //Campo que deve ser preenchido em Partner.PartnerAddress.County
            "country": "String",
            "ibgeCode": "String",
            "name": "String",
            "state": "String"
        }
    ],
    //Lista de Países Disponíveis
    "countries": [
        {
            "code": "String", //Campo que deve ser preenchido em Partner.PartnerAddress.Country
            "name": "String"
        }
    ],
    //Lista de Grupos de Clientes Disponíveis
    "partnerGroups": [
        {

        }
    ],
    //Lista de Endereços Padrões para um novo cliente (Quando for realizado consulta na SEFAZ)  ou pode-se consultar através do serviço /api/address/ByZipCode/{CEP}
    "partnerAddresses": [
        {
                        //Tipo de Endereço - 0 Endereço de Cobrança. 1 - Endereço de Faturamento
                "addressType": 0,
                //Tipo do Logradouro
                "addrType": "String",
                //Nome do Endereço - Alias para o endereço: Exemplo: "Matriz"
                "address": "String",
                //Bairro
                "block": "String",
                //Complemento
                "building": "String",
                //Código do Cliente Caso o cliente já exista
                "cardCode": "String",
                //País
                "country": "String",
                //Município
                "county": "String",
                //Detalhes do Município
                "countyName": {
                    "absId": 0,
                    "country": "String",
                    "ibgeCode": "String",
                    "name": "String",
                    "state": "String"
                },
                //Geolocalização do Endereço
                "glbLocNum": "String",
                //Estado
                "state": "String",
                //Endereço
                "street": "String",
                //Número do Endereço
                "streetNo": "String",
                //CNPJ do Endereço Caso for depósito
                "taxId0": "String",
                //CEP
                "zipCode": "String"
                }
    ],
    //Lista de Estados Disponíveis
    "states": [
        {
            "code": "String", //Campo que deve ser preenchido em Partner.PartnerAddress.State
            "country": "String",
            "name": "String"
        }
    ],
    //Lista de Condições de Pagamento Disponíveis para Condição de Pagamento
    "groupNums": [
        {
                //Código
                        "id": -1,
                        //Descrição da Forma de Pagamento
                        "text": "À vista"
                }
    ],
    //Lista de Preços Disponíveis para o campo ListNum
    "PriceLists": [
        {
                //Código da Lista de Preço
                "id": 1,
                //Description
                "text": ""
        }
    ],
        //Sugestão de Posição do Contato dentro da empresa
    "contactPositions" : [
        "Proprietários",
        "Comprador"
    ],
    //Características disponíveis para o cliente
    "PartnerProperties" : [
        {
                        "id": 9,
                        "text": "Administração Pública"
                },
                {
                        "id": 2,
                        "text": "Armazenagem"
                },
                //...
    ],

}4

Há um serviço exclusivo para lista de transportadora disponíveis que pode ser obtida através de:

GET "/api/carriers.json"

E o seu resultado é uma lista de transportadoras disponíveis para ser usado no cadastro do parceiros:

//Campo com a lista de Transportadora
data : [
        {
                //Código da Transportador
                "cardCode": "T10001162",
                //Razão Social da Transportadora
                "cardName": "Exata Cargo Rodoviário F: 2954-0571",
                //Nome Fantasia da Transporadora
                "cardFName": "Exata Cargo Rodoviario F: 2954-0571",
                //Telefone 1 da Transportadora
                "phone1": "29540571",
                //Telefone 1 da Transportadora que pode ser também o DDD
                "phone2": "11",
        }
]

Antes de realizar um procedimento de novo cliente é possível verificar se o mesmo existe, é sempre uma boa prática realizar este procedimento antes de fazer um post para o novo cliente:

"/api/Partners/GetByTaxId/{CNPJ_OR_CPF}" - o resultado será o cadastro do cliente descrito na seção do campos do cadastro do cliente ou um registro uma lista em branco.

Para ter um cadastro ‘saudável’ é necessário garantir que as informações presentes no cadastro de clientes estejam corretas, para isso existem dois serviços auxiliares para checagem do cadastro.