API Documentation (1.0.0)

Kashoo API Documentation (1.0.0)

Download OpenAPI specification:

API documentation for the Kashoo platform.

Introduction

The API reference lists all available endpoints for products Kashoo Cloud Accounting and TrulySmall Accounting. The endpoints are divided topically and have references on the product to make it easier for you to navigate through the docs.

Getting Started

A Kashoo or TrulySmall user account is needed to use the api. The quickest way to get started is to sign up for a free trial with one of our applications. This will create an account for you, along with a user and a business. You can then use your credentials to obtain an authentication token and start using the api.

The application is centered around businesses, one of which will be created for you when you sign up for an account. Most endpoints accept a business id to identify who the operation is for. For example, a business will have its own contacts, taxes, transactions, accounts, and so on.

To allow for multi-user businesses, a user account is also assigned a user id. The user id can be associated with more than one business. The authentication token will only allow access to the business data for which the user has been granted access to. The user id is also used for user-specific operations such as purging a user account.

Subscriptions are centered around businesses. Each business must pay for its own subscription. A user can access any businesses that they have access to as long as the business is on an active subscription. When developing an api client, you may ask to be put on a free subscription plan so that your business and its data stay accessible over the course of your development.

Product identification markers

This API supports two of our products: Kashoo Cloud Accounting and TrulySmall Accounting. You can sign up for either application at https://kashoo.com/. The API for the two products is essentially the same with a couple important differences:

  • TSA supports opening balances for accounts while Kashoo has to do this with adjustments.
  • The tax system is different between the two products. The TSA tax system is more structured and constrained.
  • TSA supports a shoebox items api for staging transactions before they are posted to the ledger.
  • Kashoo supports basic inventory items while TSA does not.

The API endpoints indicate which of our products they are meant for using one or both of the following product markers.

kashooKashoo Cloud Accounting (Our classic platform) tsaTrulySmall Accounting (Our leading-edge platform)

Note that the applicatinos are hosted under different domains. This is mostly cosmetic, since they map to the same backend, but is worth following. The Kashoo api is hosted at https://app.kashoo.com/api while the TSA api is at https://app.trulysmall.com/api.

Authentication

Kashoo allows for two categories of authentication: first-party and third-party. First-party authentication is simple but meant for first-party development since it requires the user's password. Third-party authentication is for external developers who wish to integrate with TrulySmall, but it takes more time to get running.

First-party Authentication

There are two ways to log the user in directly: standard user-password login or through single-sign-on providers such as Google.

The endpoints for first-party authentication are under the /authTokens path. See the ebdpoints below for more information.

When a first-party login completes successfully, the api returns a json token. For example, a login call to POST https://api.kashoo.com/authTokens with an accept header of json will return the following:

{
"authenticationCode":"asdasdasdasdasdadasdasdasda",
"expiryDate":1698789858551,
"locale":"default",
"myUserId":1231232,
"restriction":null,
"site":"app.kashoo.com"
}

This json can then be used within Authorization headers using the format:

Authorization: TOKEN json:{"authenticationCode":"asdasdasdasdasdadasdasdasda","expiryDate":1698789858551,"locale":"default","myUserId":1231232,"restriction":null,"site":"app.kashoo.com"}

These tokens are valid for a limited but relatively long time. Once they expire, the user must log in again.

Create token

Creates an auth token for accessing the api on behalf of a user. This endpoint is used for first-party login with basic auth. The caller can supply the email and password using form params. The endpoint also accepts sso login such as Google using the provider and authCode form params. Callers will usually want to accept json to return a format easy to use in an Authorization header.

Request Body schema: */*
site
string
lc
string
Default: "en_US"
duration
integer <int64>
Default: 86400000
restriction
string
email
string
password
string
mfaCode
string
provider
string
authCode
string
type
string

Responses

Response samples

Content type
{
  • "myUserId": 0,
  • "expiryDate": "2019-08-24T14:15:22Z",
  • "restriction": "string",
  • "site": "string",
  • "locale": "string",
  • "authenticationCode": "string"
}

Verify token privileges

This endpoint is used to verify that the request's authorization information is permitted to perform the specified restriction.

query Parameters
restriction
string

Responses

OAuth2

First-party login requires the user to enter their password, which is not suitable for third-parties since the password should only be shared with Kashoo. For this purpose, Kashoo provides an OAuth2 service that allows third-parties to redirect users to Kashoo to log in and then redirects them back to the third party app with an auth code that can be exchanged for an access token. The third party can then use the access token to make api calls to Kashoo on the user's behalf.

An explanation of OAuth2 is beyond the scope of this document. There are many resources online that explain the protocol, for example this one.

To get started, a third-party developer must register their app with Kashoo. This is done manually and requires contacting Kashoo to provide the application's name and its redirect URLs for the OAuth2 flow. Note that there currently can only be one redirect url per client id. Once the app is registered, the developer will receive their client id and secret to use in the OAuth2 flow.

Here is a brief outline of the flow:

  1. A single page app (SPA) redirects the browser/user to the Kashoo OAuth2 authorization endpoint.

    // client side code
    
    // generate a random state token to prevent cross-site request forgery
    const state = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)
    
    // store the state somewhere to verity it upon the response (this part is simplified here)
    sessionStorage.setItem('sign-in-state', state)
    
    window.location.href = 'https://app.kashoo.com/oauth2/authorize?' +
       'client_id=' + yourClientId +
       '&response_type=code' +
       '&scope=full-access' +
       '&redirect_uri=' + encodeURIComponent(yourRedirectUrl) +
       '&state=' + state
    
  2. The user logs in to Kashoo on the OAuth2 application and is sent to the redirect URL with an authorization code.

    https://redirect-uri?code=... the authorization code ...&state=... the state ...

  3. The redirect url should be handled by a server-side handler because it will need the client secret. It will use the authorization code and client secret to obtain an access token from Kashoo.

    // server side code
    
    // send the following as form data
    let formData = new URLSearchParams()
    formData.append('code', ... received authorization code ...)
    formData.append('grant_type', 'authorization_code')
    formData.append('redirect_uri', yourRedirectUrl)
    
    // make a call to the OAuth2 server to exchange the code for an access token using form encoded data
    // and the client id and secret as a basic-auth Authorization header
    axios.post('https://app.kashoo.com/oauth2/token', formData, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
            auth: {
            username: yourClientId,
            password: yourClientSecret
        }
    })
    .then(response => {
            // parse the response data into tokens and user id
            this.bearerToken = response.data.access_token
            this.refreshToken = response.data.refresh_token
            this.expiresIn = response.data.expires_in
            this.tokenType = response.data.token_type
            this.userId = response.data.userId
    
  4. The server-side handler should store the bearer and refresh tokens for the user and use them to make api calls to Kashoo.

Start auth process

Send the user to this url with the required query parameters to begin the OAuth2 authorization process. The endpoint will send the user to the OAuth2 app to log in with their Kashoo account and authorize the client app to access their data.

query Parameters
client_id
required
string

Your OAuth2 client id

response_type
required
string

The oauth response type, for example 'code'

redirect_uri
required
string

The uri to redirect the user to after authorization

state
string

An optional state parameter that will be returned to you in the redirect

Responses

Create or refresh token

When the OAuth2 app returns control to the application along with an auth code, use this endpoint to exchange the auth code for an access token. In this case, set the grant_type to 'authorization_code'. This grant type requires code and redirect_uri parameters to be sent in the request. When refreshing a token, set the grant_type to 'refresh_token' and include the refresh token in the request.

header Parameters
Authorization
required
string

A basic auth header with the client id and secret as username and password

Request Body schema: application/x-www-form-urlencoded
required
code
string

The auth code returned from the OAuth2 app, for the 'authorization_code' grant type

grant_type
required
string

The grant type, for example 'authorization_code' or 'refresh_token'

redirect_uri
string

The uri to redirect the user to after authorization, for the 'authorization_code' grant type

refresh_token
string

The refresh token to use when refreshing a token, for the 'refresh_token' grant type

Responses

Response samples

Content type
application/json
{
  • "access_token": "example-access-token",
  • "expires_in": 3600,
  • "refresh_token": "example-refresh-token",
  • "token_type": "bearer",
  • "userId": "12355"
}

Multifactor Authentication

Users can enable multi-factor authentication (MFA) on their account. When MFA is enabled, the user must use another authentication method in addition to their password to complete their login and receive an authentication token. The api supports only sms as a second factor at this time.

Enable SMS MFA for a user

Assuming the code is correct, this will enable SMS MFA on the user account. The user will then need to complete SMS MFA whenever logging in. If the code passed in is incorrect, a Forbidden response will be returned.

Request Body schema: */*
code
string

Responses

Disable SMS MFA for the user

The user will no longer need to complete SMS MFA when logging in. This endpoint requires a valid auth token for the user and returns either a Forbidden or a No Content response.

Responses

List user's enabled mfa methods

Lists the enabled mfa methods for a user. If there are none, then mfa is not required for logging in. Otherwise, one of the listed mfa methods is required to complete login.

Responses

Response samples

Content type
[
  • {
    }
]

Perform SMS MFA verification

This endpoint is used both for requesting the mfa verification process to begin and to verify a response from the user. If the code is not present, then a new code will be sent to the user's phone. If the code is present, then it will be verified. There is no response body for this endpoint, only a status code.

Request Body schema: */*
code
string

Responses

Users

kashootsaContains endpoints to manage users, groups, and roles in a business.

Create a new user

Adds a new user to our system. This is an unverified user, meaning that we are not yet certain that they own the associated credentials. To make sure of this, a verification email is sent to user and permanent access is only granted if they click on the associated link.

Request Body schema: */*
first
string

First name of the user

last
string
email
string
password
string
additionalParams
string
Default: ""
site
string
lc
string
Default: "en_US"

Locale code

duration
integer <int64>
Default: 86400000

Responses

Creates a verified user

Adds a new user to the system. This is a verified user, which means that we assume that they are the owner of the passed in user credentials, and we do not need to send a verification email to them to make sure. This is useful in cases like iOS, Square, and oauth2, where the users have already verified with the associated provider.

Request Body schema: */*
first
string
last
string
email
string
password
string
provider_name
string
provider_access_token
string
invite
string
additionalParams
string
Default: ""
mfaCode
string
site
string
lc
string
Default: "en_US"
duration
integer <int64>
Default: 86400000

Responses

Get information about the logged in user

Responses

Response samples

Content type
No sample

Updates user

Request Body schema:
id
integer <int64>
object (ContactInformationInfo)
staff
boolean
betaTester
boolean
accountingProfessional
boolean
expireSessions
boolean
useHighContrastStyle
boolean
readOnly
boolean
removed
boolean
active
boolean
verified
boolean
activationDate
string <date>
lastPasswordReset
string <date>
signUpDate
string <date>
lastLogin
string <date-time>
serviceProvider
integer <int64>
serviceProviderAdmin
boolean
allowSelectionOfNonStandardAccounts
boolean
inviteCode
string
name
string
email
string
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Deletes user records and their businesses

Completetly deletes a user and their businesses from the database and all other third-part systems such as Intercom.

query Parameters
confirm
string

Responses

Request TSI data reimport

Responses

Link OAuth Accounts

Link OAuth accounts with existing user logins.

Request Body schema: */*
provider_access_token
string
provider_name
string
lc
string
Default: "en_US"

Responses

Request verification code

Request a verification code for the user's email address. These codes are automatically sent out on sign-up but can expire. In this case, the user needs to request a new code and use it to verify their email address.

Request Body schema: application/x-www-form-urlencoded
email
string
site
string
lc
string
Default: "en_US"

Responses

Groups

kashootsa

Returns the groups defined for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0
type
string
Value: "CONTACT"

Responses

Response samples

Content type
No sample

Add a group to the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
removed
boolean
type
string
contacts
Array of integers <int64> [ items <int64 > ]

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Returns the group information.

path Parameters
group_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Updates an existing group.

path Parameters
group_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
removed
boolean
type
string
contacts
Array of integers <int64> [ items <int64 > ]

Responses

Request samples

Content type
No sample

Removes the group

path Parameters
group_id
required
integer <int64>

Responses

Roles

kashootsa

Gets the roles of a users

query Parameters
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Subscription

kashootsa

Get subscription of a business

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Gets the logged in user's subscription

Responses

Add a subscription Deprecated

