API Documentation (1.0.0)

Kashoo API Documentation (1.0.0)

Download OpenAPI specification:Download

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

Login Required

Before you begin consuming our API, please remember to register for an account at https://app.kashoo.com.

API Authorization

Once registered, verified and logged in, you can visit your network log in your favourite browser and inspect the Authorization http header. The contents of the header should be in the structure:

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

Example of a curl command using the authorization http header

$ curl 'https://app.kashoo.net/api/users/me' \
    -H 'authority: app.kashoo.net' \
    -H 'accept: application/json' \
    -H 'accept-language: en-US,en;q=0.9' \
    -H 'authorization: TOKEN json:{"authenticationCode":"asdasdasdad=","expiryDate":1698789858551,"locale":"default","myUserId":123456,"restriction":null,"site":"app.kashoo.net"}' \
    -H 'cache-control: no-cache' \
    -H 'cookie: ajs_user_id=33127134229; ajs_anonymous_id=%2254be0f28-28c8-458a-b2cf-c3644f28d151%22; intercom-device-id-ru1jzcf6=0f8a72d7-7970-4d61-9869-ba33ae902fe6; intercom-device-id-ozuis1bl=ed602266-4732-4748-9f0b-2459ddac5853; _ga_CY4PWDCG1M=GS1.1.1687542225.9.0.1687542225.60.0.0; _ga_PC87G4ED5E=GS1.1.1689609810.40.1.1689609926.0.0.0; CF_Authorization=eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc4NjU2Mjk1ZmIyYzg2YjlhZDZmMjNkNWQ2NDcyMWNhMmJlYTA4MWI0ZTQ0MGNjYTJkYzM1MzU2ZmE4YzU1NTYifQ.eyJhdWQiOlsiYjQzYjc0ZmJlZjJhOWMxNmVmZTA5ZTAxMGE5YzNiMDUzZWM2NjhjOGQzODY4YjUyMmFkZGIzYzUyZDQ4ZWFmNSJdLCJlbWFpbCI6Im15a29uZS5zYXVuZGVyc0BrYXNob28uY29tIiwiZXhwIjoxNjk4MTg1MDQ4LCJpYXQiOjE2OTc1ODAyNDgsIm5iZiI6MTY5NzU4MDI0OCwiaXNzIjoiaHR0cHM6Ly9rYXNob28uY2xvdWRmbGFyZWFjY2Vzcy5jb20iLCJ0eXBlIjoiYXBwIiwiaWRlbnRpdHlfbm9uY2UiOiIzZjVsalpPaHNuU3k4bVl3Iiwic3ViIjoiMDI3NGIyYzQtYjQwMC00MGU3LWFjZjgtNmYwYmUxMzk0MzVhIiwiY291bnRyeSI6IkNBIn0.Mv8XCtNf5Vu3mazxv0HcV7Or9-lj_LmPHnS8PdqkxVBGnxYxkLGviQJ0uky4-QpyC5tJUV8uJu9WWlwCcJSiIqWBnUn7MzX5wM9FdzbivTonnhsn9n6yaFe2Umr4-MM4bTKkBWpQvVIvtjoc_1fCqfpsomyTF1I_o-ibL9GEcnubK13L1a2WhNj_M5Qiz78XKfc5y4YNSKDcskm5wCWV_HxXTlobVAMWGIoylTHsJehkzjiYR85j8liNITmTSDa4YcEv4ewUWoKfnOI8D6FLS1o_BjF_hIulJxpcRQmHWlNSpASqwwOggPXL13dHnijEVf0qBGcjpwqLAnTO-0rltA; books.auth="%7B%22authenticationCode%22%3A%22AyYz56icCUu5WkyY5tipKE9Y33s%3D%22%2C%22expiryDate%22%3A1698789858551%2C%22locale%22%3A%22default%22%2C%22myUserId%22%3A33127134229%2C%22restriction%22%3Anull%2C%22site%22%3A%22app.kashoo.net%22%7D"; _gcl_au=1.1.1070748686.1697580278; _gid=GA1.2.587057302.1697580278; _ga=GA1.2.336009730.1676480183; _ga_SCZS8PWQCV=GS1.1.1697733824.105.1.1697733859.0.0.0; ajs_group_id=; __tld__=' \
    -H 'pragma: no-cache' \
    -H 'referer: https://app.kashoo.net/tsb/business/33127134234/dashboard' \
    -H 'sec-ch-ua: "Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"' \
    -H 'sec-ch-ua-mobile: ?0' \
    -H 'sec-ch-ua-platform: "macOS"' \
    -H 'sec-fetch-dest: empty' \
    -H 'sec-fetch-mode: cors' \
    -H 'sec-fetch-site: same-origin' \
    -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
    -H 'vnd-kashoo-client-name: shoebox-web-app' \
    -H 'vnd-kashoo-client-version: 09dbe5e' \
    --compressed

