Skip to main content

Official Multi-Language SDKs

||View as Markdown|

Official Multi-Language SDKs

GAAPx provides officially maintained, type-safe client SDKs across four major language ecosystems. All SDKs are auto-generated from our OpenAPI 3.1 Specification and include native support for the ASC 606 5-step framework, deterministic revenue waterfalls, and Note 6 disclosure schedules.


SDK Package Registry Overview​

Language / RuntimeOfficial Package NameRegistryInstallation CommandProject / Documentation Link
Node.js / TypeScript@gaapx/sdknpmnpm install @gaapx/sdknpmjs.com/package/@gaapx/sdk
Pythongaapx-sdkPyPIpip install gaapx-sdkpypi.org/project/gaapx-sdk/
Gogithub.com/gaapx/gaapx-gopkg.go.devgo get github.com/gaapx/gaapx-gopkg.go.dev/github.com/gaapx/gaapx-go
Rubygaapx-rubyRubyGemsgem install gaapx-rubyrubygems.org/gems/gaapx-ruby

1. Node.js & TypeScript SDK (@gaapx/sdk)​

Installation​

npm install @gaapx/sdk
# or using pnpm
pnpm add @gaapx/sdk
# or using yarn
yarn add @gaapx/sdk

Usage Example​

import { GAAPxClient } from '@gaapx/sdk';

const gaapx = new GAAPxClient({
apiKey: process.env.GAAPX_API_KEY || 'test_sk_gaapx_sandbox_free_tier',
baseUrl: 'https://sandbox.gaapx.ai/v1', // Free instant sandbox
});

async function main() {
// 1. Ingest Contract
const contract = await gaapx.contracts.create({
customer_name: 'Acme Enterprises',
total_value: 120000,
start_date: '2026-01-01',
end_date: '2026-12-31',
});
console.log('Contract created:', contract.id);

// 2. Query Revenue Waterfall
const waterfall = await gaapx.waterfalls.get({
contract_id: contract.id,
start_period: '2026-01',
end_period: '2026-12',
});
console.log('Recognized YTD:', waterfall.total_recognized);
}

main();

2. Python SDK (gaapx-sdk)​

Installation​

pip install gaapx-sdk

Usage Example​

from gaapx import GAAPxClient

client = GAAPxClient(
api_key="test_sk_gaapx_sandbox_free_tier",
base_url="https://sandbox.gaapx.ai/v1"
)

# Ingest and validate contract
contract = client.contracts.create(
customer_name="Globex Corp",
total_value=240000,
start_date="2026-01-01",
end_date="2026-12-31"
)

# Fetch ASC 606 revenue recognition schedule
waterfall = client.waterfalls.get(contract_id=contract.id)
for period in waterfall.periods:
print(f"{period.period}: Recognized ${period.recognized_amount:,.2f}")

3. Go SDK (github.com/gaapx/gaapx-go)​

Installation​

go get github.com/gaapx/gaapx-go

Usage Example​

package main

import (
"context"
"fmt"
"github.com/gaapx/gaapx-go"
)

func main() {
client := gaapx.NewClient("test_sk_gaapx_sandbox_free_tier",
gaapx.WithBaseURL("https://sandbox.gaapx.ai/v1"),
)

waterfall, err := client.Waterfalls.Get(context.Background(), &gaapx.WaterfallParams{
ContractID: "cntr_acme_101",
StartPeriod: "2026-01",
EndPeriod: "2026-12",
})
if err != nil {
panic(err)
}

fmt.Printf("Total Deferred Revenue: $%.2f\n", waterfall.TotalDeferred)
}

4. Ruby SDK (gaapx-ruby)​

Installation​

gem install gaapx-ruby

Usage Example​

require 'gaapx'

GAAPx.configure do |config|
config.api_key = ENV['GAAPX_API_KEY'] || 'test_sk_gaapx_sandbox_free_tier'
config.base_url = 'https://sandbox.gaapx.ai/v1'
end

client = GAAPx::Client.new
contracts = client.contracts.list(query: 'Acme')
puts "Found #{contracts.total} contracts"

Free Sandbox Environment​

Every SDK works out-of-the-box with the free instant sandbox token:

  • Sandbox Base URL: https://sandbox.gaapx.ai/v1
  • Instant Token: test_sk_gaapx_sandbox_free_tier
  • No credit card required.