Request Body schema: */*
text
string

Responses

Gets a Subscription

Gets a Subscription using an subscription ID or userID (fusionauth)

query Parameters
id
string

ID of subscriptions

subscriberId
string

Subscriber ID

header Parameters
Authorization
required
string

Example: Bearer foo

Responses

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Create a Subscription

Creates a Subscription

Request Body schema: application/json
required

Create Subscription Request

appId
string
originalId
string
platformProductId
string
purchaseToken
string
purchasedExplicitlyInApp
boolean
store
required
string
subscriberId
string
subscriptionApplication
string
userEmail
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "originalId": "string",
  • "platformProductId": "string",
  • "purchaseToken": "string",
  • "purchasedExplicitlyInApp": true,
  • "store": "string",
  • "subscriberId": "string",
  • "subscriptionApplication": "string",
  • "userEmail": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Creates a new chargebee checkout window

Creates a new chargebee checkout window

header Parameters
Authorization
required
string

Example: Bearer foo

Request Body schema: application/json
required

New Checkout

couponId
Array of strings
object (serverpb.ChargeBeeCustomer)
subscriberId
required
string
subscriptionApplication
required
string
subscriptionPlanId
required
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "couponId": [
    ],
  • "customer": {
    },
  • "subscriberId": "string",
  • "subscriptionApplication": "string",
  • "subscriptionPlanId": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "checkoutInfo": [
    ],
  • "content": [
    ],
  • "createdAt": 0,
  • "embed": true,
  • "expiresAt": 0,
  • "failureReason": "string",
  • "id": "string",
  • "object": "string",
  • "passThruContent": "string",
  • "resourceVersion": 0,
  • "state": "string",
  • "type": "string",
  • "updatedAt": 0,
  • "url": "string"
}

Creates a new chargebee portal session

Creates a new chargebee portal session

header Parameters
Authorization
required
string

Example: Bearer foo

Request Body schema: application/json
required

New portal session

subscriptionId
string

Responses

Request samples

Content type
application/json
{
  • "subscriptionId": "string"
}

Response samples

Content type
application/json
{
  • "accessUrl": "string",
  • "createdAt": 0,
  • "customerId": "string",
  • "expiresAt": 0,
  • "id": "string",
  • "loginAt": 0,
  • "loginIpAddress": "string",
  • "logoutAt": 0,
  • "logoutIpAddress": "string",
  • "object": "string",
  • "redirectUrl": "string",
  • "status": "string",
  • "token": "string"
}

Businesses

kashootsa

Add a new business into the system.

header Parameters
Accept-Language
string
Default:
Request Body schema:
required
creationDate
string <date>
id
integer <int64>
object (ContactInformationInfo)
object (MarketMetadataInfo)
currency
string
currencies
string
startDate
string <date>
timeZone
string
dateFormatting
string
Enum: "MMM_DD_YYYY" "DD_MMM_YYYY" "DD_MM_YYYY" "MM_DD_YYYY" "DOTS_DD_MM_YYYY" "ISO" "DOTS_YYYY_MM_DD" "SLASHES_YYYY_MM_DD" "CHINESE" "KOREAN"
openingDate
string <date>
periodLockingEnabled
boolean
lockedPeriodEndDate
string <date>
lockedPeriodEndDateIfEnabled
string <date>
multiCurrencyEnabled
boolean
multiCurrencyEnabledOnPlan
boolean
multiCurrencyEnabledOnBusiness
boolean
hasMultiCurrencyTransactions
boolean
projectTrackingEnabled
boolean
smartInboxEnabled
boolean
maxRemovedRoleUsersOverride
integer <int32>
showPayroll
boolean
showFreshbooks
boolean
defaultDate
string
Enum: "BLANK" "CURRENT_DAY" "LAST_SAVED"
customerStatementMemo
string
logo
string
futurePayEnabled
boolean
siteOwner
boolean
subscriptionsEnabled
boolean
emailEnabled
boolean
beanStreamEnabled
boolean
inventoryCogsMethod
string
templateId
integer <int64>
fiscalStartYear
integer <int32>
fiscalStartMonth
integer <int32>
fiscalStartDay
integer <int32>
defaultAccountsReceivable
integer <int64>
defaultAccountsPayable
integer <int64>
defaultCashAccount
integer <int64>
defaultBankAccount
integer <int64>
defaultEquityAccount
integer <int64>
defaultInventoryAccount
integer <int64>
gainOrLossOnExchange
integer <int64>
serviceProvider
integer <int64>
serviceProviderRefNumber
string
serviceProviderAccessLevel
string
Enum: "CREATOR" "OWNER" "ADMIN" "VIEW_EDIT_ONLY" "VIEW_ONLY" "LIMITED_OWNER" "NO_ACCESS" "DISABLED_ACCESS"
externalPartnerId
string
payrollIntegrationEnabled
boolean
retainedEarnings
integer <int64>
removed
boolean
object (LicensePartnerCustomerInfo)
version
string
channel
string
name
string
fiscalYearEndDate
string <date-time>
fiscalYearStartDate
string <date-time>
contractReadOnly
boolean
projectsReadOnly
boolean
multiCurrencyUsed
boolean
business
integer <int64>
canadian
boolean
nameReadOnly
boolean
us
boolean
defaultPaymentAccount
integer <int64>
inventoryEnabledAndInUse
boolean
privileges
Array of strings
Items Enum: "ADD" "ADD_ACCOUNTS" "ADD_CONTACTS" "ADD_ITEMS" "ADD_JOURNAL_ENTRIES" "ADD_RECORDS" "ADD_USERS" "CHANGE" "CHANGE_ACCOUNTS" "CHANGE_CONTACT_INFO" "CHANGE_CURRENCY" "CHANGE_YEAR_END" "CHANGE_ITEMS" "CHANGE_JOURNAL_ENTRIES" "CHANGE_NAME" "CHANGE_RECORDS" "CHANGE_REGION" "REMOVE" "REMOVE_ACCOUNTS" "REMOVE_BUSINESS" "REMOVE_DEMOFEED" "REMOVE_ITEMS" "REMOVE_JOURNAL_ENTRIES" "REMOVE_RECORDS" "REMOVE_RELATIONSHIPS" "REMOVE_ROLES" "REMOVE_USERS" "VIEW" "VIEW_ACCOUNTS" "VIEW_RECORDS" "VIEW_ITEMS" "VIEW_JOURNAL_ENTRIES" "VIEW_RELATIONSHIPS" "VIEW_USERS" "CHANGE_CONTACTS" "REMOVE_CONTACTS" "VIEW_CONTACTS" "ADD_TAXES" "REMOVE_TAXES" "CHANGE_TAXES" "VIEW_TAXES" "CHANGE_TAX_CODES" "VIEW_CHANGESETS" "ADD_COMMENTS" "ADD_ATTACHMENTS" "ADD_TAGS" "REMOVE_TAGS" "VIEW_REPORTS" "CHANGE_ROLES" "BANK_RECONCILIATION" "CHANGE_TIME_ZONE" "CHANGE_CONTRACT" "VIEW_ACCOUNT_BALANCES" "VIEW_CONTRACT" "ADD_PAYMENT_PROCESSORS" "VIEW_PAYMENT_PROCESSORS" "CHANGE_PAYMENT_PROCESSORS" "REMOVE_PAYMENT_PROCESSORS" "ADD_PLANS" "CHANGE_PLANS" "REMOVE_PLANS" "VIEW_PLANS" "ADD_SUBSCRIPTIONS" "CHANGE_SUBSCRIPTIONS" "VIEW_SUBSCRIPTIONS" "REMOVE_SUBSCRIPTIONS" "VIEW_PAYMENT_INFORMATION" "CHANGE_PAYMENT_INFORMATION" "REMOVE_PAYMENT_INFORMATION" "COMMENT_ON_RECORDS" "ATTACH_FILES_TO_RECORDS" "COMMENT_ON_CONTACTS" "ATTACH_FILES_TO_CONTACTS" "STORE_FILES" "READ_FILES" "VIEW_EMAIL_SETTINGS" "CHANGE_EMAIL_SETTINGS" "SEND_EMAIL" "VIEW_FRESHBOOKS" "CHANGE_FRESHBOOKS" "REMOVE_FRESHBOOKS" "CHANGE_FEATURES" "VIEW_SITE_CONFIGURATION" "CHANGE_SITE_CONFIGURATION" "VIEW_BOOKINGCALENDAR" "CHANGE_BOOKINGCALENDAR" "VIEW_TEXT_FILE_DATA" "CHANGE_TEXT_FILE_DATA" "VIEW_TEMPLATES" "CHANGE_TEMPLATES" "CHANGE_BUSINESS_SETTINGS" "VIEW_BANK_RECONCILIATION" "PRINT_CHECKS" "VIEW_CHECKS" "SYNC" "CHANGE_BUSINESS" "CHANGE_PERIOD_LOCKING" "ADD_PROJECTS" "CHANGE_PROJECTS" "VIEW_PROJECTS" "REMOVE_PROJECTS" "CHANGE_PROJECT_TRACKING" "VIEW_CUSTOMER_PAYMENT_PROCESSORS" "ADD_CUSTOMER_PAYMENT_PROCESSORS" "CHANGE_CUSTOMER_PAYMENT_PROCESSORS" "REMOVE_CUSTOMER_PAYMENT_PROCESSORS" "CHANGE_MULTI_CURRENCY_FEATURE" "ADD_INVOICE_PAYMENT_REQUISITIONS" "CHANGE_INVOICE_PAYMENT_REQUISITIONS" "REMOVE_INVOICE_PAYMENT_REQUISITIONS" "VIEW_INVOICE_PAYMENT_REQUISITIONS" "ADD_NOTIFICATIONS" "CHANGE_NOTIFICATIONS" "REMOVE_NOTIFICATIONS" "VIEW_NOTIFICATIONS" "ADD_NOTIFICATIONS_CONFIG" "CHANGE_NOTIFICATIONS_CONFIG" "REMOVE_NOTIFICATIONS_CONFIG" "VIEW_NOTIFICATIONS_CONFIG" "ADD_SHOEBOX_ITEMS" "CHANGE_SHOEBOX_ITEMS" "REMOVE_SHOEBOX_ITEMS" "VIEW_SHOEBOX_ITEMS" "ADD_GROUPS" "CHANGE_GROUPS" "REMOVE_GROUPS" "VIEW_GROUPS" "VIEW_BANK_FEEDS" "CHANGE_BANK_FEEDS" "REMOVE_BANK_FEEDS" "EXPORT_DATA" "ADD_REPORTS" "CHANGE_REPORTS" "REMOVE_REPORTS"
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Business

Get the business profile and settings.

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Update business

Updates business properties.

path Parameters
business_id
required
integer <int64>
Request Body schema:
creationDate
string <date>
id
integer <int64>
object (ContactInformationInfo)
object (MarketMetadataInfo)
currency
string
currencies
string
startDate
string <date>
timeZone
string
dateFormatting
string
Enum: "MMM_DD_YYYY" "DD_MMM_YYYY" "DD_MM_YYYY" "MM_DD_YYYY" "DOTS_DD_MM_YYYY" "ISO" "DOTS_YYYY_MM_DD" "SLASHES_YYYY_MM_DD" "CHINESE" "KOREAN"
openingDate
string <date>
periodLockingEnabled
boolean
lockedPeriodEndDate
string <date>
lockedPeriodEndDateIfEnabled
string <date>
multiCurrencyEnabled
boolean
multiCurrencyEnabledOnPlan
boolean
multiCurrencyEnabledOnBusiness
boolean
hasMultiCurrencyTransactions
boolean
projectTrackingEnabled
boolean
smartInboxEnabled
boolean
maxRemovedRoleUsersOverride
integer <int32>
showPayroll
boolean
showFreshbooks
boolean
defaultDate
string
Enum: "BLANK" "CURRENT_DAY" "LAST_SAVED"
customerStatementMemo
string
logo
string
futurePayEnabled
boolean
siteOwner
boolean
subscriptionsEnabled
boolean
emailEnabled
boolean
beanStreamEnabled
boolean
inventoryCogsMethod
string
templateId
integer <int64>
fiscalStartYear
integer <int32>
fiscalStartMonth
integer <int32>
fiscalStartDay
integer <int32>
defaultAccountsReceivable
integer <int64>
defaultAccountsPayable
integer <int64>
defaultCashAccount
integer <int64>
defaultBankAccount
integer <int64>
defaultEquityAccount
integer <int64>
defaultInventoryAccount
integer <int64>
gainOrLossOnExchange
integer <int64>
serviceProvider
integer <int64>
serviceProviderRefNumber
string
serviceProviderAccessLevel
string
Enum: "CREATOR" "OWNER" "ADMIN" "VIEW_EDIT_ONLY" "VIEW_ONLY" "LIMITED_OWNER" "NO_ACCESS" "DISABLED_ACCESS"
externalPartnerId
string
payrollIntegrationEnabled
boolean
retainedEarnings
integer <int64>
removed
boolean
object (LicensePartnerCustomerInfo)
version
string
channel
string
name
string
fiscalYearEndDate
string <date-time>
fiscalYearStartDate
string <date-time>
contractReadOnly
boolean
projectsReadOnly
boolean
multiCurrencyUsed
boolean
business
integer <int64>
canadian
boolean
nameReadOnly
boolean
us
boolean
defaultPaymentAccount
integer <int64>
inventoryEnabledAndInUse
boolean
privileges
Array of strings
Items Enum: "ADD" "ADD_ACCOUNTS" "ADD_CONTACTS" "ADD_ITEMS" "ADD_JOURNAL_ENTRIES" "ADD_RECORDS" "ADD_USERS" "CHANGE" "CHANGE_ACCOUNTS" "CHANGE_CONTACT_INFO" "CHANGE_CURRENCY" "CHANGE_YEAR_END" "CHANGE_ITEMS" "CHANGE_JOURNAL_ENTRIES" "CHANGE_NAME" "CHANGE_RECORDS" "CHANGE_REGION" "REMOVE" "REMOVE_ACCOUNTS" "REMOVE_BUSINESS" "REMOVE_DEMOFEED" "REMOVE_ITEMS" "REMOVE_JOURNAL_ENTRIES" "REMOVE_RECORDS" "REMOVE_RELATIONSHIPS" "REMOVE_ROLES" "REMOVE_USERS" "VIEW" "VIEW_ACCOUNTS" "VIEW_RECORDS" "VIEW_ITEMS" "VIEW_JOURNAL_ENTRIES" "VIEW_RELATIONSHIPS" "VIEW_USERS" "CHANGE_CONTACTS" "REMOVE_CONTACTS" "VIEW_CONTACTS" "ADD_TAXES" "REMOVE_TAXES" "CHANGE_TAXES" "VIEW_TAXES" "CHANGE_TAX_CODES" "VIEW_CHANGESETS" "ADD_COMMENTS" "ADD_ATTACHMENTS" "ADD_TAGS" "REMOVE_TAGS" "VIEW_REPORTS" "CHANGE_ROLES" "BANK_RECONCILIATION" "CHANGE_TIME_ZONE" "CHANGE_CONTRACT" "VIEW_ACCOUNT_BALANCES" "VIEW_CONTRACT" "ADD_PAYMENT_PROCESSORS" "VIEW_PAYMENT_PROCESSORS" "CHANGE_PAYMENT_PROCESSORS" "REMOVE_PAYMENT_PROCESSORS" "ADD_PLANS" "CHANGE_PLANS" "REMOVE_PLANS" "VIEW_PLANS" "ADD_SUBSCRIPTIONS" "CHANGE_SUBSCRIPTIONS" "VIEW_SUBSCRIPTIONS" "REMOVE_SUBSCRIPTIONS" "VIEW_PAYMENT_INFORMATION" "CHANGE_PAYMENT_INFORMATION" "REMOVE_PAYMENT_INFORMATION" "COMMENT_ON_RECORDS" "ATTACH_FILES_TO_RECORDS" "COMMENT_ON_CONTACTS" "ATTACH_FILES_TO_CONTACTS" "STORE_FILES" "READ_FILES" "VIEW_EMAIL_SETTINGS" "CHANGE_EMAIL_SETTINGS" "SEND_EMAIL" "VIEW_FRESHBOOKS" "CHANGE_FRESHBOOKS" "REMOVE_FRESHBOOKS" "CHANGE_FEATURES" "VIEW_SITE_CONFIGURATION" "CHANGE_SITE_CONFIGURATION" "VIEW_BOOKINGCALENDAR" "CHANGE_BOOKINGCALENDAR" "VIEW_TEXT_FILE_DATA" "CHANGE_TEXT_FILE_DATA" "VIEW_TEMPLATES" "CHANGE_TEMPLATES" "CHANGE_BUSINESS_SETTINGS" "VIEW_BANK_RECONCILIATION" "PRINT_CHECKS" "VIEW_CHECKS" "SYNC" "CHANGE_BUSINESS" "CHANGE_PERIOD_LOCKING" "ADD_PROJECTS" "CHANGE_PROJECTS" "VIEW_PROJECTS" "REMOVE_PROJECTS" "CHANGE_PROJECT_TRACKING" "VIEW_CUSTOMER_PAYMENT_PROCESSORS" "ADD_CUSTOMER_PAYMENT_PROCESSORS" "CHANGE_CUSTOMER_PAYMENT_PROCESSORS" "REMOVE_CUSTOMER_PAYMENT_PROCESSORS" "CHANGE_MULTI_CURRENCY_FEATURE" "ADD_INVOICE_PAYMENT_REQUISITIONS" "CHANGE_INVOICE_PAYMENT_REQUISITIONS" "REMOVE_INVOICE_PAYMENT_REQUISITIONS" "VIEW_INVOICE_PAYMENT_REQUISITIONS" "ADD_NOTIFICATIONS" "CHANGE_NOTIFICATIONS" "REMOVE_NOTIFICATIONS" "VIEW_NOTIFICATIONS" "ADD_NOTIFICATIONS_CONFIG" "CHANGE_NOTIFICATIONS_CONFIG" "REMOVE_NOTIFICATIONS_CONFIG" "VIEW_NOTIFICATIONS_CONFIG" "ADD_SHOEBOX_ITEMS" "CHANGE_SHOEBOX_ITEMS" "REMOVE_SHOEBOX_ITEMS" "VIEW_SHOEBOX_ITEMS" "ADD_GROUPS" "CHANGE_GROUPS" "REMOVE_GROUPS" "VIEW_GROUPS" "VIEW_BANK_FEEDS" "CHANGE_BANK_FEEDS" "REMOVE_BANK_FEEDS" "EXPORT_DATA" "ADD_REPORTS" "CHANGE_REPORTS" "REMOVE_REPORTS"
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove the business from the lists of businesses.

This renders the business essentially invisible, and the business data may later be deleted utterly from the system.

path Parameters
business_id
required
integer <int64>

Responses

Get the business settings.

Returns the business settings for the current business.

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Update the business settings.

Updates the business settings for the current business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
invoicePdfMessage
string
invoiceEmailMessage
string
estimatePdfMessage
string
estimateEmailMessage
string
incomePdfMessage
string
incomeEmailMessage
string

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Get change history

Gets the list of all changes made by this business. This includes changes to accounts, contacts, records, and so on.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
changeType
string

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

getUserRoles

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

setUserRole

path Parameters
business_id
required
integer <int64>
Request Body schema:
business
integer <int64>
email
string
first
string
last
string
role
string
Enum: "CREATOR" "OWNER" "ADMIN" "VIEW_EDIT_ONLY" "VIEW_ONLY" "LIMITED_OWNER" "NO_ACCESS" "DISABLED_ACCESS"
user
integer <int64>
appliedRole
string
Enum: "CREATOR" "OWNER" "ADMIN" "VIEW_EDIT_ONLY" "VIEW_ONLY" "LIMITED_OWNER" "NO_ACCESS" "DISABLED_ACCESS"
fullName
string
roleString
string

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

removeUserRole

path Parameters
user_id
required
integer <int64>
business_id
required
integer <int64>

Responses

Subscription

kashootsa

Get subscription of a business

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Gets the logged in user's subscription

Responses

Add a subscription Deprecated

Request Body schema: */*
text
string

