Ligar ao NetSuite
Extraia dados financeiros e operacionais do NetSuite para tabelas do PlaidCloud com SuiteQL. Este guia leva-o de uma integração NetSuite vazia até uma extração agendada e tipada. Para a referência campo a campo que lhe serve de base, consulte o Conector REST do NetSuite.
Pré-requisitos
Seção intitulada “Pré-requisitos”Precisa, no NetSuite:
- Do OAuth 2.0 e dos REST Web Services ativados (Setup > Company > Enable Features > SuiteCloud).
- De um par de chaves RSA — o certificado público carregado para o NetSuite e a chave privada guardada para o PlaidCloud.
- De um ID de certificado (o
kiddo JWT, obtido ao carregar o certificado público), de um ID de cliente (do registo de integração) e do ID da sua conta (produção1234567ou sandbox1234567_SB1). - De uma função com REST Web Services, Log in using OAuth 2.0 Access Tokens, SuiteAnalytics Workbook (se as suas consultas tocarem em análises) e acesso de visualização aos registos que vai ler.
Os passos completos do lado do NetSuite — gerar o par de chaves, carregar o certificado e criar a integração — encontram-se em Configuração do lado do NetSuite, na referência. Conclua-os primeiro; este guia pressupõe que já tem os quatro valores.
Criar a ligação
Seção intitulada “Criar a ligação”-
Abra Tools > Connections e clique em
New Connection. -
Escolha NetSuite no menu.
-
Preencha os campos:
Campo Valor Nome Um nome descritivo, por exemplo NetSuite Prod.ID do cliente O ID de cliente do registo de integração. ID do certificado O ID do certificado ( kid) do carregamento do certificado público.ID da conta NetSuite O ID da sua conta, por exemplo 1234567ou1234567_SB1.Certificado privado NetSuite O bloco PEM completo da chave privada, colado em várias linhas. -
Clique em
Create.
Testar a ligação rapidamente
Seção intitulada “Testar a ligação rapidamente”Confirme que as credenciais funcionam antes de construir qualquer coisa por cima delas.
-
Adicione um passo Pedido REST a um fluxo de trabalho.
-
No separador Pedido, defina a Ligação para a sua ligação ao NetSuite, o Método para
POSTe o Endpoint para/services/rest/query/v1/suiteql. -
No Corpo, coloque uma consulta mínima e delimitada:
{"q": "SELECT id FROM account WHERE ROWNUM <= 1"} -
Clique em Enviar pedido de teste.
Criar o passo de extração
Seção intitulada “Criar o passo de extração”Com o teste rápido verde, transforme o passo numa extração real.
-
No Corpo, escreva a sua consulta SuiteQL com um
ORDER BYdeterminista. Para pontos de partida para copiar e colar — lançamentos de diário, balancete, demonstração de resultados, balanço, contas a receber em aberto, encomendas de venda, ordens de compra, inventário — 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 — encomendas 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 controlos de Paginação e análise nem os cabeçalhos
Prefer/Content-Type— a ligação NetSuite injeta-os. -
No separador Resposta, mantenha o destino como Tabela e defina as colunas com tipos reais:
Currency/Decimalpara montantes,Date/Datetimepara datas,Booleanpara indicadoresT/F. O SuiteQL devolve tudo como cadeias de texto; as colunas tipadas indicam ao PlaidCloud como as converter.
Verificar e agendar
Seção intitulada “Verificar e agendar”-
Execute o passo (consulte Executar um passo num fluxo de trabalho) e verifique a tabela de destino — as contagens de linhas e se as colunas de montante/data chegaram tipadas, e não como texto.
-
Para um fluxo contínuo, agende o fluxo de trabalho.
Resolução de problemas
Seção intitulada “Resolução de problemas”| Sintoma | Causa provável |
|---|---|
| Pedido de teste 400 com uma mensagem de âmbito ou de função | À função faltam os REST Web Services / o início de sessão OAuth 2.0 / o SuiteAnalytics, ou o array de âmbitos foi rejeitado — o detalhe apresentado indica-o. |
| A troca de token falha | Forma errada do ID da conta (falta _SB1), ID do certificado (kid) errado, ou uma chave privada que não corresponde ao certificado público carregado. |
| Erro de tipo/conversão na importação (indica a coluna e o valor) | Uma coluna tipada recebeu um valor que não consegue analisar — o mais frequente é uma coluna Date/Datetime em que o SuiteQL devolveu o formato de apresentaçã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 batem certo entre subsidiárias | O amount está na moeda própria de cada transação — utilize campos consolidados/convertidos. |
| Linhas duplicadas ou em falta numa extração grande | Não há ORDER BY determinista numa consulta paginada por deslocamento. |
Relacionado
Seção intitulada “Relacionado”- Exemplos de consultas SuiteQL do NetSuite — consultas prontas a executar para lançamentos de diário, balancete, demonstração de resultados, contas a receber em aberto e mais.
- Conector REST do NetSuite — referência de campos e de SuiteQL.
- Passo Pedido REST — o passo em que esta extração assenta.
- Criar e gerir uma ligação