Skip to main content

Opportunity API

Manage sales opportunities for pipeline tracking and forecasting using the NetSuite REST API.


Endpoints

MethodEndpointDescription
GET/record/v1/opportunityList all opportunities
GET/record/v1/opportunity/{id}Get specific opportunity
POST/record/v1/opportunityCreate new opportunity
PATCH/record/v1/opportunity/{id}Update opportunity
DELETE/record/v1/opportunity/{id}Delete opportunity

Key Fields

Header Fields

FieldTypeDescriptionRequired
idstringInternal ID (read-only)-
titlestringOpportunity name/titleYes
entityobjectCustomer/prospect referenceYes
tranDatestringOpportunity date (ISO 8601)Yes
expectedCloseDatestringExpected close dateNo
statusobjectOpportunity statusNo
subsidiaryobjectSubsidiaryYes (OneWorld)

Sales Tracking

FieldTypeDescriptionRequired
salesRepobjectSales representativeNo
salesGroupobjectSales team/groupNo
probabilitynumberWin probability % (0-100)No
salesStageobjectSales stageNo
forecastTypeobjectForecast typeNo
partnerobjectPartner referenceNo
leadsourceobjectLead sourceNo

Financial Projections

FieldTypeDescriptionRequired
currencyobjectTransaction currencyYes
exchangeRatenumberExchange rateAuto-calculated
projectedTotalnumberProjected revenueNo
rangeHighnumberHigh revenue estimateNo
rangeLownumberLow revenue estimateNo
probabilitynumberWin probability %No
weightedTotalnumberWeighted forecast (read-only)Auto-calculated

Relationship Fields

FieldTypeDescriptionRequired
tranIdstringOpportunity numberAuto-generated
competitorobjectCompetitor referenceNo
winLossReasonobjectWin/loss reasonNo
actionItemstringNext action itemNo

Other Fields

FieldTypeDescriptionRequired
memostringInternal notesNo
classobjectDepartment/classNo
locationobjectLocationNo
createdFromobjectSource transactionNo

Sublists

FieldTypeDescriptionRequired
itemcollectionProjected line itemsNo
competitorcollectionCompetitorsNo
salesteamcollectionSales team membersNo

Line Items

The item sublist contains projected products/services for revenue forecasting.

Item Line Fields

FieldTypeDescriptionRequired
itemobjectItem referenceYes
quantitynumberProjected quantityYes
ratenumberExpected unit priceYes
amountnumberLine total (qty × rate)Auto-calculated
descriptionstringLine descriptionNo
expectedShipDatestringExpected ship dateNo

Example: Create Opportunity

POST /record/v1/opportunity
Content-Type: application/json
{
"title": "Q1 2026 Enterprise License - Acme Corp",
"entity": {
"id": "456"
},
"tranDate": "2025-12-25",
"expectedCloseDate": "2026-03-31",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"salesRep": {
"id": "123"
},
"probability": 50,
"projectedTotal": 150000,
"rangeHigh": 200000,
"rangeLow": 100000,
"leadsource": {
"id": "5"
},
"actionItem": "Schedule product demo for January 15",
"memo": "Large enterprise opportunity - requires executive approval",
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 100,
"rate": 1500,
"description": "Enterprise License - 100 users",
"expectedShipDate": "2026-04-01"
},
{
"item": { "id": "791" },
"quantity": 100,
"rate": 500,
"description": "Premium Support - Annual"
}
]
}
}

Response:

{
"id": "3001",
"tranId": "OPP-3001",
"title": "Q1 2026 Enterprise License - Acme Corp",
"entity": {
"id": "456",
"refName": "Acme Corporation"
},
"tranDate": "2025-12-25",
"expectedCloseDate": "2026-03-31",
"status": {
"id": "OPEN",
"refName": "Open"
},
"probability": 50,
"projectedTotal": 150000.00,
"weightedTotal": 75000.00,
"links": [
{
"rel": "self",
"href": "https://{account}.suitetalk.api.netsuite.com/services/rest/record/v1/opportunity/3001"
}
]
}

Example: Update Opportunity

PATCH /record/v1/opportunity/3001
Content-Type: application/json
{
"probability": 75,
"expectedCloseDate": "2026-03-15",
"actionItem": "Awaiting contract review",
"memo": "Customer confirmed budget approval - very strong interest"
}

Sales Stages

Track opportunity progression through your sales pipeline:

StageDescriptionTypical Probability
ProspectingInitial contact10%
QualificationQualified lead20%
Needs AnalysisUnderstanding requirements30%
Proposal/QuoteFormal proposal submitted50%
NegotiationPrice/terms discussion75%
Verbal ApprovalVerbal commitment90%
Closed WonDeal won100%
Closed LostDeal lost0%
tip

Sales stages and probabilities are configurable in NetSuite and vary by organization.


Convert to Estimate or Sales Order

Convert to Estimate

POST /record/v1/estimate
Content-Type: application/json
{
"createdFrom": {
"id": "3001"
},
"entity": { "id": "456" },
"tranDate": "2025-12-26"
}

Convert to Sales Order

POST /record/v1/salesOrder
Content-Type: application/json
{
"createdFrom": {
"id": "3001"
},
"entity": { "id": "456" },
"tranDate": "2025-12-26"
}
Auto-Fill from Opportunity

When you provide createdFrom with an opportunity ID, NetSuite auto-fills customer, items, and projected amounts.


Query Filters

Find Open Opportunities

GET /record/v1/opportunity?q=status='OPEN'

Find by Sales Rep

GET /record/v1/opportunity?q=salesRep='123'

Find High-Value Opportunities

GET /record/v1/opportunity?q=projectedTotal > 100000 AND status='OPEN'

Find by Probability Range

GET /record/v1/opportunity?q=probability >= 50 AND probability <= 75

Find Closing This Quarter

GET /record/v1/opportunity?q=expectedCloseDate BETWEEN '2026-01-01' AND '2026-03-31'

Find by Customer

GET /record/v1/opportunity?q=entity='456'

Find Stale Opportunities (No Activity)

GET /record/v1/opportunity?q=lastModifiedDate < SYSDATE-30 AND status='OPEN'

Important Notes

No Accounting Impact

  • Opportunities do not affect the general ledger
  • They are pipeline tracking documents only
  • No journal entries are created
  • Revenue is not recognized until conversion

Weighted Forecasting

  • weightedTotal = projectedTotal × (probability / 100)
  • Used for revenue forecasting
  • Automatically calculated by NetSuite
  • Updates when probability or projected total changes

Pipeline Management

  • Use opportunities to track deals in progress
  • Monitor conversion rates by stage
  • Forecast revenue by close date
  • Track win/loss reasons for analysis

Sales Team Collaboration

  • Multiple team members can be assigned
  • Track individual contributions
  • Split commission tracking
  • Partner relationship management

Converting Opportunities

  • Can be converted to Estimates, Sales Orders, or Invoices
  • Original opportunity remains open
  • Update status to "Closed Won" or "Closed Lost" manually
  • Conversion creates reference link

Custom Fields

  • Add custom fields for your sales process
  • Track industry-specific data
  • Integrate with CRM workflows
  • Custom approval processes

Multi-Currency

  • Currency is set at opportunity creation
  • Exchange rates affect weighted forecasting
  • Important for global sales teams

See Also