
Oracle has set a hard deadline for Token-Based Authentication (TBA) on NetSuite: starting with NetSuite release 2027.1, you will no longer be able to create new integrations that use TBA for SOAP, REST, or RESTlets. Existing TBA integrations keep running past that date, with full end of support tentatively planned for release 2028.2. If you build or maintain NetSuite connectors for clients, every new integration from 2027.1 onward has to start on OAuth 2.0.
This isn't a NetSuite feature announcement you can skim and file away. It changes how you store client credentials, how you request user consent, and how you handle token refresh for any NetSuite integration you stand up from here forward. Here's exactly what breaks, what doesn't, and how to build the OAuth 2.0 version instead of retrofitting a TBA integration later.
Three separate authentication changes land in the same release, and it's easy to conflate them. Oracle's authentication release notes list all three:
None of this retires SOAP web services yet. That's a separate, later milestone: Oracle's SOAP removal is tracked for release 2028.2, the same release currently cited as the tentative end of TBA support for existing integrations.
No. If you already have a working TBA integration, it keeps authenticating after 2027.1 ships. The 2027.1 change only blocks creating new integrations on TBA. The catch is the word "tentatively": Oracle's own end-of-support page for existing TBA integrations says that date is release 2028.2, not locked in. Plan the migration on your own timeline rather than waiting for a forced cutover notice, because a tentative date can move, and because you don't want twelve months of "we'll do it eventually" to collapse into a scramble once it's confirmed.
The integrations that break immediately at 2027.1 are any that use NLAuth for RESTlets. If a client's integration predates TBA and was never migrated, check for NLAuth now, not after the release ships.
If a new NetSuite connector is on your roadmap for 2027 delivery, build it on OAuth 2.0 now. Three things change in practice:
TBA integrations store five long-lived values: consumer key, consumer secret, token ID, token secret, and the account ID (realm). OAuth 2.0 replaces that with a client ID and client secret (or a signed certificate for machine-to-machine auth) tied to an integration record, plus short-lived tokens you request at runtime. If your credential vault was built around five static TBA fields per customer, you need a second schema for OAuth 2.0 clients, not a field rename.
NetSuite supports two OAuth 2.0 grant types that cover almost every integration shape:
The client credentials grant has a wrinkle worth knowing before you scope the work: NetSuite's client credentials flow authenticates with a signed JWT client assertion, not a plain client secret in the request body. Oracle's token endpoint documentation specifies that the client_assertion parameter is a JWT bearer token signed with the private half of a certificate that's mapped to the integration record in NetSuite. That means your migration has to generate and manage a key pair and upload the public certificate to NetSuite, not just swap one secret string for another. Budget for that when you estimate the work; it's a different credential-management shape than most teams expect from "OAuth 2.0."
POST https://<accountID>.suitetalk.api.netsuite.com/services/rest/auth/oauth2/v1/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<JWT signed with your private key>
&scope=rest_webservicesIf you're keeping the authorization code grant for user-context integrations, add PKCE now rather than after 2027.1 forces it. PKCE adds a code verifier and code challenge to the authorization request, closing an interception risk in the redirect step. Most modern OAuth 2.0 client libraries (and NetSuite's own SuiteCloud SDK) support PKCE out of the box, so this is largely a configuration flag, not new logic, but it has to be present in any integration record created from 2027.1 onward.
You don't have to migrate a working TBA integration today, but if you're doing it proactively (recommended, given the tentative 2028.2 end-of-support date), the sequence looks like this:
If you're an ISV shipping a NetSuite connector to multiple customers, the certificate-based client credentials requirement is the detail that catches teams off guard: you now need a per-tenant key pair and certificate mapping workflow, not a single shared client secret. That's a real schema change to a multi-tenant credential vault, and it's worth scoping before a client asks why their 2027 renewal quote went up.
If you're a mid-sized enterprise with custom NetSuite modules feeding data to other systems (ERP-to-CRM syncs, custom approval workflows, reporting pipelines), the risk isn't the 2027.1 cutover itself, it's that your current TBA integration was built by someone who's no longer around, and nobody on the team knows which of the five TBA secrets maps to which NetSuite role. Audit what's running on TBA today before you need to migrate it under a deadline.
For teams also running NetSuite data into Docusign-driven approval or contract workflows, the authentication layer matters just as much on the Docusign side. fluidlabs has covered the broader NetSuite REST API integration patterns including SuiteQL and MCP access, and separately how NetSuite's AI connector opens banking data to MCP agents - both assume OAuth 2.0 as the baseline going forward, not TBA.
Release 2027.1 bundles more authentication changes than just TBA. Oracle's authentication release notes list a fourth change landing in the same release that's easy to miss if you're only tracking the OAuth 2.0 migration: two-factor authentication becomes required for all roles in NetSuite 2027.1, not just administrator roles. If any part of your integration setup relies on a service account logging in through a browser-based flow (common with the authorization code grant during initial consent), confirm that account's 2FA method is configured before the release ships, or the consent step will fail for reasons that have nothing to do with OAuth 2.0 itself.
| Change | Effective release | Applies to |
|---|---|---|
| OAuth 2.0 recommended for new integrations | 2026.1 | All new REST integrations |
| No new TBA integrations (SOAP, REST, RESTlets) | 2027.1 | New integrations only |
| NLAuth authentication for RESTlets stops working | 2027.1 | All integrations using NLAuth |
| PKCE required for OAuth 2.0 authorization code grant | 2027.1 | New authorization code integrations |
| 2FA required for all roles | 2027.1 | All NetSuite user roles |
| TBA end of support (existing integrations) | 2028.2 (tentative) | All TBA integrations except SuiteAnalytics Connect |
| SOAP web services removed | 2028.2 (tentative) | All SOAP-based integrations |
Treat this as one coordinated authentication overhaul, not four unrelated line items. If you're scoping a migration project for a client, budget time for all five release-2027.1 items together, since several of them touch the same integration record and the same consent flow.
Does NetSuite 2027.1 remove SOAP web services? No. SOAP web services removal is a separate, later milestone tracked for release 2028.2, the same release currently listed as the tentative end of support for existing TBA integrations.
Can I still use TBA for a new integration after 2027.1? No. From release 2027.1, NetSuite blocks creating new integration records that authenticate with TBA for SOAP, REST, or RESTlets. Existing TBA integrations keep working.
What's the difference between NetSuite's two OAuth 2.0 grant types? The authorization code grant requires a NetSuite user to log in and consent, and acts with that user's role and permissions. The client credentials (machine-to-machine) grant has no login step and authenticates with a JWT signed by a certificate registered to the integration record, making it the closer match for unattended, server-to-server jobs that TBA used to handle.
Do I need a certificate for every NetSuite OAuth 2.0 integration? Only for the client credentials grant. The authorization code grant uses a client ID, client secret, and a browser-based consent step instead.
If you're scoping a NetSuite integration for a 2027 delivery, or auditing what's quietly still running on TBA, fluidlabs builds and runs custom NetSuite integrations for ISVs and mid-sized enterprises connecting NetSuite to the rest of their stack. Talk to the team about migrating your NetSuite authentication before the deadline becomes an emergency.
Thirty minutes with an engineer. Within 48 hours you get a scoped plan and a fixed price in writing, or a straight “you don't need us.” No charge, nothing to sign.
Talk to an engineer →or email us at hello@fluidlabs.com