Skip to main content

Python SDK for Netsuite API with Flask Integration

Project description

README

This library makes it easy to set up a Netsuite authorization without needing a frontend client using CLI utilities.

Docs

Netsuite API Documentation

What do I need to get set up?

  • Run pip install netsuite-python

  • Activate your python VENV

  • If using virtual environment

    • Activate your virtual environment
    • netsuite = python venv/bin/keap
  • Notes

    • Requirements
      • Sandbox requires the same setup as Prod, it DOES NOT copy over
      • An administrator for the Netsuite app to follow the steps here
        • A user with the correct role
        • A role with the correct permissions
        • An Integration Record with the correct permissions (ensure default form is set correctly)
          • Client ID and Secret comes from this step, ensure they provide these
        • Certificate ID
          • A Certificate can be generated once you register the package with CLI with 'netsuite generate-certificate'
          • Cert ID is available under Setup -> Integration -> OAuth 2.0 Client Credentials once the certificate is uploaded.

Generating x509 certificate for Netsuite

  • Run netsuite generate-certificate

    • Domain: theapiguys.com
    • Organization: TAG
    • Department: DEV
    • City: BOSTON
    • State: MA
    • Country: US
    • Email: will@theapiguys.com
  • It will ask for the file name that you wish to save the key to. This will be used when entering the creds.

Uploading x509 certificate to Netsuite

  • On Client's Netsuite top ribbon go to Setup -> Integration -> OAuth 2.0 Client Credentials
  • Click Create-New button
    • Entity: The User created for TAG
    • ROLE: Role created for this integration
    • Application: Application Created for this integration
    • Certificate: Click "Choose A File" and upload the PUBLIC Cert (NOT PRIVATE KEY)
  • Copy the Certificate ID

Setting up Netsuite SDK in a project

  • Run netsuite generate-client-config
    • It will ask you for information obtained above: You can use all the defaults

      • Client ID
      • Netsuite Certificate ID
      • Netsuite Key File
      • Netsuite Application Name
      • Allow None
      • Use Datetime
      • Storage Class
    • If you want to save to file

      • Provide a valid path for netsuite-credentials.json
      • else the credentials will be echoed out
    • To confirm, check the netsuite credentials path you entered, or the default, and there should be a json file with all the info you entered. Verify the details.

Getting The Access Token

  • Run $netsuite get-access-token
    • Use the defaults or repeat the info used above for
      • Path to Netsuite Credentials
    • Confirm the app name to be refreshed, if single app, just use default
  • That's it! You should now have a valid token to use with the Netsuite API.

Usage

It is pretty simple to get started using the SDK once you have a valid token.

Setup Netsuite

import pathlib
from netsuite import Netsuite

#Include config file, config dict, or leave empty to use default setup

# w/ config file 
# netsuite = Netsuite(config_file=pathlib.Path('./netsuite-credentials.json'))

# using default 
netsuite = Netsuite()

#initialize apis
ns_contact_api = netsuite.REST_CLIENT.contact_api
ns_customer_api = netsuite.REST_CLIENT.customer_api

Example Usage

print(ns_contact_api.contact_id_get(id=1413220))

Documentation for API Endpoints

All URIs are relative to https://{App_Name}.suitetalk.api.netsuite.com/services/rest/record/v1

Class Method HTTP request Description
ContactApi contact_get GET /contact Get list of records.
ContactApi contact_id_delete DELETE /contact/{id} Remove record.
ContactApi contact_id_get GET /contact/{id} Get record.
ContactApi contact_id_patch PATCH /contact/{id} Update record.
ContactApi contact_id_put PUT /contact/{id} Insert or update record.
ContactApi contact_post POST /contact Insert record.
CustomerApi customer_get GET /customer Get list of records.
CustomerApi customer_id_delete DELETE /customer/{id} Remove record.
CustomerApi customer_id_get GET /customer/{id} Get record.
CustomerApi customer_id_patch PATCH /customer/{id} Update record.
CustomerApi customer_id_put PUT /customer/{id} Insert or update record.
CustomerApi customer_idtransform_cash_sale_post POST /customer/{id}/!transform/cashSale Transform to cashSale.
CustomerApi customer_idtransform_invoice_post POST /customer/{id}/!transform/invoice Transform to invoice.
CustomerApi customer_idtransform_sales_order_post POST /customer/{id}/!transform/salesOrder Transform to salesOrder.
CustomerApi customer_idtransform_vendor_post POST /customer/{id}/!transform/vendor Transform to vendor.
CustomerApi customer_post POST /customer Insert record.

Documentation For Models

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netsuite_python-2.1.5.tar.gz (136.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netsuite_python-2.1.5-py3-none-any.whl (214.3 kB view details)

Uploaded Python 3

File details

Details for the file netsuite_python-2.1.5.tar.gz.

File metadata

  • Download URL: netsuite_python-2.1.5.tar.gz
  • Upload date:
  • Size: 136.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for netsuite_python-2.1.5.tar.gz
Algorithm Hash digest
SHA256 aa631e5c10fe2592ef13ceab1e7a8caf9f29f849f1ac62f5b0ccaf2833b2fab1
MD5 7c8efa1dfa6b34967e64e07cac71733d
BLAKE2b-256 85695505835ef2093c7f8ab005bed3c1d951f8a02b6b0fb5170bfc300e317340

See more details on using hashes here.

File details

Details for the file netsuite_python-2.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for netsuite_python-2.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 89e948ee4c6cb32fb88e637080dc28932b691b4f3570b65bb36cc67347833ace
MD5 1e39445671da8618e28e4ca3b8736f6d
BLAKE2b-256 9520293d52e3dfc8eb996a755c839d0fc727ed12c157feb1e741a45cd1400b52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page