Responses

Gets a Subscription

Gets a Subscription using an subscription ID or userID (fusionauth)

query Parameters
id
string

ID of subscriptions

subscriberId
string

Subscriber ID

header Parameters
Authorization
required
string

Example: Bearer foo

Responses

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Create a Subscription

Creates a Subscription

Request Body schema: application/json
required

Create Subscription Request

appId
string
originalId
string
platformProductId
string
purchaseToken
string
purchasedExplicitlyInApp
boolean
store
required
string
subscriberId
string
subscriptionApplication
string
userEmail
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "originalId": "string",
  • "platformProductId": "string",
  • "purchaseToken": "string",
  • "purchasedExplicitlyInApp": true,
  • "store": "string",
  • "subscriberId": "string",
  • "subscriptionApplication": "string",
  • "userEmail": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Creates a new chargebee checkout window

Creates a new chargebee checkout window

header Parameters
Authorization
required
string

Example: Bearer foo

Request Body schema: application/json
required

New Checkout

couponId
Array of strings
object (serverpb.ChargeBeeCustomer)
subscriberId
required
string
subscriptionApplication
required
string
subscriptionPlanId
required
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "couponId": [
    ],
  • "customer": {
    },
  • "subscriberId": "string",
  • "subscriptionApplication": "string",
  • "subscriptionPlanId": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "checkoutInfo": [
    ],
  • "content": [
    ],
  • "createdAt": 0,
  • "embed": true,
  • "expiresAt": 0,
  • "failureReason": "string",
  • "id": "string",
  • "object": "string",
  • "passThruContent": "string",
  • "resourceVersion": 0,
  • "state": "string",
  • "type": "string",
  • "updatedAt": 0,
  • "url": "string"
}

Creates a new chargebee portal session

Creates a new chargebee portal session

header Parameters
Authorization
required
string

Example: Bearer foo

Request Body schema: application/json
required

New portal session

subscriptionId
string

Responses

Request samples

Content type
application/json
{
  • "subscriptionId": "string"
}

Response samples

Content type
application/json
{
  • "accessUrl": "string",
  • "createdAt": 0,
  • "customerId": "string",
  • "expiresAt": 0,
  • "id": "string",
  • "loginAt": 0,
  • "loginIpAddress": "string",
  • "logoutAt": 0,
  • "logoutIpAddress": "string",
  • "object": "string",
  • "redirectUrl": "string",
  • "status": "string",
  • "token": "string"
}

Business Plans

kashootsa

Inspect the business' current subscription plan with Kashoo.

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Updates a business plan

path Parameters
business_id
required
integer <int64>
query Parameters
inviteCode
string
Request Body schema:
id
integer <int64>
name
string
description
string
currency
string
monthlyPrice
integer <int32>
annualPrice
integer <int32>
taxCode
string
upgradePaymentAmount
integer <int32>
selectable
boolean
externalDescription
string
numOfAdditionalUsers
integer <int32>
expiryDays
integer <int32>
free
boolean
freeTrial
boolean
paymentProcessorType
string
Enum: "NONE" "BEANSTREAM" "APPLE"
billingPlatform
string
Enum: "D_BILLING" "ITUNES" "SQUARE" "AMAZON" "OFFLINE" "CHARGEBEE" "TRULYSMALL"
delayOfInitialPaymentInDays
integer <int32>

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Cancel a business plan

path Parameters
business_id
required
integer <int64>

Responses

Get a list of available plans for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
inviteCode
string

Responses

Response samples

Content type
No sample

Lists invoices on a plan

Lists the invoices that have been made on the business's current contract (plan).

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
offset
integer <int32>
limit
integer <int32>
Default: 50

Responses

Response samples

Content type
No sample

Contacts

kashootsa

Get business contacts

Return a list of contacts associated with this business.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0
type
Array of strings unique
Items Enum: "CUSTOMER" "VENDOR" "PARTNER" "OWNER" "GOVERNMENT" "OTHER" "EMPLOYEE"
archived
boolean
nosubcontacts
boolean
sortColumn
string
sortOrder
string
search
string

Responses

Response samples

Content type
[
  • {
    }
]

Add contact

Adds a contact to the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
type
string
Enum: "CUSTOMER" "VENDOR" "PARTNER" "OWNER" "GOVERNMENT" "OTHER" "EMPLOYEE"
object (ContactInformationInfo)
linkedBusiness
integer <int64>
receivableAccount
integer <int64>
payableAccount
integer <int64>
incomeOrExpenseAccount
integer <int64>
defaultTaxCode
string
paymentAccount
integer <int64>
paymentTerms
string
currency
string
comments
Array of strings
collaborationContext
integer <int64>
prefix
string
removed
boolean
archived
boolean
organization
boolean
parent
integer <int64>
groups
Array of integers <int64> [ items <int64 > ]
name
string
address
string
phoneNumbers
string
email
string
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "id": 0,
  • "business": 0,
  • "type": "CUSTOMER",
  • "contactInformation": {
    },
  • "linkedBusiness": 0,
  • "receivableAccount": 0,
  • "payableAccount": 0,
  • "incomeOrExpenseAccount": 0,
  • "defaultTaxCode": "string",
  • "paymentAccount": 0,
  • "paymentTerms": "string",
  • "currency": "string",
  • "comments": [
    ],
  • "collaborationContext": 0,
  • "prefix": "string",
  • "removed": true,
  • "archived": true,
  • "organization": true,
  • "parent": 0,
  • "groups": [
    ],
  • "name": "string",
  • "address": "string",
  • "phoneNumbers": "string",
  • "email": "string",
  • "lastModified": 0
}

getContacts

path Parameters
type
required
string
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0
archived
boolean
nosubcontacts
boolean

Responses

Response samples

Content type
No sample

Returns the contact information.

path Parameters
contact_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Updates an existing contact.

