Pipe Wave Financial Data to CSV in PowerShell

Ready to get started?

Download for a free trial:

Download Now

Learn more:

Wave Financial Data Cmdlets

An easy-to-use set of PowerShell Cmdlets offering real-time access to Wave Financial. The Cmdlets allow users to easily read, write, update, and delete live data - just like working with SQL server.



Use standard PowerShell cmdlets to access Wave Financial tables.

The CData Cmdlets Module for Wave Financial is a standard PowerShell module offering straightforward integration with Wave Financial. Below, you will find examples of using our WaveFinancial Cmdlets with native PowerShell cmdlets.

Creating a Connection to Your Wave Financial Data

Connect using the API Token

You can connect to Wave Financial by specifying the APIToken You can obtain an API Token using the following steps:

  1. Log in to your Wave account and navigate to "Manage Applications" in the left pane.
  2. Select the application that you would like to create a token for. You may need to create an application first.
  3. Click the "Create token" button to generate an APIToken.

Connect using OAuth

If you wish, you can connect using the embedded OAuth credentials. See the Help documentation for more information.

$conn = Connect-WaveFinancial 

Selecting Data

Follow the steps below to retrieve data from the Invoices table and pipe the result into to a CSV file:

Select-WaveFinancial -Connection $conn -Table Invoices | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myInvoicesData.csv -NoTypeInformation

You will notice that we piped the results from Select-WaveFinancial into a Select-Object cmdlet and excluded some properties before piping them into an Export-Csv cmdlet. We do this because the CData Cmdlets append Connection, Table, and Columns information onto each "row" in the result set, and we do not necessarily want that information in our CSV file.

The Connection, Table, and Columns are appended to the results in order to facilitate piping results from one of the CData Cmdlets directly into another one.

Deleting Data

The following line deletes any records that match the criteria:

Select-WaveFinancial -Connection $conn -Table Invoices -Where "Status = SENT" | Remove-WaveFinancial

Inserting and Updating Data

The cmdlets make data transformation easy as well as data cleansing. The following example loads data from a CSV file into Wave Financial, checking first whether a record already exists and needs to be updated instead of inserted.

Import-Csv -Path C:\MyInvoicesUpdates.csv | %{
  $record = Select-WaveFinancial -Connection $WaveFinancial -Table Invoices -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-WaveFinancial -Connection $wavefinancial -Table Invoices -Columns ("Id","DueDate") -Values ($_.Id, $_.DueDate) -Where ("Id = `'"+$_.Id+"`'")
  }else{
    Add-WaveFinancial -Connection $wavefinancial -Table Invoices -Columns ("Id","DueDate") -Values ($_.Id, $_.DueDate)
  }
}

As always, our goal is to simplify the way you connect to data. With cmdlets users can install a data module, set the connection properties, and start building. Download Cmdlets and start working with your data in PowerShell today!