Web Services and SuiteTalk
NetSuite 2026.1
2026-07-24

Budget Exchange Rate Record Now Exposed via REST Web Services

The budgetexchangerate record is now available through SuiteTalk REST, allowing programmatic PATCH updates to average, current, and historical exchange rates per period/subsidiary/book. Only REST editing is supported — no SuiteScript record module or SOAP access is documented.

Affects:SuiteTalk REST APIREST record/v1/budgetexchangerateMultiple Currencies featureMultiple Budgets feature

What changed

Oracle has exposed the Budget Exchange Rate record to the REST web services layer. The record ID is budgetexchangerate and it is accessible at:

/services/rest/record/v1/budgetexchangerate/{id}

This record mirrors the Budget Exchange Rates table found at Lists > Accounting > Budget Exchange Rates. In OneWorld accounts, NetSuite seeds this table from the Consolidated Exchange Rates table; you can then maintain budget-specific rates independently.

Record structure

  • Not a subrecord and contains no subrecords.
  • Each row represents an exchange rate for a specific period, subsidiary, and accounting book combination.
  • Rates are either direct (child-to-parent, user-editable) or indirect/derived (grandchild-to-grandparent, system-calculated, read-only).

Editable fields

Only three fields can be written — the same restriction that applies in the UI:

  • averageRate — Average Exchange Rate
  • currentRate — Current Exchange Rate
  • historicalRate — Historical Exchange Rate

All other fields on the record are read-only through REST.

Example PATCH

PATCH /services/rest/record/v1/budgetexchangerate/{id}

{ "averageRate": 1.4, "currentRate": 1.5, "historicalRate": 1.42 }

Prerequisites

  • Multiple Currencies feature must be enabled.
  • Multiple Budgets feature must be enabled.
  • The executing role needs the Currency permission at Full level.

Limitations and unknowns

  • The documentation states the record can only be edited through REST. There is no mention of SuiteScript N/record support (load/save) or SOAP/SuiteTalk WSDL availability. Treat this as REST-only until Oracle documents otherwise.
  • No governance cost is listed. If you plan to call this in a scheduled or map/reduce script via N/https (self-calling REST), test governance consumption carefully.
  • The source does not specify which NetSuite release introduced this record. The slug and release field above are inferred as 2026.1; verify against the actual release notes index for your account version.

What to do

  1. Check feature flags. Confirm that both Multiple Currencies and Multiple Budgets are enabled in your target account (Setup > Company > Enable Features).
  2. Verify role permissions. Any integration role or token-based authentication (TBA) role that will call this endpoint needs the Currency permission at Full level.
  3. Discover record IDs. Use a GET /services/rest/record/v1/budgetexchangerate call (with appropriate query parameters for subsidiary, period, and accounting book) to retrieve existing record internal IDs before issuing PATCH requests.
  4. Update existing integrations. If you currently maintain budget exchange rates through CSV imports or manual UI edits, you can now automate this via REST. Build a scheduled integration that PATCHes averageRate, currentRate, and historicalRate from your treasury or FX data source.
  5. Do not attempt SuiteScript record operations. Until Oracle confirms N/record support, avoid record.load({ type: 'budgetexchangerate' }) — it will likely throw a RECORD_NOT_FOUND or SSS_INVALID_RECORD_TYPE error. Use N/https to call the REST endpoint if you need to interact with this record from server-side SuiteScript.
  6. Consult the REST API Browser for the full field list, available query parameters, and supported HTTP methods beyond PATCH.