path Parameters
contact_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
type
string
Enum: "CUSTOMER" "VENDOR" "PARTNER" "OWNER" "GOVERNMENT" "OTHER" "EMPLOYEE"
object (ContactInformationInfo)
linkedBusiness
integer <int64>
receivableAccount
integer <int64>
payableAccount
integer <int64>
incomeOrExpenseAccount
integer <int64>
defaultTaxCode
string
paymentAccount
integer <int64>
paymentTerms
string
currency
string
comments
Array of strings
collaborationContext
integer <int64>
prefix
string
removed
boolean
archived
boolean
organization
boolean
parent
integer <int64>
groups
Array of integers <int64> [ items <int64 > ]
name
string
address
string
phoneNumbers
string
email
string
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Remove a contact

path Parameters
contact_id
required
integer <int64>

Responses

Get change history

Gets the list of changes that have been made to this contact.

path Parameters
contact_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns the invoices and bills that involve this contact.

path Parameters
contact_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string
sortOrder
string
amountLe
integer <int64>
amountGe
integer <int64>
type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
accountId
integer <int64>
category
integer <int64>
itemId
integer <int64>
projectId
integer <int64>
productId
integer <int64>
search
string

Responses

Response samples

Content type
No sample

Gets contact activity report

path Parameters
contact_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
memo
string

Responses

Response samples

Content type
No sample

Generates contact mini report

Generates a mini report for the contact.

path Parameters
contact_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "billedYtd": 0,
  • "invoicedYtd": 0,
  • "totalUnpaidBills": 0,
  • "totalUnpaidInvoices": 0,
  • "totalPendingEstimates": 0
}

Gets contact statement

path Parameters
contact_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25
memo
string

Responses

Response samples

Content type
No sample

Returns the subcontacts of this contact

path Parameters
contact_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Items

kashootsaEndpoints for managing tracked and untracked inventory items for Kashoo classic and TSA businesses. These inventory items can be used as line items in transactions and can track quantities and costs.

Get business items

Return a list of the inventory items defined by this business.

path Parameters
business_id
required
integer <int64>
query Parameters
archived
boolean
search
string
sortColumn
string
Example: sortColumn=name

'name' or 'sku'

sortOrder
string

'asc' or 'desc'

offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Create inventory item

Create an inventory item for the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
itemId
string
business
integer <int64>
name
string
sku
string
description
string
defaultTaxCode
string
defaultDiscountCode
string
defaultBuyRate
number
defaultSellRate
number
defaultNote
string
inventoryAccount
integer <int64>
cogsAccount
integer <int64>
creditAccount
integer <int64>
debitAccount
integer <int64>
shrinkageAccount
integer <int64>
category
integer <int64>
Array of objects (ItemTaxInfo)
Array of objects (ItemTaxInfo)
readOnly
boolean
removed
boolean
tracked
boolean
archived
boolean
createExpenseAccount
boolean
effectiveId
object
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
{
  • "id": 0,
  • "itemId": "string",
  • "business": 0,
  • "name": "string",
  • "sku": "string",
  • "description": "string",
  • "defaultTaxCode": "string",
  • "defaultDiscountCode": "string",
  • "defaultBuyRate": 0,
  • "defaultSellRate": 0,
  • "defaultNote": "string",
  • "inventoryAccount": 0,
  • "cogsAccount": 0,
  • "creditAccount": 0,
  • "debitAccount": 0,
  • "shrinkageAccount": 0,
  • "category": 0,
  • "taxesForBuying": [
    ],
  • "taxesForSelling": [
    ],
  • "readOnly": true,
  • "removed": true,
  • "tracked": true,
  • "archived": true,
  • "createExpenseAccount": true,
  • "effectiveId": { },
  • "lastModified": 0,
  • "links": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "itemId": "string",
  • "business": 0,
  • "name": "string",
  • "sku": "string",
  • "description": "string",
  • "defaultTaxCode": "string",
  • "defaultDiscountCode": "string",
  • "defaultBuyRate": 0,
  • "defaultSellRate": 0,
  • "defaultNote": "string",
  • "inventoryAccount": 0,
  • "cogsAccount": 0,
  • "creditAccount": 0,
  • "debitAccount": 0,
  • "shrinkageAccount": 0,
  • "category": 0,
  • "taxesForBuying": [
    ],
  • "taxesForSelling": [
    ],
  • "readOnly": true,
  • "removed": true,
  • "tracked": true,
  • "archived": true,
  • "createExpenseAccount": true,
  • "effectiveId": { },
  • "lastModified": 0,
  • "links": [
    ]
}

Parse data into items

Parse structured data into a list of items for importing

path Parameters
business_id
required
integer <int64>
Request Body schema:
string

Responses

Response samples

Content type
[
  • {
    }
]

Gets an item

Returns all the properties of the inventory item.

path Parameters
item_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Updates an item

Updates the properties of an item.

path Parameters
item_id
required
integer <int64>
Request Body schema:
id
integer <int64>
itemId
string
business
integer <int64>
name
string
sku
string
description
string
defaultTaxCode
string
defaultDiscountCode
string
defaultBuyRate
number
defaultSellRate
number
defaultNote
string
inventoryAccount
integer <int64>
cogsAccount
integer <int64>
creditAccount
integer <int64>
debitAccount
integer <int64>
shrinkageAccount
integer <int64>
category
integer <int64>
Array of objects (ItemTaxInfo)
Array of objects (ItemTaxInfo)
readOnly
boolean
removed
boolean
tracked
boolean
archived
boolean
effectiveId
object
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
{
  • "id": 0,
  • "itemId": "string",
  • "business": 0,
  • "name": "string",
  • "sku": "string",
  • "description": "string",
  • "defaultTaxCode": "string",
  • "defaultDiscountCode": "string",
  • "defaultBuyRate": 0,
  • "defaultSellRate": 0,
  • "defaultNote": "string",
  • "inventoryAccount": 0,
  • "cogsAccount": 0,
  • "creditAccount": 0,
  • "debitAccount": 0,
  • "shrinkageAccount": 0,
  • "category": 0,
  • "taxesForBuying": [
    ],
  • "taxesForSelling": [
    ],
  • "readOnly": true,
  • "removed": true,
  • "tracked": true,
  • "archived": true,
  • "effectiveId": { },
  • "lastModified": 0,
  • "links": [
    ]
}

Remove an item

Removes an inventory item from the business's item list.

path Parameters
item_id
required
integer <int64>

Responses

Get change history

Gets the list of changes that have been made to this item.

path Parameters
item_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get opening stock

Returns the opening stock of a tracked inventory item. Only applies to tracked items; untracked items do not have opening stock. The amount applies to the inventory on the opening date of the business.

path Parameters
item_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "id": 0,
  • "business": 0,
  • "item": 0,
  • "quantity": 0,
  • "totalValue": 0
}

Set opening stock

Sets the opening stock of a tracked inventory item. This applies on the business's opening date.

path Parameters
item_id
required
integer <int64>
Request Body schema: */*
id
integer <int64>
business
integer <int64>
item
integer <int64>
quantity
integer <int64>
totalValue
integer <int64>

Responses

Get records using an item

Returns the invoices and bills that reference this item.

path Parameters
item_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
amountLe
integer <int64>
amountGe
integer <int64>
type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
accountId
integer <int64>
contactId
integer <int64>
category
integer <int64>
projectId
integer <int64>
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string

Record sort column

sortOrder
string

'asc' or 'desc'

search
string

Record search term

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Projects

kashootsaEndpoints to set up and manage project tracking for the business.

Get business projects

Return a list of projects created for this business.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0
active
boolean

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Create project

Create a project for the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
description
string
name
string
business
integer <int64>
removed
boolean
inactive
boolean
status
string
lastModified
integer <int64>

Responses

Request samples

Content type
{
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "business": 0,
  • "removed": true,
  • "inactive": true,
  • "status": "string",
  • "lastModified": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "business": 0,
  • "removed": true,
  • "inactive": true,
  • "status": "string",
  • "lastModified": 0
}

Get project info

Gets all the properties of a project.

path Parameters
project_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "business": 0,
  • "removed": true,
  • "inactive": true,
  • "status": "string",
  • "lastModified": 0
}

Updates a project

Updates the properties of a project.

path Parameters
project_id
required
integer <int64>
Request Body schema:
id
integer <int64>
description
string
name
string
business
integer <int64>
removed
boolean
inactive
boolean
status
string
lastModified
integer <int64>

Responses

Request samples

Content type
{
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "business": 0,
  • "removed": true,
  • "inactive": true,
  • "status": "string",
  • "lastModified": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "business": 0,
  • "removed": true,
  • "inactive": true,
  • "status": "string",
  • "lastModified": 0
}

Delete a project

path Parameters
project_id
required
integer <int64>

Responses

Get change history

Gets the list of changes that have been made to this project.

path Parameters
project_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get project records

Returns the incomes and expenses associated with this project.

path Parameters
project_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
amountGe
integer <int64>
amountLe
integer <int64>
type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
accountId
integer <int64>
contactId
integer <int64>
category
integer <int64>
itemId
integer <int64>
productId
integer <int64>
search
string
sortColumn
string
sortOrder
string

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Receipts

kashootsa

Submit a receipt

path Parameters
business_id
required
integer <int64>
Request Body schema: */*
text
string

Responses

Accounts

kashootsa

Gets an account

Gets information about an account. The fields parameter can be used to request additional information.

path Parameters
account_id
required
integer <int64>
query Parameters
fields
string
Example: fields=item

Optional expensive-to-calculate fields to include. Options are firstTransactionDate, lastTransactionDate, firstBankFeedDate, firstBankUploadDate, lastBankUploadDate, item.

Responses

Response samples

Content type
[
  • {
    }
]

Updates an account

path Parameters
account_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
type
string
Enum: "ACCOUNTS_RECEIVABLE" "ACCOUNTS_PAYABLE" "BANK" "COST_OF_GOODS_SOLD" "CREDIT_CARD" "EQUITY" "EXPENSE" "FIXED_ASSET" "INCOME" "GAIN_OR_LOSS_ON_EXCHANGE" "LONG_TERM_LIABILITY" "OTHER_CURRENT_ASSET" "OTHER_CURRENT_LIABILITY" "OTHER_ASSET" "TAXES" "CASH" "RETAINED_EARNINGS" "PREPAID_EXPENSE" "CLIENT_CREDIT" "INVENTORY" "PAYROLL_TAX"
description
string
number
string
standardTerms
string
openDate
string <date>
openingDate
string <date>
removed
boolean
feed
integer <int64>
readOnly
boolean
taxNumber
integer <int64>
taxAuthorityCode
string
archived
boolean
normalBalanceCredit
boolean
system
boolean
parent
integer <int64>
parentNumber
string
nameAndNumber
string
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Removes an account

path Parameters
account_id
required
integer <int64>

Responses

Get account balances

path Parameters
account_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25
primary
boolean

Responses

Get change history

Gets the list of changes that have been made to this account.

path Parameters
account_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get journal entries

Get the journal entries made against an account. Returns all journal entries by default but can be filtered by date, amount, and search term. The results can be paginated and sorted.

path Parameters
account_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2024-02-02
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string
Example: sortColumn=date

The column to sort by

sortOrder
string
Example: sortOrder=desc

Whether to sort ascending or descending

amountLe
integer <int64>
amountGe
integer <int64>
maxAmount
integer <int64>

Max amount for amounts

minAmount
integer <int64>

Min amount for amounts

type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"

Filter records by record type.

contactId
integer <int64>

Filter records by contact.

category
integer <int64>

Filter records by line item category account id.

projectId
integer <int64>

Filter records by project.

itemId
integer <int64>

Filter records by item.

productId
integer <int64>

Filter records by item.

search
string

Responses

Response samples

Content type
No sample

Get account opening balances

path Parameters
account_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Get account transactions

path Parameters
account_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string
sortOrder
string
amountLe
integer <int64>
amountGe
integer <int64>
maxAmount
integer <int64>

Max amount for amounts

minAmount
integer <int64>

Min amount for amounts

search
string
contactId
integer <int64>

Filter records by contact.

itemId
integer <int64>

Filter records by item.

productId
integer <int64>

Filter records by item.

projectId
integer <int64>

Filter records by project.

type
Array of strings unique
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"

Filter records by record type.

category
integer <int64>

Filter records by line item category account id.

Responses

Return a list of accounts associated with this business.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0
type
Array of strings unique
Items Enum: "ACCOUNTS_RECEIVABLE" "ACCOUNTS_PAYABLE" "BANK" "COST_OF_GOODS_SOLD" "CREDIT_CARD" "EQUITY" "EXPENSE" "FIXED_ASSET" "INCOME" "GAIN_OR_LOSS_ON_EXCHANGE" "LONG_TERM_LIABILITY" "OTHER_CURRENT_ASSET" "OTHER_CURRENT_LIABILITY" "OTHER_ASSET" "TAXES" "CASH" "RETAINED_EARNINGS" "PREPAID_EXPENSE" "CLIENT_CREDIT" "INVENTORY" "PAYROLL_TAX"
archived
boolean

Responses

Response samples

Content type
No sample

