Conectar o NetSuite: receber pedidos e sincronizar clientes, faturas e produtos
Encontre seu Account ID no NetSuite, cole no Integration um token de acesso OAuth2 já emitido com o escopo rest_webservices, teste, mapeie e ative: entram os pedidos de venda e clientes, faturas e produtos sincronizam nos dois sentidos.
O conector do NetSuite conecta seu ERP Oracle NetSuite pelo serviço SuiteTalk REST Record. Ele traz pedidos de venda, clientes, faturas e produtos do NetSuite e devolve clientes, faturas e produtos ao NetSuite. Ele não pode ler nem enviar quantidades de estoque, então use-o para pedidos e para registros de clientes, faturas e produtos — não para sincronizar quantidades de estoque.
Pré-requisitos#
- Uma conta NetSuite e um acesso que possa abrir Setup → Company → Company Information para ler o Account ID.
- Uma função com permissão de REST Web Services: o token deve ter o escopo rest_webservices e sua função deve poder ler registros de clientes, porque o teste de conexão lê um cliente.
- Um token de acesso OAuth2 já emitido, obtido por meio de um registro de integração (integration record) do NetSuite pelo fluxo de credenciais do cliente ou de código de autorização. Tenha o token pronto antes de começar o assistente.
- Saiba qual conta vai conectar: um Account ID de sandbox aparece como 1234567_SB1, com o sufixo _SB1.
Obter credenciais#
- Encontre o Account ID: no NetSuite, vá a Setup → Company → Company Information e copie o Account ID exatamente como aparece; numa conta sandbox ele inclui o sufixo _SB1, por exemplo 1234567_SB1.
- Obtenha o token de acesso OAuth2: o token deve ter o escopo rest_webservices e é obtido de um registro de integração do NetSuite pelo fluxo de credenciais do cliente ou de código de autorização. O Integration não abre uma janela de login do NetSuite para você: você cola um token que já foi emitido.
- Verifique a função por trás do token: ela precisa de permissão de REST Web Services e de permissão para ler registros de clientes, ou o teste de conexão falhará com MISSING_SCOPE (403).
Preencher no Integration#
- Abra Integration → Marketplace → NetSuite → Nova conexão.
- account_id: obrigatório. Preencha no campo Account ID: o Account ID de NetSuite → Setup → Company → Company Information, copiado caractere por caractere, incluindo o sufixo _SB1 numa conta sandbox (por exemplo 1234567_SB1).
- token: obrigatório. Preencha no campo OAuth2 access token: cole o token de acesso OAuth2 completo com o escopo rest_webservices (seu valor geralmente começa com eyJ). Não há campo separado para Client ID ou Client Secret. O token é armazenado criptografado e nunca é exibido de volta.
Testar a conexão#
Clique em Testar a conexão. Se account_id estiver vazio, o teste para com MISSING_ACCOUNT_ID; se token estiver vazio, para com MISSING_TOKEN: nos dois casos nenhuma solicitação é enviada. Caso contrário, o teste envia seu token como Bearer numa única sondagem somente leitura: lê a lista de clientes com limite 1 de https://{account_id}.suitetalk.api.netsuite.com/services/rest/record/v1/customer (tempo limite de 12 segundos). Uma resposta 200 significa que o teste passou e o resultado mostra seu account_id. Uma resposta 401 volta como INVALID_TOKEN e uma 403 como MISSING_SCOPE: veja nas perguntas frequentes o que corrigir em cada caso; qualquer outra falha é relatada como CONNECTION_FAILED.
Mapping / escolher modelo#
Escolha o modelo padrão do NetSuite. Ele mapeia pedidos de venda — incluindo os detalhes das linhas de cada pedido, que o conector lê pedido por pedido — além de clientes, faturas e produtos (itens de inventário do NetSuite), entre o NetSuite e os documentos padrão. Antes de ativar, confira na prévia do mapping os campos que importam para você e garanta que cada produto do NetSuite esteja vinculado ao produto certo deste lado. Quantidades de estoque não fazem parte deste mapping: esta conexão não lê nem envia quantidades de estoque, então não mapeie campos de quantidade disponível esperando que sincronizem.
Ativar#
Após ativar, o Integration traz novos pedidos de venda, clientes, faturas e produtos do NetSuite na frequência definida e devolve ao NetSuite as atualizações de clientes, faturas e produtos. Quantidades de estoque não fluem em nenhum sentido por esta conexão. Acompanhe os primeiros documentos em Runs / Logs antes de deixar sem supervisão e, quando seu token OAuth2 expirar, substitua-o por um recém-emitido e teste de novo.
Perguntas frequentes#
O teste para com MISSING_ACCOUNT_ID ou MISSING_TOKEN
Um dos dois campos obrigatórios está vazio, então o teste para antes de enviar qualquer solicitação ao NetSuite.
Preencha os dois campos: account_id de NetSuite → Setup → Company → Company Information, e token com o token de acesso OAuth2 completo. Salve e teste de novo.
O teste falha com INVALID_TOKEN (401)
O NetSuite rejeitou o token: ele é inválido ou expirou, foi colado de forma incompleta, ou o que você colou é uma credencial de Token-Based Authentication (TBA), e não um token de acesso OAuth2.
Obtenha um novo token de acesso OAuth2 com o escopo rest_webservices do seu registro de integração do NetSuite, cole-o por inteiro no campo token, salve e teste de novo. Lembre-se de que credenciais TBA não podem ser usadas nesta conexão.
O teste falha com MISSING_SCOPE (403)
O token chegou ao NetSuite, mas não tem permissão para fazer o que o teste faz: falta o escopo rest_webservices, ou a função por trás dele não tem permissão para ler registros de clientes — e a sondagem do teste lê clientes.
Peça ao administrador do NetSuite que verifique o escopo no registro de integração e a permissão de clientes da função. Se o escopo mudar, emita um token novo, cole-o na conexão, salve e teste de novo.
O teste falha com CONNECTION_FAILED
A sondagem chegou ao NetSuite, mas obteve uma resposta diferente de sucesso, 401 ou 403. Uma causa comum é um account_id que não corresponde à conta à qual o token pertence: o endereço da sondagem é montado com seu account_id, então um único caractere errado a envia ao lugar errado.
Copie de novo o account_id de NetSuite → Setup → Company → Company Information, caractere por caractere — incluindo o sufixo _SB1 se for uma conta sandbox — e confirme que o token foi emitido para essa mesma conta. Salve e teste de novo.
Onde preencho o Client ID e o Client Secret?
Em nenhum lugar nesta conexão: ela não tem campo de Client ID nem de Client Secret. Ela recebe o próprio token de acesso OAuth2 já emitido: a troca por credenciais do cliente ou código de autorização acontece do lado do registro de integração do NetSuite para produzir esse token, e você cola o token resultante no campo token aqui.
É também por isso que não há aqui um fluxo de renovação do token: o token que você cola é a credencial pronta. Se ele expirar, repita a troca do lado do NetSuite com o mesmo Client ID e Client Secret, cole o novo token nesta conexão e teste de novo.
Esta conexão pode sincronizar quantidades de estoque?
Não. Esta conexão não pode ler quantidades de estoque do NetSuite nem enviar quantidades de estoque ao NetSuite. Use-a para pedidos de venda, clientes, faturas e produtos, e mantenha as quantidades de estoque no sistema que as gerencia hoje.
Os registros de produto circulam nos dois sentidos: nome, SKU e demais campos do produto sincronizam com o NetSuite. O que nunca viaja é o número da quantidade: um produto sincronizado não traz junto a sua quantidade em mãos.