README
This library makes it easy to set up a Netsuite authorization without needing a frontend client using CLI utilities.
Docs
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.
- Requirements
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-Newbutton- 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
- Use the defaults or repeat the info used above for
- 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
- Contact
- ContactCollection
- ContactCustomForm
- Customer
- CustomerAddressBookAddressBookAddress
- CustomerAddressBookCollection
- CustomerAddressBookElement
- CustomerAlcoholRecipientType
- CustomerCampaignsCollection
- CustomerCampaignsElement
- CustomerCollection
- CustomerContactRolesCollection
- CustomerContactRolesElement
- CustomerCustomForm
- CustomerEmailPreference
- CustomerGlobalSubscriptionStatus
- CustomerGroupPricingCollection
- CustomerGroupPricingElement
- CustomerItemPricingCollection
- CustomerItemPricingElement
- CustomerLanguage
- CustomerNegativeNumberFormat
- CustomerNumberFormat
- CustomerShippingCarrier
- CustomerSymbolPlacement
- CustomerThirdPartyCarrier
- CustomeraddressBookaddressBookAddressCountry
- NsError
- NsErrorOerrorDetails
- NsLink
- NsResource
- NsResourceCollection
- OneOfcontactCompany
- OneOfcontactCustentityCourseAttended
- OneOfcontactCustentityEnergyEffAttended
- OneOfcontactCustentityHitachiCourseAttended
- OneOfcontactCustentityHpCourseAttended
- OneOfcontactCustentityPvCourseAtteneded
- OneOfcontactCustentitySolCourseAttended
- OneOfcontactCustentityUnventHotWaterG3
- OneOfcontactCustentityWaterRegulations1999
- OneOfcustomerCustentityCourseAttended
- OneOfcustomerCustentityEnergyEffAttended
- OneOfcustomerCustentityHitachiCourseAttended
- OneOfcustomerCustentityHpCourseAttended
- OneOfcustomerCustentityPvCourseAtteneded
- OneOfcustomerCustentitySolCourseAttended
- OneOfcustomerCustentityUnventHotWaterG3
- OneOfcustomerCustentityWaterRegulations1999
- OneOfcustomerItemPricingElementItem
Metadata
Release files for netsuite-python 2.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netsuite_python-2.1.5.tar.gz | 136.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netsuite_python-2.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 350.4 kB
Release files / netsuite_python-2.1.5.tar.gz
| Download URL | netsuite_python-2.1.5.tar.gz |
|---|---|
| Size | 136.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa631e5c10fe2592ef13ceab1e7a8caf9f29f849f1ac62f5b0ccaf2833b2fab1
|
|
BLAKE2b-256 checksum How to use checksums |
85695505835ef2093c7f8ab005bed3c1d951f8a02b6b0fb5170bfc300e317340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / netsuite_python-2.1.5-py3-none-any.whl
| Download URL | netsuite_python-2.1.5-py3-none-any.whl |
|---|---|
| Size | 214.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89e948ee4c6cb32fb88e637080dc28932b691b4f3570b65bb36cc67347833ace
|
|
BLAKE2b-256 checksum How to use checksums |
9520293d52e3dfc8eb996a755c839d0fc727ed12c157feb1e741a45cd1400b52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|