Add an account to the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
type
string
Enum: "ACCOUNTS_RECEIVABLE" "ACCOUNTS_PAYABLE" "BANK" "COST_OF_GOODS_SOLD" "CREDIT_CARD" "EQUITY" "EXPENSE" "FIXED_ASSET" "INCOME" "GAIN_OR_LOSS_ON_EXCHANGE" "LONG_TERM_LIABILITY" "OTHER_CURRENT_ASSET" "OTHER_CURRENT_LIABILITY" "OTHER_ASSET" "TAXES" "CASH" "RETAINED_EARNINGS" "PREPAID_EXPENSE" "CLIENT_CREDIT" "INVENTORY" "PAYROLL_TAX"
description
string
number
string
standardTerms
string
openDate
string <date>
openingDate
string <date>
removed
boolean
feed
integer <int64>
readOnly
boolean
taxNumber
integer <int64>
taxAuthorityCode
string
archived
boolean
normalBalanceCredit
boolean
system
boolean
parent
integer <int64>
parentNumber
string
nameAndNumber
string
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
{
  • "id": 0,
  • "business": 0,
  • "name": "string",
  • "type": "ACCOUNTS_RECEIVABLE",
  • "description": "string",
  • "number": "string",
  • "standardTerms": "string",
  • "openDate": "2023-12-25",
  • "openingDate": "2023-12-25",
  • "removed": true,
  • "feed": 0,
  • "readOnly": true,
  • "taxNumber": 0,
  • "taxAuthorityCode": "string",
  • "archived": true,
  • "normalBalanceCredit": true,
  • "system": true,
  • "parent": 0,
  • "parentNumber": "string",
  • "nameAndNumber": "string",
  • "lastModified": 0,
  • "links": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Get balances for a list of accounts

path Parameters
business_id
required
integer <int64>
Request Body schema:
Array
integer <int64>

Responses

Request samples

Content type
[
  • 0
]

Response samples

Content type
[
  • {
    }
]

Get bank accounts for a business

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Account Types

kashootsa

Get accounts payable accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get accounts receivable accounts.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get cash accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Get inventory accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get COGS accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get credit card accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get equity accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get expense accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get fixed asset accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get gain/loss on exchange accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get income accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get long term liability accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get other current asset accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get other current asset accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get other current liability accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get prepaid expenses accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get retained earnings accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Get taxes and remittances accounts

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 0

Responses

Response samples

Content type
No sample

Get used accounts

Gets the accounts for the business that have at least one journal entry assigned to them.

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Shoebox

tsa

Delete bulk items by filter

Allows bulk deletion of shoebox items that match the specified query parameters.

Request Body schema: application/json
required

items Request

account
string
amountGe
integer

Should be integer

amountLe
integer

Should be integer

businessId
required
string
complete
boolean
endDate
string
ignored
boolean
processed
boolean
search
string
sourceId
string
sources
Array of strings
startDate
string
state
string
types
Array of strings

Responses

Request samples

Content type
application/json
{
  • "account": "",
  • "amountGe": 500,
  • "amountLe": 10000,
  • "businessId": "123456",
  • "complete": true,
  • "endDate": "2020-01-10T12:30U",
  • "ignored": false,
  • "processed": false,
  • "search": "bill",
  • "sourceId": "",
  • "sources": [
    ],
  • "startDate": "2020-01-10T12:30U",
  • "state": "",
  • "types": [
    ]
}

Bulk items retrieval

Gets one or more shoebox items as requested via the item id. The item ids are specified within the body of the request as a set of strings.

Request Body schema: application/json
required

items Request

businessId
required
string

in: body

Responses

Request samples

Content type
application/json
{
  • "businessId": "123456"
}

Delete bulk items by ids

Allows bulk deletion of shoebox items by shoebox id. The item ids are specified within the body of the request as a set of strings.

Request Body schema: application/json
required

items Request

businessId
required
string

in: body

Responses

Request samples

Content type
application/json
{
  • "businessId": "123456"
}

Get bank imports

Queries specifically for shoebox items that originated from a bank import. The semantics of this search are slightly different.

Request Body schema: application/json

items Request

account
string
businessId
required
string
limit
string
offset
string

Responses

Request samples

Content type
application/json
{
  • "account": "",
  • "businessId": "123456",
  • "limit": "25",
  • "offset": "1"
}

Unprocesses a set of shoebox items for a business.

This takes the items from the processed state back to the ready state. The normal form is recalcualted and the matches are queried for again. This call is idempotent. This is called when the user would like to undo a post and have the item go through the process workflow again.

Request Body schema: application/json
required

items Request

businessId
required
string

in: body

Responses

Request samples

Content type
application/json
{
  • "businessId": "123456"
}

Updates shoebox items after the user has matched two or more of them together.

Although the books api and web app will already create the appropriate books record and process the primary shoebox item, this method updates all of the associated shoebox items accordingly. This includes processing the secondary shoebox items and writing the appropriate matching metadata.

Request Body schema: application/json
required

items Request

businessId
required
string
shoeboxItemId
required
string

Responses

Request samples

Content type
application/json
{
  • "businessId": "123456",
  • "shoeboxItemId": "123456"
}

Get business transactions

Gets the shoebox items for a given business. Includes several optional filter arguments for narrowing down the list of shoebox items.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

items Request

account
string
amountGe
integer

Should be integer

amountLe
integer

Should be integer

businessId
required
string
consistent
boolean
endDate
string
exclude
string
ignored
boolean
limit
string
nonBankFeed
boolean
offset
string
order
string
processed
boolean
search
string
sort
string
sourceId
string
sources
Array of strings
startDate
string
state
string
types
Array of strings

Responses

Request samples

Content type
application/json
{
  • "account": "",
  • "amountGe": 500,
  • "amountLe": 10000,
  • "businessId": "123456",
  • "consistent": false,
  • "endDate": "2020-01-10T12:30U",
  • "exclude": "",
  • "ignored": false,
  • "limit": "25",
  • "nonBankFeed": true,
  • "offset": "1",
  • "order": "asc",
  • "processed": false,
  • "search": "bill",
  • "sort": "date",
  • "sourceId": "",
  • "sources": [
    ],
  • "startDate": "2020-01-10T12:30U",
  • "state": "",
  • "types": [
    ]
}

Upserts a set of shoebox items

Upserts a set of shoebox items for a business. This either creates each shoebox item or updates the item data if it already exists. The change handlers are then run on each item to calculate their normal forms and make match suggestions. The endpoint is synchronous so that the caller can wait for the results to complete if that's important.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json

ShoeboxItemInfo[]

data
string

The data of the shoebox item stored as a json document.

previousData
string

Any previous versions of the data.

received
string

The datetime that the item was received.

source
string

The source of the item, ex: "yodlee".

sourceId
string

The id assigned to the item by the source.

state
string

The state of the shoebox item ("processed", "ready").

type
required
string

The type of item ("bank", "import").

Responses

Request samples

Content type
application/json
{
  • "data": "{\"custom\":\"data\"}",
  • "previousData": "{\"custom\":\"data-v0\"}",
  • "received": "2020-01-10T12:30U",
  • "source": "yodlee, upload",
  • "sourceId": "dd2232",
  • "state": "processed",
  • "type": "bank"
}

Upserts a set of bank shoebox items for a business

This is similar to the upsertItems call except that items are deduplicated against other bank items. This is important for bank feeds because the bank feed providers do not send only new items and instead we have to retrieve overlapping date ranges each day. In addition, a bank feed could be reconnected to an existing account.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

items Request

businessId
required
string

in: body

Responses

Request samples

Content type
application/json
{
  • "businessId": "123456"
}

Records

kashootsa

Get business records

Returns all the records for a business. Records can be of several types, including:

  • Bills
  • Invoices
  • Adjustments
  • Transfers
path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
search
string
amountGe
integer <int64>
amountLe
integer <int64>
exclude
string
status
string
object <date> (TransferDate)
Example: asOf=2023-12-25
sortColumn
string
sortOrder
string
includeRemoved
boolean

Only non-removed records are included by default.

modifiedSince
integer <int64>
Example: modifiedSince=1716999647879

Include only records modified since this unix timestamp, in milliseconds.

accountId
integer <int64>

Filter records by contact id.

contactId
integer <int64>

Filter records by contact id.

itemId
integer <int64>

Filter records by inventory item/product id.

productId
integer <int64>

Filter records by inventory item/product id.

projectId
integer <int64>

Filter records by project id.

category
integer <int64>

Filter records by line item category account id.

pageToId
integer <int64>

Allows caller to request the page that contains a specific record

Responses

Response samples

Content type
[
  • {
    }
]

Add a record to a business

path Parameters
business_id
required
integer <int64>
Request Body schema:

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Add a set of records to a business

Add a set of records in one operation. All records must belong to the same business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
Array

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

getFiscalYears

Returns the fiscal years for the business that have any records entered for them. This allows the caller to present a choice to the user

  • for selecting which year to look at. This works by fiscal years instead of calendar years, and the years are in descending order.
path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Gets record sequence numbers

Returns the next sequence number for each record type. This is important for invoices and bills where the sequence number is used to generate the invoice number.

path Parameters
record_type
required
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
business_id
required
integer <int64>

Responses

Response samples

Content type
[
  • {
    }
]

Import records from an outside source

Imports records from an outside source. Right now this only supports ofx/qbo files.

path Parameters
business_id
required
integer <int64>
Request Body schema:
uuid
string
url
string
filename
string
account
integer <int64>
preview
boolean

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Get a record

Gets a record by its record id.

path Parameters
record_id
required
integer <int64>

Responses

Response samples

Content type
application/json
No sample

Update a record

Updates a record with the provided data.

path Parameters
record_id
required
integer <int64>
Request Body schema:

Responses

Request samples

Content type
No sample

Remove a record

Removes a record. This is a soft delete and the recodd can be restored.

path Parameters
record_id
required
integer <int64>

Responses

Get notes for a record

Retrieves the comments and email logs associated with a specific record.

path Parameters
record_id
required
integer <int64>

Responses

Response samples

Content type
[
  • {
    }
]

Unprocess a set of records

Unprocess a batch of records and returns them to the inbox. This operation is used for TrulySmall Accounting.

Request Body schema:
Array

Responses

Request samples

Content type
[
  • {
    }
]

Response samples

Content type
[
  • {
    }
]

Update a set of records

Updates a batch of records in one operation. All records must belong to the same business. This can take a long time because records still have to be added serially due to limitations in the books engine.

Request Body schema:
Array

Responses

Request samples

Content type
[
  • {
    }
]

Response samples

Content type
[
  • {
    }
]

CategorizationRules

tsa

Lists the custom categorization rules defined for a business.

Lists all of the categorization rules that a business has created.

path Parameters
businessId
required
string

Business ID

query Parameters
limit
string

max nubmers of rules to return

offset
string

the starting offset to return the rules from

Request Body schema: application/json
required

ListRulesRequest

businessId
required
string

Responses

Request samples

Content type
application/json
{
  • "businessId": "string"
}

Response samples

Content type
application/json
{
  • "rules": [
    ]
}

Categorizes a list of bank transactions.

Accepts a list of bank transactions as json and categorizes each one of them according to the business's rules.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

CategorizeReuqest

businessId
required
string
transactionId
required
string

Responses

Request samples

Content type
application/json
{
  • "businessId": "string",
  • "transactionId": "string"
}

Response samples

Content type
application/json
{
  • "transaction": {
    }
}

Deletes an existing rule.

Allows the user to delete an existing rule.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

DeleteRuleRequest

businessId
required
string
category
required
string
merchant
string

Responses

Request samples

Content type
application/json
{
  • "businessId": "string",
  • "category": "string",
  • "merchant": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "detail": "string",
  • "id": "string",
  • "status": "string"
}

Saves an update to an existing rule.

Allows the user to save an edit to an existing categorization rule. Used to edit the rules set up in the usual flow within the app.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

PutRulesRequest

businessId
required
string
required
object (serverpb.CategorizationRule)

Responses

Request samples

Content type
application/json
{
  • "businessId": "string",
  • "rule": {
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "detail": "string",
  • "id": "string",
  • "status": "string"
}

Gets the categorization settings

Returns the current settings for a business related to categorization rules.

path Parameters
businessId
required
string

Business ID

Responses

Response samples

Content type
application/json
{
  • "doNotCategorizeAsOther": true
}

Updates the categorization settings

Updates the settings for a business related to categorization rules.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

SettingsRequest

doNotCategorizeAsOther
boolean

Responses

Request samples

Content type
application/json
{
  • "doNotCategorizeAsOther": true
}

Response samples

Content type
application/json
{
  • "doNotCategorizeAsOther": true
}

Updates the custom categorization rules for a business.

Updates the categorization rule for a given transaction so that the next time that categorize is called, the indicated category is returned.

path Parameters
businessId
required
string

Business ID

Request Body schema: application/json
required

PutRulesRequest

businessId
required
string
required
object (serverpb.CategorizationRule)

Responses

Request samples

Content type
application/json
{
  • "businessId": "string",
  • "rule": {
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "detail": "string",
  • "id": "string",
  • "status": "string"
}

Invoices

kashootsa

List invoice payments associated with this business.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
includeRemoved
boolean
modifiedSince
integer <int64>
contactId
integer <int64>
projectId
integer <int64>

Responses

Response samples

Content type
No sample

Add an invoice payment to a business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
description
string
memo
string
exchangeRate
number <double>
contact
integer <int64>
currency
string
account
integer <int64>
date
string <date>
collaborationContext
integer <int64>
number
string
contactName
string
removed
boolean
readOnly
boolean
homeCurrency
string
project
integer <int64>
projectName
string
creation
string <date-time>
lastModified
string <date-time>
inboxReference
string
bankRecStatement
integer <int64>
unallocatedAmount
integer <int64>
Array of objects (PaymentAllocationOut)
creditAccount
integer <int64>
method
string
amount
integer <int64>
byCheck
boolean
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
foreignCurrency
boolean
Array of objects (RecordAttachmentInfo)
allowZeroAmounts
boolean
reconciled
boolean
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

List invoices associated with this business.

This is the same as accessing records with type=INVOICE.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
amountGe
integer <int64>
amountLe
integer <int64>
exclude
string
status
string
object <date> (TransferDate)
Example: asOf=2023-12-25
sortColumn
string
sortOrder
string
includeRemoved
boolean
modifiedSince
integer <int64>
contactId
integer <int64>
category
integer <int64>
itemId
integer <int64>
productId
integer <int64>
projectId
integer <int64>

Responses

Response samples

Content type
No sample

Add an invoice to a business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
description
string
memo
string
exchangeRate
number <double>
contact
integer <int64>
currency
string
account
integer <int64>
date
string <date>
collaborationContext
integer <int64>
number
string
contactName
string
removed
boolean
readOnly
boolean
homeCurrency
string
project
integer <int64>
projectName
string
creation
string <date-time>
lastModified
string <date-time>
inboxReference
string
bankRecStatement
integer <int64>
Array of objects (PaymentAllocationIn)
terms
string
dueDate
string <date>
poNumber
string
Array of objects (LegacyTaxEntryInfo)
totalDue
integer <int64>
balanceDue
integer <int64>
paid
boolean
exchangePayment
boolean
keepInOriginalCurrency
boolean
balanceDueFormatted
string
totalDueFormatted
string
totalBeforeTaxes
integer <int64>
Array of objects (RecordTaxAmount)
totalLocalDue
integer <int64>
linkedEstimate
integer <int64>
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
totalPaidLater
integer <int64>
totalPaid
integer <int64>
paidInvoice
boolean
totalPaidImmediately
integer <int64>
income
boolean
foreignCurrency
boolean
Array of objects (RecordAttachmentInfo)
allowZeroAmounts
boolean
reconciled
boolean
Array of objects (LineItemInfo)
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Email an invoice or estimate

Sends an email for the invoice or estimate to the specified email address. If preview is true, the email is not sent and a preview is returned.

path Parameters
record_id
required
integer <int64>
Request Body schema:
required
to
string
cc
string
bcc
string
message
string
processor
string
preview
boolean
previewType
string
attachments
Array of strings
template
string

Responses

Request samples

Content type
No sample

Bills

kashootsa

List bill payments associated with this business.

This is the same as accessing records with type=BILL_PAYMENT.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
includeRemoved
boolean
modifiedSince
integer <int64>
contactId
integer <int64>
projectId
integer <int64>

Responses

Response samples

Content type
No sample

Add a bill payment to a business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
description
string
memo
string
exchangeRate
number <double>
contact
integer <int64>
currency
string
account
integer <int64>
date
string <date>
collaborationContext
integer <int64>
number
string
contactName
string
removed
boolean
readOnly
boolean
homeCurrency
string
project
integer <int64>
projectName
string
creation
string <date-time>
lastModified
string <date-time>
inboxReference
string
bankRecStatement
integer <int64>
unallocatedAmount
integer <int64>
Array of objects (PaymentAllocationOut)
creditAccount
integer <int64>
method
string
amount
integer <int64>
byCheck
boolean
Array of objects (CheckRegistryInfo)
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
foreignCurrency
boolean
Array of objects (RecordAttachmentInfo)
allowZeroAmounts
boolean
reconciled
boolean
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

List bills associated with this business.

This is the same as accessing records with type=BILL.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
amountGe
integer <int64>
amountLe
integer <int64>
exclude
string
status
string
object <date> (TransferDate)
Example: asOf=2023-12-25
sortColumn
string
sortOrder
string
includeRemoved
boolean
modifiedSince
integer <int64>
contactId
integer <int64>
category
integer <int64>
itemId
integer <int64>
productId
integer <int64>
projectId
integer <int64>

Responses

Response samples

Content type
No sample

Add a bill to a business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
description
string
memo
string
exchangeRate
number <double>
contact
integer <int64>
currency
string
account
integer <int64>
date
string <date>
collaborationContext
integer <int64>
number
string
contactName
string
removed
boolean
readOnly
boolean
homeCurrency
string
project
integer <int64>
projectName
string
creation
string <date-time>
lastModified
string <date-time>
inboxReference
string
bankRecStatement
integer <int64>
Array of objects (PaymentAllocationIn)
terms
string
dueDate
string <date>
poNumber
string
Array of objects (LegacyTaxEntryInfo)
totalDue
integer <int64>
balanceDue
integer <int64>
paid
boolean
exchangePayment
boolean
keepInOriginalCurrency
boolean
balanceDueFormatted
string
totalDueFormatted
string
totalBeforeTaxes
integer <int64>
Array of objects (RecordTaxAmount)
totalLocalDue
integer <int64>
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
totalPaidLater
integer <int64>
totalPaid
integer <int64>
paidInvoice
boolean
totalPaidImmediately
integer <int64>
income
boolean
foreignCurrency
boolean
Array of objects (RecordAttachmentInfo)
allowZeroAmounts
boolean
reconciled
boolean
Array of objects (LineItemInfo)
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Transfers

kashootsa

List transfers associated with this business.

This is the same as accessing records with type=TRANSFER.

path Parameters
business_id
required
integer <int64>
query Parameters
offset
integer <int32>
limit
integer <int32>
Default: 50
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
includeRemoved
boolean
modifiedSince
integer <int64>
contactId
integer <int64>
projectId
integer <int64>

Responses

Response samples

Content type
No sample

Add a transfer to a business.

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
description
string
memo
string
exchangeRate
number <double>
contact
integer <int64>
currency
string
account
integer <int64>
date
string <date>
collaborationContext
integer <int64>
number
string
contactName
string
removed
boolean
readOnly
boolean
homeCurrency
string
project
integer <int64>
projectName
string
creation
string <date-time>
lastModified
string <date-time>
inboxReference
string
bankRecStatement
integer <int64>
depositAccount
integer <int64>
depositCurrency
string
amount
integer <int64>
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"
foreignCurrency
boolean
Array of objects (RecordAttachmentInfo)
allowZeroAmounts
boolean
reconciled
boolean
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

OCR

Create transactions from images (OCR)

To create a batch of transactions with images which performs OCR on the images and save transaction details, follow the two steps below.

1) Upload attachments via blobstore

Call POST /blob/:namespace/:businessid/ and include multiple blobs in the payload. Once the POST is successfull your response will contain a list of (name, uuid).

See Attachments > Blobstore > Upload multiple blobs for a given businessId

2) Upsert shoebox items using the attachments ids

Call PUT /shoebox/businesses/{businessId}/items to upsert (update if exists, create if new) shoebox items created by the previous POST blobstore call. Remember to use the blob's uuid as the sourceId and set the source field as "upload". This call will create transactions , and they will be available in the Inbox (to review). These transactions must be posted manually.

See example payload below:

[{
    type: "document",
    source: "upload",
    state: "ready",
    sourceId: "550e8400-e29b-41d4-a716-446655440000", // uuid of the blob
    received: "2020-10-12T12:00U",
    data: {
      size: 120000, // file size in bytes
      mimeType: 'image/jpg',
      filename: 'walmart-receipt.jpg',
      lastModified: "2020-10-12T12:00U",
      date: "2020-10-12T12:00U"
    }
  }
]

See Transactions > Shoebox > Upserts a set of shoebox items

ℹ️ Note

OCR usages may be subject to separate usage charges in the future.

Create transactions from images (OCR)

To create a batch of transactions with images which performs OCR on the images and save transaction details, follow the two steps below.

1) Upload attachments via blobstore

