You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TypeScript / Node.js client for the QubitOn API. 45 typed methods covering address validation, tax ID verification (live + format-only), bank account checks, sanctions screening, PEP screening, risk analytics, corporate hierarchy, ESG scoring, healthcare identifiers, and more across 250+ countries. 16 deprecated alias methods are also kept for backwards compatibility.
Installation
npm install @qubiton/sdk
Quick Start
import{QubitOnClient}from'@qubiton/sdk';constclient=newQubitOnClient({apiKey: 'YOUR_API_KEY'});constresult=awaitclient.validateAddress({addressLine1: '123 Main St',city: 'New York',state: 'NY',postalCode: '10001',country: 'US',});console.log(result.address1,result.city,result.country?.countryISO2);
Authentication
API key (recommended)
The API key is sent in the lowercase apikey header.
The QubitOn OAuth endpoint is non-standard: it accepts a JSON body
{ "key": "...", "secret": "..." } and returns
{ "token": "...", "expiresInSeconds": N, "subscriptionName": "..." }.
Tokens are cached in process and refreshed automatically. On a 401, the
client invalidates the cached token and retries the request once before
throwing.
Every method takes an optional RequestOptions with an AbortSignal:
constctrl=newAbortController();setTimeout(()=>ctrl.abort(),5_000);constaddr=awaitclient.validateAddress({country: 'US',addressLine1: '123 Main St',city: 'NY',state: 'NY',postalCode: '10001'},{signal: ctrl.signal},);
Methods (45)
Core Validation
Method
Endpoint
validateAddress()
POST /api/address/validate
validateTax()
POST /api/tax/validate
validateTaxFormat()
POST /api/tax/format-validate
validateBankAccount()
POST /api/bank/validate
validateBankPro()
POST /api/bankaccount/pro/validate
validateIban()
POST /api/iban/validate
validateEmail()
POST /api/email/validate
validatePhone()
POST /api/phone/validate
lookupBusinessRegistration()
POST /api/businessregistration/lookup
Compliance
Method
Endpoint
validatePeppol()
POST /api/peppol/validate
checkSanctions()
POST /api/prohibited/lookup
screenPEP()
POST /api/pep/lookup
checkDirectors()
POST /api/disqualifieddirectors/validate
checkEPAProsecution()
POST /api/criminalprosecution/validate
lookupEPAProsecution()
POST /api/criminalprosecution/lookup
checkHealthcareExclusion()
POST /api/providerexclusion/validate
lookupHealthcareExclusion()
POST /api/providerexclusion/lookup
Risk & Financial
Method
Endpoint
checkBankruptcyRisk()
POST /api/risk/lookup
lookupCreditScore()
POST /api/risk/lookup
lookupFailRate()
POST /api/risk/lookup
assessEntityRisk()
POST /api/entity/fraud/lookup
lookupCreditAnalysis()
POST /api/creditanalysis/lookup
ESG & Cybersecurity
Method
Endpoint
lookupESGScore()
POST /api/esg/Scores
domainSecurityReport()
POST /api/itsecurity/domainreport
checkIPQuality()
POST /api/ipquality/validate
Corporate Structure
Method
Endpoint
lookupBeneficialOwnership()
POST /api/beneficialownership/lookup
lookupCorporateHierarchy()
POST /api/corporatehierarchy/lookup
lookupDUNS()
POST /api/duns-number-lookup
lookupHierarchy()
POST /api/company/hierarchy/lookup
Industry Specific
Method
Endpoint
validateNPI()
POST /api/nationalprovideridentifier/validate
validateMedpass()
POST /api/medpass/validate
lookupDOTCarrier()
POST /api/dot/fmcsa/lookup
validateIndiaIdentity()
POST /api/inidentity/validate
validateCertification()
POST /api/certification/validate
lookupCertification()
POST /api/certification/lookup
lookupBusinessClassification()
POST /api/businessclassification/lookup
Financial Operations
Method
Endpoint
analyzePaymentTerms()
POST /api/paymentterms/validate
lookupExchangeRates()
POST /api/currency/exchange-rates/{baseCurrency} (internal endpoint)
lookupExchangeRates() calls an endpoint marked
[ApiExplorerSettings(IgnoreApi = true)] on the server — it is internal
and not part of the public API contract. The shape and availability
may change without notice. Use at your own risk; this method is marked
@deprecated for the same reason.
Ariba
Method
Endpoint
lookupAribaSupplier()
POST /api/aribasupplierprofile/lookup
validateAribaSupplier()
POST /api/aribasupplierprofile/validate
Other
Method
Endpoint
identifyGender()
POST /api/genderize/identifygender
Continuous Screening / Bulk
Method
Endpoint
Notes
screenContinuous()
POST /api/continuous-screening/screen
Server-side stub (501) — present for SDK parity, marked @deprecated
checkBulkStatus()
POST /api/bulkstatus/check
Returns status for a previously submitted bulk job
Reference
Method
Endpoint
getSupportedTaxFormats()
GET /api/tax/format-validate/countries
getPeppolSchemes()
GET /api/peppol/schemes
Reference and risk endpoints (getSupportedTaxFormats, getPeppolSchemes,
lookupCreditScore, checkBankruptcyRisk, lookupFailRate,
lookupESGScore, lookupExchangeRates) return JSON arrays at the top
level — their typed return is T[], not an object with numeric keys.
Error Handling
The SDK throws a typed exception hierarchy. Catch QubitonError to handle any
SDK-thrown error, or catch a more specific subclass.
import{QubitOnClient,QubitonAuthError,QubitonNotFoundError,QubitonRateLimitError,QubitonServerError,QubitonValidationError,QubitonError,}from'@qubiton/sdk';constclient=newQubitOnClient({apiKey: 'YOUR_API_KEY'});try{awaitclient.validateAddress({country: 'US',addressLine1: '123 Main St'});}catch(err){if(errinstanceofQubitonRateLimitError){console.log(`rate limited; retry after ${err.retryAfter}s`);}elseif(errinstanceofQubitonAuthError){console.log('auth failed — check api key or oauth credentials');}elseif(errinstanceofQubitonNotFoundError){console.log('resource not found');}elseif(errinstanceofQubitonValidationError){console.log(`bad request: ${err.message}`);}elseif(errinstanceofQubitonServerError){console.log(`server error ${err.status}: ${err.message}`);}elseif(errinstanceofQubitonError){console.log(`api error [${err.status}]: ${err.message}`);}}
Status
Exception
401, 403
QubitonAuthError
404
QubitonNotFoundError
400, 422, 4xx
QubitonValidationError
429
QubitonRateLimitError (with .retryAfter in seconds)
5xx
QubitonServerError (with .retryAfter if present)
timeout
QubitonTimeoutError (per-call deadline expired)
caller-aborted
QubitonAbortError (caller-supplied AbortSignal aborted the request)
network / parse
QubitonError
All response objects also expose a raw property containing the full decoded
JSON, so fields not yet promoted to typed properties are still accessible.
Retries
The client retries automatically on 408 / 429 / 5xx and on network errors,
using exponential backoff with ±25% jitter (capped at 30 seconds). The
Retry-After header is honoured in both delta-seconds and HTTP-date
formats. Other 4xx responses are terminal.
When using OAuth, a single 401 triggers a token refresh and one retry before
the error is thrown — this transparently recovers from out-of-band token
rotation.