Conectar ao NetSuite
Extraia dados financeiros e operacionais do NetSuite para tabelas do PlaidCloud com SuiteQL. Este guia leva você de uma integração vazia do NetSuite até uma extração agendada e tipada. Para a referência campo a campo por trás dele, consulte o Conector REST do NetSuite.
Pré-requisitos
Seção intitulada “Pré-requisitos”Você precisa, no NetSuite:
- OAuth 2.0 e REST Web Services ativados (Setup > Company > Enable Features > SuiteCloud).
- Um par de chaves RSA — o certificado público enviado ao NetSuite e a chave privada guardada para o PlaidCloud.
- Um ID do certificado (o
kiddo JWT, obtido ao enviar o certificado público), um ID do cliente (do registro de integração) e o ID da sua conta (produção1234567ou sandbox1234567_SB1). - Uma função com REST Web Services, Log in using OAuth 2.0 Access Tokens, SuiteAnalytics Workbook (se as suas consultas usarem recursos de análise) e acesso de visualização aos registros que você vai ler.
As etapas completas do lado do NetSuite — gerar o par de chaves, enviar o certificado e criar a integração — estão em Configuração no lado do NetSuite na referência. Conclua-as primeiro; este guia pressupõe que você já tem os quatro valores em mãos.
Criar a conexão
Seção intitulada “Criar a conexão”-
Abra Tools > Connections e clique em
New Connection. -
Escolha NetSuite no menu.
-
Preencha os campos:
Campo Valor Nome Um nome amigável, por exemplo NetSuite Prod.ID do cliente O ID do cliente do registro de integração. ID do certificado O ID do certificado ( kid) do envio do certificado público.ID da conta do NetSuite O ID da sua conta, por exemplo 1234567ou1234567_SB1.Certificado privado do NetSuite O bloco PEM completo da chave privada, colado em várias linhas. -
Clique em
Create.
Testar rapidamente a conexão
Seção intitulada “Testar rapidamente a conexão”Confirme que as credenciais funcionam antes de construir qualquer coisa sobre elas.
-
Adicione uma etapa Solicitação REST a um fluxo de trabalho.
-
Na guia Solicitação, defina Conexão como a sua conexão do NetSuite, Método como
POSTe Endpoint como/services/rest/query/v1/suiteql. -
No Corpo, coloque uma consulta pequena e delimitada:
{"q": "SELECT id FROM account WHERE ROWNUM <= 1"} -
Clique em Enviar solicitação de teste.
Criar a etapa de extração
Seção intitulada “Criar a etapa de extração”Com o teste rápido verde, transforme a etapa em uma extração real.
-
No Corpo, escreva sua consulta SuiteQL com um
ORDER BYdeterminístico. Para pontos de partida prontos para copiar e colar — lançamentos contábeis, balancete, DRE, balanço patrimonial, contas a receber em aberto, pedidos de venda, pedidos de compra, estoque —, consulte Exemplos de consultas SuiteQL do NetSuite.Financeiro — linhas de transação do razão geral de um período:
{"q": "SELECT tl.transaction AS transaction_id, TO_CHAR(t.trandate, 'YYYY-MM-DD') AS tran_date, a.acctnumber AS account_number, tl.subsidiary AS subsidiary_id, tl.foreignamount AS amount FROM transactionline tl JOIN transaction t ON t.id = tl.transaction JOIN account a ON a.id = tl.expenseaccount WHERE t.trandate BETWEEN TO_DATE('2026-01-01','YYYY-MM-DD') AND TO_DATE('2026-01-31','YYYY-MM-DD') ORDER BY tl.transaction, tl.id"}Operacional — pedidos de venda em aberto por cliente:
{"q": "SELECT so.tranid AS order_number, so.entity AS customer_id, TO_CHAR(so.trandate, 'YYYY-MM-DD') AS order_date, so.status AS order_status FROM transaction so WHERE so.type = 'SalesOrd' AND so.status = 'SalesOrd:B' ORDER BY so.id"} -
Não altere os controles de Paginação e análise nem os cabeçalhos
Prefer/Content-Type— a conexão do NetSuite os injeta. -
Na guia Resposta, mantenha o destino como Tabela e defina as colunas com tipos reais:
Currency/Decimalpara valores,Date/Datetimepara datas eBooleanpara os indicadoresT/F. O SuiteQL retorna tudo como strings; as colunas tipadas dizem ao PlaidCloud como convertê-las.
Verificar e agendar
Seção intitulada “Verificar e agendar”-
Execute a etapa (consulte Executar uma única etapa em um fluxo de trabalho) e verifique a tabela de destino — as contagens de linhas e se as colunas de valor e de data chegaram tipadas, não como texto.
-
Para um fluxo contínuo, agende o fluxo de trabalho.
Solução de problemas
Seção intitulada “Solução de problemas”| Sintoma | Causa provável |
|---|---|
| Solicitação de teste com erro 400 e uma mensagem de escopo ou função | A função não tem REST Web Services / login OAuth 2.0 / SuiteAnalytics, ou a matriz de escopos foi rejeitada — o detalhe exibido a nomeia. |
| A troca de token falha | Forma errada do ID da conta (sem _SB1), ID do certificado (kid) errado ou uma chave privada que não corresponde ao certificado público enviado. |
| Erro de tipo/conversão na importação (nomeia a coluna e o valor) | Uma coluna tipada recebeu um valor que não consegue analisar — com mais frequência, uma coluna Date/Datetime em que o SuiteQL retornou o formato de exibição da conta. Envolva o campo em TO_CHAR(col, 'YYYY-MM-DD') na consulta ou defina o tipo da coluna como Text. |
| Os totais não fecham entre subsidiárias | amount está na moeda própria de cada transação — use campos consolidados/convertidos. |
| Linhas duplicadas ou ausentes em uma extração grande | Falta um ORDER BY determinístico em uma consulta paginada por deslocamento. |
Relacionados
Seção intitulada “Relacionados”- Exemplos de consultas SuiteQL do NetSuite — consultas prontas para executar de lançamentos contábeis, balancete, DRE, contas a receber em aberto e mais.
- Conector REST do NetSuite — referência de campos e de SuiteQL.
- Etapa Solicitação REST — a etapa em que esta extração é construída.
- Criar e gerenciar uma conexão