Call POST /blob/:namespace/:businessid/ and include multiple blobs in the payload. Once the POST is successfull your response will contain a list of (name, uuid).

See Attachments > Blobstore > Upload multiple blobs for a given businessId

2) Upsert shoebox items using the attachments ids

Call PUT /shoebox/businesses/{businessId}/items to upsert (update if exists, create if new) shoebox items created by the previous POST blobstore call. Remember to use the blob's uuid as the sourceId and set the source field as "upload". This call will create transactions , and they will be available in the Inbox (to review). These transactions must be posted manually.

See example payload below:

[{
    type: "document",
    source: "upload",
    state: "ready",
    sourceId: "550e8400-e29b-41d4-a716-446655440000", // uuid of the blob
    received: "2020-10-12T12:00U",
    data: {
      size: 120000, // file size in bytes
      mimeType: 'image/jpg',
      filename: 'walmart-receipt.jpg',
      lastModified: "2020-10-12T12:00U",
      date: "2020-10-12T12:00U"
    }
  }
]

See Transactions > Shoebox > Upserts a set of shoebox items

ℹ️ Note

OCR usages may be subject to separate usage charges in the future.

Bank Feeds

kashootsa

Get all the bank feeds for a given business

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

manualRefresh

path Parameters
feed_id
required
integer <int64>

Responses

Update a bank feed by linking or unlinking accounts and retrieving transactions as needed.

path Parameters
feed_id
required
integer <int64>
Request Body schema: application/json
id
integer <int64>
business
integer <int64>
state
string
Enum: "OK" "LOCKED_OUT" "NEEDS_EDIT" "REFRESHING"
lastRefreshed
string <date-time>
creationDate
string <date-time>
displayName
string
identifier
string
provider
string
Enum: "YODLEE" "PLAID" "DEMOFEED"
errorCode
string
errorMessage
string
groupName
string
refreshProgress
number <double>
Array of objects (BankFeedAccountInfo)

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "business": 0,
  • "state": "OK",
  • "lastRefreshed": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "displayName": "string",
  • "identifier": "string",
  • "provider": "YODLEE",
  • "errorCode": "string",
  • "errorMessage": "string",
  • "groupName": "string",
  • "refreshProgress": 0.1,
  • "bankFeedAccountInfos": [
    ]
}

Deletes a bank feed for a given business.

path Parameters
feed_id
required
integer <int64>

Responses

simpleRefresh

path Parameters
feed_id
required
integer <int64>

Responses

Creates a link token for launching Plaid Link from a client

path Parameters
business_id
required
integer <int64>
query Parameters
locales
Array of strings
customizationName
string
language
string
redirectUrl
string

Responses

Response samples

Content type
application/json
{
  • "expiration": "string",
  • "link_token": "string"
}

Creates a link token for launching Plaid Link to update a bank feed connection

path Parameters
business_id
required
integer <int64>
feed_id
required
integer <int64>
query Parameters
locales
Array of strings
customizationName
string
language
string
redirectUrl
string

Responses

Response samples

Content type
application/json
{
  • "expiration": "string",
  • "link_token": "string"
}

Posts a response from a Plaid Link add operation so that the associated bank connection can be created.

path Parameters
business_id
required
integer <int64>
Request Body schema: application/json
required
publicToken
string

Responses

Request samples

Content type
application/json
{
  • "publicToken": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "business": 0,
  • "state": "OK",
  • "lastRefreshed": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "displayName": "string",
  • "identifier": "string",
  • "provider": "YODLEE",
  • "errorCode": "string",
  • "errorMessage": "string",
  • "groupName": "string",
  • "refreshProgress": 0.1,
  • "bankFeedAccountInfos": [
    ]
}

getFastlink3AddInfo

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "url": "string",
  • "jwt": "string"
}

getFastlink3EditInfo

path Parameters
business_id
required
integer <int64>
feed_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "url": "string",
  • "jwt": "string",
  • "params": {
    }
}

getFastlink3RefreshInfo

path Parameters
business_id
required
integer <int64>
feed_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "url": "string",
  • "jwt": "string",
  • "params": {
    }
}

processFastlink3CallbackInfo

path Parameters
business_id
required
integer <int64>
Request Body schema: application/json
additionalStatus
string
bankName
string
fnToCall
string
providerAccountId
integer <int64>
providerId
integer <int64>
requestId
string
status
string
operation
string