Product identification markers

The API endpoints also indicate which of our accounting products are supported by indicating one or both of the following product markers.

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

Users

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

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
object (TransferDate)
object (TransferDate)
object (TransferDate)
lastLogin
string <date-time>
serviceProvider
integer <int64>
serviceProviderAdmin
boolean
allowSelectionOfNonStandardAccounts
boolean
inviteCode
string
email
string
name
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

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
last
string
email
string
password
string
additionalParams
string
Default: ""
site
string
lc
string
Default: "en_US"
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: ""
site
string
lc
string
Default: "en_US"
duration
integer <int64>
Default: 86400000

Responses

Groups

kashootsa

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

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

@inject_tag: json:"appId"

originalId
string

@inject_tag: json:"originalId" // original_transaction_id for Apple, OrderID for Google, subscription.id for chargebee

platformProductId
string

@inject_tag: json:"platformProductId" // productId for google , ie: com.trulysmall.invoices. PlanID for chargebee, ProductID for Apple

purchaseToken
string

@inject_tag: json:"purchaseToken" // Base64-encoded receipt data for App Store (Apple); Purchase Token for the Play Store (Google); hostedPageID for chargebee as it doesn't provide anything.

store
required
string

@inject_tag: validate:"required" swaggertype:"string"

subscriberId
string

@inject_tag: json:"subscriberId" // businessId

subscriptionApplication
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string"

userEmail
string

@inject_tag: json:"userEmail"

userId
string

@inject_tag: json:"userId"

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "originalId": "string",
  • "platformProductId": "string",
  • "purchaseToken": "string",
  • "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

@inject_tag: json:"couponId"

object (github_com_Kashoo_accounting-api-gateway_internal_common_proto_serverpbv3.ChargeBeeCustomer)
subscriberId
required
string

@inject_tag: json:"subscriberId" validate:"required" // fusionauth ID

subscriptionApplication
required
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string" validate:"required"

subscriptionPlanId
required
string

@inject_tag: json:"subscriptionPlanId" validate:"required"

userId
required
string

@inject_tag: json:"userId" validate:"required"

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

subscriberId
string

@inject_tag: json:"subscriberId" // fusionauth ID

subscriptionApplication
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string"

Responses

Request samples

