Download OpenAPI specification:
API documentation for the Kashoo platform.
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.
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.
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:
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.
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.
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.
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.
| site | string |
| lc | string Default: "en_US" |
| duration | integer <int64> Default: 86400000 |
| restriction | string |
string | |
| password | string |
| mfaCode | string |
| provider | string |
| authCode | string |
| type | string |
{- "myUserId": 0,
- "expiryDate": "2019-08-24T14:15:22Z",
- "restriction": "string",
- "site": "string",
- "locale": "string",
- "authenticationCode": "string"
}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:
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
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 ...
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
The server-side handler should store the bearer and refresh tokens for the user and use them to make api calls to Kashoo.
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.
| Authorization required | string A basic auth header with the client id and secret as username and password |
| 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 |
{- "access_token": "example-access-token",
- "expires_in": 3600,
- "refresh_token": "example-refresh-token",
- "token_type": "bearer",
- "userId": "12355"
}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.
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.
| code | string |
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.
| first | string First name of the user |
| last | string |
string | |
| password | string |
| additionalParams | string Default: "" |
| site | string |
| lc | string Default: "en_US" Locale code |
| duration | integer <int64> Default: 86400000 |
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.
| first | string |
| last | string |
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 |
| 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 |
string | |
Array of objects (LinkInfo) |
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.
string | |
| site | string |
| lc | string Default: "en_US" |
| business_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| name | string |
| removed | boolean |
| type | string |
| contacts | Array of integers <int64> [ items <int64 > ] |
Gets a Subscription using an subscription ID or userID (fusionauth)
| id | string ID of subscriptions |
| subscriberId | string Subscriber ID |
| Authorization required | string Example: Bearer foo |
{- "subscription": {
- "appId": "string",
- "expiresDate": "2019-10-12T07:20:50.52Z",
- "id": "string",
- "isSandbox": true,
- "originalId": "string",
- "originalPurchaseDate": "2019-10-12T07:20:50.52Z",
- "pauseDate": "2019-10-12T07:20:50.52Z",
- "platformProductId": "string",
- "purchaseDate": "2019-10-12T07:20:50.52Z",
- "resumeDate": "2019-10-12T07:20:50.52Z",
- "status": "string",
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "unsubscribeDetectedAt": "2019-10-12T07:20:50.52Z",
- "userId": "string"
}
}Creates a Subscription
Create Subscription Request
| appId | string |
| originalId | string |
| platformProductId | string |
| purchaseToken | string |
| purchasedExplicitlyInApp | boolean |
| store required | string |
| subscriberId | string |
| subscriptionApplication | string |
| userEmail | string |
| userId | string |
{- "appId": "string",
- "originalId": "string",
- "platformProductId": "string",
- "purchaseToken": "string",
- "purchasedExplicitlyInApp": true,
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "userEmail": "string",
- "userId": "string"
}{- "subscription": {
- "appId": "string",
- "expiresDate": "2019-10-12T07:20:50.52Z",
- "id": "string",
- "isSandbox": true,
- "originalId": "string",
- "originalPurchaseDate": "2019-10-12T07:20:50.52Z",
- "pauseDate": "2019-10-12T07:20:50.52Z",
- "platformProductId": "string",
- "purchaseDate": "2019-10-12T07:20:50.52Z",
- "resumeDate": "2019-10-12T07:20:50.52Z",
- "status": "string",
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "unsubscribeDetectedAt": "2019-10-12T07:20:50.52Z",
- "userId": "string"
}
}Creates a new chargebee checkout window
| Authorization required | string Example: Bearer foo |
New Checkout
| couponId | Array of strings |
object (serverpb.ChargeBeeCustomer) | |
| subscriberId required | string |
| subscriptionApplication required | string |
| subscriptionPlanId required | string |
| userId | string |
{- "couponId": [
- "string"
], - "customer": {
- "city": "string",
- "country": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "line1": "string",
- "line2": "string",
- "locale": "string",
- "stateCode": "string",
- "zip": "string"
}, - "subscriberId": "string",
- "subscriptionApplication": "string",
- "subscriptionPlanId": "string",
- "userId": "string"
}{- "checkoutInfo": [
- 0
], - "content": [
- 0
], - "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
| Authorization required | string Example: Bearer foo |
New portal session
| subscriptionId | string |
{- "subscriptionId": "string"
}{- "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"
}| Accept-Language | string Default: |
| 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) |
Updates business properties.
| business_id required | integer <int64> |
| 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) |
Updates the business settings for the current business.
| business_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| invoicePdfMessage | string |
| invoiceEmailMessage | string |
| estimatePdfMessage | string |
| estimateEmailMessage | string |
| incomePdfMessage | string |
| incomeEmailMessage | string |
Gets the list of all changes made by this business. This includes changes to accounts, contacts, records, and so on.
| business_id required | integer <int64> |
| 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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]
}| business_id required | integer <int64> |
| business | integer <int64> |
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 |
Gets a Subscription using an subscription ID or userID (fusionauth)
| id | string ID of subscriptions |
| subscriberId | string Subscriber ID |
| Authorization required | string Example: Bearer foo |
{- "subscription": {
- "appId": "string",
- "expiresDate": "2019-10-12T07:20:50.52Z",
- "id": "string",
- "isSandbox": true,
- "originalId": "string",
- "originalPurchaseDate": "2019-10-12T07:20:50.52Z",
- "pauseDate": "2019-10-12T07:20:50.52Z",
- "platformProductId": "string",
- "purchaseDate": "2019-10-12T07:20:50.52Z",
- "resumeDate": "2019-10-12T07:20:50.52Z",
- "status": "string",
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "unsubscribeDetectedAt": "2019-10-12T07:20:50.52Z",
- "userId": "string"
}
}Creates a Subscription
Create Subscription Request
| appId | string |
| originalId | string |
| platformProductId | string |
| purchaseToken | string |
| purchasedExplicitlyInApp | boolean |
| store required | string |
| subscriberId | string |
| subscriptionApplication | string |
| userEmail | string |
| userId | string |
{- "appId": "string",
- "originalId": "string",
- "platformProductId": "string",
- "purchaseToken": "string",
- "purchasedExplicitlyInApp": true,
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "userEmail": "string",
- "userId": "string"
}{- "subscription": {
- "appId": "string",
- "expiresDate": "2019-10-12T07:20:50.52Z",
- "id": "string",
- "isSandbox": true,
- "originalId": "string",
- "originalPurchaseDate": "2019-10-12T07:20:50.52Z",
- "pauseDate": "2019-10-12T07:20:50.52Z",
- "platformProductId": "string",
- "purchaseDate": "2019-10-12T07:20:50.52Z",
- "resumeDate": "2019-10-12T07:20:50.52Z",
- "status": "string",
- "store": "string",
- "subscriberId": "string",
- "subscriptionApplication": "string",
- "unsubscribeDetectedAt": "2019-10-12T07:20:50.52Z",
- "userId": "string"
}
}Creates a new chargebee checkout window
| Authorization required | string Example: Bearer foo |
New Checkout
| couponId | Array of strings |
object (serverpb.ChargeBeeCustomer) | |
| subscriberId required | string |
| subscriptionApplication required | string |
| subscriptionPlanId required | string |
| userId | string |
{- "couponId": [
- "string"
], - "customer": {
- "city": "string",
- "country": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "line1": "string",
- "line2": "string",
- "locale": "string",
- "stateCode": "string",
- "zip": "string"
}, - "subscriberId": "string",
- "subscriptionApplication": "string",
- "subscriptionPlanId": "string",
- "userId": "string"
}{- "checkoutInfo": [
- 0
], - "content": [
- 0
], - "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
| Authorization required | string Example: Bearer foo |
New portal session
| subscriptionId | string |
{- "subscriptionId": "string"
}{- "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_id required | integer <int64> |
| inviteCode | string |
| 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> |
Lists the invoices that have been made on the business's current contract (plan).
| business_id required | integer <int64> |
object <date> (TransferDate) Example: startDate=2023-12-25 | |
object <date> (TransferDate) Example: endDate=2023-12-25 | |
| offset | integer <int32> |
| limit | integer <int32> Default: 50 |
Return a list of contacts associated with this business.
| business_id required | integer <int64> |
| 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 |
[- {
- "id": 0,
- "business": 0,
- "type": "CUSTOMER",
- "contactInformation": {
- "readOnly": true,
- "email": "string",
- "name": "string",
- "first": "string",
- "last": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "provinceOrState": "string",
- "postalOrZipCode": "string",
- "country": "string",
- "phoneCountryCode": "string",
- "phone": "string",
- "fax": "string",
- "mobile": "string",
- "tollFree": "string",
- "referral": "string",
- "campaign": "string",
- "url": "string",
- "locale": "string",
- "registration": "string",
- "hasShippingAddress": true,
- "shippingName": "string",
- "shippingStreet1": "string",
- "shippingStreet2": "string",
- "shippingCity": "string",
- "shippingProvinceOrState": "string",
- "shippingPostalOrZipCode": "string",
- "shippingCountry": "string",
- "shippingNotes": "string",
- "shippingPhone": "string",
- "instructions": "string",
- "address": "string",
- "shippingAddress": "string",
- "notes": "string",
- "displayName": "string",
- "fullName": "string",
- "phoneNumbers": "string",
- "fullEmail": "string",
- "province": "string",
- "postalCode": "string",
- "companyName": "string",
- "lastModified": 0
}, - "linkedBusiness": 0,
- "receivableAccount": 0,
- "payableAccount": 0,
- "incomeOrExpenseAccount": 0,
- "defaultTaxCode": "string",
- "paymentAccount": 0,
- "paymentTerms": "string",
- "currency": "string",
- "comments": [
- "string"
], - "collaborationContext": 0,
- "prefix": "string",
- "removed": true,
- "archived": true,
- "organization": true,
- "parent": 0,
- "groups": [
- 0
], - "name": "string",
- "address": "string",
- "phoneNumbers": "string",
- "email": "string",
- "lastModified": 0
}
]Adds a contact to the business
| business_id required | integer <int64> |
| 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 |
string | |
| lastModified | integer <int64> |
{- "id": 0,
- "business": 0,
- "type": "CUSTOMER",
- "contactInformation": {
- "readOnly": true,
- "email": "string",
- "name": "string",
- "first": "string",
- "last": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "provinceOrState": "string",
- "postalOrZipCode": "string",
- "country": "string",
- "phoneCountryCode": "string",
- "phone": "string",
- "fax": "string",
- "mobile": "string",
- "tollFree": "string",
- "referral": "string",
- "campaign": "string",
- "url": "string",
- "locale": "string",
- "registration": "string",
- "hasShippingAddress": true,
- "shippingName": "string",
- "shippingStreet1": "string",
- "shippingStreet2": "string",
- "shippingCity": "string",
- "shippingProvinceOrState": "string",
- "shippingPostalOrZipCode": "string",
- "shippingCountry": "string",
- "shippingNotes": "string",
- "shippingPhone": "string",
- "instructions": "string",
- "address": "string",
- "shippingAddress": "string",
- "notes": "string",
- "displayName": "string",
- "fullName": "string",
- "phoneNumbers": "string",
- "fullEmail": "string",
- "province": "string",
- "postalCode": "string",
- "companyName": "string",
- "lastModified": 0
}, - "linkedBusiness": 0,
- "receivableAccount": 0,
- "payableAccount": 0,
- "incomeOrExpenseAccount": 0,
- "defaultTaxCode": "string",
- "paymentAccount": 0,
- "paymentTerms": "string",
- "currency": "string",
- "comments": [
- "string"
], - "collaborationContext": 0,
- "prefix": "string",
- "removed": true,
- "archived": true,
- "organization": true,
- "parent": 0,
- "groups": [
- 0
], - "name": "string",
- "address": "string",
- "phoneNumbers": "string",
- "email": "string",
- "lastModified": 0
}| contact_id required | integer <int64> |
| 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 |
string | |
| lastModified | integer <int64> |
Gets the list of changes that have been made to this contact.
| contact_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]| contact_id required | integer <int64> |
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 |
Generates a mini report for the contact.
| contact_id required | integer <int64> |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "billedYtd": 0,
- "invoicedYtd": 0,
- "totalUnpaidBills": 0,
- "totalUnpaidInvoices": 0,
- "totalPendingEstimates": 0
}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.
Return a list of the inventory items defined by this business.
| business_id required | integer <int64> |
| 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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "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": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "taxesForSelling": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "readOnly": true,
- "removed": true,
- "tracked": true,
- "archived": true,
- "effectiveId": { },
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]
}Create an inventory item for the business
| business_id required | integer <int64> |
| 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) |
{- "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": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "taxesForSelling": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "readOnly": true,
- "removed": true,
- "tracked": true,
- "archived": true,
- "createExpenseAccount": true,
- "effectiveId": { },
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}{- "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": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "taxesForSelling": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "readOnly": true,
- "removed": true,
- "tracked": true,
- "archived": true,
- "createExpenseAccount": true,
- "effectiveId": { },
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}Parse structured data into a list of items for importing
| business_id required | integer <int64> |
[- {
- "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": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "taxesForSelling": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "readOnly": true,
- "removed": true,
- "tracked": true,
- "archived": true,
- "quantity": 0,
- "averagePrice": 0,
- "effectiveId": { },
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]Updates the properties of an item.
| item_id required | integer <int64> |
| 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) |
{- "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": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "taxesForSelling": [
- {
- "id": 0,
- "tax": 0,
- "item": 0,
- "removed": true
}
], - "readOnly": true,
- "removed": true,
- "tracked": true,
- "archived": true,
- "effectiveId": { },
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}Gets the list of changes that have been made to this item.
| item_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]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.
| item_id required | integer <int64> |
{- "id": 0,
- "business": 0,
- "item": 0,
- "quantity": 0,
- "totalValue": 0
}Sets the opening stock of a tracked inventory item. This applies on the business's opening date.
| item_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| item | integer <int64> |
| quantity | integer <int64> |
| totalValue | integer <int64> |
Returns the invoices and bills that reference this item.
| item_id required | integer <int64> |
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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]
}Return a list of projects created for this business.
| business_id required | integer <int64> |
| offset | integer <int32> |
| limit | integer <int32> Default: 0 |
| active | boolean |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}
]
}Create a project for the business
| business_id required | integer <int64> |
| id | integer <int64> |
| description | string |
| name | string |
| business | integer <int64> |
| removed | boolean |
| inactive | boolean |
| status | string |
| lastModified | integer <int64> |
{- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}{- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}Updates the properties of a project.
| project_id required | integer <int64> |
| id | integer <int64> |
| description | string |
| name | string |
| business | integer <int64> |
| removed | boolean |
| inactive | boolean |
| status | string |
| lastModified | integer <int64> |
{- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}{- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}Gets the list of changes that have been made to this project.
| project_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]Returns the incomes and expenses associated with this project.
| project_id required | integer <int64> |
| 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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "id": 0,
- "description": "string",
- "name": "string",
- "business": 0,
- "removed": true,
- "inactive": true,
- "status": "string",
- "lastModified": 0
}
]
}Gets information about an account. The fields parameter can be used to request additional information.
| account_id required | integer <int64> |
| fields | string Example: fields=item Optional expensive-to-calculate fields to include. Options are firstTransactionDate, lastTransactionDate, firstBankFeedDate, firstBankUploadDate, lastBankUploadDate, item. |
[- {
- "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",
- "firstTransactionDate": "2023-12-25",
- "lastTransactionDate": "2023-12-25",
- "firstBankFeedDate": "2023-12-25",
- "firstBankUploadDate": "2023-12-25",
- "lastBankUploadDate": "2023-12-25",
- "item": 0,
- "nameAndNumber": "string",
- "lastModified": 0,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]| account_id required | integer <int64> |
| 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) |
Gets the list of changes that have been made to this account.
| account_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]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.
| account_id required | integer <int64> |
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 |
| account_id required | integer <int64> |
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. |
| business_id required | integer <int64> |
| 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 |
| business_id required | integer <int64> |
| 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) |
{- "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": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}[- {
- "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": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]Allows bulk deletion of shoebox items that match the specified query parameters.
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 |
{- "account": "",
- "amountGe": 500,
- "amountLe": 10000,
- "businessId": "123456",
- "complete": true,
- "endDate": "2020-01-10T12:30U",
- "ignored": false,
- "processed": false,
- "search": "bill",
- "sourceId": "",
- "sources": [
- "['bank'",
- " 'internal']"
], - "startDate": "2020-01-10T12:30U",
- "state": "",
- "types": [
- "['invoice'",
- " 'bill']"
]
}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.
items Request
| businessId required | string in: body |
{- "businessId": "123456"
}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.
items Request
| businessId required | string in: body |
{- "businessId": "123456"
}Queries specifically for shoebox items that originated from a bank import. The semantics of this search are slightly different.
items Request
| account | string |
| businessId required | string |
| limit | string |
| offset | string |
{- "account": "",
- "businessId": "123456",
- "limit": "25",
- "offset": "1"
}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.
items Request
| businessId required | string in: body |
{- "businessId": "123456"
}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.
items Request
| businessId required | string |
| shoeboxItemId required | string |
{- "businessId": "123456",
- "shoeboxItemId": "123456"
}Gets the shoebox items for a given business. Includes several optional filter arguments for narrowing down the list of shoebox items.
| businessId required | string Business ID |
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 |
{- "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": [
- "['bank'",
- " 'internal']"
], - "startDate": "2020-01-10T12:30U",
- "state": "",
- "types": [
- "['invoice'",
- " 'bill']"
]
}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.
| businessId required | string Business ID |
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"). |
{- "data": "{\"custom\":\"data\"}",
- "previousData": "{\"custom\":\"data-v0\"}",
- "received": "2020-01-10T12:30U",
- "source": "yodlee, upload",
- "sourceId": "dd2232",
- "state": "processed",
- "type": "bank"
}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.
| businessId required | string Business ID |
items Request
| businessId required | string in: body |
{- "businessId": "123456"
}Returns all the records for a business. Records can be of several types, including:
| business_id required | integer <int64> |
| 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 |
[- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]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
| business_id required | integer <int64> |
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.
| 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> |
[- {
- "type": "INVOICE",
- "number": "string"
}
]Imports records from an outside source. Right now this only supports ofx/qbo files.
| business_id required | integer <int64> |
| uuid | string |
| url | string |
| filename | string |
| account | integer <int64> |
| preview | boolean |
Retrieves the comments and email logs associated with a specific record.
| record_id required | integer <int64> |
[- {
- "id": 0,
- "context": 0,
- "user": 0,
- "author": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "draft": true,
- "attachments": [
- {
- "id": 0,
- "business": 0,
- "name": "string",
- "contentType": "string",
- "characterEncoding": "string",
- "contentLength": 0,
- "initialData": "string",
- "complete": true,
- "timestamp": "2019-08-24T14:15:22Z",
- "uploaderName": "string",
- "publicAccess": true
}
]
}
]Unprocess a batch of records and returns them to the inbox. This operation is used for TrulySmall Accounting.
[- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
][- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]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.
[- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
][- {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}
]Lists all of the categorization rules that a business has created.
| businessId required | string Business ID |
| limit | string max nubmers of rules to return |
| offset | string the starting offset to return the rules from |
ListRulesRequest
| businessId required | string |
{- "businessId": "string"
}{- "rules": [
- {
- "accountCategory": 0,
- "accountId": "string",
- "category": "string",
- "merchant": "string",
- "taxes": [
- "string"
]
}
]
}Accepts a list of bank transactions as json and categorizes each one of them according to the business's rules.
| businessId required | string Business ID |
CategorizeReuqest
| businessId required | string |
| transactionId required | string |
{- "businessId": "string",
- "transactionId": "string"
}{- "transaction": {
- "accountCategory": 0,
- "accountId": "string",
- "rule": {
- "category": "string",
- "merchant": "string"
}, - "taxes": [
- "string"
], - "transaction": {
- "category": "string",
- "merchant": "string"
}, - "transactionId": "string"
}
}Allows the user to delete an existing rule.
| businessId required | string Business ID |
DeleteRuleRequest
| businessId required | string |
| category required | string |
| merchant | string |
{- "businessId": "string",
- "category": "string",
- "merchant": "string"
}{- "code": 0,
- "detail": "string",
- "id": "string",
- "status": "string"
}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.
| businessId required | string Business ID |
PutRulesRequest
| businessId required | string |
required | object (serverpb.CategorizationRule) |
{- "businessId": "string",
- "rule": {
- "accountCategory": 0,
- "accountId": "string",
- "category": "string",
- "merchant": "string",
- "taxes": [
- "string"
]
}
}{- "code": 0,
- "detail": "string",
- "id": "string",
- "status": "string"
}Updates the settings for a business related to categorization rules.
| businessId required | string Business ID |
SettingsRequest
| doNotCategorizeAsOther | boolean |
{- "doNotCategorizeAsOther": true
}{- "doNotCategorizeAsOther": true
}Updates the categorization rule for a given transaction so that the next time that categorize is called, the indicated category is returned.
| businessId required | string Business ID |
PutRulesRequest
| businessId required | string |
required | object (serverpb.CategorizationRule) |
{- "businessId": "string",
- "rule": {
- "accountCategory": 0,
- "accountId": "string",
- "category": "string",
- "merchant": "string",
- "taxes": [
- "string"
]
}
}{- "code": 0,
- "detail": "string",
- "id": "string",
- "status": "string"
}| business_id required | integer <int64> |
| 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> |
| business_id required | integer <int64> |
| 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) |
This is the same as accessing records with type=INVOICE.
| business_id required | integer <int64> |
| 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> |
| business_id required | integer <int64> |
| 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) |
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.
| record_id required | integer <int64> |
| to | string |
| cc | string |
| bcc | string |
| message | string |
| processor | string |
| preview | boolean |
| previewType | string |
| attachments | Array of strings |
| template | string |
This is the same as accessing records with type=BILL_PAYMENT.
| business_id required | integer <int64> |
| 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> |
| business_id required | integer <int64> |
| 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) |
This is the same as accessing records with type=BILL.
| business_id required | integer <int64> |
| 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> |
| business_id required | integer <int64> |
| 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) |
This is the same as accessing records with type=TRANSFER.
| business_id required | integer <int64> |
| 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> |
| business_id required | integer <int64> |
| 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) |
To create a batch of transactions with images which performs OCR on the images and save transaction details, follow the two steps below.
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
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.
To create a batch of transactions with images which performs OCR on the images and save transaction details, follow the two steps below.
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
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.
| business_id required | integer <int64> |
[- {
- "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": [
- {
- "id": 0,
- "account": 0,
- "accountNumber": "string",
- "accountName": "string",
- "accountType": "BANK",
- "providerAccountId": "string",
- "lastRefreshed": "2019-08-24T14:15:22Z",
- "balance": 0,
- "currency": "string",
- "autoUpdateEnabled": true,
- "unlocked": true
}
]
}
]| feed_id required | integer <int64> |
| 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) |
{- "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": [
- {
- "id": 0,
- "account": 0,
- "accountNumber": "string",
- "accountName": "string",
- "accountType": "BANK",
- "providerAccountId": "string",
- "lastRefreshed": "2019-08-24T14:15:22Z",
- "balance": 0,
- "currency": "string",
- "autoUpdateEnabled": true,
- "unlocked": true
}
]
}| business_id required | integer <int64> |
| locales | Array of strings |
| customizationName | string |
| language | string |
| redirectUrl | string |
{- "expiration": "string",
- "link_token": "string"
}| business_id required | integer <int64> |
| feed_id required | integer <int64> |
| locales | Array of strings |
| customizationName | string |
| language | string |
| redirectUrl | string |
{- "expiration": "string",
- "link_token": "string"
}| business_id required | integer <int64> |
| publicToken | string |
{- "publicToken": "string"
}{- "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": [
- {
- "id": 0,
- "account": 0,
- "accountNumber": "string",
- "accountName": "string",
- "accountType": "BANK",
- "providerAccountId": "string",
- "lastRefreshed": "2019-08-24T14:15:22Z",
- "balance": 0,
- "currency": "string",
- "autoUpdateEnabled": true,
- "unlocked": true
}
]
}| business_id required | integer <int64> |
| feed_id required | integer <int64> |
{- "url": "string",
- "jwt": "string",
- "params": {
- "providerAccountId": 0,
- "userExperienceFlow": {
- "property1": { },
- "property2": { }
}, - "dataset": [
- {
- "name": "string",
- "attribute": [
- {
- "name": "string",
- "container": [
- "string"
]
}
]
}
], - "flow": "string"
}
}| business_id required | integer <int64> |
| feed_id required | integer <int64> |
{- "url": "string",
- "jwt": "string",
- "params": {
- "providerAccountId": 0,
- "userExperienceFlow": {
- "property1": { },
- "property2": { }
}, - "dataset": [
- {
- "name": "string",
- "attribute": [
- {
- "name": "string",
- "container": [
- "string"
]
}
]
}
], - "flow": "string"
}
}| business_id required | integer <int64> |
| additionalStatus | string |
| bankName | string |
| fnToCall | string |
| providerAccountId | integer <int64> |
| providerId | integer <int64> |
| requestId | string |
| status | string |
| operation | string |
{- "additionalStatus": "string",
- "bankName": "string",
- "fnToCall": "string",
- "providerAccountId": 0,
- "providerId": 0,
- "requestId": "string",
- "status": "string",
- "operation": "string"
}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.
| statement_id required | integer <int64> |
| reconciled | Array of integers <int64> [ items <int64 > ] Array of journal entry IDs that are reconciled for the given statement |
{- "reconciled": [
- 1001,
- 1002,
- 1003
]
}{- "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
}Creates a new bank reconciliation statement for the specified business.
| 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 |
{- "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
}{- "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
}Retrieves the details of a specific bank reconciliation statement by its ID. The statement data is enriched with additional journal entry total data.
| statement_id required | integer <int64> |
{- "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
}Updates the properties of a bank reconciliation statement, including reconciling or unreconciling it.
| statement_id required | integer <int64> |
| 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 |
{- "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
}{- "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
}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.
| statement_id required | integer <int64> |
{- "entries": [
- 1001,
- 1002,
- 1003
]
}Gets the list of changes that have been made to this statement.
| statement_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]Retrieves the available and reconciled journal entries for a statement based on the filters provided.
| statement_id required | integer <int64> |
| 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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "date": "2023-12-25",
- "note": "string",
- "currency": "string",
- "amount": 0,
- "id": 0,
- "account": 0,
- "record": {
- "id": 0,
- "business": 0,
- "description": "string",
- "memo": "string",
- "exchangeRate": 0.1,
- "contact": 0,
- "currency": "string",
- "account": 0,
- "date": "2023-12-25",
- "collaborationContext": 0,
- "number": "string",
- "contactName": "string",
- "removed": true,
- "readOnly": true,
- "homeCurrency": "string",
- "project": 0,
- "projectName": "string",
- "creation": "2019-08-24T14:15:22Z",
- "lastModified": "2019-08-24T14:15:22Z",
- "inboxReference": "string",
- "bankRecStatement": 0,
- "type": "INVOICE",
- "foreignCurrency": true,
- "recordAttachments": [
- {
- "id": 0,
- "uuid": "string",
- "filename": "string",
- "mimeType": "string",
- "contentLength": 0,
- "creationDate": "2019-08-24T14:15:22Z",
- "removed": true,
- "creationTransferDate": "2023-12-25"
}
], - "allowZeroAmounts": true,
- "reconciled": true,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "type": "string"
}
]
}, - "balance": 0
}
]
}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
| statement_id required | integer <int64> |
| reconciled | Array of integers <int64> [ items <int64 > ] Array of journal entry IDs that are reconciled for the given statement |
{- "reconciled": [
- 1001,
- 1002,
- 1003
]
}{- "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
}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.
| statement_id required | integer <int64> |
{- "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": [
- {
- "description": "string",
- "contact": "string",
- "date": "string",
- "credit": "string",
- "debit": "string"
}
], - "unmatchedCredits": [
- {
- "description": "string",
- "contact": "string",
- "date": "string",
- "credit": "string",
- "debit": "string"
}
], - "unmatchedDebits": [
- {
- "description": "string",
- "contact": "string",
- "date": "string",
- "credit": "string",
- "debit": "string"
}
]
}Returns a list of bank reconciliation statements for the specified business, optionally filtered by account ID, reconciliation status, and date range.
| business_id required | integer <int64> |
| 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 |
{- "count": 0,
- "limit": 0,
- "offset": 0,
- "results": [
- {
- "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
}
]
}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.
| statement_id required | integer <int64> |
{- "entries": [
- 1001,
- 1002,
- 1003
]
}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.
Providing version == 2 will return a TaxCompositeInfo, else a LegacyTaxInfo
| business_id required | integer <int64> |
| version | integer <int32> |
[- {
- "id": 0,
- "business": 0,
- "name": "string",
- "description": "string",
- "lazyRounding": true,
- "system": true,
- "removed": true,
- "archived": true,
- "canBeRegistered": true,
- "canBeRecovered": true,
- "registeredDefault": true,
- "recoveredDefault": true,
- "rates": [
- {
- "id": 0,
- "tax": 0,
- "rate": 0.1,
- "startDate": "2023-12-25",
- "endDate": "2023-12-25",
- "compound": true,
- "archived": true,
- "removed": true,
- "regions": [
- {
- "id": 0,
- "country": "string",
- "provinceOrState": "string",
- "currency": "string",
- "isoCode": "string",
- "callingCode": "string",
- "empty": true
}
], - "period": {
- "start": "2023-12-25",
- "end": "2023-12-25"
}
}
], - "accounts": {
- "id": 0,
- "business": 0,
- "tax": 0,
- "payableAccount": 0,
- "receivableAccount": 0,
- "expenseAccount": 0,
- "archived": true
}, - "configuration": [
- {
- "id": 0,
- "businessTaxAccountConfig": {
- "id": 0,
- "business": 0,
- "tax": 0,
- "payableAccount": 0,
- "receivableAccount": 0,
- "expenseAccount": 0,
- "archived": true
}, - "includeInCost": true,
- "registered": true,
- "recoverable": true,
- "startDate": "2023-12-25",
- "endDate": "2023-12-25",
- "registrationNumber": "string",
- "archived": true,
- "removed": true,
- "business": 0,
- "period": {
- "start": "2023-12-25",
- "end": "2023-12-25"
}, - "tax": 0
}
]
}
]| business_id required | integer <int64> |
[- {
- "id": 0,
- "business": 0,
- "name": "string",
- "description": "string",
- "lazyRounding": true,
- "system": true,
- "removed": true,
- "archived": true,
- "canBeRegistered": true,
- "canBeRecovered": true,
- "registeredDefault": true,
- "recoveredDefault": true,
- "rates": [
- {
- "id": 0,
- "tax": 0,
- "rate": 0.1,
- "startDate": "2023-12-25",
- "endDate": "2023-12-25",
- "compound": true,
- "archived": true,
- "removed": true,
- "regions": [
- {
- "id": 0,
- "country": "string",
- "provinceOrState": "string",
- "currency": "string",
- "isoCode": "string",
- "callingCode": "string",
- "empty": true
}
], - "period": {
- "start": "2023-12-25",
- "end": "2023-12-25"
}
}
], - "accounts": {
- "id": 0,
- "business": 0,
- "tax": 0,
- "payableAccount": 0,
- "receivableAccount": 0,
- "expenseAccount": 0,
- "archived": true
}, - "configuration": [
- {
- "id": 0,
- "businessTaxAccountConfig": {
- "id": 0,
- "business": 0,
- "tax": 0,
- "payableAccount": 0,
- "receivableAccount": 0,
- "expenseAccount": 0,
- "archived": true
}, - "includeInCost": true,
- "registered": true,
- "recoverable": true,
- "startDate": "2023-12-25",
- "endDate": "2023-12-25",
- "registrationNumber": "string",
- "archived": true,
- "removed": true,
- "business": 0,
- "period": {
- "start": "2023-12-25",
- "end": "2023-12-25"
}, - "tax": 0
}
]
}
]| tax_id required | integer <int64> |
| business_id required | integer <int64> |
| 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) |
| rate_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| rate_id required | integer <int64> |
| 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) |
| rate_id required | integer <int64> |
| 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) |
Gets the list of changes that have been made to this record.
| rate_id required | integer <int64> |
[- {
- "id": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "comment": "string",
- "user": 0,
- "userDisplayName": "string",
- "userEmail": "string",
- "description": "string",
- "platform": "string"
}
]| config_id required | integer <int64> |
| rate_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| rate_id required | integer <int64> |
| rate_id required | integer <int64> |
| 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) |
| tax_id required | integer <int64> |
| business_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| config_id required | integer <int64> |
| tax_id required | integer <int64> |
| business_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| rate_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| config_id required | integer <int64> |
| rate_id required | integer <int64> |
| createAccounts | boolean Default: false |
| 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) |
| tax_id required | integer <int64> |
| business_id required | integer <int64> |
| 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) |
| rate_id required | integer <int64> |
| tax_id required | integer <int64> |
| business_id required | integer <int64> |
| 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) |
| rate_id required | integer <int64> |
| 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) |
| rate_id required | integer <int64> |
| rate_id required | integer <int64> |
| 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) |
| business_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| name | string |
| description | string |
| expansion | string |
| taxSystem | string |
| income | boolean |
| removed | boolean |
| blank | boolean |
| lastModified | integer <int64> |
| business_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| name | string |
| description | string |
| expansion | string |
| taxSystem | string |
| income | boolean |
| removed | boolean |
| blank | boolean |
| lastModified | integer <int64> |
| taxCode_id required | integer <int64> |
| id | integer <int64> |
| business | integer <int64> |
| name | string |
| description | string |
| expansion | string |
| taxSystem | string |
| income | boolean |
| removed | boolean |
| blank | boolean |
| lastModified | integer <int64> |
Generates an aged receivables report for the business.
| business_id required | integer <int64> |
| type | string |
object <date> (TransferDate) Example: endDate=2023-12-25 | |
| project | integer <int64> |
Generates a balance sheet report for the business.
| business_id required | integer <int64> |
| type | string |
object <date> (TransferDate) Example: endDate=2023-12-25 | |
| periods | integer <int32> |
| multicurrency | boolean |
| summary | boolean |
Generates a mini report on bills for the business. This is a shorter report that can be used as a summary.
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 |
{- "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
}Exports the chart of accounts for the business in the requested format.
| business_id required | integer <int64> |
| sortColumn | string Default: "number" 'name', 'number', 'taxAuthorityCode', 'balance' |
| sortOrder | string Default: "asc" 'asc' or 'desc' |
| Accept | string |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "accounts": [
- {
- "name": "string",
- "number": "string",
- "taxAuthorityCode": "string",
- "description": "string",
- "type": "string",
- "parentName": "string",
- "parentNumber": "string",
- "balance": 0,
- "formattedBalance": "string"
}
], - "hasChildAccounts": true
}Generates a debit and credit report for the business.
| business_id required | integer <int64> |
| 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" |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "dateRanges": [
- {
- "startDate": "2023-12-25",
- "endDate": "2023-12-25"
}
], - "formattedDateRangeLabels": [
- "string"
], - "columnBalanceLabels": [
- "string"
], - "debitCreditBalanceGroup": {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "creditGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "debitGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "label": "string",
- "totalLabel": "string"
}, - "numberOfColumns": 0
}Generates a mini report on estimates for the business. This is a shorter report that can be used as a summary.
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 |
{- "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 an general ledger report for the business.
| business_id required | integer <int64> |
| 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 |
| Accept | string |
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.
| business_id required | integer <int64> |
object <date> (TransferDate) Example: date=2023-12-25 | |
| sortColumn | string |
| sortOrder | string |
| Accept | string |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "currencyCode": "string",
- "balances": [
- {
- "balance": 0,
- "formattedBalance": "string",
- "currencyCode": "string",
- "gifiCode": "string"
}
]
}Generates an income statement report for the business. It returns TSA report format
| business_id required | integer <int64> |
| 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 |
| Accept | string |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "dateRanges": [
- {
- "startDate": "2023-12-25",
- "endDate": "2023-12-25"
}
], - "formattedDateRangeLabels": [
- "string"
], - "columnBalanceLabels": [
- "string"
], - "incomeAccountBalanceGroup": {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "label": "string",
- "totalLabel": "string"
}, - "expenseAccountBalanceGroup": {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "label": "string",
- "totalLabel": "string"
}, - "cogsAccountBalanceGroup": {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "label": "string",
- "totalLabel": "string"
}, - "grossProfitTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "netIncomeTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "numberOfColumns": 0,
- "incomeAccountBalanceGroups": [
- {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "label": "string",
- "totalLabel": "string"
}
], - "expenseAccountBalanceGroups": [
- {
- "types": [
- "ACCOUNTS_RECEIVABLE"
], - "currencyCode": "string",
- "accountDetails": [
- {
- "currencyCode": "string",
- "accountName": "string",
- "accountNumber": "string",
- "parentAccountNumber": "string",
- "link": "string",
- "periodBalances": [
- 0
], - "creditPeriodBalances": [
- 0
], - "debitPeriodBalances": [
- 0
], - "creditFormattedPeriodBalances": [
- "string"
], - "debitFormattedPeriodBalances": [
- "string"
], - "formattedPeriodBalances": [
- "string"
], - "childAccount": true,
- "parentAccount": true,
- "parentSummary": true
}
], - "accountGroupTotals": {
- "label": "string",
- "currencyCode": "string",
- "amounts": [
- 0
], - "formattedAmounts": [
- "string"
]
}, - "multicurrency": true,
- "label": "string",
- "totalLabel": "string"
}
]
}Generates a report of the inventory items on hand on a given date.
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 | |
| sortColumn | string 'averagePrice', 'itemName', 'quantity', 'totalValue' |
| sortOrder | string 'asc' or 'desc' |
| Accept | string |
{- "businessName": "string",
- "reportCreationDate": "2023-12-25",
- "formattedReportCreationDate": "string",
- "description": "string",
- "currencyCode": "string",
- "asOfDate": "2023-12-25",
- "formattedAsOfDate": "string",
- "items": [
- {
- "itemId": 0,
- "itemName": "string",
- "itemSku": "string",
- "currency": "string",
- "quantity": 0,
- "averagePrice": 0,
- "formattedAveragePrice": "string",
- "sellPrice": 0,
- "formattedSellPrice": "string",
- "totalValue": 0,
- "formattedTotalValue": "string"
}
], - "totalValue": 0,
- "formattedTotalValue": "string"
}Generates a mini report on invoices for the business. This is a shorter report that can be used as a summary.
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 |
{- "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 mini report on an inventory item for the business.
| item_id required | integer <int64> |
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 |
{- "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 a report of item sales and purchases over a given period.
| business_id required | integer <int64> |
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' |
| Accept | string |
{- "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": [
- {
- "itemId": 0,
- "itemName": "string",
- "currency": "string",
- "quantity": 0.1,
- "totalAmount": 0,
- "averagePrice": 0,
- "formattedTotalAmount": "string",
- "formattedAveragePrice": "string"
}
], - "purchasesExpense": [
- {
- "itemId": 0,
- "itemName": "string",
- "currency": "string",
- "quantity": 0.1,
- "totalAmount": 0,
- "averagePrice": 0,
- "formattedTotalAmount": "string",
- "formattedAveragePrice": "string"
}
], - "sales": [
- {
- "itemId": 0,
- "itemName": "string",
- "currency": "string",
- "quantity": 0.1,
- "totalAmount": 0,
- "averagePrice": 0,
- "formattedTotalAmount": "string",
- "formattedAveragePrice": "string"
}
], - "totalSales": 0,
- "formattedTotalSales": "string",
- "totalPurchases": 0,
- "formattedTotalPurchases": "string",
- "hasPurchasesCogs": true,
- "hasPurchasesExpense": true,
- "hasSales": true
}Generates a mini report on project for the business. This is a short summary of the project.
| project_id required | integer <int64> |
| business_id required | integer <int64> |
object <date> (TransferDate) Example: asOf=2023-12-25 |
{- "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 for the business.
| business_id required | integer <int64> |
| 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 > ] |
Generates a trial balance report for the business.
| business_id required | integer <int64> |
| 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" |
kashootsaHelpful endpoints including getting a list of countries, country regions and currencies