Responses

Request samples

Content type
application/json
{
  • "additionalStatus": "string",
  • "bankName": "string",
  • "fnToCall": "string",
  • "providerAccountId": 0,
  • "providerId": 0,
  • "requestId": "string",
  • "status": "string",
  • "operation": "string"
}

Bank Reconciliations

Calculate potential reconciliation change

Calculates the effect of changing the reconciled journal entries for a bank reconciliation statement without actually updating the statement. This is useful for previewing changes before committing.

path Parameters
statement_id
required
integer <int64>
Request Body schema:
reconciled
Array of integers <int64> [ items <int64 > ]

Array of journal entry IDs that are reconciled for the given statement

Responses

Request samples

Content type
{
  • "reconciled": [
    ]
}

Response samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Create a statement

Creates a new bank reconciliation statement for the specified business.

Request Body schema:
id
integer <int64>

Id for the statement

business
integer <int64>

Business that owns this statement

account
integer <int64>

Account associated with this statement

startDate
string <date>

Start date of the statement period

endDate
string <date>

End date of the statement period

currency
string

Currency code for the amounts in this object

startBalance
integer <int64>

Opening balance at the start of the statement period

endBalance
integer <int64>

Closing balance at the end of the statement period

notes
string

Additional notes or comments about the statement

reconciled
boolean

Whether this statement has been reconciled

reconciledBy
integer <int64>

User who performed the reconciliation

entryCount
integer <int64>

Total number of journal entries matched to this statement

debitCount
integer <int64>

Number of debits matched to this statement

creditCount
integer <int64>

Number of credits matched to this statement

totalDebits
integer <int64>

Total amount of all debits

totalCredits
integer <int64>

Total amount of all credits

offByAmount
integer <int64>

Difference between expected and actual balance during reconciliation

canReconcile
boolean

Whether this statement can be reconciled

removed
boolean

Whether this statement has been marked as removed

Responses

Request samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Response samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Get statement

Retrieves the details of a specific bank reconciliation statement by its ID. The statement data is enriched with additional journal entry total data.

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Update a statement

Updates the properties of a bank reconciliation statement, including reconciling or unreconciling it.

path Parameters
statement_id
required
integer <int64>
Request Body schema:
id
integer <int64>

Id for the statement

business
integer <int64>

Business that owns this statement

account
integer <int64>

Account associated with this statement

startDate
string <date>

Start date of the statement period

endDate
string <date>

End date of the statement period

currency
string

Currency code for the amounts in this object

startBalance
integer <int64>

Opening balance at the start of the statement period

endBalance
integer <int64>

Closing balance at the end of the statement period

notes
string

Additional notes or comments about the statement

reconciled
boolean

Whether this statement has been reconciled

reconciledBy
integer <int64>

User who performed the reconciliation

entryCount
integer <int64>

Total number of journal entries matched to this statement

debitCount
integer <int64>

Number of debits matched to this statement

creditCount
integer <int64>

Number of credits matched to this statement

totalDebits
integer <int64>

Total amount of all debits

totalCredits
integer <int64>

Total amount of all credits

offByAmount
integer <int64>

Difference between expected and actual balance during reconciliation

canReconcile
boolean

Whether this statement can be reconciled

removed
boolean

Whether this statement has been marked as removed

Responses

Request samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Response samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Delete a statement

Deletes a bank reconciliation statement if it is the last unreconciled statement with no entries.

path Parameters
statement_id
required
integer <int64>

Responses

Get bank entries for the statement

Retrieves the ids of journal entries for bank feed and ofx upload transactions that are part of this statement's account, regardless of whether they have been matched or not. This allows the client to offer the user the ability to match these entries to the statement.

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "entries": [
    ]
}

Get change history

Gets the list of changes that have been made to this statement.

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get reconciled entries for a statement

Retrieves the reconciled journal entry ids for a bank reconciliation statement

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "reconciled": [
    ]
}

Get entries for a statement

Retrieves the available and reconciled journal entries for a statement based on the filters provided.

path Parameters
statement_id
required
integer <int64>
query Parameters
includeAvailable
boolean
Default: false

Include available journal entries in the response

excludeReconciled
boolean
Default: false

Exclude reconciled journal entries from the response

object <date> (TransferDate)
Example: startDate=2023-12-25

Filter journal entries by start date

object <date> (TransferDate)
Example: endDate=2023-12-25

Filter journal entries by end date

search
string

Search term to filter journal entries

amountGe
integer <int64>

Filter journal entries with amount greater than or equal to this value

amountLe
integer <int64>

Filter journal entries with amount less than or equal to this value

type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE" "INVENTORY_ADJUSTMENT" "ESTIMATE"

Filter journal entries by record type(s)

contactId
integer <int64>

Filter journal entries by contact id.

itemId
integer <int64>

Filter journal entries by inventory item/product id.

productId
integer <int64>

Filter journal entries by inventory item/product id.

projectId
integer <int64>

Filter journal entries by project id.

category
integer <int64>

Filter journal entries by line item category account id.

sortColumn
string

Column to sort journal entries by

sortOrder
string

Sort order (asc/desc)

limit
integer <int32>
Default: 50

Maximum number of available journal entries

offset
integer <int32>
Default: 0

Number of available journal entries to skip

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Update reconciled journal entries for a statement

Updates the reconciled journal entries for a bank reconciliation statement and saves the results. The reconciled journal entry list should include all the currently reconciled journal entries

path Parameters
statement_id
required
integer <int64>
Request Body schema:
reconciled
Array of integers <int64> [ items <int64 > ]

Array of journal entry IDs that are reconciled for the given statement

Responses

Request samples

Content type
{
  • "reconciled": [
    ]
}

Response samples

Content type
{
  • "id": 12345,
  • "business": 67890,
  • "account": 54321,
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "currency": "USD",
  • "startBalance": 150000,
  • "endBalance": 175000,
  • "notes": "Monthly statement - all transactions reconciled",
  • "reconciled": true,
  • "reconciledBy": 98765,
  • "entryCount": 125,
  • "debitCount": 75,
  • "creditCount": 50,
  • "totalDebits": 300000,
  • "totalCredits": 325000,
  • "offByAmount": 0,
  • "canReconcile": true,
  • "removed": false
}

Get statement report

Generates a report for the specified bank reconciliation statement. The returned object is designed to be used to render a report document from a mustache template.

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "businessName": "Acme Corporation",
  • "accountName": "Business Checking Account",
  • "startDate": "2024-01-01",
  • "endDate": "2024-01-31",
  • "reportDate": "2024-02-01",
  • "currency": "USD",
  • "startBalance": "1,234.56",
  • "endBalance": "2,345.67",
  • "matchedEndBalance": "2,100.00",
  • "generalLedgerEndBalance": "2,345.67",
  • "notes": "Monthly reconciliation completed with minor adjustments",
  • "status": "Reconciled",
  • "reconciledBy": "John Smith",
  • "creditCount": 15,
  • "debitCount": 23,
  • "creditLabel": "Deposits",
  • "debitLabel": "Withdrawals",
  • "totalCredits": "5,432.10",
  • "totalDebits": "4,320.99",
  • "totalMatched": "9,500.00",
  • "offByAmount": "0.0",
  • "matched": [
    ],
  • "unmatchedCredits": [
    ],
  • "unmatchedDebits": [
    ]
}

Get statements

Returns a list of bank reconciliation statements for the specified business, optionally filtered by account ID, reconciliation status, and date range.

path Parameters
business_id
required
integer <int64>
query Parameters
account
integer <int64>

Filter by account ID

reconciled
string

Filter by reconciliation status

limit
integer <int32>
Default: 50

Maximum number of results

offset
integer <int32>
Default: 0

Number of results to skip

object <date> (TransferDate)
Example: startDate=2023-12-25

Filter by start date

object <date> (TransferDate)
Example: endDate=2023-12-25

Filter by end date

Responses

Response samples

Content type
{
  • "count": 0,
  • "limit": 0,
  • "offset": 0,
  • "results": [
    ]
}

Get suggested journal entries for quick reconciliation

Retrieves the ids of the suggested journal entries for quick reconciliation of the statement. This does not actually reconcile the statement, but provides suggestions based on available journal entries.

path Parameters
statement_id
required
integer <int64>

Responses

Response samples

Content type
{
  • "entries": [
    ]
}

Currencies

kashootsa

View a single currency

Returns the currency identified by the given 3-digit ISO currency code

path Parameters
code
required
string

Responses

Response samples

Content type
No sample

List all currencies

Returns a list of currencies defined in our system. The main use of currency information is for formatting purposes, since this will tell you the number of decimal places, the type of decimal to use, and any prefix/suffix that are appropriate.

Responses

Response samples

Content type
No sample

Exchange Rates

kashootsa

Get Exchange Rates

Returns exchange rates

header Parameters
Authorization
string

Example: foo

Responses

Response samples

Content type
application/json
{
  • "base": "string",
  • "date": "string",
  • "rates": {
    },
  • "source": "string"
}

Taxes

kashootsa

List taxes associated with the business

Providing version == 2 will return a TaxCompositeInfo, else a LegacyTaxInfo

path Parameters
business_id
required
integer <int64>
query Parameters
version
integer <int32>

Responses

Response samples

Content type
[
  • {
    }
]

List taxes associated with the business

path Parameters
business_id
required
integer <int64>
Request Body schema:
string

Responses

Request samples

Content type
No sample

Response samples

Content type
[
  • {
    }
]

Get a tax

path Parameters
tax_id
required
integer <int64>
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Delete a tax

path Parameters
tax_id
required
integer <int64>
business_id
required
integer <int64>

Responses

Update a tax