Content type
application/json
{
  • "subscriberId": "string",
  • "subscriptionApplication": "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

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

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
[
  • {
    }
]

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
object (TransferDate)
object (TransferDate)
removed
boolean
feed
integer <int64>
readOnly
boolean
taxNumber
integer <int64>
taxAuthorityCode
string
archived
boolean
normalBalanceCredit
boolean
system
boolean
parent
integer <int64>
nameAndNumber
string
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Activate a user's business

Request Body schema: application/x-www-form-urlencoded
campaign
string
site
string

Responses

Get the list of businesses the user has access to

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

Responses

Businesses

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

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
[
  • {
    }
]

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
object (TransferDate)
object (TransferDate)
removed
boolean
feed
integer <int64>
readOnly
boolean
taxNumber
integer <int64>
taxAuthorityCode
string
archived
boolean
normalBalanceCredit
boolean
system
boolean
parent
integer <int64>
nameAndNumber
string
lastModified
integer <int64>
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Activate a user's business

Request Body schema: application/x-www-form-urlencoded
campaign
string
site
string

Responses

Get the list of businesses the user has access to

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

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

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

@inject_tag: json:"appId"

originalId
string

@inject_tag: json:"originalId" // original_transaction_id for Apple, OrderID for Google, subscription.id for chargebee

platformProductId
string

@inject_tag: json:"platformProductId" // productId for google , ie: com.trulysmall.invoices. PlanID for chargebee, ProductID for Apple

purchaseToken
string

@inject_tag: json:"purchaseToken" // Base64-encoded receipt data for App Store (Apple); Purchase Token for the Play Store (Google); hostedPageID for chargebee as it doesn't provide anything.

store
required
string

@inject_tag: validate:"required" swaggertype:"string"

subscriberId
string

@inject_tag: json:"subscriberId" // businessId

subscriptionApplication
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string"

userEmail
string

@inject_tag: json:"userEmail"

userId
string

@inject_tag: json:"userId"

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "originalId": "string",
  • "platformProductId": "string",
  • "purchaseToken": "string",
  • "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

@inject_tag: json:"couponId"

object (github_com_Kashoo_accounting-api-gateway_internal_common_proto_serverpbv3.ChargeBeeCustomer)
subscriberId
required
string

@inject_tag: json:"subscriberId" validate:"required" // fusionauth ID

subscriptionApplication
required
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string" validate:"required"

subscriptionPlanId
required
string

@inject_tag: json:"subscriptionPlanId" validate:"required"

userId
required
string

@inject_tag: json:"userId" validate:"required"

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

subscriberId
string

@inject_tag: json:"subscriberId" // fusionauth ID

subscriptionApplication
string

@inject_tag: json:"subscriptionApplication" swaggertype:"string"

Responses

Request samples

Content type
application/json
{
  • "subscriberId": "string",
  • "subscriptionApplication": "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

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 (TransferDate)
object (TransferDate)
offset
integer <int32>
limit
integer <int32>
Default: 50

Responses

Response samples

Content type
No sample

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

Contacts

kashootsa

Gets contact statement

path Parameters
contact_id
required
integer <int64>
query Parameters
object (TransferDate)
memo
string

Responses

Response samples

Content type
No sample

Gets contact activity report

path Parameters
contact_id
required
integer <int64>
query Parameters
object (TransferDate)
object (TransferDate)
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

Returns the invoices and bills that involve this contact.

path Parameters
contact_id
required
integer <int64>
query Parameters
object (TransferDate)
object (TransferDate)
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"
search
string

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 > ]
email
string
phoneNumbers
string
address
string
name
string
lastModified
integer <int64>

Responses

Request samples

Content type
No sample

Remove a contact

path Parameters
contact_id
required
integer <int64>

Responses

Receipts

kashootsa

Submit a receipt

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

Responses

Authentication

kashootsa

Create a new auth token for use in subsequent requests, returning it as a UUID.

You can pass form parameters email and password to send the username and password for login. You can also use HTTP Auth Basic to pass the username and password in the Authorization HTTP header, this will parse that and return the new auth token for you. To extend an existing token you can pass that in the 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

Responses

Take a UUID type auth token and get its expanded details back

path Parameters
user_id
required
integer <int64>
uuid
required
string

Responses

Response samples

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

Verifies the request's authorization information is permitted to perform the specified restriction

query Parameters
restriction
string

Responses

Oauth2

kashootsa

ClientAppDetails

Retrieve basic details on the client app registered with the given public ID. Does not require authorization.

Request Body schema: application/json
required

ClientAppDetails Request

clientId
string

Responses

Request samples

Content type
application/json
{
  • "clientId": "someid"
}

Response samples

Content type
application/json
{}

External Login

Begins the login process to an external provider (e.g. Facebook) by storing and returning a state token.

Request Body schema: application/json
required

Oauth2 External Login Request

clientAppId
string
provider
string

Responses

Request samples

Content type
application/json
{
  • "clientAppId": "your.app.id",
  • "provider": "Facebook"
}

Login

Endpoint for logging in to the provider. Handles basic auth and external oauth2 providers.

Request Body schema: application/json
required

Oauth2 Login Request

authCode
string
provider
string

Responses

Request samples

Content type
application/json
{
  • "authCode": "No9ztZcyRYiyJ-x1Ab6vzLkWKPp8Goyiay8R3y3G/Yzo?0u-FzH1oNCOST98dDOJc?x=KnIx5B-QN=CkY429iJT5KH3tLdrBHTMI=OUcMGEwyEwzDPs2aKkG1eik5jW8f!XAdUlhFmkY-yM!Vh2Bwkm0VMYs!10dbt7mpPbzq2otgdlpHBG3H-2E8a5C5Mt/t?u1U1UYZuGYm5F2FG2TttQo7DI0sEzERWHMAZ5hOdx8BV!1IFSxjc64NID8XxUm",
  • "provider": "kashoo"
}

Grant access to a business

Grant permission to access one or more of a user's businesses.

Request Body schema: application/json
required

AccessTokenInfo

clientGrantId
string
clientId
string
creation
string
expiration
string
id
string
revoked
string
scope
string
token
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "clientGrantId": "",
  • "clientId": "",
  • "creation": "2050-01-01T12:00",
  • "expiration": "2050-01-01T12:00",
  • "id": "",
  • "revoked": "2050-01-01T12:00",
  • "scope": "['','']",
  • "token": "",
  • "userId": ""
}

Response samples

Content type
application/json
{
  • "clientGrantId": "1212121121",
  • "clientId": "1212121121",
  • "creation": "2020-01-10T12:30U",
  • "expiration": "2020-01-10T12:30U",
  • "id": "",
  • "revoked": "2020-01-10T12:30U",
  • "scope": [
    ],
  • "token": "1212121adasd24343dadsa",
  • "userId": "foo"
}