path Parameters
tax_id
required
integer <int64>
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
description
string
lazyRounding
boolean
system
boolean
removed
boolean
archived
boolean
canBeRegistered
boolean
canBeRecovered
boolean
registeredDefault
boolean
recoveredDefault
boolean
Array of objects (TaxRateInfo)
object (BusinessTaxAccountConfigInfo)
Array of objects (BusinessTaxConfigInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Updates a tax config

path Parameters
rate_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Add tax rate to a business

path Parameters
rate_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Get a tax

path Parameters
rate_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Delete a tax

path Parameters
rate_id
required
integer <int64>

Responses

Update a tax

path Parameters
rate_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
description
string
lazyRounding
boolean
system
boolean
removed
boolean
archived
boolean
canBeRegistered
boolean
canBeRecovered
boolean
registeredDefault
boolean
recoveredDefault
boolean
Array of objects (TaxRateInfo)
object (BusinessTaxAccountConfigInfo)
Array of objects (BusinessTaxConfigInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Get change history

Gets the list of changes that have been made to this record.

path Parameters
rate_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Remove a tax config

path Parameters
config_id
required
integer <int64>
rate_id
required
integer <int64>

Responses

Update a tax config

path Parameters
config_id
required
integer <int64>
rate_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove a tax rate

path Parameters
rate_id
required
integer <int64>
rate_id
required
integer <int64>

Responses

Updates a tax rate

path Parameters
rate_id
required
integer <int64>
rate_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Tax Config

kashootsa

Updates a tax config

path Parameters
tax_id
required
integer <int64>
business_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove a tax config

path Parameters
config_id
required
integer <int64>
tax_id
required
integer <int64>
business_id
required
integer <int64>

Responses

Update a tax config

path Parameters
config_id
required
integer <int64>
tax_id
required
integer <int64>
business_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Updates a tax config

path Parameters
rate_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove a tax config

path Parameters
config_id
required
integer <int64>
rate_id
required
integer <int64>

Responses

Update a tax config

path Parameters
config_id
required
integer <int64>
rate_id
required
integer <int64>
query Parameters
createAccounts
boolean
Default: false
Request Body schema:
id
integer <int64>
object (BusinessTaxAccountConfigInfo)
includeInCost
boolean
registered
boolean
recoverable
boolean
startDate
string <date>
endDate
string <date>
registrationNumber
string
archived
boolean
removed
boolean
actualEndDate
string <date>
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Tax Rates

kashootsa

Add tax rate to a business

path Parameters
tax_id
required
integer <int64>
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove a tax rate

path Parameters
rate_id
required
integer <int64>
tax_id
required
integer <int64>
business_id
required
integer <int64>

Responses

Updates a tax rate

path Parameters
rate_id
required
integer <int64>
tax_id
required
integer <int64>
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Add tax rate to a business

path Parameters
rate_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Remove a tax rate

path Parameters
rate_id
required
integer <int64>
rate_id
required
integer <int64>

Responses

Updates a tax rate

path Parameters
rate_id
required
integer <int64>
rate_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
startDate
string <date>
endDate
string <date>
compound
boolean
archived
boolean
removed
boolean
Array of objects (RegionInfo)
object (Period)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Tax Codes

kashootsa

List tax codes associated with the business

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Update a business tax codes

path Parameters
business_id
required
integer <int64>
Request Body schema:
Array
id
integer <int64>
business
integer <int64>
name
string
description
string
expansion
string
taxSystem
string
income
boolean
removed
boolean
blank
boolean
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Add a taxCode to a business

path Parameters
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
description
string
expansion
string
taxSystem
string
income
boolean
removed
boolean
blank
boolean
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Get tax code information

path Parameters
taxCode_id
required
integer <int64>

Responses

Update tax code information

path Parameters
taxCode_id
required
integer <int64>
Request Body schema:
id
integer <int64>
business
integer <int64>
name
string
description
string
expansion
string
taxSystem
string
income
boolean
removed
boolean
blank
boolean
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Removes a tax code

path Parameters
taxCode_id
required
integer <int64>

Responses

Invoice Payments

kashootsa

Gets payment processors for a business

Gets all of the payment processors defined for a business.

Responses

Initiate an Invoice Payment

path Parameters
paymentAttemptId
required
string

paymentAttemptId

Responses

Fetch Payment Requisition

Initiate a Payment

path Parameters
paymentRequisitionId
required
string

paymentRequisitionId

Responses

Accept Payments

Endpoint for accepting payments from end customers

Responses

Submit payment to an invoice

Endpoint function for accepting adhoc payment requests from Books users directly

path Parameters
businessId
required
string

businessId

invoiceId
required
string

invoiceId

Responses

Initiate an Invoice Payment

path Parameters
id
required
string

Invoice payment ID

Responses

File Inbox

kashootsa

Process file event

Endpoint for receiving file events from BrickFTP via web callback

Responses

Blobstore

kashootsa

Upload multiple blobs for a given businessId

Upload blob(s) to a particular business, given a namespace and businessId

header Parameters
Authorization
string

Example: foo

Request Body schema: multipart/form-data
required
file
required
string <binary>

Blob

Responses

Delete a particular blob

Delete a particular blob, given a namespace, businessId and uuid

header Parameters
Authorization
string

Example: foo

Responses

Get a blob

Returns the blob given a namespace, businessId and uuid

header Parameters
Authorization
string

Example: foo

Responses

Get a blob's metadata

Returns the blob's metadata given a namespace, businessId and uuid

header Parameters
Authorization
string

Example: foo

Responses

Upload a blob to a particular uuid

Upload a blob to a particular uuid, given a namespace, businessId and uuid

header Parameters
Authorization
string

Example: foo

Request Body schema: multipart/form-data
required
file
required
string <binary>

Blob

Responses

Upload a blob to a particular uuid

Upload a blob to a particular uuid, given a namespace, businessId and uuid

header Parameters
Authorization
string

Example: foo

Request Body schema: multipart/form-data
required
file
required
string <binary>

Blob

Responses

Reports

kashootsa

Generates an aged payables report.

Generates an aged payables report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: endDate=2023-12-25
project
integer <int64>

Responses

Response samples

Content type
No sample

Generates an aged receivables report.

Generates an aged receivables report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: endDate=2023-12-25
project
integer <int64>

Responses

Response samples

Content type
No sample

Generates a balance sheet.

Generates a balance sheet report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: endDate=2023-12-25
periods
integer <int32>
multicurrency
boolean
summary
boolean

Responses

Response samples

Content type
No sample

Generates bills mini report.

Generates a mini report on bills for the business. This is a shorter report that can be used as a summary.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "fiscalYearTotalAmount": 0,
  • "dueThisWeekAmount": 0,
  • "currentAmount": 0,
  • "unpaidInvoicesAmount": 0,
  • "pastDueInvoicesAmount": 0,
  • "averageDaysToPay": 0.1
}

Export chart of accounts

Exports the chart of accounts for the business in the requested format.

path Parameters
business_id
required
integer <int64>
query Parameters
sortColumn
string
Default: "number"

'name', 'number', 'taxAuthorityCode', 'balance'

sortOrder
string
Default: "asc"

'asc' or 'desc'

header Parameters
Accept
string

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "accounts": [
    ],
  • "hasChildAccounts": true
}

Generates a debit & credit report.

Generates a debit and credit report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
periods
integer <int32>
accountTypes
Array of strings unique
Items Enum: "ACCOUNTS_RECEIVABLE" "ACCOUNTS_PAYABLE" "BANK" "COST_OF_GOODS_SOLD" "CREDIT_CARD" "EQUITY" "EXPENSE" "FIXED_ASSET" "INCOME" "GAIN_OR_LOSS_ON_EXCHANGE" "LONG_TERM_LIABILITY" "OTHER_CURRENT_ASSET" "OTHER_CURRENT_LIABILITY" "OTHER_ASSET" "TAXES" "CASH" "RETAINED_EARNINGS" "PREPAID_EXPENSE" "CLIENT_CREDIT" "INVENTORY" "PAYROLL_TAX"

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "dateRanges": [
    ],
  • "formattedDateRangeLabels": [
    ],
  • "columnBalanceLabels": [
    ],
  • "debitCreditBalanceGroup": {
    },
  • "numberOfColumns": 0
}

Generates estimates mini report.

Generates a mini report on estimates for the business. This is a shorter report that can be used as a summary.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "fiscalYearTotalAmount": 0,
  • "dueThisWeekAmount": 0,
  • "currentAmount": 0,
  • "unpaidInvoicesAmount": 0,
  • "pastDueInvoicesAmount": 0,
  • "averageDaysToPay": 0.1
}

Generates a general ledger report.

Generates an general ledger report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
startDate
string

Start date for the report

endDate
string

End date for the report

accounts
string

A set of ids of the accounts to include in the report. If missing, all are included

excludeEmpty
string

Whether accounts without transactions should be excluded from the report

sort
string

Whether to sort the report by account name (default) or number

object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
accounts
Array of integers <int64> unique [ items <int64 > ]
excludeEmpty
boolean
sort
string
header Parameters
Accept
string

Responses

Response samples

Content type
No sample

Generates a GIFI balance report.

Generates a report of account balances for this business grouped by their GIFI codes. Only applies to Canadian businesses at the moment. Can be exported to CSV or to a GIFI file.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: date=2023-12-25
sortColumn
string
sortOrder
string
header Parameters
Accept
string

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "balances": [
    ]
}

Generates an income statement report.

Generates an income statement report for the business. It returns TSA report format

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
periods
integer <int32>
multicurrency
boolean
ascending
boolean
project
integer <int64>
groupBy
string
focus
string
sortColumn
string
hideChildAccounts
boolean
header Parameters
Accept
string

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "dateRanges": [
    ],
  • "formattedDateRangeLabels": [
    ],
  • "columnBalanceLabels": [
    ],
  • "incomeAccountBalanceGroup": {
    },
  • "expenseAccountBalanceGroup": {
    },
  • "cogsAccountBalanceGroup": {
    },
  • "grossProfitTotals": {
    },
  • "netIncomeTotals": {
    },
  • "numberOfColumns": 0,
  • "incomeAccountBalanceGroups": [
    ],
  • "expenseAccountBalanceGroups": [
    ]
}

Generates an inventory on hand report.

Generates a report of the inventory items on hand on a given date.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25
sortColumn
string

'averagePrice', 'itemName', 'quantity', 'totalValue'

sortOrder
string

'asc' or 'desc'

header Parameters
Accept
string

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "asOfDate": "2023-12-25",
  • "formattedAsOfDate": "string",
  • "items": [
    ],
  • "totalValue": 0,
  • "formattedTotalValue": "string"
}

Generates invoices mini report.

Generates a mini report on invoices for the business. This is a shorter report that can be used as a summary.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "fiscalYearTotalAmount": 0,
  • "dueThisWeekAmount": 0,
  • "currentAmount": 0,
  • "unpaidInvoicesAmount": 0,
  • "pastDueInvoicesAmount": 0,
  • "averageDaysToPay": 0.1
}

Generates item mini report.

Generates a mini report on an inventory item for the business.

path Parameters
item_id
required
integer <int64>
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "stockQuantity": 0,
  • "stockAveragePrice": 0,
  • "inventoryValue": 0,
  • "shrinkageValue": 0,
  • "salesYearToDate": 0,
  • "purchasesYearToDate": 0,
  • "estimatesPendingTotal": 0,
  • "stockAveragePriceFormatted": "string",
  • "inventoryValueFormatted": "string",
  • "shrinkageValueFormatted": "string",
  • "salesYearToDateFormatted": "string",
  • "purchasesYearToDateFormatted": "string",
  • "estimatesPendingTotalFormatted": "string"
}

Generates an item sales and purchase report.

Generates a report of item sales and purchases over a given period.

path Parameters
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
includePurchases
boolean
includeSales
boolean
tracked
string

include only tracked or only untracked items

sortColumn
string

'averagePrice', 'itemName', 'name', 'quantity', 'amount', 'totalAmount'

sortOrder
string

'asc' or 'desc'

header Parameters
Accept
string

Responses

Response samples

Content type
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "startDate": "2023-12-25",
  • "endDate": "2023-12-25",
  • "formattedStartDate": "string",
  • "formattedEndDate": "string",
  • "formattedReportDateRange": "string",
  • "purchasesCogs": [
    ],
  • "purchasesExpense": [
    ],
  • "sales": [
    ],
  • "totalSales": 0,
  • "formattedTotalSales": "string",
  • "totalPurchases": 0,
  • "formattedTotalPurchases": "string",
  • "hasPurchasesCogs": true,
  • "hasPurchasesExpense": true,
  • "hasSales": true
}

Generates project mini report.

Generates a mini report on project for the business. This is a short summary of the project.

path Parameters
project_id
required
integer <int64>
business_id
required
integer <int64>
query Parameters
object <date> (TransferDate)
Example: asOf=2023-12-25

Responses

Response samples

Content type
application/json
{
  • "businessName": "string",
  • "reportCreationDate": "2023-12-25",
  • "formattedReportCreationDate": "string",
  • "description": "string",
  • "currencyCode": "string",
  • "outstandingARAmount": 0,
  • "outstandingAPAmount": 0,
  • "currentNetIncomeAmount": 0,
  • "overallNetIncomeAmount": 0,
  • "pendingEstimatesAmount": 0
}

Generates a sales tax report.

Generates a sales tax report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: startDate=2023-12-25
object <date> (TransferDate)
Example: endDate=2023-12-25
taxIds
Array of integers <int64> unique [ items <int64 > ]

Responses

Response samples

Content type
No sample

Generates a trial balance report.

Generates a trial balance report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object <date> (TransferDate)
Example: endDate=2023-12-25
periods
integer <int32>
accountTypes
Array of strings unique
Items Enum: "ACCOUNTS_RECEIVABLE" "ACCOUNTS_PAYABLE" "BANK" "COST_OF_GOODS_SOLD" "CREDIT_CARD" "EQUITY" "EXPENSE" "FIXED_ASSET" "INCOME" "GAIN_OR_LOSS_ON_EXCHANGE" "LONG_TERM_LIABILITY" "OTHER_CURRENT_ASSET" "OTHER_CURRENT_LIABILITY" "OTHER_ASSET" "TAXES" "CASH" "RETAINED_EARNINGS" "PREPAID_EXPENSE" "CLIENT_CREDIT" "INVENTORY" "PAYROLL_TAX"

Responses

Response samples

Content type
No sample

Report Generator

Notifications

tsa

Get a particular alert subscription

path Parameters
alert_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "business": 0,
  • "user": 0,
  • "alertType": "ALERT_TYPE_BANK_FEED_UPDATE",
  • "deliveryMethod": "DELIVERY_METHOD_EMAIL",
  • "timezone": "string"
}

Unsubscribes for an alert on the business.

path Parameters
alert_id
required
integer <int64>

Responses

Get the vapid public key for web push notification subscriptions

Responses

Subscribes the user for web push notifications

Request Body schema:
endpoint
string
object (Keys)

Responses

Request samples

Content type
No sample

Allows callers to check if the user has already subscribed for web push notifications

Responses

Handle email notification events

Handles events to process and send notifications by email.

Responses

References

kashootsaHelpful endpoints including getting a list of countries, country regions and currencies

Get a single country

Get details of a single country by using the ISO code.

path Parameters
ISOCode
required
string

Responses

Response samples

Content type
No sample

Get country regions

Get all the regions of a specified country

path Parameters
ISOCode
required
string

Responses

Response samples

Content type
No sample

Get a currency

Get details about a single currency

path Parameters
code
required
string

Responses

Response samples

Content type
No sample

Get all currencies

Gets a list of currencies registered in our database

Responses

Response samples

Content type
No sample

Get a list of countries

Returns a list of countries based on the optional filter parameter.

query Parameters
filter
string
Default: "ALL"
Enum: "ALL" "SUPPORTED"

Responses

Response samples

Content type
No sample

Get supported banks

Gets a list of banks supported in our platform

query Parameters
term
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]