Authorize User

used by the client to obtain authorization from the resource owner via user-agent redirection.

Request Body schema: application/json
required

authorizeRequest

clientId
string
grantType
string
redirectUri
string
state
string

Responses

Request samples

Content type
application/json
{}

Token

Used by the client to exchange an authorization grant for an access token, typically with client authentication.

Responses

Multifactor Authentication

kashootsa

Sends an mfaCode to the user's registered device

Request Body schema: */*
site
string
lc
string
Default: "en_US"
email
string
password
string
verificationCode
string

Responses

Enables SMS MFA for the user. The user needs a verified phone number.

Request Body schema: */*
code
string

Responses

Disables SMS MFA for the user.

Responses

Performs a multi-factor verification via phone

Request Body schema: */*
code
string

Responses

Lists the enabled mfa methods for a user.

Responses

Response samples

Content type
No sample

Accounts

kashootsa

Get account balances

path Parameters
account_id
required
integer <int64>
query Parameters
object (TransferDate)
primary
boolean

Responses

Get account journal entries

path Parameters
account_id
required
integer <int64>
query Parameters
object (TransferDate)
object (TransferDate)
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string
sortOrder
string
amountLe
integer <int64>
amountGe
integer <int64>
search
string

Responses

Get account transactions

path Parameters
account_id
required
integer <int64>
query Parameters
object (TransferDate)
object (TransferDate)
type
Array of strings
Items Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE"
offset
integer <int32>
Default: 0
limit
integer <int32>
Default: 100
sortColumn
string
sortOrder
string
amountLe
integer <int64>
amountGe
integer <int64>
search
string
contactId
integer <int64>

Responses

Get account opening balances

path Parameters
account_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Gets an account

path Parameters
account_id
required
integer <int64>
query Parameters
fields
string

Responses

Response samples

Content type
No sample

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
object (TransferDate)
object (TransferDate)
removed
boolean
feed
integer <int64>
readOnly
boolean
taxNumber
integer <int64>
taxAuthorityCode
string
archived
boolean
normalBalanceCredit
boolean
system
boolean
parent
integer <int64>
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 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

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

Account Types

kashootsa

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 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 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 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 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 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 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

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 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 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 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 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 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 retained earnings accounts

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

Responses

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

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

updateRecord

Note: there exists a PUT endpoint in the RecordResource as well. This is an older one that has to be maintained as well.

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

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Adds a batch list of records to a 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

Adds a manual list of records 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>
object (TransferDate)
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
Array of objects (AdjustmentInfo)
foreignCurrency
boolean
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE"
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

Updates a set of records.

Request Body schema:
Array

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Unprocesses a set of records.

Request Body schema:
Array

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Sends an invoice email to a customer for this record.

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

Returns the record.

path Parameters
record_id
required
integer <int64>

Responses

Response samples

Content type
No sample

Updates a record

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

Responses

Request samples

Content type
No sample

Removes a record

path Parameters
record_id
required
integer <int64>

Responses

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

object (github_com_Kashoo_accounting-api-gateway_internal_common_proto_serverpbv2.ListRulesRequest)

Responses

Request samples

Content type
application/json
{ }

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

Array of objects (github_com_Kashoo_accounting-api-gateway_internal_common_proto_serverpbv2.TransactionData)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "account_tax_number": "string",
  • "rule": {
    },
  • "taxes": [
    ],
  • "transaction": {
    },
  • "transaction_id": "string"
}

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

category
string
merchant
string

Responses

Request samples

Content type
application/json
{
  • "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

SaveRuleRequest

accountNumber
string
category
string
merchant
string
taxes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "accountNumber": "string",
  • "category": "string",
  • "merchant": "string",
  • "taxes": [
    ]
}

Response samples

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

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

UpdateRulesRequest

account_number
string
object (anypb.Any)
merchant
string
source
integer (github_com_Kashoo_accounting-api-gateway_internal_common_proto_serverpbv2.Source)
Enum: 0 1
taxes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "account_number": "string",
  • "data": {
    },
  • "merchant": "string",
  • "source": 0,
  • "taxes": [
    ]
}

Response samples

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

Invoices

kashootsa

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 (TransferDate)
object (TransferDate)
search
string
amountGe
integer <int64>
amountLe
integer <int64>
exclude
string
status
string
object (TransferDate)
sortColumn
string
sortOrder
string
contactId
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>
object (TransferDate)
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
Array of objects (PaymentAllocationIn)
terms
string
object (TransferDate)
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"
income
boolean
totalPaid
integer <int64>
paidInvoice
boolean
totalPaidImmediately
integer <int64>
totalPaidLater
integer <int64>
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
foreignCurrency
boolean
Array of objects (LineItemInfo)
Array of objects (LinkInfo)

Responses

Request samples

Content type
No sample

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 (TransferDate)
object (TransferDate)
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
contactId
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>
object (TransferDate)
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
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"
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
foreignCurrency
boolean
Array of objects (LinkInfo)

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 (TransferDate)
object (TransferDate)
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
contactId
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>
object (TransferDate)
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
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"
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
foreignCurrency
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 (TransferDate)
object (TransferDate)
search
string
amountGe
integer <int64>
amountLe
integer <int64>
exclude
string
status
string
object (TransferDate)
sortColumn
string
sortOrder
string
contactId
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>
object (TransferDate)
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
Array of objects (PaymentAllocationIn)
terms
string
object (TransferDate)
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"
income
boolean
totalPaid
integer <int64>
paidInvoice
boolean
totalPaidImmediately
integer <int64>
totalPaidLater
integer <int64>
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
foreignCurrency
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 (TransferDate)
object (TransferDate)
search
string
amountGe
integer <int64>
amountLe
integer <int64>
sortColumn
string
sortOrder
string
contactId
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>
object (TransferDate)
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
depositAccount
integer <int64>
depositCurrency
string
amount
integer <int64>
foreignCurrency
boolean
type
string
Enum: "INVOICE" "TRANSFER" "ADJUSTMENT" "BILL" "BILL_PAYMENT" "INVOICE_PAYMENT" "YEAR_END_ADJUSTMENT" "OPENING_BALANCE"
allowZeroAmounts
boolean
Array of objects (RecordAttachmentInfo)
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).

Example of response:

[{
    "name": "JohnDoh__Flight_123456.pdf",
    "uuid": "a77c4b48-28ba-4abe-b1e7-f2439cbe6e86"
}]

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

manualRefresh

path Parameters
feed_id
required
integer <int64>

Responses

simpleRefresh

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,
  • "bankFeedAccountInfos": [
    ]
}

Deletes a bank feed for a given business.

path Parameters
feed_id
required
integer <int64>

Responses

Get all the bank feeds for a given business

path Parameters
business_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

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,
  • "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"
}

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

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

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>
object (TransferDate)
object (TransferDate)
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>
object (TransferDate)
object (TransferDate)
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

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

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)
registered
boolean
recoverable
boolean
object (TransferDate)
object (TransferDate)
registrationNumber
string
archived
boolean
removed
boolean
tax
integer <int64>
object (Period)
object (TransferDate)
business
integer <int64>

Responses

Request samples

Content type
No sample

Response samples

Content type
No sample

Tax Rates

kashootsa

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>
object (TransferDate)
object (TransferDate)
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
tax_id
required
integer <int64>
business_id
required
integer <int64>
Request Body schema:
id
integer <int64>
tax
integer <int64>
rate
number <double>
object (TransferDate)
object (TransferDate)
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>
object (TransferDate)
object (TransferDate)
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>
object (TransferDate)
object (TransferDate)
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

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

Upload multiple blobs for a given businessId

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

path Parameters
namespace
required
string

Example: shoebox / kashoo

businessId
required
string

The business ID

header Parameters
Authorization
string

Example: foo

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

Blob

Responses

Reports

kashootsa

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 (TransferDate)
object (TransferDate)
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

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 (TransferDate)
object (TransferDate)
taxIds
Array of integers <int64> unique [ items <int64 > ]

Responses

Response samples

Content type
No sample

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 (TransferDate)
object (TransferDate)
periods
integer <int32>
multicurrency
boolean
ascending
boolean
header Parameters
Accept
string

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 (TransferDate)
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

Generates a balance sheet.

Generates a balance sheet report for the business.

path Parameters
business_id
required
integer <int64>
query Parameters
type
string
object (TransferDate)
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 (TransferDate)

Responses

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 (TransferDate)

Responses

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 (TransferDate)
object (TransferDate)
accounts
Array of integers <int64> unique [ items <int64 > ]
excludeEmpty
boolean
sort
string
header Parameters
Accept
string

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 (TransferDate)

Responses

Response samples

Content type
No sample

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 (TransferDate)

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 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 country regions

Get all the regions of a specified country

path Parameters
ISOCode
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 supported banks

Gets a list of banks supported in our platform

query Parameters
term
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a currency

Get details about a single currency

path Parameters
code
required
string

Responses

Response samples

Content type
No sample

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