Download OpenAPI specification:
SoftLedger General Ledger Accounting API
Below is an overview of our REST API, including endpoints related to our general ledger and other components of SoftLedger's accounting software.
SoftLedger has the following endpoints.
Site | Endpoint |
---|---|
Production | https://api.softledger.com/v2 |
Europe | https://eu-api.softledger.com/v2 |
Please contact support@softledger.com to request access to the API.
SoftLedger API uses OAuth2.0 to access it's API. For any request to the API, you'll need to pass a JWT.
Prior to making any API request you'll need to request an OAuth token.
After you receive a token, add the following headers to every subsequent request:
{
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json"
}
Request OAuth Token
This endpoint uses the base URL without version as the request URL
https://api.softledger.com/oauth/token
https://eu-api.softledger.com/oauth/token
The following Legacy URLs will continue to be supported
https://auth.accounting-auth.com/oauth/token
https://eu.accounting-auth.com/oauth/token
grant_type required | string The OAuth grant type used to generate the toekn.
|
audience required | string API reference. Will be one of these two values
|
client_id required | string The Client ID of the OAuth client |
client_secret required | string The Client Secret of the OAuth client |
tenantUUID | string Note: This is only required for multi-tenant api keys The Tenant UUID to request data for |
{- "grant_type": "string",
- "tenantUUID": "string",
- "audience": "string",
- "client_id": "string",
- "client_secret": "string"
}
{- "access_token": "string",
- "expires_in": 0,
- "scope": "string"
}
Actions performed by the api will have their audit logs labelled with the name of the api key generated by the SoftLedger team.
Performing requests on behalf of users / Labeling audit log entries
If you would like to use an alternate label, or perform actions on behalf of a user, you can pass the x-softledger-auditlabel
header with the email of a user or a string label. This label will then be used in the audit log entry.
Requests to the SoftLedger API are rate limited to 200 requests per minute.
A rate limited request will return a HTTP Status of 429.
Every request to the API will return the following headers:
X-RateLimit-Remaining: String<integer>
- The number of api requests left during the interval.
X-RateLimit-RetryAfter: String<integer>
- The number of seconds remaining until the next interval.
The query paramaters for most GET requests limit
and cursor
allow pagination through large sets of data.
By default limit
is set to 25
In order to page forward set the cursor
query param to the cursor
value returned in the previous requests response data.
The query parameter filter
and filterType
for most GET endpoints allows you to filter on the requested data.
The filter
paramater should be a JSON.stringified key: value object.
The filterType
should be one of all
or any
. It defaults to all
.
If set to all
all results that match ALL filters are returned.
If set to any
all restults that match ANY filters are returned.
For example, if we wanted to get all Invoices that were paid, the where clause would be:
{
"status": {
"equals": "paid"
}
}
This would then be stringified prior to attaching in the URL
let tmp = JSON.stringify({
status: {
equals: "paid"
}
});
Then the request URL would look as follows
https://api.softledger.com/api/invoices?filter=tmp&filterType=any
Key | Description |
---|---|
equals | Exactly equals |
contains | Column contains. *String values only |
not | Does not equal |
gt | Greater than |
gte | Greater than or equal to |
lt | Less than |
lte | Less than or equal to |
in | Column is exactly any of the passed columns. Its value should be an array of values |
isNull | Boolean. Pass true to return columns with a null value and false to return columns with a set value. |
Get all created or approved bills posted after "2020-01-01"
{
"status": {
"in": ["created", "approved"]
},
"postingDate": {
"gt": "2020-01-01"
}
}
Get all Transactions where the reconcileId is not set. Indicating they are not reconciled
{
"reconcileId": {
"isNull": true
}
}
Successful API request responses will be described inline throughout the document 401,403,404 Messages will not contain a body as the error is implied. Other 4xx error codes will return as following:
{
error: "Error Message"
}
Webhooks allow you to subscribe to events that happen in SoftLedger. When one of those events is triggered, we'll send an HTTP POST payload to the webhook's configured URL.
Webhooks are sent with an 'at-least' once method. We recommend utilizing the uuid
field to ensure that you do not process the same webhook multiple times.
Webhook endpoints should be respond immediately with a http 200 status code. The system that receives the webhook should then process the webhook asynchronously and not wait for its work to complete prior to responding to the webhook request. If the endpoint is slow to respond or returns a non 200 status code, the webhook endpoint will be blacklisted by SoftLedger. Please contact support@softledger.com
to resolve the issue if this occurs.
The webhook payload will be sent as a JSON object with the following structure:
{
"uuid": "Unique identifier for the webhook",
"date": "ISO timestamp for when the webhook was triggered",
"tenantId": "The tenantUUID that triggered the webhook",
"objectType": "The type of object that triggered the webhook",
"objectId": "The _id of the object that triggered the webhook",
"action": "The action that triggered the webhook",
}
Each endpoint below specifies what webhooks are sent for each request. The list will contain the objectType
and action
that will be sent in the webhook payload.
Returns a list of webhooks in ascending order by uri
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "uri": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}
creates a new webhook
JSON body to create new Webhook
uri required | string |
{- "uri": "string"
}
{- "_id": 0,
- "uri": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
Returns all addresses that match the filter
object (AddressFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "label:ASC" Enum: "_id:ASC" "_id:DESC" "label:ASC" "label:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Customer.name:ASC" "Customer.name:DESC" "Vendor.name:ASC" "Vendor.name:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "isVerified": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "CustomerId": 0,
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
]
}
Creates a new address
JSON body to create new Address
Only one of [CustomerId, VendorId, Customer.name, Vendor.name]
can be set
label required | string |
line1 | string |
line2 | string |
city | string |
state | string |
zip | string |
country | string |
isDefault | boolean Set this as the default address for the Customer or Vendor |
CustomerId | integer Ref: Customer._id |
VendorId | integer Ref: Vendor._id |
object | |
object |
{- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "CustomerId": 0,
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
{- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "isVerified": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "CustomerId": 0,
- "VendorId": 0
}
Returns the count of addresses that match the filter
object (AddressFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Update One Address
id required | number Address._id |
JSON body containing key and values to update
label | string |
line1 | string |
line2 | string |
city | string |
state | string |
zip | string |
country | string |
isDefault | boolean Set this as the default address for the Customer or Vendor |
CustomerId | integer Ref: Customer._id |
VendorId | integer Ref: Vendor._id |
object | |
object |
{- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "CustomerId": 0,
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
{- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "isVerified": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "CustomerId": 0,
- "VendorId": 0
}
{- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string",
- "isDefault": true,
- "isVerified": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
[- {
- "client_id": "string",
- "name": "string",
- "active": true,
- "permissions": [
- "string"
], - "audience": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Creates a new api key
JSON body to create new api key
Ensure to record the returned client_secret as it will not be visible again.
name required | string >= 5 characters |
permissions | Array of strings |
{- "name": "string",
- "permissions": [
- "string"
]
}
{- "client_id": "string",
- "client_secret": "string",
- "audience": "string",
- "name": "string",
- "permissions": [
- "string"
], - "active": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Set the permissions for an api key
client_id required | string Api Key client_id |
List of full permissions to set for api key..
This list will replace the existing permission list.
permissions required | Array of strings Must have at least one permission. Duplicates ignored |
{- "permissions": [
- "string"
]
}
Returns a list of Audit Logs
object | |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "object": { },
- "objectType": "string",
- "objectId": "string",
- "message": "string",
- "user": "string",
- "api": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userType": "string",
- "userLabel": "string"
}
]
}
Returns all bank accounts that match the filter
object (BankFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string (BankOrder) Default: "providerName:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "accountName:ASC" "accountName:DESC" "providerName:ASC" "providerName:DESC" Field to sort by |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "hidden": true,
- "acctype": "Custom",
- "accountName": "string",
- "accountNumber": "string",
- "providerAccountId": "string",
- "accountType": "string",
- "accountSubtype": "string",
- "providerName": "string",
- "providerId": "string",
- "status": "string",
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Bank Account
Name and number must be unique for bank accounts.
JSON body to create new bank account
providerName required | string Name of the institution / account provider |
accountName required | string |
accountNumber required | string >= 4 characters |
accountType required | string Enum: "investment" "credit" "depository" "loan" "brokerage" "other" |
{- "providerName": "string",
- "accountName": "string",
- "accountNumber": "string",
- "accountType": "investment"
}
{- "id": "string",
- "providerName": "string",
- "accountName": "string",
- "accountNumber": "string",
- "accountType": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a list of bank transactions for this account.
Also returns the possible and exact matches of a transaction with Journals or Cash Receipts.
id required | string BankAccount._id |
object (BankTransactionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BankTransactionOrder) Default: "date:DESC" Enum: "_id:ASC" "_id:DESC" "amount:ASC" "amount:DESC" "authorized_date:ASC" "authorized_date:DESC" "date:ASC" "date:DESC" "category:ASC" "category:DESC" "currency:ASC" "currency:DESC" "name:ASC" "name:DESC" "merchant_name:ASC" "merchant_name:DESC" "payment_channel:ASC" "payment_channel:DESC" "transaction_code:ASC" "transaction_code:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:DESC" |
{- "data": [
- {
- "_id": "string",
- "name": "string",
- "merchant_name": "string",
- "amount": "string",
- "currency": "string",
- "date": "2019-08-24",
- "authorized_date": "2019-08-24",
- "category": "string",
- "payment_channel": "string",
- "transaction_code": "string",
- "SystemJobId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "hasPossibleMatches": true,
- "JournalId": 0,
- "CashReceiptId": 0
}
], - "cursor": "string",
- "hasNextPage": true
}
Returns all batch payments that match the filter
object (BatchPaymentFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "referenceNumber:DESC" Enum: "_id:ASC" "_id:DESC" "status:ASC" "status:DESC" "referenceNumber:ASC" "referenceNumber:DESC" "postedDate:ASC" "postedDate:DESC" "paymentDate:ASC" "paymentDate:DESC" "currency:ASC" "currency:DESC" "amount:ASC" "amount:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "referenceNumber": "string",
- "postedDate": "2019-08-24",
- "paymentDate": "2019-08-24",
- "memo": "string",
- "currency": "string",
- "amount": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ClearingAccountId": 0,
- "ClearingAccount": {
- "name": "string",
- "number": "string"
}, - "CashAccountId": 0,
- "CashAccount": {
- "name": "string",
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com"
}
]
}
creates a new Batch Payment
JSON body to create new Batch Payment
Created batch payments will be created in created
status unless the setting for Auto-Approve (AP) is enabled, then the status will be approved
paymentDate required | string <date> |
referenceNumber required | string |
CashAccountId required | integer Ref: LedgerAccount._id |
ClearingAccountId required | integer Ref: LedgerAccount._id |
required | Array of objects All bills require, "_id" and "amount". Bills must be from the same location and be in the same currency. |
postedDate | string <date> |
memo | string |
{- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "referenceNumber": "string",
- "memo": "string",
- "CashAccountId": 0,
- "ClearingAccountId": 0,
- "Bills": [
- {
- "_id": 0,
- "amount": "string",
- "memo": "string"
}
]
}
{- "_id": 0,
- "referenceNumber": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "CashAccountId": 0,
- "ClearingAccountId": 0,
- "LocationId": 0,
- "currency": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
This endpoint returns bills for the specified batch payment.
id required | number BatchPayment._id |
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BillOrder) Default: "invoiceNumber:DESC" Enum: "_id:ASC" "_id:DESC" "invoiceNumber:ASC" "invoiceNumber:DESC" "externalId:ASC" "externalId:DESC" "description:ASC" "description:DESC" "invoiceDate:ASC" "invoiceDate:DESC" "postedDate:ASC" "postedDate:DESC" "dueDate:ASC" "dueDate:DESC" "dueAmount:ASC" "dueAmount:DESC" "amount:ASC" "amount:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "currency:ASC" "currency:DESC" "status:ASC" "status:DESC" "approvalStatus:ASC" "approvalStatus:DESC" "paymentStatus:ASC" "paymentStatus:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "paymentAmount": "string",
- "paymentMemo": "string",
- "_id": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "dueAmount": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "name": "string",
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
The same filters as Search can be used here.
id required | number BatchPayment._id |
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
{- "count": "string",
- "estimate": true
}
Returns the count of batch payments that match the filter
object (BatchPaymentFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Get one Batch Payment
id required | number BatchPayment._id |
{- "_id": 0,
- "status": "created",
- "referenceNumber": "string",
- "postedDate": "2019-08-24",
- "paymentDate": "2019-08-24",
- "memo": "string",
- "currency": "string",
- "amount": "string",
- "VendorIds": [
- 0
], - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ClearingAccountId": 0,
- "ClearingAccount": {
- "name": "string",
- "number": "string"
}, - "CashAccountId": 0,
- "CashAccount": {
- "name": "string",
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com"
}
This endpoint returns payments for the specified batch payment. The parameters of this endpoint are the same as for Payments Search
id required | number BatchPayment._id |
object (PaymentsFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "externalId:ASC" "externalId:DESC" "checkNumber:ASC" "checkNumber:DESC" "amount:ASC" "amount:DESC" "paymentDate:ASC" "paymentDate:DESC" "postedDate:ASC" "postedDate:DESC" "currency:ASC" "currency:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "paymentAmount": "string",
- "paymentMemo": "string",
- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
]
}
The same filters as Search can be used here.
id required | number BatchPayment._id |
object (PaymentsFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Enum: "ap" "ar" Filter by AP or AR payments If not specified, all payment types will be returned |
{- "count": "string",
- "estimate": true
}
Void Batch Payment
id required | number BatchPayment._id |
JSON body containing void details. Can only void a batch in "approved" status
description | string |
voidDate | string <date> Date of the void. Defaults to today. Must be today or earlier. |
{- "description": "string",
- "voidDate": "2019-08-24"
}
Returns all bills that match the filter
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BillOrder) Default: "invoiceNumber:DESC" Enum: "_id:ASC" "_id:DESC" "invoiceNumber:ASC" "invoiceNumber:DESC" "externalId:ASC" "externalId:DESC" "description:ASC" "description:DESC" "invoiceDate:ASC" "invoiceDate:DESC" "postedDate:ASC" "postedDate:DESC" "dueDate:ASC" "dueDate:DESC" "dueAmount:ASC" "dueAmount:DESC" "amount:ASC" "amount:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "currency:ASC" "currency:DESC" "status:ASC" "status:DESC" "approvalStatus:ASC" "approvalStatus:DESC" "paymentStatus:ASC" "paymentStatus:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AP Credits i.e. bills with a negative amount. If false or not specified, only returns bills with a positive amount. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "dueAmount": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "name": "string",
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
creates a new Bill
JSON body to create new Bill
One of [Vendor.name, VendorId]
is Required
One of [Location.id, LocationId]
is Required
One of [APAccount.number, APAccountId]
is Required
invoiceDate required | string <date> | |||||||||||||||||||||||||||||||||||
postingDate required | string <date> | |||||||||||||||||||||||||||||||||||
VendorId required | integer Ref: Vendor._id | |||||||||||||||||||||||||||||||||||
LocationId required | integer Ref: Location._id | |||||||||||||||||||||||||||||||||||
APAccountId required | integer Ref: LedgerAccount._id | |||||||||||||||||||||||||||||||||||
currency required | string <ISO4217 3 Char Code> | |||||||||||||||||||||||||||||||||||
externalId | string | |||||||||||||||||||||||||||||||||||
dueDate | string <date> | |||||||||||||||||||||||||||||||||||
notes | string | |||||||||||||||||||||||||||||||||||
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents | |||||||||||||||||||||||||||||||||||
description | string | |||||||||||||||||||||||||||||||||||
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
ICLocationId | integer Ref: Location._id | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
PurchaseOrderId | integer Ref: PurchaseOrder._id | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
Array of objects Handling of LedgerAccountId:
** If LedgerAccountId is set, it will override the LedgerAccount.number ** Tax Logic:
|
{- "externalId": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "description": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "BillLineItems": [
- {
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
]
}
{- "_id": 0,
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "description": "string",
- "currency": "string",
- "amount": "string",
- "customFields": { },
- "LocationId": 0,
- "ICLocationId": 0,
- "VendorId": 0,
- "APAccountId": 0,
- "PurchaseOrderId": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid"
}
Returns all bill lines that match the filter
object (BillLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BillLineOrder) Default: "Bill.invoiceNumber:ASC" Enum: "_id:ASC" "_id:DESC" "idx:ASC" "idx:DESC" "description:ASC" "description:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "taxAmount:ASC" "taxAmount:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Bill.invoiceNumber:ASC" "Bill.invoiceNumber:DESC" "Bill.status:ASC" "Bill.status:DESC" "Bill.approvalStatus:ASC" "Bill.approvalStatus:DESC" "Bill.paymentStatus:ASC" "Bill.paymentStatus:DESC" "Bill.currency:ASC" "Bill.currency:DESC" "Bill.description:ASC" "Bill.description:DESC" "Bill.invoiceDate:ASC" "Bill.invoiceDate:DESC" "Bill.postingDate:ASC" "Bill.postingDate:DESC" "Bill.dueDate:ASC" "Bill.dueDate:DESC" "Bill.createdAt:ASC" "Bill.createdAt:DESC" "Bill.updatedAt:ASC" "Bill.updatedAt:DESC" "APAccount.number:ASC" "APAccount.number:DESC" "BillAccount.number:ASC" "BillAccount.number:DESC" "LedgerAccount.number:ASC" "LedgerAccount.number:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "Vendor.is1099:ASC" "Vendor.is1099:DESC" "Location.name:ASC" "Location.name:DESC" "ICLocation.name:ASC" "ICLocation.name:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "Product.id:ASC" "Product.id:DESC" "Job.number:ASC" "Job.number:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AP Credits i.e. bills with a negative amount. If false or not specified, only returns bills with a positive amount. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "total": "string",
- "BillId": 0,
- "Bill": {
- "invoiceNumber": "string",
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "currency": "string",
- "description": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "customFields": { },
- "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24",
- "APAccountId": 0,
- "VendorId": 0,
- "LocationId": 0,
- "ICLocationId": 0
}, - "APAccount": {
- "name": "string",
- "number": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "is1099": true
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocation": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "BillAccount": {
- "name": "string",
- "number": "string"
}
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
This endpoint returns unpaid bills/credits.
filterCurrency | string Provide this to only show unpaid bills in the specified currency. This parameter is optional. |
filterLocationId | string <number> Ref: "Location"._id Provide this to only show unpaid bills from the specified location. Bills from child locations of the provided location are not included. This parameter is optional. |
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BillOrder) Default: "invoiceNumber:DESC" Enum: "_id:ASC" "_id:DESC" "invoiceNumber:ASC" "invoiceNumber:DESC" "externalId:ASC" "externalId:DESC" "description:ASC" "description:DESC" "invoiceDate:ASC" "invoiceDate:DESC" "postedDate:ASC" "postedDate:DESC" "dueDate:ASC" "dueDate:DESC" "dueAmount:ASC" "dueAmount:DESC" "amount:ASC" "amount:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "currency:ASC" "currency:DESC" "status:ASC" "status:DESC" "approvalStatus:ASC" "approvalStatus:DESC" "paymentStatus:ASC" "paymentStatus:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "dueAmount": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "name": "string",
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
The same filters as Search can be used here.
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AP Credits i.e. bills with a negative amount. If false or not specified, only returns bills with a positive amount. |
{- "count": "string",
- "estimate": true
}
The same filters as Search can be used here.
object (BillLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AP Credits i.e. bills with a negative amount. If false or not specified, only returns bills with a positive amount. |
{- "count": "string",
- "estimate": true
}
The same filters as Search can be used here.
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
filterCurrency | string Provide this to only show unpaid bills in the specified currency. This parameter is optional. |
filterLocationId | string <number> Ref: "Location"._id Provide this to only show unpaid bills from the specified location. Bills from child locations of the provided location are not included. This parameter is optional. |
{- "count": "string",
- "estimate": true
}
creates a new Bill Line
id required | number or string Bill._id |
amount required | string <number> |
quantity required | string <number> |
description | string Required if ItemId is not set |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object | |
LedgerAccountId | integer Ref: LedgerAccount._id |
object |
{- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "id": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "LedgerAccountId": 0
}
{- "_id": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "description": "string",
- "currency": "string",
- "amount": "string",
- "dueAmount": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "name": "string",
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "BillLineItems": [
- {
- "_id": 0,
- "idx": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string",
- "LedgerAccountId": 0
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "BillAccountId": 0,
- "BillAccount": {
- "name": "string",
- "number": 0
}
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Update One Bill
id required | number or string Bill._id |
JSON body containing key and values to update
Can only update an bill with "created" status
externalId | string |
invoiceDate | string <date> |
postingDate | string <date> |
dueDate | string <date> |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
description | string |
currency | string <ISO4217 3 Char Code> |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
LocationId | integer Ref: Location._id |
object | |
ICLocationId | integer Ref: Location._id |
object | |
VendorId | integer Ref: Vendor._id |
object | |
APAccountId | integer Ref: LedgerAccount._id |
object | |
PurchaseOrderId | integer Ref: PurchaseOrder._id |
object |
{- "externalId": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "description": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}
}
{- "_id": 0,
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "description": "string",
- "amount": "string",
- "dueAmount": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "ICLocationId": 0,
- "VendorId": 0,
- "APAccountId": 0,
- "PurchaseOrderId": 0
}
Update a Bill Line
id required | number or string BillLineItem._id |
description | string Required if ItemId is not set |
amount | string <number> |
quantity | string <number> |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object | |
LedgerAccountId | integer Ref: LedgerAccount._id |
object |
{- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "id": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "LedgerAccountId": 0
}
This endpoint returns only payments for the specified bill. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string Bill._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Void Bill
id required | number or string Bill._id |
Bills with linked payments cannot be voided
Bills in created or voided status cannot be voided
description | string |
postingDate | string <date> |
{- "description": "string",
- "postingDate": "2019-08-24"
}
Returns all budgets that match the filter
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "name:ASC" Enum: "name:ASC" "name:DESC" "type:ASC" "type:DESC" "accountType:ASC" "accountType:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "name:ASC" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "description": "string",
- "accountType": "incomeStatement",
- "LocationId": 0,
- "Location": {
- "id": 0,
- "name": "string"
}, - "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Budget
JSON body to create new Budget
name required | string Name must be unique per tenant |
accountType required | string Enum: "incomeStatement" "balanceSheet" |
LocationId required | integer Ref: Location._id |
required | Array of objects |
description | string |
{- "name": "string",
- "description": "string",
- "LocationId": 0,
- "accountType": "incomeStatement",
- "values": [
- {
- "month": 0,
- "year": 0,
- "LedgerAccountId": 0,
- "amount": "string"
}
]
}
{- "_id": 0,
- "name": "string",
- "description": "string",
- "accountType": "incomeStatement",
- "LocationId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Gets one budget details
The budget figures associated against each ledger account per month are also returned in a values
array.
Accounts returned are sorted by Ledger Account number
in ascending order.
Based on the month range of the budget, each ledger account row gets a column for each month in the range.
id required | number or string Ref: Budget._id |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "values": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string",
- "type": "Asset"
}, - "YYYY-MM": "string"
}
], - "_id": 0,
- "name": "string",
- "description": "string",
- "accountType": "incomeStatement",
- "LocationId": 0,
- "Location": {
- "id": 0,
- "name": "string"
}, - "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Updates a Budget
id required | number or string Ref: Budget._id |
JSON body to update a Budget
All fields are required. Cannot do partial updates.
type
cannot be changed.
name required | string Name must be unique per tenant |
accountType required | string Enum: "incomeStatement" "balanceSheet" |
LocationId required | integer Ref: Location._id |
required | Array of objects |
description | string |
{- "name": "string",
- "description": "string",
- "accountType": "incomeStatement",
- "LocationId": 0,
- "values": [
- {
- "month": 0,
- "year": 0,
- "LedgerAccountId": 0,
- "amount": "string"
}
]
}
{- "_id": 0,
- "name": "string",
- "description": "string",
- "accountType": "incomeStatement",
- "LocationId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all cash receipts that match the filter
object (CashReceiptFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "externalId:ASC" "externalId:DESC" "type:ASC" "type:DESC" "amount:ASC" "amount:DESC" "unused:ASC" "unused:DESC" "description:ASC" "description:DESC" "currency:ASC" "currency:DESC" "receiveDate:ASC" "receiveDate:DESC" "postingDate:ASC" "postingDate:DESC" "status:ASC" "status:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "applyToInvoices": true,
- "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "UnappliedCashAccountId": 0,
- "UnappliedCashAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Cash Receipt
JSON body to create new Cash Receipt
Only one of [Customer.id, CustomerId]
can be set
Only one of [LedgerAccount.number, LedgerAccountId]
can be set
Only one of [Location.id, LocationId]
can be set
Only one of [UnappliedCashAccount.number, UnappliedCashAccountId]
can be set
number required | string |
type required | string Enum: "charge" "check" "ach" "wire" "cash" |
amount required | string <number> Must be > 0 |
currency required | string Ref: Currency.code |
receiveDate required | string <date> |
postingDate required | string <date> |
externalId | string |
description | string |
applyToInvoices | boolean Default: false |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
CustomerId | number Ref: Customer._id |
object | |
LedgerAccountId | number Ref: LedgerAccount._id |
object | |
LocationId | number Ref: Location._id |
object | |
UnappliedCashAccountId | number Ref: LedgerAccount._id |
object |
{- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "applyToInvoices": false,
- "CustomerId": 0,
- "Customer": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string"
}, - "UnappliedCashAccountId": 0,
- "UnappliedCashAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "applyToInvoices": true,
- "CustomerId": 0,
- "LedgerAccountId": 0,
- "LocationId": 0,
- "UnappliedCashAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns the count of cash receipts that match the filter
object (CashReceiptFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Get one Cash Receipt
id required | number or string CashReceipt._id |
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "applyToInvoices": true,
- "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "UnappliedCashAccountId": 0,
- "UnappliedCashAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One Cash Receipt
id required | number or string CashReceipt._id |
JSON body containing key and values to update
Cannot update a Cash Receipt if an unapplied cash journal entry was created
Only one of [Customer.id, CustomerId]
can be set
Only one of [LedgerAccount.number, LedgerAccountId]
can be set
Only one of [Location.id, LocationId]
can be set
number | string |
externalId | string |
type | string Enum: "charge" "check" "ach" "wire" "cash" |
amount | string <number> Must be > 0 |
description | string |
currency | string Ref: Currency.code |
receiveDate | string <date> |
postingDate | string <date> |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
CustomerId | number Ref: Customer._id |
object | |
LedgerAccountId | number Ref: LedgerAccount._id |
object | |
LocationId | number Ref: Location._id |
object |
{- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "CustomerId": 0,
- "Customer": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string"
}
}
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "applyToInvoices": true,
- "CustomerId": 0,
- "LedgerAccountId": 0,
- "LocationId": 0,
- "UnappliedCashAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
This endpoint returns only payments for the specified cash receipt. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string CashReceipt._id |
object (PaymentsFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (PaymentsOrder) Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "externalId:ASC" "externalId:DESC" "checkNumber:ASC" "checkNumber:DESC" "amount:ASC" "amount:DESC" "paymentDate:ASC" "paymentDate:DESC" "postedDate:ASC" "postedDate:DESC" "currency:ASC" "currency:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Enum: "ap" "ar" Filter by AP or AR payments If not specified, all payment types will be returned |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Returns all coins that match the filter
object (CoinFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string (CoinOrder) Default: "symbol:ASC" Enum: "_id:ASC" "_id:DESC" "symbol:ASC" "symbol:DESC" "name:ASC" "name:DESC" "impair:ASC" "impair:DESC" "hidden:ASC" "hidden:DESC" "isFiat:ASC" "isFiat:DESC" "rateSymbol:ASC" "rateSymbol:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "symbol": "string",
- "name": "string",
- "impair": true,
- "hidden": true,
- "isFiat": true,
- "rateSymbol": "string",
- "rateId": "string",
- "rateSource": "nomics",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AssetAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "FeeAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "LTGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "STGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}
}
]
}
Creates a new Coin
JSON body to create new Coin
symbol required | string |
name required | string |
impair | boolean Default: false |
isFiat | boolean Default: false If set true
|
rateId | string Required if coin will use automatic rates |
customFields | object Key->Value hash of custom field names and values |
{- "symbol": "string",
- "name": "string",
- "impair": false,
- "isFiat": false,
- "rateId": "string",
- "customFields": { }
}
{- "_id": 0,
- "symbol": "string",
- "name": "string",
- "impair": true,
- "hidden": true,
- "isFiat": true,
- "rateSymbol": "string",
- "rateId": "string",
- "rateSource": "coinmarketcap",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AssetAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "FeeAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "LTGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "STGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}
}
Returns a count of transactions based on the passed filters for a single coin. If a significantly large amount of transactions, it is possible an estimated value will be returned.
CoinId required | string Coin._id value |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
object (CoinCryptoTransactionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": 0,
- "estimate": true
}
Returns all transactions for a single coin
CoinId required | string Coin._id |
walletId | string Wallet._id Limits results to transactions that involve the specified wallet |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
object (CoinCryptoTransactionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "type": "deposit",
- "txHash": "string",
- "currency": "string",
- "currencyRate": "1",
- "reference": "string",
- "notes": "string",
- "sCostBasis": 0,
- "fCostBasis": 0,
- "externalSource": "string",
- "isJournalStale": true,
- "SystemJobId": "string",
- "locked": true,
- "qtyPicked": "1",
- "error": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "rCoinId": "string",
- "rWalletId": "string",
- "rQty": "1",
- "rPrice": "1",
- "sCoinId": "string",
- "sWalletId": "string",
- "sQty": "1",
- "sPrice": "1",
- "fCoinId": "string",
- "fWalletId": "string",
- "fPrice": "1",
- "JournalId": 0,
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "CostCenterId": 0,
- "ProductId": 0,
- "JobId": 0,
- "rCoin": {
- "symbol": "string"
}, - "rWallet": {
- "name": "string"
}, - "sCoin": {
- "symbol": "string"
}, - "sWallet": {
- "name": "string"
}, - "fCoin": {
- "symbol": "string"
}, - "fWallet": {
- "name": "string"
}, - "Journal": {
- "number": 0
}, - "LedgerAccount": {
- "number": 0,
- "name": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string"
}, - "CostCenter": {
- "id": "string",
- "name": "string"
}, - "Product": {
- "id": "string",
- "name": "string"
}, - "Job": {
- "number": "string",
- "name": "string"
}, - "balance": "string"
}
]
}
List of Coins with balance details by wallet
CoinId required | string Coin._id |
hideZero | boolean exclude zero balance coins |
date | string <date-time> date to filter by. defaults to "now" ISO DateTime |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
consolidated | boolean True = match on the Location & its children. False = match only wallets in this location. |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "name": "string",
- "quantity": "1",
- "value": "1",
- "gainLoss": "1",
- "totalCostBasis": "1",
- "rate": {
- "PRICE": "1",
- "CHANGEPCT24HOUR": "1"
}
}
]
}
{- "_id": "string",
- "symbol": "string",
- "name": "string",
- "impair": true,
- "hidden": true,
- "isFiat": true,
- "rateSymbol": "string",
- "rateId": "string",
- "rateSource": "nomics",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AssetAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "FeeAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "LTGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}, - "STGainLossAccount": {
- "_id": 0,
- "number": "string",
- "name": "string"
}
}
Update One Coin
id required | string Coin._id |
JSON body containing key and values to update
name | string |
impair | boolean |
hidden | boolean |
rateId | string |
rateSource | string Value: "coinmarketcap" Required if rateId is set |
customFields | object Key->Value hash of custom field names and values |
{- "name": "string",
- "impair": true,
- "hidden": true,
- "rateId": "string",
- "rateSource": "coinmarketcap",
- "customFields": { }
}
{- "_id": 0,
- "symbol": "string",
- "name": "string",
- "impair": true,
- "hidden": true,
- "isFiat": true,
- "rateSymbol": "string",
- "rateId": "string",
- "rateSource": "coinmarketcap",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns the 100 coins of the list of coins that SoftLedger can provide automatic rates for ordered by rank ascending. To see more, filter by symbol or name.
filter | string Case Insensitive filter for symbol or name of coin |
[- {
- "cmc_id": "string",
- "symbol": "string",
- "name": "string",
- "rank": 0,
- "logo_url": "string"
}
]
Returns the 'open' rate of the coin in the for the passed date in the fiat currency.
id required | string _id of Coin to get rate for Ref: Coin._id |
date required | string <date> Date to provide rate on |
fiat | string Default: "USD" Fiat currency to show rate in Ref: Currency.code |
"string"
Returns a list of coins with balances
showHidden | boolean include hidden coins |
hideZero | boolean exclude zero balance coins |
date | string <date> date to filter by. defaults to "now" ISO Date |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
consolidated | boolean True = match on the Location & its children. False = match only wallets in this location. |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "symbol:ASC" "symbol:DESC" "rateSymbol:ASC" "rateSymbol:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "name": "string",
- "symbol": "string",
- "rateId": "string",
- "rateSource": "coinmarketcap",
- "rateSymbol": "string",
- "isFiat": true,
- "custom": true,
- "impair": true,
- "quantity": "1",
- "value": "1",
- "gainLoss": "1",
- "totalCostBasis": "1",
- "rate": {
- "PRICE": "1",
- "CHANGEPCT24HOUR": "1"
}, - "customFields": { }
}
]
}
Returns all consolidation rates that match the filter
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "AccountingPeriod.end:DESC" Enum: "_id:ASC" "_id:DESC" "AccountingPeriod.end:ASC" "AccountingPeriod.end:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
LocationId | number Will include data from this Parent Location and its children only |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "AccountingPeriodId": 0,
- "ChildId": 0,
- "ParentId": 0,
- "spotRate": "string",
- "wavgRate": "string",
- "historicalRate": "string",
- "userSet": true,
- "AccountingPeriod": {
- "start": "2019-08-24",
- "end": "2019-08-24"
}, - "Child": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "Parent": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Upsert consolidation rates
JSON body of consolidation rates to create or update
One of ChildId or Child.id must be provided
One of ParentId or Parent.id must be provided
Parent.currency and Child.currency must be different
Will throw an error if the Accounting Year associated with any of the provided rates is closed.
spotRate required | string <number> Must be > 0 |
wavgRate required | string <number> Must be > 0 |
AccountingPeriodId required | number Ref: AccountingPeriod._id |
ChildId required | number Ref: Location._id |
ParentId required | number Ref: Location._id |
historicalRate | string <number> Must be > 0 |
object | |
object |
[- {
- "spotRate": "string",
- "wavgRate": "string",
- "historicalRate": "string",
- "AccountingPeriodId": 0,
- "ChildId": 0,
- "Child": {
- "id": "string"
}, - "ParentId": 0,
- "Parent": {
- "id": "string"
}
}
]
{- "_id": 0,
- "AccountingPeriodId": 0,
- "ChildId": 0,
- "ParentId": 0,
- "spotRate": "string",
- "wavgRate": "string",
- "historicalRate": "string"
}
Delete one Consolidation Rate
A Consolidation Rate can ony be deleted if the following are true:
There are no further child locations associated with the child location of this rate
There are no Journal Lines associated with the child location of this rate
The Accounting Year this consolidation rate falls under is not closed
id required | number or string Consolidation Rate Id |
Gets one rate record.
id required | number or string ConsolidationRate._id |
system | boolean Default: false Set this to true to return the system generated rate values for this record |
{- "_id": 0,
- "AccountingPeriodId": 0,
- "ChildId": 0,
- "ParentId": 0,
- "spotRate": "string",
- "wavgRate": "string",
- "historicalRate": "string",
- "userSet": true,
- "AccountingYear": {
- "start": "2019-08-24",
- "end": "2019-08-24"
}, - "AccountingPeriod": {
- "start": "2019-08-24",
- "end": "2019-08-24"
}, - "Child": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "Parent": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Populates consolidation rates
JSON body of period to populate rates for
Only missing Child/Parent rates will be populated for the period.
Safe to run multiple times for the same period and it will not overwrite your manually entered rates.
Will throw an error if the Accounting Year associated with this period is closed.
Weighted average rate is calculated using journal entries posted from the start of the fiscal year to the end of the specified accounting period.
AccountingPeriodId required | number Ref: AccountingPeriod._id |
{- "AccountingPeriodId": 0
}
Reset consolidation rate to system generated values
Will throw an error if the Accounting Year associated with this rate is closed.
Weighted average rate is calculated using journal entries posted from the start of the fiscal year to the end of the specified accounting period.
This will overwrite any manually entered rates on this record.
id required | number or string ConsolidationRate._id |
{- "_id": 0,
- "AccountingPeriodId": 0,
- "ChildId": 0,
- "ParentId": 0,
- "spotRate": "string",
- "wavgRate": "string",
- "historicalRate": "string",
- "userSet": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all contacts that match the filter
object (ContactFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Customer.name:ASC" "Customer.name:DESC" "Vendor.name:ASC" "Vendor.name:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
]
}
Creates a new Contact
JSON body to create new Contact
Only one of [CustomerId, VendorId, Customer.name, Vendor.name]
can be set
name required | string |
string | |
phone | string |
isPrimary | boolean Set this as the primary contact for the Customer or Vendor |
CustomerId | integer Ref: Customer._id |
VendorId | integer Ref: Vendor._id |
object | |
object |
{- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
{- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "VendorId": 0
}
Returns a count of contacts that match the filter
object (ContactFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Get one Contact
id required | number or string Contact._id |
{- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
Update One Contact
id required | number or string Contact._id |
JSON body containing key and values to update
name | string |
string | |
phone | string |
isPrimary | boolean Set this as the primary contact for the Customer or Vendor |
CustomerId | integer Ref: Customer._id |
VendorId | integer Ref: Vendor._id |
object | |
object |
{- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "VendorId": 0,
- "Customer": {
- "name": "string"
}, - "Vendor": {
- "name": "string"
}
}
{- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string",
- "isPrimary": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "VendorId": 0
}
Returns all cost centers that match the filter
object (CostCenterFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "description:ASC" "description:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create Cost Center
JSON body
id required | string |
name required | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of cost centers that match the filter
object (CostCenterFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
Get one Cost Center
id required | number or string CostCenter._id |
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update Cost Center
id required | number or string CostCenter._id |
JSON body containing key and values to update
id | string |
name | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a list of cost layers in descending order
id required | number or string CryptoTransaction._id to get cost layers for |
type required | string Enum: "s" "f" Type of cost layers to return |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "pickedId": 0,
- "date": "string",
- "qtyPicked": 0,
- "costBasis": 0
}
]
}
Returns a count of transactions based on the passed filters. If a significantly large amount of transactions, it is possible an estimated value will be returned.
coinId | string Coin._id Limits results to the specified coin |
walletId | string Wallet._id Limits results to the specified wallet |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
costLayers | boolean Default: false Only returns Crypto Transactions that have unused cost layers. |
object (CryptoTransactionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Create new Crypto Transaction. See below for respective tables containing required fields and fields that are not allowed for each type of transaction.
Field | Deposit | Withdrawal | Trade | Transfer |
---|---|---|---|---|
rCoinId | ✅ | ❌ | ✅ | ✅ |
rWalletId | ✅ | ❌ | ✅ | ✅ |
rQty | ✅ | ❌ | ✅ | ✅ |
rPrice | ✔️ | ❌ | ✔️ | ❌ |
sCoinId | ❌ | ✅ | ✅ | ✅ |
sWalletId | ❌ | ✅ | ✅ | ✅ |
sQty | ❌ | ✔️ | ✅ | ✅ |
sPrice | ❌ | ✔️ | -- | ❌ |
LedgerAccountId | ✅ | ✅ | ❌ | ❌ |
Fee Fields | ✔️ | ✔️ | ✔️ | ✔️ |
✅ - Required ❌ - Not Allowed ✔️ - Optional
Price fields will pull from rate provider if set to null
sPrice is Ignored for Trades as is autocalculated from rPrice
sQty may be set to 0 if fQty > 0, this allows "fee only" transactions
Fee Fields | |
---|---|
fCoinId | ✅ |
fWalletId | ✅ |
fQty | ✅ |
fPrice | ✔️ |
Setting fCoinId indicates that a fee should be added
JSON body to create new Crypto Transaction
date required | string <date-time> |
type required | string Enum: "deposit" "trade" "transfer" "withdrawal" |
currency required | string ISO-4217 Currency Code ex "USD" or "GBP". This specifies which currency rPrice/sPrice/fPrice uses. |
rCoinId | string ref: Coins._id |
sCoinId | string ref: Coins._id |
fCoinId | string ref: Coins._id |
rWalletId | string ref: Wallets._id |
sWalletId | string ref: Wallets._id |
fWalletId | string ref: Wallets._id |
rQty | string <number> |
sQty | string <number> |
fQty | string <number> |
sPrice | string <number> |
rPrice | string <number> |
fPrice | string <number> |
notes | string |
reference | string |
externalId | string |
externalSource | string |
txHash | string |
LedgerAccountId | integer ref: LedgerAccounts._id |
CustomerId | integer ref: Customers._id |
VendorId | integer ref: Vendors._id |
CostCenterId | integer ref: CostCenters._id |
ProductId | integer ref: Products._id |
JobId | integer ref: Jobs._id |
Custom1Id | integer ref: Custom1._id |
Custom2Id | integer ref: Custom2._id |
Custom3Id | integer ref: Custom3._id |
{- "date": "2019-08-24T14:15:22Z",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "rQty": "1",
- "sQty": "1",
- "fQty": "1",
- "type": "deposit",
- "sPrice": "1",
- "rPrice": "1",
- "fPrice": "1",
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "CostCenterId": 0,
- "ProductId": 0,
- "JobId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0
}
{- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "rQty": "1",
- "sQty": "1",
- "fQty": "1",
- "qtyPicked": "1",
- "type": "deposit",
- "sCostBasis": 0,
- "fCostBasis": 0,
- "sPrice": "1",
- "rPrice": "1",
- "fPrice": "1",
- "locked": true,
- "error": { },
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "currencyRate": "1",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "SystemJobId": "string",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "JournalId": 0,
- "CostCenterId": 0,
- "ProductId": 0,
- "JobId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0
}
Returns all crypto transactions that match the filter
coinId | string Coin._id Limits results to the specified coin |
walletId | string Wallet._id Limits results to the specified wallet |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
costLayers | boolean Default: false Only returns Crypto Transactions that have unused cost layers. |
journalErrorsOnly | boolean Default: false Set to true to only return Crypto Transactions that have journal errors. |
object (CryptoTransactionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "date:DESC" Enum: "_id:ASC" "_id:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "createdAt:ASC" "createdAt:DESC" "currency:ASC" "currency:DESC" "Custom1.id:ASC" "Custom1.id:DESC" "Custom2.id:ASC" "Custom2.id:DESC" "Custom3.id:ASC" "Custom3.id:DESC" "Customer.id:ASC" "Customer.id:DESC" "date:ASC" "date:DESC" "externalId:ASC" "externalId:DESC" "externalSource:ASC" "externalSource:DESC" "fCoin.symbol:ASC" "fCoin.symbol:DESC" "fPrice:ASC" "fPrice:DESC" "fQty:ASC" "fQty:DESC" "fWallet.name:ASC" "fWallet.name:DESC" "isJournalStale:ASC" "isJournalStale:DESC" "Job.number:ASC" "Job.number:DESC" "Journal.number:ASC" "Journal.number:DESC" "LedgerAccount.number:ASC" "LedgerAccount.number:DESC" "locked:ASC" "locked:DESC" "notes:ASC" "notes:DESC" "Product.id:ASC" "Product.id:DESC" "rCoin.symbol:ASC" "rCoin.symbol:DESC" "reference:ASC" "reference:DESC" "rPrice:ASC" "rPrice:DESC" "rQty:ASC" "rQty:DESC" "rWallet.name:ASC" "rWallet.name:DESC" "sCoin.symbol:ASC" "sCoin.symbol:DESC" "sPrice:ASC" "sPrice:DESC" "sQty:ASC" "sQty:DESC" "sWallet.name:ASC" "sWallet.name:DESC" "SystemJobId:ASC" "SystemJobId:DESC" "txHash:ASC" "txHash:DESC" "type:ASC" "type:DESC" "updatedAt:ASC" "updatedAt:DESC" "Vendor.id:ASC" "Vendor.id:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "rQty": 0,
- "sQty": 0,
- "fQty": 0,
- "qtyPicked": "string",
- "type": "deposit",
- "sCostBasis": 0,
- "fCostBasis": 0,
- "sPrice": 0,
- "rPrice": 0,
- "fPrice": 0,
- "locked": true,
- "error": { },
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "currencyRate": "string",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "SystemJobId": "string",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "sGainLoss": "string",
- "fGainLoss": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "JournalId": 0,
- "CostCenterId": 0,
- "ProductId": 0,
- "JobId": 0,
- "rCoin": {
- "symbol": "string"
}, - "rWallet": {
- "name": "string"
}, - "sCoin": {
- "symbol": "string"
}, - "sWallet": {
- "name": "string"
}, - "fCoin": {
- "symbol": "string"
}, - "fWallet": {
- "name": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Journal": {
- "number": 0
}, - "CostCenter": {
- "id": "string",
- "name": "string"
}, - "Product": {
- "id": "string",
- "name": "string"
}, - "Job": {
- "number": "string",
- "name": "string"
}
}
]
}
Get one Crypto Transaction
id required | number or string CryptoTransaction._id |
{- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "rQty": 0,
- "sQty": 0,
- "fQty": 0,
- "qtyPicked": "string",
- "type": "deposit",
- "sCostBasis": 0,
- "fCostBasis": 0,
- "sPrice": 0,
- "rPrice": 0,
- "fPrice": 0,
- "locked": true,
- "error": { },
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "currencyRate": "string",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "SystemJobId": "string",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "JournalId": 0,
- "CostCenterId": 0,
- "ProductId": 0,
- "JobId": 0,
- "rCoin": {
- "symbol": "string"
}, - "rWallet": {
- "name": "string"
}, - "sCoin": {
- "symbol": "string"
}, - "sWallet": {
- "name": "string"
}, - "fCoin": {
- "symbol": "string"
}, - "fWallet": {
- "name": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Journal": {
- "number": 0
}, - "CostCenter": {
- "id": "string",
- "name": "string"
}, - "Product": {
- "id": "string",
- "name": "string"
}, - "Job": {
- "number": "string",
- "name": "string"
}
}
Update One Crypto Transaction. See Create for allowed fields.
id required | number or string CryptoTransaction._id |
JSON body containing key and values to update
date | string <date-time> |
rCoinId | string Ref: Coins._id |
sCoinId | string Ref: Coins._id |
fCoinId | string Ref: Coins._id |
rWalletId | string Ref: Wallets._id |
sWalletId | string Ref: Wallets._id |
fWalletId | string Ref: Wallets._id |
rQty | string <number> |
sQty | string <number> |
fQty | string <number> |
qtyPicked | string <number> |
type | string Enum: "deposit" "trade" "transfer" "withdrawal" |
sPrice | string <number> |
rPrice | string <number> |
fPrice | string <number> |
notes | string |
reference | string |
LedgerAccountId | integer Ref: LedgerAccount._id |
CustomerId | integer Ref: Customer._id |
currency | string ISO-4217 Currency Code ex "USD" or "GBP". This specifies which currency rPrice/sPrice/fPrice uses. |
currencyRate | string <number> |
externalId | string |
externalSource | string |
txHash | string |
VendorId | integer Ref: Vendor._id |
{- "date": "2019-08-24T14:15:22Z",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "rQty": "1",
- "sQty": "1",
- "fQty": "1",
- "qtyPicked": "1",
- "type": "deposit",
- "sPrice": "1",
- "rPrice": "1",
- "fPrice": "1",
- "notes": "string",
- "reference": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "currency": "string",
- "currencyRate": "string",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "VendorId": 0
}
{- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "rQty": "1",
- "sQty": "1",
- "fQty": "1",
- "qtyPicked": "1",
- "type": "deposit",
- "sCostBasis": 0,
- "fCostBasis": 0,
- "sPrice": "1",
- "rPrice": "1",
- "fPrice": "1",
- "locked": true,
- "error": { },
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "currencyRate": "1",
- "externalId": "string",
- "externalSource": "string",
- "txHash": "string",
- "SystemJobId": "string",
- "rCoinId": "string",
- "sCoinId": "string",
- "fCoinId": "string",
- "rWalletId": "string",
- "sWalletId": "string",
- "fWalletId": "string",
- "LedgerAccountId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "JournalId": 0,
- "rCoin": {
- "symbol": "string"
}, - "rWallet": {
- "name": "string"
}, - "sCoin": {
- "symbol": "string"
}, - "sWallet": {
- "name": "string"
}, - "fCoin": {
- "symbol": "string"
}, - "fWallet": {
- "name": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Journal": {
- "number": 0
}
}
Merges a deposit and withdrawal crypto transaction into a transfer transaction.
The deposit and withdrawal transactions will both be deleted and a single transfer transaction will be created. Any linked journals will be destroyed.
The fee from the withdrawal will be added to the transfer transaction.
The rCoin of the deposit and the sCoin of the withdrawal must match.
The rWallet of the deposit and the sWallet of the withdrawal must match.
The rQty of the deposit and the sQty of the withdrawal must match.
The txHash of the deposit and the txHash of the withdrawal must match.
The currency of the deposit and the currency of the withdrawal must match.
Merge deposit and withdrawal crypto transactions into a transfer transaction.
depositId required | string Ref: CryptoTransaction._id |
withdrawalId required | string Ref: CryptoTransaction._id |
useDepositMetaData | boolean Default: false Set True to use deposit meta data to populate new transfer transaction. Set False to use withdrawal meta data to populate new transfer transaction. The metadata includes [date, reference, notes, dimensions, attachments, externalId, externalSource] |
{- "depositId": "string",
- "withdrawalId": "string",
- "useDepositMetaData": false
}
{- "_id": 0
}
Create new currency
JSON body to create a new currency
code required | string |
symbol required | string |
name required | string |
rounding_method | number Default: 1 |
fraction | number Default: 2 |
custom | boolean |
{- "code": "string",
- "symbol": "string",
- "name": "string",
- "rounding_method": 1,
- "fraction": 2,
- "custom": true
}
{- "code": "string",
- "fraction": 0,
- "rounding_method": 0,
- "symbol": "string",
- "name": "string",
- "custom": false
}
Gets FX rates for currency
code required | string Currency Code |
[- {
- "date": "string",
- "AED": "string",
- "AFN": "string",
- "ALL": "string",
- "AMD": "string",
- "ANG": "string",
- "AOA": "string",
- "ARS": "string",
- "AUD": "string",
- "AWG": "string",
- "AZN": "string",
- "BAM": "string",
- "BBD": "string",
- "BDT": "string",
- "BGN": "string",
- "BHD": "string",
- "BIF": "string",
- "BMD": "string",
- "BND": "string",
- "BOB": "string",
- "BRL": "string",
- "BSD": "string",
- "BTC": "string",
- "BTN": "string",
- "BWP": "string",
- "BZD": "string",
- "CAD": "string",
- "CDF": "string",
- "CHF": "string",
- "CLF": "string",
- "CLP": "string",
- "CNH": "string",
- "CNY": "string",
- "COP": "string",
- "CRC": "string",
- "CUC": "string",
- "CUP": "string",
- "CVE": "string",
- "CZK": "string",
- "DJF": "string",
- "DKK": "string",
- "DOP": "string",
- "DZD": "string",
- "EGP": "string",
- "ERN": "string",
- "ETB": "string",
- "ETH": "string",
- "EUR": "string",
- "FJD": "string",
- "FKP": "string",
- "GBP": "string",
- "GEL": "string",
- "GHS": "string",
- "GIP": "string",
- "GMD": "string",
- "GNF": "string",
- "GTQ": "string",
- "GYD": "string",
- "HKD": "string",
- "HNL": "string",
- "HRK": "string",
- "HTG": "string",
- "HUF": "string",
- "IDR": "string",
- "ILS": "string",
- "INR": "string",
- "IQD": "string",
- "IRR": "string",
- "ISK": "string",
- "JMD": "string",
- "JOD": "string",
- "JPY": "string",
- "KES": "string",
- "KGS": "string",
- "KHR": "string",
- "KMF": "string",
- "KPW": "string",
- "KRW": "string",
- "KWD": "string",
- "KYD": "string",
- "KZT": "string",
- "LAK": "string",
- "LBP": "string",
- "LKR": "string",
- "LRD": "string",
- "LSL": "string",
- "LTC": "string",
- "LYD": "string",
- "MAD": "string",
- "MDL": "string",
- "MGA": "string",
- "MKD": "string",
- "MMK": "string",
- "MNT": "string",
- "MOP": "string",
- "MUR": "string",
- "MVR": "string",
- "MWK": "string",
- "MXN": "string",
- "MYR": "string",
- "MZN": "string",
- "NAD": "string",
- "NGN": "string",
- "NIO": "string",
- "NOK": "string",
- "NPR": "string",
- "NZD": "string",
- "OMR": "string",
- "PAB": "string",
- "PEN": "string",
- "PGK": "string",
- "PHP": "string",
- "PKR": "string",
- "PLN": "string",
- "PYG": "string",
- "QAR": "string",
- "RON": "string",
- "RSD": "string",
- "RUB": "string",
- "RWF": "string",
- "SAR": "string",
- "SBD": "string",
- "SCR": "string",
- "SDG": "string",
- "SEK": "string",
- "SGD": "string",
- "SHP": "string",
- "SLL": "string",
- "SOS": "string",
- "SRD": "string",
- "SSP": "string",
- "STD": "string",
- "STR": "string",
- "SVC": "string",
- "SYP": "string",
- "SZL": "string",
- "THB": "string",
- "TJS": "string",
- "TMT": "string",
- "TND": "string",
- "TOP": "string",
- "TRY": "string",
- "TTD": "string",
- "TWD": "string",
- "TZS": "string",
- "UAH": "string",
- "UGX": "string",
- "USD": "string",
- "UYU": "string",
- "UZS": "string",
- "VND": "string",
- "VUV": "string",
- "WST": "string",
- "XAF": "string",
- "XCD": "string",
- "XDR": "string",
- "XOF": "string",
- "XPF": "string",
- "XRP": "string",
- "YER": "string",
- "ZAR": "string",
- "ZMW": "string",
- "ZWL": "string",
- "DASH": "string",
- "DOGE": "string"
}
]
Update a currency
code required | string Currency Code |
JSON object containing key and values to update
symbol | string |
rounding_method | number |
fraction | number |
code | string |
name | string |
{- "symbol": "string",
- "rounding_method": 0,
- "fraction": 0,
- "code": "string",
- "name": "string"
}
{- "code": "string",
- "fraction": 0,
- "rounding_method": 0,
- "symbol": "string",
- "name": "string",
- "custom": false
}
Each SoftLedger tenant can have up to 3 custom dimensions.
All of the resources below are for custom dimensions and are accessed based on the name of the custom dimension. The {name} parameter should be populated with the custom dimension name.
Returns all custom dimensions that match the filter
name required | string Custom Dimension Object Type Name |
object (CustomDimensionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "description:ASC" "description:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create Custom Dimension
name required | string Custom Dimension Object Type Name |
JSON body
id required | string |
name required | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of custom dimensions that match the filter
name required | string Custom Dimension Object Type Name |
object (CustomDimensionFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
Get one Custom Dimension
name required | string Custom Dimension Object Type Name |
id required | number or string CustomDimension._id |
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update Custom Dimension
name required | string Custom Dimension Object Type Name |
id required | number or string CustomDimension._id |
JSON body containing key and values to update
id | string |
name | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Search for custom fields
type required | string Type for custom field |
[- {
- "_id": "string",
- "property": "string",
- "required": true,
- "label": "string",
- "type": "text",
- "data": [
- {
- "_id": "string",
- "label": "string"
}
]
}
]
Create or Update a custom field
type required | string Enum: "bill" "coin" "customer" "item" "invoiceType" "invoiceLineItems" "purchaseOrder" "poLineItems" "vendor" "invoiceLevel" "salesOrder" Type for custom field |
JSON body to create or update Custom Field
type required | string Enum: "text" "number" "checkbox" "date" "select" |
label | string Name for the custom field, useful for UI |
property | string used for internal use |
{- "label": "string",
- "property": "string",
- "type": "text"
}
{- "_id": "string",
- "property": "string",
- "required": true,
- "label": "string",
- "type": "text",
- "data": [
- {
- "_id": "string",
- "label": "string"
}
]
}
Returns all customers that match the filter
object (CustomerFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "externalId:ASC" "externalId:DESC" "email:ASC" "email:DESC" "description:ASC" "description:DESC" "terms:ASC" "terms:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 1,
- "notes": "string",
- "customFields": { },
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Contact": {
- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string"
}
}
]
}
Creates a new Customer
JSON body to create new Customer
name required | string |
externalId | string |
string <email> | |
description | string |
terms | string |
defaultDaysDue | integer >= 1 |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
customFields | object Default: {} Key->Value store of custom fields |
inactive | boolean Default: false |
object Default address for customer | |
object Primary contact for customer |
{- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 1,
- "notes": "string",
- "customFields": { },
- "inactive": false,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Contacts": {
- "name": "string",
- "email": "string",
- "phone": "string"
}
}
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 0,
- "notes": true,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of customers that match the filter
object (CustomerFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
Get one Customer
id required | number or string Customer._id |
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 1,
- "notes": "string",
- "customFields": { },
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Addresses": [
- {
- "_id": 0,
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
], - "Contacts": [
- {
- "_id": 0,
- "isPrimary": true,
- "name": "string",
- "email": "string",
- "phone": "string"
}
]
}
Update One Customer
id required | number or string Customer._id |
JSON body containing key and values to update
externalId | string |
name | string |
string <email> | |
description | string |
terms | string |
defaultDaysDue | integer >= 1 |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
customFields | object Default: {} Key->Value store of custom fields |
inactive | boolean Default: false |
{- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 1,
- "notes": "string",
- "customFields": { },
- "inactive": false
}
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "terms": "string",
- "defaultDaysDue": 0,
- "notes": true,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
This endpoint returns only invoices for the specified customer.
id required | number or string Customer._id |
object (InvoiceFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (InvoiceOrder) Default: "number:DESC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "externalId:ASC" "externalId:DESC" "type:ASC" "type:DESC" "reference:ASC" "reference:DESC" "invoiceDate:ASC" "invoiceDate:DESC" "postedDate:ASC" "postedDate:DESC" "dueDate:ASC" "dueDate:DESC" "amountPayable:ASC" "amountPayable:DESC" "amount:ASC" "amount:DESC" "Customer.name:ASC" "Customer.name:DESC" "currency:ASC" "currency:DESC" "status:ASC" "status:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "externalId": "string",
- "type": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "customFields": { },
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "amountPayable": "string",
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "ARAccountId": 0,
- "ARAccount": {
- "name": "string",
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "ICJournalId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
]
}
This endpoint counts only invoices for the specified customer.
id required | number or string Customer._id |
object (InvoiceFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
{- "count": "string",
- "estimate": true
}
This endpoint returns only payments for the specified customer. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string Customer._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Get a list of all emails
objectType required | string Enum: "Invoice" "PurchaseOrder" "SalesOrder" Dimension Object Type |
objectId required | integer Dimension Object Id |
offset | integer Default: 0 number of records to skip |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "totalItems": "string",
- "data": [
- {
- "MessageID": "string",
- "Tag": "string",
- "To": {
- "Email": "string",
- "Name": "string"
}, - "CC": {
- "Email": "string",
- "Name": "string"
}, - "BCC": {
- "Email": "string",
- "Name": "string"
}, - "Recipients": [
- "string"
], - "ReceivedAt": "string",
- "From": "string",
- "Subject": "string",
- "Attachments": [
- "string"
], - "Status": "string",
- "TrackOpens": true,
- "TrackLinks": "TextOnly",
- "Metadata": { },
- "MessageStream": "string"
}
]
}
Get one Emails details
messageid required | string Message id |
{- "TextBody": "string",
- "HtmlBody": "string",
- "Body": "string",
- "MessageEvents": [
- {
- "Recipient": "string",
- "Type": "string",
- "ReceivedAt": "string",
- "Details": { }
}
]
}
This endpoint is deprecated. Please use the new GET /reports/trial-balance-by-currency endpoint instead.
Returns the consolidated balance of the Ledger Account passed broken down by currency. Balance Sheet accounts include all transactions until endDate Income Statement accounts include all transactions from start of accounting year until endDate
Account Balance Request
LocationId required | integer |
LedgerAccountId required | integer |
endDate required | string <date> |
accountType required | string Enum: "Asset" "Revenue" "Expense" "Liability" "Equity" |
status | string Enum: "posted" "draft" Journal status, if not set, all journals used |
startDate | string <date> Only used if accountType is Revenue/Expense |
consolidated | boolean If true, returns consolidated balance of all locations, false returns balance just for that location |
{- "status": "posted",
- "LocationId": 0,
- "LedgerAccountId": 0,
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "accountType": "Asset",
- "consolidated": true
}
[- {
- "currency": "USD",
- "balance": 0
}
]
Returns list of approved but not fully paid bills for the specified Vendor.
AP Aging Bill Request
locationId required | integer |
vendorId required | integer |
date required | string <date> return all bills with postedDate <= date |
offset | integer Default: 0 |
limit | integer Default: 25 min 1, max 100 |
consolidated | boolean Default: false |
includeDraft | boolean Default: false |
{- "locationId": 0,
- "vendorId": 0,
- "date": "2019-08-24",
- "offset": 0,
- "limit": 25,
- "consolidated": false,
- "includeDraft": false
}
{- "data": [
- {
- "_id": 0,
- "invoiceNumber": "string",
- "reference": "string",
- "invoiceDate": "2019-08-24",
- "amount": "1.00",
- "currency": "USD"
}
], - "totalItems": 0
}
Returns list of issued but not fully paid invoices for the specified Customer/Agent.
AR Aging Invoice Request
locationId required | integer |
customerId required | integer Customer/Agent "_id" |
date required | string <date> return all invoices with invoiceDate <= date |
offset | integer Default: 0 |
limit | integer Default: 25 min 1, max 100 |
consolidated | boolean Default: false |
includeDraft | boolean Default: false |
{- "locationId": 0,
- "customerId": 0,
- "date": "2019-08-24",
- "offset": 0,
- "limit": 25,
- "consolidated": false,
- "includeDraft": false
}
{- "data": [
- {
- "_id": 0,
- "number": "string",
- "reference": "string",
- "invoiceDate": "2019-08-24",
- "amount": "1",
- "currency": "USD"
}
], - "totalItems": 0
}
Returns list of approved but not fully paid bills. Grouped by date range
AP Aging request
locationId required | integer |
currency required | string currency to display results in |
start required | string <date> |
consolidated | boolean Default: true |
includeDraft | boolean Default: true |
{- "locationId": 0,
- "currency": "USD",
- "start": "2019-08-24",
- "consolidated": true,
- "includeDraft": true
}
[- {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "_id": 0,
- "id": "string",
- "name": "string"
}
]
Returns list of issued but not fully paid invoices. Grouped by date range
AR Aging request
locationId required | integer |
currency required | string currency to display results in |
start required | string <date> |
consolidated | boolean Default: true |
includeDraft | boolean Default: true |
{- "locationId": 0,
- "currency": "USD",
- "start": "2019-08-24",
- "consolidated": true,
- "includeDraft": true
}
[- {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "_id": 0,
- "id": "string",
- "name": "string"
}
]
This endpoint is deprecated. Please use the new GET /financials/balance-sheet endpoint instead.
Returns current period income calculation for specified report type for the startDate -> endDate.
Current Period Income Request
colType required | string Enum: "Location" "Month" "CostCenter" "Product" "Job" "Customer" "Vendor" "Custom1" "Custom2" "Custom3" |
startDate required | string <date> |
endDate required | string <date> |
currency required | string currency to return value in |
formulaType required | string Value: "currentPeriodIncome" |
colIds | Array of strings |
LocationId | integer |
status | string Enum: "draft" "posted" |
{- "formulaType": "currentPeriodIncome",
- "colType": "Location",
- "colIds": [
- "string"
], - "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "LocationId": 0,
- "status": "draft",
- "currency": "USD"
}
{ }
This endpoint is deprecated. Please use the new GET /financials/balance-sheet endpoint instead.
Financial Entity report data of account balances by dimension
Entity Report Request
startDate required | string <date> |
endDate required | string <date> |
LocationId required | integer |
currency required | string |
status | string Enum: "posted" "draft" Journal status to return |
{- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "LocationId": 0,
- "currency": "USD",
- "status": "posted"
}
[- {
- "_id": 0,
- "name": "string",
- "type": "string",
- "subtype": "string",
- "LocationId": 0,
- "parent_path": [
- 0
], - "balance": "1",
- "elimination": true
}
]
This endpoint is deprecated. Please use the new GET /reports/ledger-account-by-dimension endpoint instead.
Financial Dimension report data of account balances by dimension
Financial Dimension report data request
startDate required | string <date> |
endDate required | string <date> |
LocationId required | integer |
type required | string Enum: "Customer" "Vendor" "CostCenter" "Product" "Job" "Custom1" "Custom2" "Custom3" |
objectIds required | Array of integers |
currency required | string |
status | string Enum: "posted" "draft" Journal status to return |
{- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "currency": "USD",
- "LocationId": 0,
- "status": "posted",
- "type": "Customer",
- "objectIds": [
- 0
]
}
[- {
- "_id": 0,
- "name": "string",
- "type": "string",
- "subtype": "string",
- "LocationId": 0,
- "parent_path": [
- 0
], - "balance": "1",
- "objectId": 0,
- "objectID": "string",
- "objectName": "string"
}
]
This endpoint is deprecated. Please use the new GET /general-ledger endpoint instead.
Returns General Ledger Balances for Date Range passed
General Ledger Request
currency required | string Currency to return results in |
LocationId required | integer Location to consolidate results for |
startDate required | string <date> |
endDate required | string <date> |
status | string Enum: "posted" "draft" "all" Journal status |
consolidated | boolean Show consolidated balance by Location |
offset | integer Default: 0 |
limit | integer [ 1 .. 99 ] |
order | string Default: "number:DESC" |
object |
{- "status": "posted",
- "currency": "USD",
- "LocationId": 0,
- "consolidated": true,
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "offset": 0,
- "limit": 1,
- "order": "number:DESC",
- "where": {
- "or": true,
- "name": "string",
- "number": "string"
}
}
{- "data": [
- {
- "_id": 0,
- "number": "string",
- "name": "string",
- "type": "string",
- "naturalBalance": "debit",
- "startingBalance": "1",
- "endingBalance": "1",
- "activity": "1"
}
], - "totalItems": 0
}
This endpoint is deprecated. Please use the new GET /trial-balance endpoint instead.
Returns Trial Balance for Date Ranges passed Balance Sheet accounts include all transactions until endDate Income Statement accounts include all transactions from start of accounting year until endDate
Trial Balance Request
currency required | string Currency to return results in |
LocationId required | integer Location to consolidate results for |
required | Array of objects |
status | string Enum: "posted" "draft" "all" Journal status |
offset | integer Default: 0 |
limit | integer [ 1 .. 99 ] |
order | string Default: "number:DESC" |
object | |
DimensionType | string Enum: "CostCenter" "Product" "Job" "Customer" "Vendor" "Custom1" "Custom2" "Custom3" |
DimensionId | integer |
consolidated | boolean If true, returns consolidated balance of all locations, false returns balance just for that location |
{- "status": "posted",
- "currency": "USD",
- "LocationId": 0,
- "dateRanges": [
- {
- "name": "string",
- "start": "2019-08-24",
- "end": "2019-08-24"
}
], - "offset": 0,
- "limit": 1,
- "order": "number:DESC",
- "where": {
- "or": true,
- "name": "string",
- "number": "string"
}, - "DimensionType": "CostCenter",
- "DimensionId": 0,
- "consolidated": true
}
{- "data": [
- {
- "_id": 0,
- "number": "string",
- "name": "string",
- "type": "string",
- "balances": [
- "1"
]
}
], - "totalItems": 0
}
Delete remeasurement journals and reopens FX for the period.
If the FX remeasurement process is already running, this endpoint will return an error.
Accounting Period FX status must be "closed" but the period should still be "open".
AccountingPeriodId required | string AccountPeriod._id |
Posts remeasurement journals for the period.
The journals are posted asynchronously, this endpoint will return a 202 Accepted response, and queue the background job to run.
If the remeasurement process is already running, this endpoint will return an error.
Accounting Period must not be in "closed" state and should have ended i.e. period's end date should be in the past.
If remeasurement rates have not been set for the period, this endpoint will return an error.
The background job will post the remeasurements and close FX for the period.
AccountingPeriodId required | string AccountPeriod._id |
Return the balances for the accounting period remeasurement
AccountingPeriodId required | string AccountPeriod._id |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "Location_currency:ASC" Enum: "Location_currency:ASC" "Location_currency:DESC" "LedgerAccount_number:ASC" "LedgerAccount_number:DESC" "Location_name:ASC" "Location_name:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "LedgerAccountId": 0,
- "LocationId": 0,
- "currency": "string",
- "Location_currency": "string",
- "remeasureRate": "string",
- "balanceBeforeRemeasurement": "string",
- "balanceAfterRemeasurement": "string",
- "amountToRemeasure": "string",
- "elimination": true,
- "postedDate": "2019-08-24",
- "reversalDate": "2019-08-24",
- "LedgerAccount_name": "string",
- "LedgerAccount_number": "string",
- "Location_name": "string",
- "Location_id": "string"
}
]
}
Returns current rates set for the accouting period remeasurement
The results are a list of all currencies and their end of period rate
AccountingPeriodId required | string AccountPeriod._id |
[- {
- "_id": 0,
- "type": "string",
- "base": "string",
- "date": "2019-08-24",
- "rates": { }
}
]
Update/Insert the rates for the accounting period
AccountingPeriodId required | string AccountPeriod._id |
Base currency and fx rate currency pairs
baseCurrency | string example "USD" |
toCurrency | string example "EUR" |
rate | number |
[- {
- "baseCurrency": "string",
- "toCurrency": "string",
- "rate": 0
}
]
Returns current rates set for the accouting period revaluation The results are a list of all currencies and their end of period rate (example results are two possible currencies)
AccountingPeriodId required | integer AccountingPeriod._id value |
[- {
- "USD": 0,
- "EUR": 0
}
]
Save the rates for the accounting period Example shows rates for two possible currencies. Currencies to save rates for should be obtained from GET fx-revalue/rates/:id
AccountingPeriodId required | integer AccountingPeriod._id value |
Base currency and fx rate currency pairs
currency required | string example "USD" |
required | Array of objects |
{- "currency": "string",
- "rates": [
- {
- "USD": 0,
- "EUR": 0
}
]
}
Returns all invoices that match the filter
object (InvoiceFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (InvoiceOrder) Default: "number:DESC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "externalId:ASC" "externalId:DESC" "type:ASC" "type:DESC" "reference:ASC" "reference:DESC" "invoiceDate:ASC" "invoiceDate:DESC" "postedDate:ASC" "postedDate:DESC" "dueDate:ASC" "dueDate:DESC" "amountPayable:ASC" "amountPayable:DESC" "amount:ASC" "amount:DESC" "Customer.name:ASC" "Customer.name:DESC" "currency:ASC" "currency:DESC" "status:ASC" "status:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AR Credits i.e. invoices with a negative amount. If false or not specified, only returns invoices with a positive amount. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "externalId": "string",
- "type": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "customFields": { },
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "amountPayable": "string",
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "ARAccountId": 0,
- "ARAccount": {
- "name": "string",
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "ICJournalId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Invoice
JSON body to create new Invoice
One of [Customer.name, CustomerId]
is Required
One of [Location.id, LocationId]
is Required
One of [ARAccount.number, ARAccountId]
is Required
invoiceDate required | string <date> | |||||||||||||||||||||||||||||||||||
postedDate required | string <date> | |||||||||||||||||||||||||||||||||||
CustomerId required | integer Ref: Customer._id | |||||||||||||||||||||||||||||||||||
LocationId required | integer Ref: Location._id | |||||||||||||||||||||||||||||||||||
ARAccountId required | integer Ref: LedgerAccount._id | |||||||||||||||||||||||||||||||||||
currency required | string <ISO4217 3 Char Code> | |||||||||||||||||||||||||||||||||||
externalId | string | |||||||||||||||||||||||||||||||||||
type | string | |||||||||||||||||||||||||||||||||||
dueDate | string <date> | |||||||||||||||||||||||||||||||||||
notes | string | |||||||||||||||||||||||||||||||||||
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents | |||||||||||||||||||||||||||||||||||
reference | string | |||||||||||||||||||||||||||||||||||
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
ICLocationId | integer Ref: Location._id | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
ShippingAddressId | integer Ref: Address._id | |||||||||||||||||||||||||||||||||||
BillingAddressId | integer Ref: Address._id | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
TemplateId | integer "Ref: Template._id" - Defaults to Template with name 'Default' and format = 'pdf' | |||||||||||||||||||||||||||||||||||
SalesOrderId | integer Ref: SalesOrder._id | |||||||||||||||||||||||||||||||||||
object | ||||||||||||||||||||||||||||||||||||
Array of objects Handling of LedgerAccountId:
** If LedgerAccountId is set, it will override the LedgerAccount.number ** Tax Logic:
|
{- "externalId": "string",
- "type": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "CustomerId": 0,
- "Customer": {
- "name": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "ARAccountId": 0,
- "ARAccount": {
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "InvoiceLineItems": [
- {
- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
]
}
{- "_id": 0,
- "externalId": "string",
- "type": "string",
- "number": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "customFields": { },
- "LocationId": 0,
- "ICLocationId": 0,
- "CustomerId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "ARAccountId": 0,
- "TemplateId": 0,
- "SalesOrderId": 0,
}
Returns all invoice lines that match the filter
object (InvoiceLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "Invoice.invoiceDate:DESC" Enum: "_id:ASC" "_id:DESC" "description:ASC" "description:DESC" "unitAmount:ASC" "unitAmount:DESC" "taxAmount:ASC" "taxAmount:DESC" "quantity:ASC" "quantity:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Invoice.status:ASC" "Invoice.status:DESC" "Invoice.invoiceDate:ASC" "Invoice.invoiceDate:DESC" "Invoice.createdAt:ASC" "Invoice.createdAt:DESC" "Invoice.updatedAt:ASC" "Invoice.updatedAt:DESC" "Invoice.number:ASC" "Invoice.number:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "LedgerAccount.name:ASC" "LedgerAccount.name:DESC" "Location.name:ASC" "Location.name:DESC" "ICLocation.name:ASC" "ICLocation.name:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" "Customer.name:ASC" "Customer.name:DESC" "Product.id:ASC" "Product.id:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "Job.number:ASC" "Job.number:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AR Credits i.e. invoices with a negative amount. If false or not specified, only returns invoices with a positive amount. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": 0,
- "description": "string",
- "unitAmount": "string",
- "taxAmount": "string",
- "quantity": "string",
- "customFields": { },
- "total": "string",
- "InvoiceId": 0,
- "Invoice": {
- "number": "string",
- "status": "created",
- "invoiceDate": "2019-08-24",
- "currency": "string",
- "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24",
- "CustomerId": 0,
- "LocationId": 0,
- "ICLocationId": 0
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocation": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "InvoiceAccountId": 0,
- "InvoiceAccount": {
- "name": "string",
- "number": "string"
}
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of invoice lines that match the filter
object (InvoiceLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AR Credits i.e. invoices with a negative amount. If false or not specified, only returns invoices with a positive amount. |
{- "count": "string",
- "estimate": true
}
This endpoint returns unpaid invoices/credits.
The parameters of this endpoint are the same as for Invoices Search
The following parameters are also supported in addition to the ones listed in Invoices Search
filterCurrency | string Provide this to only show unpaid invoices in the specified currency. This parameter is optional. |
filterLocationId | string <number> Ref: "Location"._id Provide this to only show unpaid invoices from the specified location. Invoices from child locations of the provided location are not included. This parameter is optional. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "externalId": "string",
- "type": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "customFields": { },
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "amountPayable": "string",
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "ARAccountId": 0,
- "ARAccount": {
- "name": "string",
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "ICJournalId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
]
}
This endpoint counts unpaid invoices/credits.
The parameters of this endpoint are the same as for Invoices Search
The following parameters are also supported in addition to the ones listed in Invoices Search
filterCurrency | string Provide this to only count unpaid invoices in the specified currency. This parameter is optional. |
filterLocationId | string <number> Ref: "Location"._id Provide this to only count unpaid invoices from the specified location. Invoices from child locations of the provided location are not included. This parameter is optional. |
{- "count": "string",
- "estimate": true
}
Returns a count of invoices that match the filter
object (InvoiceFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter invoices by their entry type:
|
credit | boolean Deprecated Default: false This parameter is deprecated. Use the 'type' parameter instead. If true, only returns AR Credits i.e. invoices with a negative amount. If false or not specified, only returns invoices with a positive amount. |
{- "count": "string",
- "estimate": true
}
creates a new Invoice Line
id required | number or string Invoice._id |
unitAmount required | string <number> |
quantity required | string <number> |
description | string Required if ItemId is not set |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object | |
LedgerAccountId | integer Ref: LedgerAccount._id |
object |
{- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "id": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "LedgerAccountId": 0
}
Update One Invoice
id required | number or string Invoice._id |
JSON body containing key and values to update
Can only update an invoice with "created" status
externalId | string |
type | string |
invoiceDate | string <date> |
postedDate | string <date> |
dueDate | string <date> |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
reference | string |
currency | string <ISO4217 3 Char Code> |
customFields | object Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
LocationId | integer Ref: Location._id |
object | |
ICLocationId | integer Ref: Location._id |
object | |
CustomerId | integer Ref: Customer._id |
object | |
ShippingAddressId | integer Ref: Address._id |
BillingAddressId | integer Ref: Address._id |
ARAccountId | integer Ref: LedgerAccount._id |
object | |
TemplateId | integer "Ref: Template._id" - Defaults to Template with name 'Default' and format = 'pdf' |
SalesOrderId | integer Ref: SalesOrder._id |
object |
{- "externalId": "string",
- "type": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "CustomerId": 0,
- "Customer": {
- "name": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "ARAccountId": 0,
- "ARAccount": {
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}
}
{- "_id": 0,
- "externalId": "string",
- "type": "string",
- "number": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "currency": "string",
- "LocationId": 0,
- "ICLocationId": 0,
- "CustomerId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "ARAccountId": 0,
- "TemplateId": 0,
- "SalesOrderId": 0
}
Update an Invoice Line
id required | number or string InvoiceLineItem._id |
description | string Required if ItemId is not set |
unitAmount | string <number> |
quantity | string <number> |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object | |
LedgerAccountId | integer Ref: LedgerAccount._id |
object |
{- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "id": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "LedgerAccountId": 0
}
Get one Invoice
id required | number or string Invoice._id |
{- "_id": 0,
- "status": "created",
- "externalId": "string",
- "type": "string",
- "number": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "amountPayable": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string",
- "email": "string",
- "terms": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "ARAccountId": 0,
- "ARAccount": {
- "name": "string",
- "number": "string"
}, - "TemplateId": 0,
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "InvoiceLineItems": [
- {
- "description": "string",
- "unitAmount": "string",
- "quantity": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "InvoiceAccountId": 0,
- "InvoiceAccount": {
- "name": "string",
- "number": 0
}
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
This endpoint returns only payments for the specified invoice. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string Invoice._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Void Invoice
id required | number or string Invoice._id |
Optional body to set data on void journal entry
description | string |
postedDate | string <date> The date to post the void entry. Defaults to current date if not specified. |
{- "description": "string",
- "postedDate": "2019-08-24"
}
Returns all items that match the filter
object (ItemFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "name:ASC" "name:DESC" "sku:ASC" "sku:DESC" "description:ASC" "description:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "inactive": true,
- "externalIds": "string",
- "number": 0,
- "name": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "customFields": { },
- "type": "inventory",
- "InvoiceAccountId": 0,
- "BillAccountId": 0,
- "InventoryAccountId": 0,
- "CogsAccountId": 0,
- "InvoiceAccount": {
- "number": "string",
- "name": "string"
}, - "BillAccount": {
- "number": "string",
- "name": "string"
}, - "InventoryAccount": {
- "number": "string",
- "name": "string"
}, - "CogsAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Item
JSON body to create new Item
name required | string |
externalIds | string |
salePrice | string <number> Default: "0" |
purchasePrice | string <number> |
description | string |
sku | string Must be unique if given |
type | string Default: "inventory" Enum: "inventory" "consumable" "direct" |
inactive | boolean Default: false |
customFields | object Key->Value hash of custom field names and values. Custom fields must be defined via the UI to be visible in the UI |
InvoiceAccountId | integer "Ref: Ledger Account._id" - Defaults to Settings.defaultItemInvoiceAccountId |
object | |
BillAccountId | integer "Ref: Ledger Account._id" - Defaults to Settings.defaultItemInventoryAccrualId |
object | |
InventoryAccountId | integer "Ref: Ledger Account._id" - Defaults to Settings.defaultItemInventoryAssetId |
object | |
CogsAccountId | integer "Ref: Ledger Account._id" - Defaults to Settings.defaultItemCOGSId |
object |
{- "externalIds": "string",
- "name": "string",
- "salePrice": "0",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "inactive": false,
- "customFields": { },
- "InvoiceAccountId": 0,
- "InvoiceAccount": {
- "number": "string"
}, - "BillAccountId": 0,
- "BillAccount": {
- "number": "string"
}, - "InventoryAccountId": 0,
- "InventoryAccount": {
- "number": "string"
}, - "CogsAccountId": 0,
- "CogsAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "externalIds": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "customFields": { },
- "InvoiceAccountId": 0,
- "BillAccountId": 0,
- "InventoryAccountId": 0,
- "CogsAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of items that match the filter
object (ItemFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "externalIds": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "customFields": { },
- "inactive": true,
- "InvoiceAccountId": 0,
- "BillAccountId": 0,
- "InventoryAccountId": 0,
- "CogsAccountId": 0,
- "InvoiceAccount": {
- "number": "string",
- "name": "string"
}, - "BillAccount": {
- "number": "string",
- "name": "string"
}, - "InventoryAccount": {
- "number": "string",
- "name": "string"
}, - "CogsAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One Item
id required | number or string Item._id |
JSON body containing key and values to update
externalIds | string |
name | string |
salePrice | string <number> |
purchasePrice | string <number> |
description | string |
sku | string Must be unique if given |
type | string Enum: "inventory" "consumable" If an item is direct, type cannot be updated. Type cannot be updated to direct. |
inactive | boolean Default: false |
customFields | object Key->Value hash of custom field names and values. Custom fields must be defined via the UI to be visible in the UI |
InvoiceAccountId | integer Ref: Ledger Account._id |
object | |
BillAccountId | integer Ref: Ledger Account._id |
object | |
InventoryAccountId | integer Ref: Ledger Account._id |
object | |
CogsAccountId | integer Ref: Ledger Account._id |
object |
{- "externalIds": "string",
- "name": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "inactive": false,
- "customFields": { },
- "InvoiceAccountId": 0,
- "InvoiceAccount": {
- "number": "string"
}, - "BillAccountId": 0,
- "BillAccount": {
- "number": "string"
}, - "InventoryAccountId": 0,
- "InventoryAccount": {
- "number": "string"
}, - "CogsAccountId": 0,
- "CogsAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "externalIds": "string",
- "salePrice": "string",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "customFields": { },
- "InvoiceAccountId": 0,
- "BillAccountId": 0,
- "InventoryAccountId": 0,
- "CogsAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Summary of items
id required | number or string Item._id |
childWh | boolean Determine if the summary balances include stock from child warehouses |
[- {
- "wId": 0,
- "wName": "string",
- "wPid": 0,
- "qtyAvailable": "1"
}
]
Returns all jobs that match the filter
object (JobFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "number:ASC" "number:DESC" "description:ASC" "description:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": "string",
- "name": "string",
- "description": "string",
- "status": "quoted",
- "inactive": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Customer": {
- "_id": 0,
- "id": "string",
- "name": "string"
}
}
]
}
Create Job
JSON body
number required | string |
name required | string |
CustomerId required | number |
status required | string Enum: "quoted" "inProgress" "completed" "closed" |
description | string |
inactive | boolean |
{- "number": "string",
- "name": "string",
- "status": "quoted",
- "CustomerId": 0,
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "description": "string",
- "status": "quoted",
- "CustomerId": 0,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of jobs that match the filter
object (JobFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "description": "string",
- "status": "quoted",
- "inactive": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Customer": {
- "id": "string",
- "name": "string"
}
}
Update Job
id required | number or string Job._id |
JSON body containing key and values to update
number | string |
name | string |
description | string |
status | string Enum: "quoted" "inProgress" "completed" "closed" |
inactive | boolean |
CustomerId | number |
{- "number": "string",
- "name": "string",
- "description": "string",
- "status": "quoted",
- "inactive": true,
- "CustomerId": 0
}
{- "_id": 0,
- "number": "string",
- "name": "string",
- "description": "string",
- "status": "quoted",
- "inactive": true,
- "CustomerId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of journals that match the filter
object (JournalFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "draft" "editable" "icdoc" "posted"
Not set counts all journals. |
LocationId | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Create new Journal
JSON body to create new Journal
status required | string Enum: "draft" "posted" |
entryType required | string Enum: "Standard" "Reversing" |
sourceLedger required | string Enum: "Financial" "AR" "AP" |
reference required | string |
currency required | string <ISO4217 3 Char Code> Ref: Currency.code |
required | Array of objects Minimum 2 rows required. SUM(debits) = SUM(credits). |
customCurrencyRate | string <number> Deprecated Must be > 0. Should only be set if currency is a non ISO4217 currency. This rate is the value of "currency" -> "USD". This overrides customForexRates. |
Array of objects Custom forex rates for all the posted currency to reported currency pairs in this Journal. If posted currency is a non ISO4217 currency, rates are Required for all posted currency to reported currency pairs up the entity structure for this Journal. For ISO4217 currencies, this is optional. When not provided, the system will use the forex rates for the transactionDate of this Journal. | |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
reverseDate | string <date> If entryType = 'Reversing', then this date will be used as the postedDate for the reversing Transaction Lines. Defaults to First day of month after posted date. |
icDoc | boolean True if this is an Intercompany Document Journal Entry. Not currently recommended to create these via API. |
{- "status": "draft",
- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "currency": "string",
- "customCurrencyRate": "string",
- "customForexRates": [
- {
- "currency": "string",
- "rate": "string"
}
], - "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "Transactions": [
- {
- "description": "string",
- "debit": "string",
- "credit": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "eliminate": false,
- "txn_type": "standard",
- "CostCenterId": 0,
- "LedgerAccountId": 0,
- "JobId": 0,
- "ProductId": 0,
- "LocationId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "ICLocationId": 0,
- "ICAccountId": 0
}
]
}
[- {
- "_id": 0,
- "number": 0,
- "status": "draft",
- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingPeriodId": 0,
- "Transactions": [
- {
- "_id": 0,
- "description": "string",
- "debit": "string",
- "credit": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reconcileId": "string",
- "currency": "string",
- "customCurrencyRate": "string",
- "consolidated": true,
- "reversing": true,
- "elimination": true,
- "elim2": true,
- "SystemJobId": "string",
- "CostCenterId": 0,
- "LedgerAccountId": 0,
- "JobId": 0,
- "ProductId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "BillId": 0,
- "CustomerId": 0,
- "Vendorid": 0,
- "ICLocationId": 0,
- "CashReceiptId": 0,
- "VendorCreditId": 0,
- "ICAccountId": 0,
- "PaymentId": 0,
- "ForexRateId": 0,
- "JournalId": 0
}
]
}
]
Returns all journals that match the filter
object (JournalFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "draft" "editable" "icdoc" "posted"
Not set returns all journals. |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "entryType:ASC" "entryType:DESC" "number:ASC" "number:DESC" "postedDate:ASC" "postedDate:DESC" "reverseDate:ASC" "reverseDate:DESC" "sourceLedger:ASC" "sourceLedger:DESC" "transactionDate:ASC" "transactionDate:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
LocationId | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": 0,
- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "status": "draft",
- "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "currency": "string",
- "LocationId": 0,
- "Location_id": "string",
- "Location_name": "string",
- "reportingCurrency": "string",
- "ICLocationId": 0,
- "ICLocation_id": "string",
- "ICLocation_name": "string",
- "postedDate": "string",
- "transactionDate": "string",
- "SystemJobId": "string",
- "amount": "string",
- "reportingAmount": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Delete one Journal
Journal can only be deleted in the following conditions:
id required | number or string Journal._id |
Get one Journal
id required | number or string Journal._id |
{- "_id": 0,
- "number": 0,
- "status": "draft",
- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingPeriodId": 0,
- "CryptoTransactionId": 0,
- "Transactions": [
- {
- "_id": 0,
- "description": "string",
- "debit": "string",
- "credit": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reconcileId": "string",
- "currency": "string",
- "Location_currency": "string",
- "customCurrencyRate": "string",
- "Location_currency_rate": "string",
- "isCustomFxRate": true,
- "consolidated": true,
- "reversing": true,
- "elimination": true,
- "elim2": true,
- "SystemJobId": "string",
- "CostCenterId": 0,
- "LedgerAccountId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "BillId": 0,
- "CustomerId": 0,
- "VendorId": 0,
- "ICLocationId": 0,
- "CashReceiptId": 0,
- "VendorCreditId": 0,
- "ICAccountId": 0,
- "PaymentId": 0,
- "ForexRateId": 0,
- "JournalId": 0,
- "SalesOrderId": 0,
- "BatchPaymentId": 0,
- "txn_type": "standard",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Location": {
- "name": "string",
- "id": "string"
}, - "ICLocation": {
- "name": "string",
- "id": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string",
- "type": "string",
- "subtype": "string"
}, - "ICAccount": {
- "name": "string",
- "number": "string"
}, - "Customer": {
- "id": "string",
- "name": "string"
}, - "Job": {
- "name": "string",
- "number": "string"
}, - "CostCenter": {
- "name": "string",
- "id": "string"
}, - "Product": {
- "name": "string",
- "id": "string"
}, - "Custom1": {
- "name": "string",
- "id": "string"
}, - "Custom2": {
- "name": "string",
- "id": "string"
}, - "Custom3": {
- "name": "string",
- "id": "string"
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "Invoice": {
- "number": "string"
}, - "Bill": {
- "invoiceNumber": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "VendorCredit": {
- "number": "string"
}, - "SalesOrder": {
- "number": "string"
}
}
]
}
Update one Journal
Journal can only be updated in the following conditions:
id required | number or string Journal._id |
JSON object containing key and values to update
Cannot update posted journal
Transaction lines are replaced with the new lines provided. So new Transaction._id values will be generated for each line, and old Transactions will be deleted.
entryType | string Enum: "Standard" "Reversing" |
sourceLedger | string Enum: "Financial" "AR" "AP" |
reference | string |
currency | string <ISO4217 3 Char Code> Ref: Currency.code |
customCurrencyRate | string <number> Deprecated Must be > 0. Should only be set if currency is a non ISO4217 currency. This rate is the value of "currency" -> "USD". |
Array of objects Custom forex rates for all the posted currency to reported currency pairs in this Journal. If posted currency is a non ISO4217 currency, rates are Required for all posted currency to reported currency pairs up the entity structure for this Journal. For ISO4217 currencies, this is optional. When not provided, the system will use the forex rates for the transactionDate of this Journal. | |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
reverseDate | string <date> If entryType = 'Reversing', then this date will be used as the postedDate for the reversing Transaction Lines. Defaults to First day of month after posted date. |
icDoc | boolean True if this is an Intercompany Document Journal Entry. Not currently recommended to create these via API. |
Array of objects Minimum 2 rows required. SUM(debits) = SUM(credits). |
{- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "currency": "string",
- "customCurrencyRate": "string",
- "customForexRates": [
- {
- "currency": "string",
- "rate": "string"
}
], - "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "Transactions": [
- {
- "description": "string",
- "debit": "string",
- "credit": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "eliminate": false,
- "txn_type": "standard",
- "CostCenterId": 0,
- "LedgerAccountId": 0,
- "JobId": 0,
- "ProductId": 0,
- "LocationId": 0,
- "CustomerId": 0,
- "Vendorid": 0,
- "ICLocationId": 0,
- "ICAccountId": 0
}
]
}
[- {
- "_id": 0,
- "number": 0,
- "status": "draft",
- "entryType": "Standard",
- "sourceLedger": "Financial",
- "reference": "string",
- "notes": "string",
- "reverseDate": "2019-08-24",
- "icDoc": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingPeriodId": 0,
- "Transactions": [
- {
- "_id": 0,
- "description": "string",
- "debit": "string",
- "credit": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reconcileId": "string",
- "currency": "string",
- "customCurrencyRate": "string",
- "consolidated": true,
- "reversing": true,
- "elimination": true,
- "elim2": true,
- "SystemJobId": "string",
- "CostCenterId": 0,
- "LedgerAccountId": 0,
- "JobId": 0,
- "ProductId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "BillId": 0,
- "CustomerId": 0,
- "Vendorid": 0,
- "ICLocationId": 0,
- "CashReceiptId": 0,
- "VendorCreditId": 0,
- "ICAccountId": 0,
- "PaymentId": 0,
- "ForexRateId": 0,
- "JournalId": 0
}
]
}
]
Returns all journal lines that match the filter
object (JournalFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "postedDate:ASC" Enum: "_id:ASC" "_id:DESC" "currency:ASC" "currency:DESC" "JournalId:ASC" "JournalId:DESC" "Journal_entryType:ASC" "Journal_entryType:DESC" "Journal_number:ASC" "Journal_number:DESC" "Journal_sourceLedger:ASC" "Journal_sourceLedger:DESC" "LedgerAccount_type:ASC" "LedgerAccount_type:DESC" "LedgerAccount_subtype:ASC" "LedgerAccount_subtype:DESC" "Location_currency_rate:ASC" "Location_currency_rate:DESC" "Location_currency_debit:ASC" "Location_currency_debit:DESC" "Location_currency_credit:ASC" "Location_currency_credit:DESC" "postedDate:ASC" "postedDate:DESC" "transactionDate:ASC" "transactionDate:DESC" "credit:ASC" "credit:DESC" "debit:ASC" "debit:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
LocationId | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "description": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reversing": true,
- "reconcileId": "string",
- "consolidated": true,
- "elimination": true,
- "elim2": true,
- "customCurrencyRate": "string",
- "JournalId": 0,
- "Journal_status": "draft",
- "Journal_sourceLedger": "Financial",
- "Journal_entryType": "Standard",
- "Journal_reference": "string",
- "Journal_notes": "string",
- "Journal_number": 0,
- "Journal_reverseDate": "2019-08-24",
- "Journal_createdAt": "2019-08-24T14:15:22Z",
- "Journal_updatedAt": "2019-08-24T14:15:22Z",
- "Journal_AccountingPeriodId": 0,
- "SystemJobId": "string",
- "LedgerAccountId": 0,
- "LedgerAccount_name": "string",
- "LedgerAccount_number": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "ICAccountId": 0,
- "ICAccount_name": "string",
- "ICAccount_number": "string",
- "ICAccount_type": "Asset",
- "ICAccount_subtype": "string",
- "CostCenterId": 0,
- "CostCenter_name": "string",
- "CostCenter_id": "string",
- "ProductId": 0,
- "Product_name": "string",
- "Product_id": "string",
- "Custom1Id": 0,
- "Custom1_name": "string",
- "Custom1_id": "string",
- "Custom2Id": 0,
- "Custom2_name": "string",
- "Custom2_id": "string",
- "Custom3Id": 0,
- "Custom3_name": "string",
- "Custom3_id": "string",
- "CustomerId": 0,
- "Customer_id": "string",
- "Customer_name": "string",
- "VendorId": 0,
- "Vendor_id": "string",
- "Vendor_name": "string",
- "InvoiceId": 0,
- "Invoice_number": "string",
- "BillId": 0,
- "Bill_invoiceNumber": "string",
- "PaymentId": 0,
- "SalesOrderId": 0,
- "SalesOrder_number": "string",
- "LocationId": 0,
- "Location_name": "string",
- "Location_id": "string",
- "Location_currency": "string",
- "Location_currency_rate": "string",
- "Location_currency_credit": "string",
- "Location_currency_debit": "string",
- "Location_parent_path": [
- 0
], - "ICLocationId": 0,
- "ICLocation_name": "string",
- "ICLocation_id": "string",
- "ICLocation_currency": "string",
- "CashReceiptId": 0,
- "CashReceipt_number": "string",
- "VendorCreditId": "string",
- "VendorCredit_number": "string",
- "JobId": 0,
- "Job_number": "string",
- "Job_name": "string",
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "currency": "string",
- "debit": "string",
- "credit": "string",
- "txn_type": "standard",
- "CryptoTxnId": 0
}
]
}
Returns a count of journal lines that match the filter
object (JournalFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Reconcile a journal line with a bank transaction
id required | number JournalLine._id |
JSON body to reconcile the journal line
reconcileId required | string The id of the bank transaction to reconcile the journal line with |
{- "reconcileId": "string"
}
Returns all ledger accounts that match the filter
object (LedgerAccountFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "number:ASC" "number:DESC" "naturalBalance:ASC" "naturalBalance:DESC" "description:ASC" "description:DESC" "includeLocationChildren:ASC" "includeLocationChildren:DESC" "type:ASC" "type:DESC" "subtype:ASC" "subtype:DESC" "canDelete:ASC" "canDelete:DESC" "revalue_fx:ASC" "revalue_fx:DESC" "inactive:ASC" "inactive:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Location.id:ASC" "Location.id:DESC" Order to return results in. ex "date:desc" |
type | string Enum: "Asset" "Liability" "Equity" "Revenue" "Expense" Filter accounts by type (optional), if not provided all types will be returned |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "subtype": "string",
- "reportGroup": "Cash",
- "description": "string",
- "includeLocationChildren": true,
- "canDelete": true,
- "revalue_fx": true,
- "inactive": true,
- "useHistoricalConsolidationRate": true,
- "LocationId": 0,
- "ICAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICAccount": {
- "name": "string",
- "number": "string"
}
}
]
}
Create new Ledger Account
JSON body to create new Ledger Account
One of [LocationId, Location.id]
is required
Only one of [ICAccountId, ICAccount.number]
can be set
name required | string |
number required | string <integer> |
naturalBalance required | string Enum: "debit" "credit" |
type required | string Enum: "Asset" "Liability" "Equity" "Revenue" "Expense" |
subtype required | string Case in-sensitive |
reportGroup | string Enum: "Cash" "Accounts Receivable" "Other Current Assets" "Fixed Assets" "Other Assets" "Accounts Payable" "Other Current Liability" "Long Term Liability" "Equity" "Retained Earnings" "Revenue" "Other Income" "Operating Expense" "Cost of Revenue" "Other Expense" "Income Tax Expense" |
description | string |
includeLocationChildren | boolean Default: false |
canDelete | boolean Default: true |
revalue_fx | boolean Default: false |
inactive | boolean Default: false |
useHistoricalConsolidationRate | boolean Default: false If true, the account will use the historical consolidation rate Can only be enabled for type = 'Equity' accounts |
LocationId | integer Ref: Location._id |
ICAccountId | integer Ref: LedgerAccount._id |
object | |
object |
{- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "reportGroup": "Cash",
- "subtype": "string",
- "description": "string",
- "includeLocationChildren": false,
- "canDelete": true,
- "revalue_fx": false,
- "inactive": false,
- "useHistoricalConsolidationRate": false,
- "LocationId": 0,
- "ICAccountId": 0,
- "Location": {
- "id": "string"
}, - "ICAccount": {
- "number": "string"
}
}
[- {
- "_id": 0,
- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "subtype": "string",
- "description": "string",
- "includeLocationChildren": true,
- "canDelete": true,
- "revalue_fx": true,
- "inactive": true,
- "LocationId": 0,
- "ICAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Returns a count of ledger accounts that match the filter
object (LedgerAccountFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
type | string Enum: "Asset" "Liability" "Equity" "Revenue" "Expense" Filter accounts by type (optional), if not provided all types will be returned |
{- "count": "string",
- "estimate": true
}
Get one Ledger Account
id required | number or string LedgerAccount._id |
{- "_id": 0,
- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "subtype": "string",
- "reportGroup": "Cash",
- "description": "string",
- "includeLocationChildren": true,
- "canDelete": true,
- "revalue_fx": true,
- "inactive": true,
- "useHistoricalConsolidationRate": true,
- "LocationId": 0,
- "ICAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICAccount": {
- "name": "string",
- "number": "string"
}
}
Update one Ledger Account
id required | number or string LedgerAccount._id |
JSON object containing key and values to update
Only one of [LocationId, Location.id]
can be set
Only one of [ICAccountId, ICAccount.number]
can be set
name | string |
number | string <integer> |
naturalBalance | string Enum: "debit" "credit" |
type | string Enum: "Asset" "Liability" "Equity" "Revenue" "Expense" |
reportGroup | string Enum: "Cash" "Accounts Receivable" "Other Current Assets" "Fixed Assets" "Other Assets" "Accounts Payable" "Other Current Liability" "Long Term Liability" "Equity" "Retained Earnings" "Revenue" "Other Income" "Operating Expense" "Cost of Revenue" "Other Expense" "Income Tax Expense" |
subtype | string Case in-sensitive |
description | string |
includeLocationChildren | boolean Default: false |
revalue_fx | boolean Default: false |
inactive | boolean Default: false |
useHistoricalConsolidationRate | boolean Default: false |
LocationId | integer Ref: Location._id |
ICAccountId | integer Ref: LedgerAccount._id |
object | |
object |
{- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "reportGroup": "Cash",
- "subtype": "string",
- "description": "string",
- "includeLocationChildren": false,
- "revalue_fx": false,
- "inactive": false,
- "useHistoricalConsolidationRate": false,
- "LocationId": 0,
- "ICAccountId": 0,
- "Location": {
- "id": "string"
}, - "ICAccount": {
- "number": "string"
}
}
[- {
- "_id": 0,
- "name": "string",
- "number": "string",
- "naturalBalance": "debit",
- "type": "Asset",
- "subtype": "string",
- "description": "string",
- "includeLocationChildren": true,
- "canDelete": true,
- "revalue_fx": true,
- "inactive": true,
- "LocationId": 0,
- "ICAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Returns a list of all defined ledger account subtypes
mapgroups | boolean If provided, will return subtypes with group mappings as a collection; If not provided, will return all subtypes as an array of strings; |
[ ]
Upsert subtype to report group mappings
Existing subtypes will be updated, new subtypes will be created.
The subtype field is case insensitive and must be unique.
subtype required | string Must be unique and is case insensitive |
reportGroup required | string Enum: "Cash" "Accounts Receivable" "Other Current Assets" "Fixed Assets" "Other Assets" "Accounts Payable" "Other Current Liability" "Long Term Liability" "Equity" "Retained Earnings" "Revenue" "Other Income" "Operating Expense" "Cost of Revenue" "Other Expense" "Income Tax Expense" |
[- {
- "subtype": "string",
- "reportGroup": "Cash"
}
]
[- {
- "subtype": "string",
- "reportGroup": "Cash"
}
]
Returns all accounts for a location
id required | number or string Location._id |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "number:ASC" Enum: "number:ASC" "number:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": "string",
- "name": "string",
- "type": "Asset",
- "ICAccountId": 0,
- "LocationId": 0,
- "ICAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}
}
]
}
Returns all locations that match the filter
object (LocationFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "description:ASC" "description:DESC" "currency:ASC" "currency:DESC" "externalId:ASC" "externalId:DESC" "externalSource:ASC" "externalSource:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "parent_path": [
- 0
], - "externalId": "string",
- "externalSource": "string",
- "AddressId": 0,
- "FXGLAccountId": 0,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Parent": {
- "id": "string",
- "name": "string"
}, - "FXGLAccount": {
- "number": "string",
- "name": "string"
}
}
]
}
Creates a new Location
JSON body to create new Location
One of [Parent.id, parent_id]
must be set
Only one of [FXGLAccount.number, FXGLAccountId]
can be set
id required | string |
name required | string |
currency required | string Ref: Currency.code |
description | string |
imageURL | string <url> |
entityName | string |
entityEmail | string |
entityPhone | string |
createdAt | string <date-time> |
updatedAt | string <date-time> |
parent_id | integer Ref: Location._id |
externalId | string |
externalSource | string |
FXGLAccountId | integer Ref: LedgerAccount._id |
object | |
object | |
object |
{- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "externalId": "string",
- "externalSource": "string",
- "FXGLAccountId": 0,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Parent": {
- "id": "string"
}, - "FXGLAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "parent_path": [
- 0
], - "externalId": "string",
- "externalSource": "string",
- "AddressId": 0,
- "FXGLAccountId": 0
}
Returns a count of locations that match the filter
object (LocationFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Get one Location
id required | number or string Location._id |
{- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "parent_path": [
- 0
], - "externalId": "string",
- "externalSource": "string",
- "AddressId": 0,
- "FXGLAccountId": 0,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Parent": {
- "id": "string",
- "name": "string"
}, - "FXGLAccount": {
- "number": "string",
- "name": "string"
}
}
Update One Location
id required | number or string Location._id |
JSON body containing key and values to update
Only one of [Parent.id, parent_id]
can be set
Only one of [FXGLAccount.number, FXGLAccountId]
can be set
id | string |
name | string |
currency | string Ref: Currency.code |
description | string |
imageURL | string <url> |
entityName | string |
entityEmail | string |
entityPhone | string |
createdAt | string <date-time> |
updatedAt | string <date-time> |
parent_id | integer Ref: Location._id |
externalId | string |
externalSource | string |
FXGLAccountId | integer Ref: LedgerAccount._id |
object | |
object | |
object |
{- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "externalId": "string",
- "externalSource": "string",
- "FXGLAccountId": 0,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Parent": {
- "id": "string"
}, - "FXGLAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "description": "string",
- "imageURL": "string",
- "entityName": "string",
- "entityEmail": "string",
- "entityPhone": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "parent_id": 0,
- "parent_path": [
- 0
], - "externalId": "string",
- "externalSource": "string",
- "AddressId": 0,
- "FXGLAccountId": 0
}
Get Location with Descendants (children, grandchildren, etc) in a nested tree.
id required | number or string Location._id |
{- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "children": [
- {
- "_id": 0,
- "id": "string",
- "name": "string",
- "currency": "string",
- "children": [
- { }
]
}
]
}
Create new Part Number
JSON body to create new Part Number
VendorId required | number |
ItemId required | number |
partNumber required | string |
{- "VendorId": 0,
- "ItemId": 0,
- "partNumber": "string"
}
{- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "partNumber": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all part numbers that match the filter
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "VendorId:ASC" "VendorId:DESC" "ItemId:ASC" "ItemId:DESC" "partNumber:ASC" "partNumber:DESC" "Item.name:ASC" "Item.name:DESC" "Vendor.name:ASC" "Vendor.name:DESC" Order to return results in. ex "date:desc" |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "partNumber": "string",
- "Item": {
- "name": "string",
- "sku": "string",
- "number": 0,
- "description": "string"
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Get one Part Number
id required | number or string PartNumber._id |
{- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "partNumber": "string",
- "Item": {
- "name": "string",
- "sku": "string",
- "number": 0,
- "description": "string"
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update one Part Number
id required | number or string PartNumber._id |
JSON object containing key and values to update
partNumber | string |
{- "partNumber": "string"
}
{- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "partNumber": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all payments that match the filter
object (PaymentsFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (PaymentsOrder) Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "externalId:ASC" "externalId:DESC" "checkNumber:ASC" "checkNumber:DESC" "amount:ASC" "amount:DESC" "paymentDate:ASC" "paymentDate:DESC" "postedDate:ASC" "postedDate:DESC" "currency:ASC" "currency:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Enum: "ap" "ar" Filter by AP or AR payments If not specified, all payment types will be returned |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Creates a new Payment
JSON body to create new Payment
Depending on the type different fields are required.
This table defines which fields are required or not allowed based on the type.
Fields not mentioned here are optional
Field | manual | vendorcredit | cashreceipt | refund | ap_refund |
---|---|---|---|---|---|
amount | ✅ | ✅ | ✅ | ✅ | ✅ |
paymentDate | ✅ | ✅ | ✅ | ✅ | ✅ |
BillId | ✅ | ✅ | ❌ | ❌ | ✅ |
VendorCreditId | ❌ | ✅ | ❌ | ❌ | ❌ |
LedgerAccountId | ✅ | ❌ | ❌ | ✅ | ✅ |
CashReceiptId | ❌ | ❌ | ✅ | ❌ | ❌ |
InvoiceId | ❌ | ❌ | ✅ | ✅ | ❌ |
✅ - Field required for type
❌ - Field not allowed for type
Created payments will be created in created
status unless the setting for Auto-Approve (AR/AP) is enabled, then the status will be approved
type required | string Enum: "manual" "vendorcredit" "cashreceipt" "refund" "ap_refund" |
amount required | string <number> |
paymentDate required | string <date> |
externalId | string |
externalCheckId | string |
externalCheckBankId | string |
checkNumber | string |
postedDate | string <date> Defaults to paymentDate |
memo | string |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
BillId | integer Ref: Bill._id |
VendorCreditId | integer Ref: VendorCredit._id |
LedgerAccountId | integer Ref: LedgerAccount._id |
CashReceiptId | integer Ref: CashReceipt._id |
AddressId | integer Ref: Address._id |
InvoiceId | integer Ref: Invoice._id |
{- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "InvoiceId": 0
}
{- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "number": "string",
- "checkNumber": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
The same filters as Search can be used here.
object (PaymentsFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Enum: "ap" "ar" Filter by AP or AR payments If not specified, all payment types will be returned |
{- "count": "string",
- "estimate": true
}
Get one Payment
id required | number or string Payment._id |
{- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
Update One Payment
id required | number or string Payment._id |
JSON body containing key and values to update
externalId | string |
externalCheckId | string |
externalCheckBankId | string |
checkNumber | string |
amount | string <number> |
paymentDate | string <date> |
postedDate | string <date> Defaults to paymentDate |
AddressId | number |
memo | string |
notes | string |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
{- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "checkNumber": "string",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "AddressId": 0,
- "memo": "string",
- "notes": "string",
}
{- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "number": "string",
- "checkNumber": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Void one Payment
Voided payments will post a voided journal
Cannot void if payment is not approved
id required | number or string Payment._id |
Optional JSON body to override the journal description and postedDate
description | string |
postedDate | string <date> |
{- "description": "string",
- "postedDate": "2019-08-24"
}
Close a specific period task
id required | number or string AccountingPeriod._id |
task required | string Enum: "ar" "ap" "financial" "crypto" "inventory" "period" Task to close |
{- "_id": 0,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "status": "open",
- "fx_revalue_status": "open",
- "financial_status": "open",
- "ar_status": "open",
- "ap_status": "open",
- "crypto_status": "open",
- "inventory_status": "open",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingYearId": "string"
}
Gets the missing consolidation rates for a period
Consolidation rates are used to generate consolidated financial reports
id required | number or string AccountingPeriod._id |
[- {
- "parentId": 0,
- "parentCurrency": "string",
- "childId": 0,
- "childCurrency": "string"
}
]
Open a specific period task
id required | number or string AccountingPeriod._id |
task required | string Enum: "ar" "ap" "financial" "crypto" "inventory" "period" Task to open |
{- "_id": 0,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "status": "open",
- "fx_revalue_status": "open",
- "financial_status": "open",
- "ar_status": "open",
- "ap_status": "open",
- "crypto_status": "open",
- "inventory_status": "open",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingYearId": "string"
}
[- {
- "_id": 0,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "status": "open",
- "fx_revalue_status": "open",
- "financial_status": "open",
- "ar_status": "open",
- "ap_status": "open",
- "crypto_status": "open",
- "inventory_status": "open",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "AccountingYearId": "string"
}
]
Preferences are used to store user UI preferences. There are currently the following types:
Type | Description |
---|---|
table | Stores information regarding default column visibility, sorting order, and page size |
filter | Stores information for a tables view. These can be useful in storing different re-usable queries |
Create new Preferences
JSON body to create new Preference
key required | string |
userId | number |
type | string |
name | string |
data | object |
{- "userId": 0,
- "type": "string",
- "key": "string",
- "name": "string",
- "data": { }
}
[- {
- "userId": "string",
- "type": "string",
- "key": "string",
- "name": "string",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Returns a list of preferences in descending order by key
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "userId": "string",
- "type": "string",
- "key": "string",
- "name": "string",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Get one Preference
id required | number or string Preference._id |
{- "_id": 0,
- "userId": "string",
- "type": "string",
- "key": "string",
- "name": "string",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update one Preference
id required | number or string Preference._id |
JSON object containing key and values to update
data | object |
{- "data": { }
}
[- {
- "userId": "string",
- "type": "string",
- "key": "string",
- "name": "string",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Returns all products
object (ProductFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "description:ASC" "description:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create Product
JSON body
id required | string |
name required | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of products that match the filter
object (ProductFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
Get one Product
id required | number or string Product._id |
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update Product
id required | number or string Product._id |
JSON body containing key and values to update
id | string |
name | string |
description | string |
inactive | boolean |
{- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true
}
{- "_id": 0,
- "id": "string",
- "name": "string",
- "description": "string",
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get stock adjustments linked to a purchase order
The parameters of this endpoint are the same as for Stock Adjustment Search
id required | string PurchaseOrder._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "ItemId": 0,
- "description": "string",
- "WarehouseId": 0,
- "locked": true,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "AdjustmentLedgerAccountId": 0,
- "JournalId": 0,
- "type": "fulfill",
- "TransferId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "PurchaseOrderId": 0,
- "SalesOrderId": 0,
- "ShipmentReceiptLineId": 0,
- "quantity": "string",
- "qtyPicked": "string",
- "qtyAvailable": "string",
- "currency": "string",
- "price": "string",
- "currencyRate": "string",
- "costBasis": "string",
- "AdjustmentLedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "Warehouse": {
- "name": "string"
}, - "PurchaseOrder": {
- "number": "string"
}, - "SalesOrder": {
- "number": "string"
}, - "Journal": {
- "number": 0
}, - "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}
]
}
Returns all purchase orders
object (PurchaseOrderFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "externalId:ASC" "externalId:DESC" "number:ASC" "number:DESC" "issueDate:ASC" "issueDate:DESC" "deliveryDate:ASC" "deliveryDate:DESC" "amount:ASC" "amount:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "number": "string",
- "description": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "status": "created",
- "amount": "string",
- "currency": "string",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "customFields": { },
- "TemplateId": 0,
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "InventoryReceivingAccountId": 0,
- "InventoryReceivingAccount": {
- "number": "string",
- "name": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Purchase Order
JSON body to create new Purchase Order
One of [Location.id, LocationId]
is Required
One of [Vendor.name, VendorId]
is Required
One of [InventoryAccrualAccount.number, InventoryAccrualAccountId]
is Required
One of [Warehouse.name, WarehouseId]
is Required
VendorId required | integer Ref: Vendor._id |
LocationId required | integer Ref: Location._id |
WarehouseId required | integer Ref: Warehouse._id |
currency required | string <ISO4217 3 Char Code> Ref: Currency.code - cannot use custom |
externalId | string |
description | string |
notes | string |
issueDate | string <date> Defaults to current date |
deliveryDate | string <date> Defaults to current date |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
TemplateId | integer "Ref: Template._id" Defaults to Template with name 'Default' and format = 'pdf' |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
object | |
ICLocationId | integer Ref: Location._id |
object | |
object | |
object | |
InventoryReceivingAccountId | integer Must be an active acccount "Ref: LedgerAccount._id" Defaults to "Ref: Settings.defaultInventoryAccrualId" |
object | |
ShippingAddressId | integer Ref: Address._id |
BillingAddressId | integer Ref: Address._id |
Array of objects If an Item is passed, then this line will be considered an "item" type line, Otherwise it is a "description" type line, which requires
Tax Logic
|
{- "externalId": "string",
- "description": "string",
- "notes": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "TemplateId": 0,
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "InventoryReceivingAccountId": 0,
- "InventoryReceivingAccount": {
- "number": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "POLineItems": [
- {
- "idx": 0,
- "externalId": "string",
- "description": "string",
- "customFields": { },
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "SalesOrderId": 0,
- "SOLineItemId": 0,
- "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
]
}
{- "_id": 0,
- "externalId": "string",
- "status": "string",
- "number": "string",
- "amount": "string",
- "description": "string",
- "notes": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "customFields": { },
- "TemplateId": 0,
- "LocationId": 0,
- "ICLocationId": 0,
- "VendorId": 0,
- "WarehouseId": 0,
- "InventoryReceivingAccountId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all lines for a purchase order
object (PurchaseOrderLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "idx:ASC" Enum: "_id:ASC" "_id:DESC" "idx:ASC" "idx:DESC" "description:ASC" "description:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "taxAmount:ASC" "taxAmount:DESC" "quantityReceived:ASC" "quantityReceived:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "PurchaseOrder.number:ASC" "PurchaseOrder.number:DESC" "PurchaseOrder.status:ASC" "PurchaseOrder.status:DESC" "PurchaseOrder.createdAt:ASC" "PurchaseOrder.createdAt:DESC" "PurchaseOrder.updatedAt:ASC" "PurchaseOrder.updatedAt:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "SalesOrder.number:ASC" "SalesOrder.number:DESC" "Location.name:ASC" "Location.name:DESC" "ICLocation.name:ASC" "ICLocation.name:DESC" "Warehouse.name:ASC" "Warehouse.name:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "Product.id:ASC" "Product.id:DESC" "Job.number:ASC" "Job.number:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" Order to return results in. ex "date:desc" |
receivableOnly | boolean Default: false Set this to true to only return lines that can be received Criteria for receivable lines is as under:
Setting this to false will return all lines |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "quantityReceived": "string",
- "customFields": { },
- "total": "string",
- "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string",
- "status": "string",
- "VendorId": 0,
- "LocationId": 0,
- "ICLocationId": 0,
- "WarehouseId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string"
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocation": {
- "id": "string",
- "name": "string"
}, - "Warehouse": {
- "name": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns all lines for a purchase order
id required | number or string PurchaseOrder._id |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "idx:ASC" Enum: "_id:ASC" "_id:DESC" "idx:ASC" "idx:DESC" "description:ASC" "description:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "taxAmount:ASC" "taxAmount:DESC" "quantityReceived:ASC" "quantityReceived:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "PurchaseOrder.number:ASC" "PurchaseOrder.number:DESC" "PurchaseOrder.status:ASC" "PurchaseOrder.status:DESC" "PurchaseOrder.createdAt:ASC" "PurchaseOrder.createdAt:DESC" "PurchaseOrder.updatedAt:ASC" "PurchaseOrder.updatedAt:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "SalesOrder.number:ASC" "SalesOrder.number:DESC" "Location.name:ASC" "Location.name:DESC" "ICLocation.name:ASC" "ICLocation.name:DESC" "Warehouse.name:ASC" "Warehouse.name:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "Product.id:ASC" "Product.id:DESC" "Job.number:ASC" "Job.number:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" Order to return results in. ex "date:desc" |
receivableOnly | boolean Default: false Set this to true to only return lines that can be received Criteria for receivable lines is as under:
Setting this to false will return all lines |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "quantityReceived": "string",
- "customFields": { },
- "total": "string",
- "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string",
- "status": "string",
- "VendorId": 0,
- "LocationId": 0,
- "ICLocationId": 0,
- "WarehouseId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string"
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocation": {
- "id": "string",
- "name": "string"
}, - "Warehouse": {
- "name": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of purchase orders that match the filter
object (PurchaseOrderFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Returns a count of purchase order lines that match the filter
object (PurchaseOrderLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
receivableOnly | boolean Default: false Set this to true to only return lines that can be received Criteria for receivable lines is as under:
Setting this to false will return all lines |
{- "count": "string",
- "estimate": true
}
Creates a new Purchase Order Line Item
id required | number or string PurchaseOrder._id |
JSON body to create new Purchase Order Line Item
If an Item is passed, then this line will be considered an "item" type line,
Otherwise it is a "description" type line, which requires
Tax Logic
amount required | string <number> Must be > 0 |
quantity required | string <number> Must be > 0 |
idx | number |
externalId | string |
description | string Required if ItemId is not set |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer "Ref: Item._id" If the reference Item has type 'direct', then SalesOrderId or SOLineItemId is required |
object | |
SalesOrderId | integer "Ref: SalesOrder._id"
|
SOLineItemId | integer "Ref: SOLineItem._id"
|
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object |
{- "idx": 0,
- "externalId": "string",
- "description": "string",
- "customFields": { },
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "SalesOrderId": 0,
- "SOLineItemId": 0,
- "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
{- "_id": 0,
- "idx": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityReceived": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "SalesOrderId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Delete one Purchase Order
Can only delete purchase orders in "created" status.
Can not delete purchase orders with linked bill or if any lines have linked stock adjustments.
If there are any direct purchase lines that have a linked Sales order line
id required | number or string PurchaseOrder._id |
Get one Purchase Order
id required | number or string PurchaseOrder._id |
{- "_id": 0,
- "externalId": "string",
- "number": "string",
- "description": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "status": "created",
- "amount": "string",
- "currency": "string",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "customFields": { },
- "TemplateId": 0,
- "LocationId": 0,
- "WarehouseId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "InventoryReceivingAccountId": 0,
- "InventoryReceivingAccount": {
- "number": "string",
- "name": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Warehouse": {
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "POLineItems": [
- {
- "_id": 0,
- "idx": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityReceived": "string",
- "partNumber": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "SalesOrderId": 0,
- "SalesOrder": {
- "number": "string"
}, - "ShipmentReceiptLines": [
- {
- "quantityReceived": "string",
- "WarehouseId": 0,
- "status": "received",
- "amount": "string"
}
], - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Updates a Purchase Order
id required | number or string PurchaseOrder._id |
JSON body to update a Purchase Order
Only POs in "created" or "partiallyFulfilled" status can be updated.
If updating the InventoryReceivingAccountId you must choose an active account.
ICLocationId and LocationId cannot be the same.
externalId | string |
description | string |
notes | string |
issueDate | string <date> |
deliveryDate | string <date> |
currency | string <ISO4217 3 Char Code> Ref: Currency.code - cannot use custom |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
TemplateId | integer "Ref: Template._id" Defaults to Template with name 'Default' and format = 'pdf' |
customFields | object Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
LocationId | integer Ref: Location._id |
object | |
ICLocationId | integer Ref: Location._id |
object | |
VendorId | integer Ref: Vendor._id |
object | |
WarehouseId | integer Ref: Warehouse._id |
object | |
InventoryReceivingAccountId | integer Must be an active account "Ref: LedgerAccount._id" Defaults to "Ref: Settings.defaultInventoryAccrualId" |
object | |
ShippingAddressId | integer Ref: Address._id |
BillingAddressId | integer Ref: Address._id |
{- "externalId": "string",
- "description": "string",
- "notes": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "TemplateId": 0,
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "InventoryReceivingAccountId": 0,
- "InventoryReceivingAccount": {
- "number": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0
}
{- "_id": 0,
- "externalId": "string",
- "status": "string",
- "number": "string",
- "amount": "string",
- "description": "string",
- "notes": "string",
- "issueDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "customFields": { },
- "TemplateId": 0,
- "LocationId": 0,
- "ICLocationId": 0,
- "VendorId": 0,
- "WarehouseId": 0,
- "InventoryReceivingAccountId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Delete one Purchase Order line
Can only delete lines from purchase orders with status "created"/"issued"/"partiallyFulfilled".
Can not delete lines with linked stock adjustments.
If the line to be deleted has a linked Sales order line
Purchase order amount will reflect the changes.
id required | number or string POLineItem._id |
Update a Purchase Order Line Item
id required | number or string POLineItem._id |
JSON body to update a Purchase Order Line Item
Can only update a line on an order with "created", "issued", "partiallyFulfilled" status
If a line has linked stock adjustments, you may only update "quantity"
Cannot update quantity to be less than quantityReceived
Quantity can be updated to zero, this indicates the line is "voided"
If an Item is passed, then this line will be considered an "item" type line
Otherwise it is a "description" type line, which requires
Tax Logic
amount required | string <number> Must be > 0 |
quantity required | string <number> Must be >= quantityReceived |
idx | number |
externalId | string |
description | string Required if ItemId is not set |
customFields | object Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer "Ref: Item._id" If the reference Item has type 'direct', then SalesOrderId or SOLineItemId is required or already set on the line |
object | |
SalesOrderId | integer "Ref: SalesOrder._id"
|
SOLineItemId | integer "Ref: SOLineItem._id"
|
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object |
{- "idx": 0,
- "externalId": "string",
- "description": "string",
- "customFields": { },
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "SalesOrderId": 0,
- "SOLineItemId": 0,
- "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
{- "_id": 0,
- "idx": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityReceived": "string",
- "customFields": { },
- "taxAmount": "string",
- "TaxCodeId": 0,
- "SalesOrderId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Issue Purchase Order
Can only issue if status is "created"
id required | number or string PurchaseOrder._id |
If Purchase Order was issued and email was sent to vendor.
Success
Create new Recurring Job.
JSON body to create new Recurring Job
name required | string |
eventType required | string Enum: "RecurringJournal" "RecurringInvoice" "RecurringBill" |
eventQueue required | string Value: "recurring_doc" |
TemplateId required | integer Ref: Templates._id |
intervalType required | string Enum: "yearly" "monthly" "weekly" "daily" |
intervalAmount required | number |
startDate required | string <date-only> |
enabled | boolean Default: false |
description | string |
intervalDay | string Day to recur on |
endDate | string <date-only> |
{- "name": "string",
- "enabled": false,
- "description": "string",
- "eventType": "RecurringJournal",
- "eventQueue": "recurring_doc",
- "TemplateId": 0,
- "intervalType": "yearly",
- "intervalAmount": 0,
- "intervalDay": "string",
- "startDate": "string",
- "endDate": "string"
}
{- "name": "string",
- "enabled": false,
- "description": "string",
- "eventType": "RecurringJournal",
- "eventQueue": "recurring_doc",
- "TemplateId": 0,
- "intervalType": "yearly",
- "intervalAmount": 0,
- "intervalDay": "string",
- "startDate": "string",
- "endDate": "string"
}
Returns all recurring jobs
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "enabled:ASC" "enabled:DESC" "description:ASC" "description:DESC" "eventType:ASC" "eventType:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "enabled": false,
- "description": "string",
- "eventType": "RecurringJournal",
- "eventQueue": "recurring_doc",
- "TemplateId": 0,
- "intervalType": "yearly",
- "intervalAmount": 0,
- "intervalDay": "string",
- "startDate": "string",
- "endDate": "string"
}
]
}
Update One Recurring Job
id required | number or string RecurringJob._id |
JSON body containing key and values to update
enabled | boolean Default: false |
description | string |
intervalType | string Enum: "yearly" "monthly" "weekly" "daily" |
intervalAmount | number |
intervalDay | string Day to recur on |
startDate | string <date-only> |
endDate | string <date-only> |
{- "enabled": false,
- "description": "string",
- "intervalType": "yearly",
- "intervalAmount": 0,
- "intervalDay": "string",
- "startDate": "string",
- "endDate": "string"
}
{- "name": "string",
- "enabled": false,
- "description": "string",
- "eventType": "RecurringJournal",
- "eventQueue": "recurring_doc",
- "TemplateId": 0,
- "intervalType": "yearly",
- "intervalAmount": 0,
- "intervalDay": "string",
- "startDate": "string",
- "endDate": "string"
}
Returns the Balance Sheet report
The Balance Sheet is a financial statement that reports a company's assets, liabilities, and shareholders' equity at a specific point in time.
Accounts of type Asset
, Liability
, Equity
are considered for the balance sheet report.
Balance sheet should always balance at both consolidated and unconsolidated levels. This however does require all ledger accounts to be mapped to report groups.
All the balances are in the currency of the given LocationId
Closing
entries are also included for balance sheet reports.
All journals with postedDate <= reporting date are factored into this.
LocationId required | integer Location to run the balance sheet report for. When vieweing consolidated balance sheet, balances from all child locations under this location are consolidated. When viewing unconsolidated balance sheet, balances from only this location are shown. |
reportEndDate required | string <date> Date to run the balance sheet report for Journals with postedDate <= reportEndDate are factored into this report |
type required | string Enum: "unconsolidated" "consolidated" "entity" Type of balance sheet report
|
comparativeColumnType | string Enum: "month" "quarter" "year" Type of comparative columns to show in the report.
|
comparativeColumnCount | integer [ 1 .. 12 ] Number of comparative columns to show in the report. This is the number of months, quarters, or years to show in the report. For yearly comparison, the maximum value for this field is 2. For quarterly comparison, the maximum value for this field is 4. For monthly comparison, the maximum value for this field is 12. If the report is run on "2023-01-01" and the "comparativeColumnType" is "month" and "comparativeColumnCount" is 2, the report will show the balances for "11 2022", "12 2022" and "01 2023". The comparative columns cannot go past the accounting years. |
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
{- "data": [
- {
- "type": "summary",
- "label": "string",
- "depth": 0,
- "invertBalance": true,
- "values": { },
- "accountBalances": [
- {
- "LedgerAccountId": 0,
- "number": "string",
- "name": "string",
- "values": { }
}
], - "rows": [
- "string"
]
}
], - "columns": [
- "string"
]
}
Returns the Cash Flow report
The Cash Flow report is a financial statement that reports a company's cash flow over a specific accounting period.
All the balances are in the currency of the given LocationId
LocationId required | integer Location to run the cash flow report for. When vieweing consolidated cash flow, balances from all child locations under this location are consolidated. When viewing unconsolidated cash flow, balances from only this location are shown. |
reportEndDate required | string <date> Date to run the cash flow report for Journals with postedDate from start date up to this date (inclusive) are factored into this report |
type required | string Enum: "unconsolidated" "consolidated" Type of cash flow report
|
startDate required | string <date> Start Date for the report. This date would determine the number of months, quarters or years shown in the report. If the report is run on "2023-01-01" and the "comparativeColumnType" is "month" and "startDate" is "2022-11-01", the report will show the balances for "11 2022", "12 2022" and "01 2023". The startDate cannot go past the available accounting years. |
comparativeColumnType | string Enum: "month" "quarter" "year" Type of comparative columns to show in the report.
|
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
{- "data": [
- {
- "type": "summary",
- "label": "string",
- "depth": 0,
- "values": { },
- "invertBalance": true,
- "accountBalances": [
- {
- "LedgerAccountId": 0,
- "number": "string",
- "name": "string",
- "values": { }
}
], - "rows": [
- "string"
]
}
], - "columns": [
- "string"
]
}
Returns the Income Statement report
The Income Statement is a financial statement that reports a company's financial performance over a specific accounting period.
All the balances are in the currency of the given LocationId
Closing
entries are not included for income statement reports.
All journals with postedDate from start of accounting year upto the reporting date are factored into this.
LocationId required | integer Location to run the income statement report for. When vieweing consolidated income statement, balances from all child locations under this location are consolidated. When viewing unconsolidated income statement, balances from only this location are shown. |
reportEndDate required | string <date> Date to run the income statement report for Journals with postedDate from start of accounting year upto this date are factored into this report Accounting year is determined as the one that surrounds this date. |
type required | string Enum: "unconsolidated" "consolidated" "entity" Type of income statement report
|
startDate required | string <date> Start Date for the report. This date would determine the number of months, quarters or years shown in the report. If the report is run on "2023-01-01" and the "comparativeColumnType" is "month" and "startDate" is "2022-11-01", the report will show the balances for "11 2022", "12 2022" and "01 2023". The startDate cannot go past the available accounting years. |
comparativeColumnType | string Enum: "month" "quarter" "year" Type of comparative columns to show in the report.
|
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
{- "data": [
- {
- "type": "summary",
- "label": "string",
- "depth": 0,
- "values": { },
- "invertBalance": true,
- "accountBalances": [
- {
- "LedgerAccountId": 0,
- "number": "string",
- "name": "string",
- "values": { }
}
], - "rows": [
- "string"
]
}
], - "columns": [
- "string"
]
}
Returns the General Ledger summary for the given location in the date range provided
The General Ledger summary will display starting balance, debit, credit, net change, and ending balance for each ledger account in the given location
All the balances are in the currency of the given LocationId
Elimination entries are not included here.
Closing entries are not included when calculating starting balances for Income Statement accounts.
The data is ordered by LedgerAccount.number
in ASC and rounded to the fraction precision set in the reporting currency.
startDate required | string <date> Start of the date range to run the general ledger summary for |
endDate required | string <date> End of the date range to run the general ledger summary for |
LocationId | integer Location to run the general ledger summary for. If not provided, the general ledger summary will be run for the Global location. |
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
hideZeroActivity | boolean Default: false Set to true to hide accounts that don't have any activity in the date range provided Activity is defined as having at least one transaction in the date range provided |
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "currency": "string",
- "startingBalance": "string",
- "debit": "string",
- "credit": "string",
- "netChange": "string",
- "endingBalance": "string"
}
]
}
Returns the Account Balance by Currency report for the given inputs.
Only Balance Sheet (Asset/Liability/Equity) accounts are supported in this report.
This report will display the account balances for the selected accounts in the selected currency.
Currency balances are calculated using the Forex Rates associated with the Journal Lines.
Only Journal Lines posted before and including the date provided are included in the report.
Custom currencies aren't supported in this report.
Only one of the following can be provided in the request:
LedgerAccountIds
subtypes
reportGroups
currency required | string <ISO4217 3 Char Code> Currency to run the report in. |
endDate | string <date> Date to run the report through |
LocationId | integer Location to run the report for. |
LedgerAccountIds | string Comma separated list of "LedgerAccount._id" to include in the report e.g. "1,2,3" where "1", "2" and "3" are the "LedgerAccount._id" values. |
subtypes | string Comma separated list of Ledger Account subtypes to include in the report. |
reportGroups | string Comma separated list of Ledger Account report groups to include in the report. |
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "balance": "string"
}
]
}
Search for reports
type | string Enum: "balanceSheet" "incomeStatement" "journalLines" "generalLedger" "trialBalance" "trialBalanceByCurrency" "ledgerAccountReview" "ledgerAccountByDimension" "budgetVsActual" "accountBalanceByCurrency" Filter by type of report |
name | string Search report by name |
[- {
- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "data": {
- "LocationId": 0,
- "date": "2019-08-24",
- "configuration": {
- "financialReportType": "entity",
- "ReportLayoutId": 0,
- "journalStatus": "all"
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Create a new report
JSON body to create new Report
name required | string Report name must be unique per type |
type required | string Enum: "balanceSheet" "incomeStatement" "journalLines" "generalLedger" "trialBalance" "ledgerAccountByDimension" "trialBalanceByCurrency" "ledgerAccountReview" "budgetVsActual" "accountBalanceByCurrency" |
BalanceSheetReportData (object) or IncomeStatementReportData (object) or TrialBalanceReportData (object) or TrialBalanceByCurrencyReportData (object) or GeneralLedgerReportData (object) or JournalLinesReportData (object) or LedgerAccountByDimensionReportData (object) or LedgerAccountReviewReportData (object) or BudgetVsActualReportData (object) or AccountBalanceByCurrencyReportData (object) JSON object containing configuration for the report. |
{- "name": "string",
- "type": "balanceSheet",
- "data": {
- "LocationId": 0,
- "date": "2019-08-24",
- "configuration": {
- "financialReportType": "entity",
- "ReportLayoutId": 0,
- "journalStatus": "all"
}
}
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Updates a report
id required | number or string Report._id |
JSON body to update a Report
name | string Report name must be unique per type |
BalanceSheetReportData (object) or IncomeStatementReportData (object) or TrialBalanceReportData (object) or TrialBalanceByCurrencyReportData (object) or GeneralLedgerReportData (object) or JournalLinesReportData (object) or LedgerAccountByDimensionReportData (object) or LedgerAccountReviewReportData (object) or BudgetVsActualReportData (object) or AccountBalanceByCurrencyReportData (object) JSON object containing updated configuration for the report. |
{- "name": "string",
- "data": {
- "LocationId": 0,
- "date": "2019-08-24",
- "configuration": {
- "financialReportType": "entity",
- "ReportLayoutId": 0,
- "journalStatus": "all"
}
}
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns data for a ledger account review report
object (LedgerAccountReviewReportFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "description": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reversing": true,
- "reconcileId": "string",
- "consolidated": true,
- "elimination": true,
- "elim2": true,
- "customCurrencyRate": "string",
- "JournalId": 0,
- "Journal_status": "draft",
- "Journal_sourceLedger": "Financial",
- "Journal_entryType": "Standard",
- "Journal_reference": "string",
- "Journal_notes": "string",
- "Journal_number": 0,
- "Journal_reverseDate": "2019-08-24",
- "Journal_createdAt": "2019-08-24T14:15:22Z",
- "Journal_updatedAt": "2019-08-24T14:15:22Z",
- "Journal_AccountingPeriodId": "string",
- "SystemJobId": "string",
- "LedgerAccountId": 0,
- "LedgerAccount_name": "string",
- "LedgerAccount_number": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "ICAccountId": 0,
- "ICAccount_name": "string",
- "ICAccount_number": "string",
- "ICAccount_type": "string",
- "ICAccount_subtype": "Asset",
- "CostCenterId": 0,
- "CostCenter_name": "string",
- "CostCenter_id": "string",
- "ProductId": 0,
- "Product_name": "string",
- "Product_id": "string",
- "Custom1Id": 0,
- "Custom1_name": "string",
- "Custom1_id": "string",
- "Custom2Id": 0,
- "Custom2_name": "string",
- "Custom2_id": "string",
- "Custom3Id": 0,
- "Custom3_name": "string",
- "Custom3_id": "string",
- "CustomerId": 0,
- "Customer_id": "string",
- "Customer_name": "string",
- "VendorId": 0,
- "Vendor_id": "string",
- "Vendor_name": "string",
- "InvoiceId": 0,
- "Invoice_number": "string",
- "BillId": 0,
- "Bill_invoiceNumber": "string",
- "PaymentId": 0,
- "SalesOrderId": 0,
- "SalesOrder_number": "string",
- "LocationId": 0,
- "Location_name": "string",
- "Location_id": "string",
- "Location_currency": "string",
- "Location_currency_rate": "string",
- "Location_currency_credit": "string",
- "Location_currency_debit": "string",
- "Location_parent_path": [
- 0
], - "ICLocationId": 0,
- "ICLocation_name": "string",
- "ICLocation_id": "string",
- "ICLocation_currency": "string",
- "CashReceiptId": 0,
- "CashReceipt_number": "string",
- "VendorCreditId": "string",
- "VendorCredit_number": "string",
- "JobId": 0,
- "Job_number": "string",
- "Job_name": "string",
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "currency": "string",
- "debit": "string",
- "credit": "string",
- "txn_type": "standard"
}
]
}
Returns a count of ledger account review report data that match the filter
object (LedgerAccountReviewReportFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Returns the Ledger Accounts by Dimension report for the given inputs
This report will display the unconsolidated balances of all ledger accounts in the given date range provided, and group the results by dimensions.
Balances that do not fall under any given dimension, as well as the one that don't have a dimension set are also returned in the other
and none
key in the balances response.
The supported Dimensions here are:
The balances here are in the currency of the given LocationId and are also rounded to the set precision for the currency.
Ledger Accounts that do not have any balance with the given set of filters will not be returned.
LocationId required | integer Location to return the balances for This is not a consolidated report so balances from child locations of the given LocationId will not be included. | ||||||||||||||||||||||||||||||||||||
startDate required | string <date> Start Date for the report. Journals with postedDate >= startDate will be included in the report | ||||||||||||||||||||||||||||||||||||
endDate required | string <date> End Date for the report. Journals with postedDate <= endDate will be included in the report | ||||||||||||||||||||||||||||||||||||
dimensionType required | string Enum: "Customer" "Vendor" "CostCenter" "Product" "Job" "Custom1" "Custom2" "Custom3" Dimension to group the ledger accounts balances by. | ||||||||||||||||||||||||||||||||||||
dimensionIds required | string Comma separated list of "Dimension._id" to include in the report e.g. "1,2,3" where "1", "2" and "3" are the "Dimension._id" of the given dimension. At least one dimension ID must be provided The given Dimension record must not be marked as "inactive" | ||||||||||||||||||||||||||||||||||||
filter | string JSON Key:Value object to filter the Journals on when calculating the balances. Following fields are filterable:
| ||||||||||||||||||||||||||||||||||||
filterType | string Default: "all" Enum: "all" "any" When multiple filters are provided in the |
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "currency": "string",
- "balances": { }
}
], - "columns": [
- {
- "_id": 0,
- "label": "string"
}
]
}
Returns the Trial Balance by posted currency for given location up until the date provided
The Trial Balance by Posted Currency will display cumulative, fiscal year to date debit, credit, and balance amount that ALWAYS balances at non-consolidated level
Balance Sheet accounts (Asset | Liability | Equity) include all transactions until the date provided
Income Statement accounts (Revenue | Expense) include all transactions from start of accounting year until the date provided
Closing entries are only included for Balance Sheet type accounts
date | string <date> Date to run the trial balance by posted currency through |
LocationId | integer Location to run the trial balance by posted currency for. |
hideZeroBalance | boolean Default: false Hide accounts with zero balance |
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "currency": "string",
- "balance": "string"
}
]
}
Returns the Trial Balance for given location up until the date provided
The Trial Balance will display cumulative, fiscal year to date debit, credit, and balance amount that ALWAYS balances at both consolidated and non-consolidated level
For standard and comparative reports, balance sheet accounts (Asset | Liability | Equity) include all transactions until the date provided
For standard reports, income statement accounts (Revenue | Expense) include all transactions from start of accounting year until the date provided
For comparative reports, income statement accounts include all transactions in the comparative date range
Closing entries are only included for Balance Sheet type accounts
date | string <date> Date to run the trial balance through |
LocationId | integer Location to run the trial balance for. For consolidated report, this will be the parent location and the report will also incorporate all locations under this location |
journalStatus | string Default: "all" Enum: "all" "draft" "posted" Filter by journal status |
hideZeroBalance | boolean Default: false Hide accounts with zero balance When running the consolidated report, the zero balance filter is applied after consolidation |
type | string Default: "unconsolidated" Enum: "consolidated" "unconsolidated" Set to Consolidated report will:
Set to Unconsolidates report will:
|
startDate | string <date> Start Date for the comparative report. This date would determine the number of months, quarters or years shown in the report. If the report is run on "2023-01-01" and the "comparativeColumnType" is "month" and "startDate" is "2022-11-01", the report will show the balances for "11 2022", "12 2022" and "01 2023". The startDate cannot go past the available accounting years. |
comparativeColumnType | string Enum: "month" "quarter" "year" Type of comparative columns to show in the report.
|
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "currency": "string",
- "values": { }
}
], - "translation": { },
- "columns": [
- "string"
]
}
Returns all report layouts
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "name:asc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new ReportLayout
JSON body to create new ReportLayout
The sections
parameter must adhere to the following structure and requirements:
General Requirements:
id
header
and summary
are required string fieldsaccounts
object with reportGroups
, subtypes
, and LedgerAccountIds
children
array of subsectionsBalance Sheet Requirements:
Income Statement Requirements:
Note: All referenced account types, subtypes, and LedgerAccount IDs must be valid for the tenant.
Minimal Balance Sheet Example:
{
"name": "Simple Balance Sheet",
"type": "balanceSheet",
"sections": [
{
"id": "assets",
"header": "Assets",
"summary": "Total Assets",
"invertBalance": false,
"children": [
{
"id": "current-assets",
"header": "Current Assets",
"summary": "Total Current Assets",
"invertBalance": false,
"accounts": {
"reportGroups": ["Cash"],
"subtypes": [],
"LedgerAccountIds": []
}
}
]
},
{
"id": "liabilities-and-equity",
"header": "Liabilities and Equity",
"summary": "Total Liabilities and Equity",
"children": [
{
"id": "liabilities",
"header": "Liabilities",
"summary": "Total Liabilities",
"children": [
{
"id": "current-liabilities",
"header": "Current Liabilities",
"summary": "Total Current Liabilities",
"accounts": {
"reportGroups": [],
"subtypes": ["Accounts Payable"],
"LedgerAccountIds": []
}
}
]
},
{
"id": "equity",
"header": "Equity",
"summary": "Total Equity",
"children": [
{
"id": "retained-earnings",
"header": "Retained Earnings",
"summary": "Total Retained Earnings",
"accounts": {
"reportGroups": [Retained Earnings],
"subtypes": [],
"LedgerAccountIds": []
}
},
{
"id": "current-period-income",
"header": "Current Period Income",
"summary": "Total Current Period Income",
"accounts": {
"reportGroups": ["Current Period Income"],
"subtypes": [],
"LedgerAccountIds": []
}
},
{
"id": "currency-translation-difference",
"header": "Currency Translation Difference",
"summary": "Total Currency Translation Difference",
"accounts": {
"reportGroups": ["Currency Translation Difference"],
"subtypes": [],
"LedgerAccountIds": []
}
}
]
}
]
}
]
}
Minimal Income Statement Example:
{
"name": "Simple Income Statement",
"type": "incomeStatement",
"sections": [
{
"id": "revenue",
"header": "Revenue",
"summary": "Total Revenue",
"accounts": {
"reportGroups": ["Revenue"],
"subtypes": [],
"LedgerAccountIds": []
}
},
{
"id": "expenses",
"header": "Expenses",
"summary": "Total Expenses",
"children": [
{
"id": "operating-expenses",
"header": "Operating Expenses",
"summary": "Total Operating Expenses",
"accounts": {
"reportGroups": ["Operating Expense"],
"subtypes": [],
"LedgerAccountIds": []
}
}
]
}
]
}
name required | string |
type required | string Enum: "balanceSheet" "incomeStatement" |
required | Array of LeafSection (object) or ParentSection (object) (Section) |
{- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
]
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get one ReportLayout
id required | number or string ReportLayout._id |
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One ReportLayout
id required | number or string ReportLayout._id |
JSON body containing key and values to update
name | string |
type | string Enum: "balanceSheet" "incomeStatement" |
Array of LeafSection (object) or ParentSection (object) |
{- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
]
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "invertBalance": true,
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Add permissions to a role
"Custom Roles" feature must be enabled for this to work. Please contact support if you need this feature.
id required | number or string Role._id |
JSON body to add permissions to a role
permissions required | Array of strings non-empty Items Enum: "accept:SalesQuote" "adjust:Stock" "apply:CashReceipt" "approve:Bill" "approve:JournalEntry" "approve:Payment" "close:Ledgers" "create:BankAccount" "create:Bill" "create:CashReceipt" "create:CostCenter" "create:Customer" "create:Invoice" "create:Item" "create:Job" "create:JournalEntry" "create:LedgerAccount" "create:Location" "create:Payment create:Product" "create:PurchaseOrder" "create:SalesOrder" "create:Users" "create:Vendor" "create:Warehouse" "crypto" "delete:BankAccount" "delete:Bill" "delete:CostCenter" "delete:Customer" "delete:Invoice" "delete:Item" "delete:Job" "delete:JournalEntry" "delete:LedgerAccount" "delete:Location" "delete:Payment" "delete:Product" "delete:PurchaseOrder" "delete:SalesOrder" "delete:Vendor" "delete:Warehouse" "fulfill:Item" "issue:Invoice" "issue:PurchaseOrder" "issue:SalesQuote" "list:AuditLogs" "list:BankAccounts" "list:Bills" "list:CashReceipts" "list:CostCenters" "list:Customers" "list:Invoices" "list:Items" "list:Jobs" "list:LedgerAccounts" "list:Locations" "list:Payments" "list:Products" "list:PurchaseOrders" "list:SalesOrders" "list:Settings" "list:Users" "list:Vendors" "list:Warehouses" "pay:Bills" "receive:Items" "reconcile:BankAccount" "reject:SalesQuote" "update:Bill" "update:CashReceipt" "update:CostCenter" "update:Customer" "update:Financials" "update:Invoice" "update:Item" "update:Job" "update:JournalEntry" "update:LedgerAccount" "update:Location" "update:Payment" "update:Product" "update:PurchaseOrder" "update:SalesOrder" "update:Settings" "update:Users" "update:Vendor" "update:Warehouse" "view:APAging" "view:ARAging" "view:Financials" "view:GeneralLedger" "view:JournalReport" "view:Ledgers" "void:Invoice" "void:Payment" List of permissions to add to the role |
{- "permissions": [
- "accept:SalesQuote"
]
}
{- "id": "string",
- "name": "string",
- "description": "string",
- "permissions": [
- "accept:SalesQuote"
]
}
Remove permissions from a role
Cannot remove all permissions from a role.
"Custom Roles" feature must be enabled for this to work. Please contact support if you need this feature.
id required | number or string Role._id |
JSON body to remove permissions from a role
permissions required | Array of strings non-empty Items Enum: "accept:SalesQuote" "adjust:Stock" "apply:CashReceipt" "approve:Bill" "approve:JournalEntry" "approve:Payment" "close:Ledgers" "create:BankAccount" "create:Bill" "create:CashReceipt" "create:CostCenter" "create:Customer" "create:Invoice" "create:Item" "create:Job" "create:JournalEntry" "create:LedgerAccount" "create:Location" "create:Payment create:Product" "create:PurchaseOrder" "create:SalesOrder" "create:Users" "create:Vendor" "create:Warehouse" "crypto" "delete:BankAccount" "delete:Bill" "delete:CostCenter" "delete:Customer" "delete:Invoice" "delete:Item" "delete:Job" "delete:JournalEntry" "delete:LedgerAccount" "delete:Location" "delete:Payment" "delete:Product" "delete:PurchaseOrder" "delete:SalesOrder" "delete:Vendor" "delete:Warehouse" "fulfill:Item" "issue:Invoice" "issue:PurchaseOrder" "issue:SalesQuote" "list:AuditLogs" "list:BankAccounts" "list:Bills" "list:CashReceipts" "list:CostCenters" "list:Customers" "list:Invoices" "list:Items" "list:Jobs" "list:LedgerAccounts" "list:Locations" "list:Payments" "list:Products" "list:PurchaseOrders" "list:SalesOrders" "list:Settings" "list:Users" "list:Vendors" "list:Warehouses" "pay:Bills" "receive:Items" "reconcile:BankAccount" "reject:SalesQuote" "update:Bill" "update:CashReceipt" "update:CostCenter" "update:Customer" "update:Financials" "update:Invoice" "update:Item" "update:Job" "update:JournalEntry" "update:LedgerAccount" "update:Location" "update:Payment" "update:Product" "update:PurchaseOrder" "update:SalesOrder" "update:Settings" "update:Users" "update:Vendor" "update:Warehouse" "view:APAging" "view:ARAging" "view:Financials" "view:GeneralLedger" "view:JournalReport" "view:Ledgers" "void:Invoice" "void:Payment" List of permissions to remove from the role |
{- "permissions": [
- "accept:SalesQuote"
]
}
{- "id": "string",
- "name": "string",
- "description": "string",
- "permissions": [
- "accept:SalesQuote"
]
}
Create a new Role
"Custom Roles" feature must be enabled for this to work. Please contact support if you need this feature.
JSON body to create new Role
name required | string |
description | string Role name must be unique |
{- "name": "string",
- "description": "string"
}
{- "_id": "string",
- "name": "string",
- "description": "string"
}
Accepts a Sales Order that has been issued
id required | number or string SalesOrder._id |
JSON body containing payload for accept
orderDate required | string <date> |
deliveryDate required | string <date> |
TemplateId required | integer Ref: Template._id |
{- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "TemplateId": 0
}
{- "_id": 0,
- "externalId": "string",
- "number": "string",
- "status": "order",
- "notes": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "completeDate": "2019-08-24",
- "currency": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "externalRef": "string",
- "amount": "string",
- "customFields": [
- "string"
], - "TemplateId": 0,
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get stock adjustments linked to a sales order
The parameters of this endpoint are the same as for Stock Adjustment Search
id required | number or string SalesOrder._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "ItemId": 0,
- "description": "string",
- "WarehouseId": 0,
- "locked": true,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "AdjustmentLedgerAccountId": 0,
- "JournalId": 0,
- "type": "fulfill",
- "TransferId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "PurchaseOrderId": 0,
- "SalesOrderId": 0,
- "ShipmentReceiptLineId": 0,
- "quantity": "string",
- "qtyPicked": "string",
- "qtyAvailable": "string",
- "currency": "string",
- "price": "string",
- "currencyRate": "string",
- "costBasis": "string",
- "AdjustmentLedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "Warehouse": {
- "name": "string"
}, - "PurchaseOrder": {
- "number": "string"
}, - "SalesOrder": {
- "number": "string"
}, - "Journal": {
- "number": 0
}, - "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}
]
}
Returns all sales orders
object (SalesOrderFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "number:ASC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "externalId:ASC" "externalId:DESC" "status:ASC" "status:DESC" "reference:ASC" "reference:DESC" "externalRef:ASC" "externalRef:DESC" "quoteDate:ASC" "quoteDate:DESC" "quoteExpiration:ASC" "quoteExpiration:DESC" "orderDate:ASC" "orderDate:DESC" "deliveryDate:ASC" "deliveryDate:DESC" "completeDate:ASC" "completeDate:DESC" "amount:ASC" "amount:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
status | string Enum: "quote" "pending" "rejected" "order" "partiallyFulfilled" "fulfilled" "voided" "completed" A CSV string containing the statuses you'd like to filter for joined with commas (No spaces). ex: 'quote,pending,order'. This query param is optional.
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "number": "string",
- "status": "quote",
- "notes": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "completeDate": "2019-08-24",
- "currency": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "externalRef": "string",
- "amount": "string",
- "customFields": { },
- "TemplateId": 0,
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Sales Order
JSON body to create new Sales Order
One of [Location.id, LocationId]
is Required
LocationId required | integer Ref: Location._id |
currency required | string <ISO4217 3 Char Code> Ref: Currency.code - cannot use custom |
externalId | string |
status | string Default: "order" Enum: "quote" "order" |
notes | string |
quoteDate | string <date> |
quoteExpiration | string <date> |
orderDate | string <date> |
deliveryDate | string <date> |
object | |
ICLocationId | integer Ref: Location._id |
object | |
CustomerId | integer Ref: Customer._id |
object | |
ShippingAddressId | integer Ref: Address._id |
BillingAddressId | integer Ref: Address._id |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
TemplateId | integer "Ref: Template._id" Defaults to Template with name 'Default' and format = 'pdf' |
reference | string |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
externalRef | string |
Array of objects If an Item is passed, then this line will be considered an "item" type line, Otherwise it is a "description" type line, which requires
Tax Logic
|
{- "externalId": "string",
- "status": "quote",
- "notes": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "CustomerId": 0,
- "Customer": {
- "name": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "TemplateId": 0,
- "reference": "string",
- "customFields": { },
- "externalRef": "string",
- "SOLineItems": [
- {
- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
]
}
{- "_id": 0,
- "externalId": "string",
- "status": "string",
- "number": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "externalRef": "string",
- "currency": "string",
- "amount": "string",
- "customFields": { },
- "LocationId": 0,
- "ICLocationId": 0,
- "CustomerId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "TemplateId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns all sales order lines matching the filter
object (SalesOrderLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "SalesOrder.number:ASC" Enum: "_id:ASC" "_id:DESC" "SalesOrder.number:ASC" "SalesOrder.number:DESC" "SalesOrder.quoteDate:ASC" "SalesOrder.quoteDate:DESC" "SalesOrder.orderDate:ASC" "SalesOrder.orderDate:DESC" "SalesOrder.completeDate:ASC" "SalesOrder.completeDate:DESC" "SalesOrder.createdAt:ASC" "SalesOrder.createdAt:DESC" "SalesOrder.updatedAt:ASC" "SalesOrder.updatedAt:DESC" "Customer.name:ASC" "Customer.name:DESC" "Location.id:ASC" "Location.id:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" "PurchaseOrder.number:ASC" "PurchaseOrder.number:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "quantityFulFilled:ASC" "quantityFulFilled:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Enum: "fulfill" "unfulfill" Use this to control whether to return fulfillable/unfulfillable lines Set this to 'fulfill' to return lines that can be fulfilled, criteria for fulfillable lines as under:
Set this to 'unfulfill' to return lines that can be unfulfulleed, criteria as under:
Not setting this will return all lines |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityFulFilled": "string",
- "taxAmount": "string",
- "SalesOrder": {
- "number": "string",
- "status": "quote",
- "reference": "string",
- "externalRef": "string",
- "quoteDate": "2019-08-24",
- "orderDate": "2019-08-24",
- "completeDate": "2019-08-24",
- "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}, - "JournalId": 0,
- "Journal": {
- "number": 0
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "POLineItemId": 0,
- "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of sales order lines that match the filter
object (SalesOrderLinesFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Enum: "fulfill" "unfulfill" Use this to control whether to count fulfillable/unfulfillable lines Set this to 'fulfill' to count lines that can be fulfilled, criteria for fulfillable lines as under:
Set this to 'unfulfill' to count lines that can be unfulfulleed, criteria as under:
Not setting this will count all lines |
{- "count": "string",
- "estimate": true
}
Complete One Sales Order
A journal entry will be posted for each sales order line that has fulfillments.
id required | number or string SalesOrder._id |
JSON body containing key and values to update
Status must be "partiallyFulfilled" or "fulfilled" to complete
Cannot complete sales order if any lines are linked to a purchase order line that is not completely fulfilled.
completeDate | string <date> Cannot be in the future - Defaults to current date Must be after all of the stock adjustments linked to this sales order |
{- "completeDate": "2019-08-24"
}
Returns a count of sales orders that match the filter
object (SalesOrderFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Creates a new Sales Order Line Item
id required | number or string SalesOrder._id |
JSON body to create new Sales Order Line Item
If an Item is passed, then this line will be considered an "item" type line,
Otherwise it is a "description" type line, which requires
Tax Logic
amount required | string <number> Must be > 0 |
quantity required | string <number> Must be > 0 |
idx | number |
externalId | string |
description | string Required if ItemId is not set |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object |
{- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
{- "_id": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityFulFilled": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "SalesOrderId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "JournalId": 0,
- "idx": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "TaxCodeId": 0,
- "taxAmount": "string",
- "POLineItemId": 0,
- "externalId": "string"
}
Get one Sales Order
id required | number or string SalesOrder._id |
{- "_id": 0,
- "externalId": "string",
- "number": "string",
- "status": "quote",
- "notes": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "completeDate": "2019-08-24",
- "currency": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "externalRef": "string",
- "amount": "string",
- "customFields": [
- "string"
], - "TemplateId": 0,
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string",
- "email": "string",
- "terms": "string"
}, - "ShippingAddressId": 0,
- "ShippingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "BillingAddressId": 0,
- "BillingAddress": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Template": {
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "SOLineItems": [
- {
- "_id": 0,
- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityFulFilled": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "POLineItemId": 0,
- "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Update One Sales Order
id required | number or string SalesOrder._id |
JSON body containing key and values to update
Only sales orders in quote or order status can be updated.
externalId | string |
notes | string |
quoteDate | string <date> |
quoteExpiration | string <date> |
orderDate | string <date> |
deliveryDate | string <date> |
currency | string <ISO4217 3 Char Code> Ref: Currency.code - cannot use custom |
LocationId | integer Ref: Location._id |
object | |
ICLocationId | integer Ref: Location._id |
object | |
CustomerId | integer Ref: Customer._id |
object | |
ShippingAddressId | integer Ref: Address._id |
BillingAddressId | integer Ref: Address._id |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
TemplateId | integer "Ref: Template._id" Defaults to Template with name 'Default' and format = 'pdf' |
reference | string |
customFields | object Default: {} Key -> Value hash of custom fields, must be defined via the UI to show up in the UI |
externalRef | string |
{- "externalId": "string",
- "notes": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "currency": "string",
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "CustomerId": 0,
- "Customer": {
- "name": "string"
}, - "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "TemplateId": 0,
- "reference": "string",
- "customFields": { },
- "externalRef": "string"
}
{- "_id": 0,
- "externalId": "string",
- "status": "string",
- "number": "string",
- "quoteDate": "2019-08-24",
- "quoteExpiration": "2019-08-24",
- "orderDate": "2019-08-24",
- "deliveryDate": "2019-08-24",
- "notes": "string",
- "reference": "string",
- "externalRef": "string",
- "currency": "string",
- "customFields": { },
- "LocationId": 0,
- "ICLocationId": 0,
- "CustomerId": 0,
- "ShippingAddressId": 0,
- "BillingAddressId": 0,
- "TemplateId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Deletes a Sales Order Line
Can only delete a line from an order status of "quote", "order", or "partiallyFulfilled"
Cannot delete a line with linked stock adjustments
Cannot delete a line with a linked POLineItemId
id required | number or string SOLineItem._id |
Update a Sales Order Line
id required | number or string SalesOrderLine._id |
idx | number |
externalId | string |
description | string Required if ItemId is not set |
amount | string <number> |
quantity | string <number> |
taxAmount | string <number> |
TaxCodeId | integer Ref: TaxCode._id |
object | |
ItemId | integer Ref: Item._id |
object | |
CostCenterId | integer Ref: Cost Center._id |
object | |
JobId | integer Ref: Job._id |
object | |
ProductId | integer Ref: Product._id |
object | |
Custom1Id | integer Ref: Custom1._id |
object | |
Custom2Id | integer Ref: Custom2._id |
object | |
Custom3Id | integer Ref: Custom3._id |
object |
{- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "taxAmount": "string",
- "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "ItemId": 0,
- "Item": {
- "number": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string"
}, - "JobId": 0,
- "Job": {
- "id": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string"
}
}
{- "_id": 0,
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityFulFilled": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "SalesOrderId": 0,
- "ItemId": 0,
- "CostCenterId": 0,
- "JobId": 0,
- "ProductId": 0,
- "JournalId": 0,
- "idx": 0,
- "Custom1Id": 0,
- "Custom2Id": 0,
- "Custom3Id": 0,
- "TaxCodeId": 0,
- "taxAmount": "string",
- "POLineItemId": 0,
- "externalId": "string"
}
Fulfill a line item on a Sales Order
id required | number or string SOLineItem._id |
JSON body to fulfill a line item on a Sales Order
Sales Order must be in status of 'order' or 'partiallyFulfilled' Line item must not be linked to a POLineItem
quantity required | string <number> |
WarehouseId required | number Ref: Warehouses._id |
date | string <date-time> Defaults to current date |
dontRunCostBasis | boolean Default: false Don't run cost basis on fulfillment |
{- "quantity": "string",
- "date": "2019-08-24T14:15:22Z",
- "WarehouseId": 0,
- "dontRunCostBasis": false
}
Returns all lines for a single sales order
id required | number or string SalesOrder._id |
object (SalesOrderLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "SalesOrder.number:ASC" Enum: "_id:ASC" "_id:DESC" "SalesOrder.number:ASC" "SalesOrder.number:DESC" "SalesOrder.quoteDate:ASC" "SalesOrder.quoteDate:DESC" "SalesOrder.orderDate:ASC" "SalesOrder.orderDate:DESC" "SalesOrder.completeDate:ASC" "SalesOrder.completeDate:DESC" "SalesOrder.createdAt:ASC" "SalesOrder.createdAt:DESC" "SalesOrder.updatedAt:ASC" "SalesOrder.updatedAt:DESC" "Customer.name:ASC" "Customer.name:DESC" "Location.id:ASC" "Location.id:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" "PurchaseOrder.number:ASC" "PurchaseOrder.number:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "quantityFulFilled:ASC" "quantityFulFilled:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
type | string Enum: "fulfill" "unfulfill" Use this to control whether to return fulfillable/unfulfillable lines Set this to 'fulfill' to return lines that can be fulfilled, criteria for fulfillable lines as under:
Set this to 'unfulfill' to return lines that can be unfulfulleed, criteria as under:
Not setting this will return all lines |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "idx": 0,
- "externalId": "string",
- "description": "string",
- "amount": "string",
- "quantity": "string",
- "quantityFulFilled": "string",
- "taxAmount": "string",
- "SalesOrder": {
- "number": "string",
- "status": "quote",
- "reference": "string",
- "externalRef": "string",
- "quoteDate": "2019-08-24",
- "orderDate": "2019-08-24",
- "completeDate": "2019-08-24",
- "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}, - "JournalId": 0,
- "Journal": {
- "number": 0
}, - "CustomerId": 0,
- "Customer": {
- "id": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "TaxCodeId": 0,
- "TaxCode": {
- "code": "string"
}, - "POLineItemId": 0,
- "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "ItemId": 0,
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "salePrice": "string",
- "purchasePrice": "string"
}, - "CostCenterId": 0,
- "CostCenter": {
- "id": "string",
- "name": "string"
}, - "JobId": 0,
- "Job": {
- "number": "string",
- "name": "string"
}, - "ProductId": 0,
- "Product": {
- "id": "string",
- "name": "string"
}, - "Custom1Id": 0,
- "Custom1": {
- "id": "string",
- "name": "string"
}, - "Custom2Id": 0,
- "Custom2": {
- "id": "string",
- "name": "string"
}, - "Custom3Id": 0,
- "Custom3": {
- "id": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of lines for a single sales order that match the filter
id required | number or string SalesOrder._id |
object (SalesOrderLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Enum: "fulfill" "unfulfill" Use this to control whether to count fulfillable/unfulfillable lines Set this to 'fulfill' to count lines that can be fulfilled, criteria for fulfillable lines as under:
Set this to 'unfulfill' to count lines that can be unfulfulleed, criteria as under:
Not setting this will count all lines |
{- "count": "string",
- "estimate": true
}
Unfulfill a line item on a Sales Order
If inventory cost-basis is running, this will error out
Sales Order must be in 'partiallyFulfilled' or 'fulfilled' status
If the Return Account is specified for direct return, a 'return' stock adjustment with that account will also be added
Line quantity fulfilled becomes the quantity after unfulfillment of a direct purchase line.
id required | number or string SalesOrderLine._id |
JSON body to unfulfill a line item on a Sales Order
Date for unfulfillment must be ahead of the latest fulfillment transaction date
One of [Warehouse.name, WarehouseId]
is Required
One of [ReturnAccount.number, ReturnAccountId]
is also needed for direct purchase lines to create a return stock adjustment
quantity required | string <number> |
WarehouseId required | number Ref: Warehouses._id |
date | string <date-time> Defaults to current date |
object | |
runCostBasis | boolean Default: false Run cost basis on fulfillment |
ReturnAccountId | number Ref: LedgerAccount._id |
object |
{- "quantity": "string",
- "date": "2019-08-24T14:15:22Z",
- "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "runCostBasis": false,
- "ReturnAccountId": 0,
- "ReturnAccount": {
- "number": "string"
}
}
{- "ccInvoice": true,
- "emailOnInvoiceIssued": true,
- "emailOnSalesQuoteIssued": true,
- "emailOnPurchaseOrderIssued": true,
- "companyEIN": "string",
- "dateFormat": "MM/DD/YYYY",
- "useLocationOnDocuments": true,
- "displayItem": "description",
- "postCRJournal": true,
- "confirmDelete": true,
- "postVCJournal": true,
- "showProducts": true,
- "currencyAsCodeUI": true,
- "currencyAsCodePDF": true,
- "intercompanyEliminations": true,
- "hideLocationFromFinancials": true,
- "intercompanyEliminations2": true,
- "defaultLineItemType": "description",
- "showCostCenters": true,
- "showJobs": true,
- "autoApproveARPayments": true,
- "autoApproveAPPayments": true,
- "emailOnARCreditIssued": true,
- "hideTaxInvoice": true,
- "hideTaxBill": true,
- "hideTaxPO": true,
- "hideTaxSO": true,
- "pdfDateFormat": "MM/DD/YYYY",
- "wipSalesOrders": true,
- "defaultUpdateItemPriceReceive": true,
- "splitPartialReceives": true,
- "draftBillPayments": true,
- "pdfFormats": { },
- "timezone": "string",
- "custom1_enabled": true,
- "custom1_name": "string",
- "custom1_invoice": true,
- "custom1_bill": true,
- "custom1_po": true,
- "custom1_so": true,
- "custom2_enabled": true,
- "custom2_name": "string",
- "custom2_invoice": true,
- "custom2_bill": true,
- "custom2_po": true,
- "custom2_so": true,
- "custom3_enabled": true,
- "custom3_name": "string",
- "custom3_invoice": true,
- "custom3_bill": true,
- "custom3_po": true,
- "custom3_so": true,
- "invoiceAmountPrecision": "string",
- "billAmountPrecision": "string",
- "poAmountPrecision": "string",
- "soAmountPrecision": "string",
- "cryptoPricePrecision": "string",
- "InvoiceEmailTemplateId": 0,
- "POEmailTemplateId": 0,
- "SOEmailTemplateId": 0,
- "ARCreditEmailTemplateId": 0,
- "defaultWIPId": 0,
- "defaultSalesTaxId": 0,
- "defaultOtherComprehensiveIncomeId": 0,
- "defaultAccumulatedOtherComprehensiveIncomeId": 0,
- "defaultRetainedEarningsId": 0,
- "defaultBillPaymentId": 0,
- "defaultAPICPayableId": 0,
- "defaultAPICReceivableId": 0,
- "defaultARICPayableId": 0,
- "defaultARICReceivableId": 0,
- "defaultUnappliedCreditId": 0,
- "defaultUnappliedCashId": 0,
- "defaultAccountsReceivableId": 0,
- "defaultAccountsPayableId": 0,
- "defaultCashId": 0,
- "defaultInventoryAccrualId": 0,
- "defaultItemInventoryAccrualId": 0,
- "defaultItemInvoiceAccountId": 0,
- "defaultItemInventoryAssetId": 0,
- "defaultItemCOGSId": 0,
- "defaultRevId": 0,
- "defaultABDId": 0,
- "inventoryCostingMethod": "fifo",
- "cryptoHomeCurrency": "string",
- "cryptoCostingMethod": "fifo",
- "immaterialCostBasisErrorLedgerAccountId": 0,
- "immaterialCostBasisErrorReference": "string",
- "immaterialCostBasisErrorThreshold": "string",
- "currencySupport": true,
- "billingLimits": { },
- "cryptoImpairment": true,
- "brightpearl": true,
- "dashboards": true,
- "SandBox": true,
- "reconciliationsv2": true,
- "plaidType": "development"
}
Update Settings
JSON body containing key and values to update
Default Ledger accounts must be active
ccInvoice | boolean |
costingMethod | string |
emailOnInvoiceIssued | boolean |
emailOnSalesQuoteIssued | boolean |
emailOnPurchaseOrderIssued | boolean |
companyEIN | string |
dateFormat | string Enum: "MM/DD/YYYY" "DD/MM/YYYY" "MM-DD-YYYY" "DD-MM-YYYY" "YYYY-MM-DD" |
useLocationOnDocuments | boolean |
displayItem | string Enum: "description" "sku" "name" |
postCRJournal | boolean |
confirmDelete | boolean |
postVCJournal | boolean |
showProducts | boolean |
currencyAsCodeUI | boolean |
currencyAsCodePDF | boolean |
intercompanyEliminations | boolean |
hideLocationFromFinancials | boolean |
intercompanyEliminations2 | boolean |
defaultLineItemType | string Enum: "description" "item" |
showCostCenters | boolean |
showJobs | boolean |
autoApproveARPayments | boolean |
autoApproveAPPayments | boolean |
emailOnARCreditIssued | boolean |
hideTaxInvoice | boolean |
hideTaxBill | boolean |
hideTaxPO | boolean |
hideTaxSO | boolean |
pdfDateFormat | string Default: "YYYY-MM-DD" Enum: "MM/DD/YYYY" "DD/MM/YYYY" "MM-DD-YYYY" "DD-MM-YYYY" "YYYY-MM-DD" |
wipSalesOrders | boolean |
defaultUpdateItemPriceReceive | boolean |
splitPartialReceives | boolean |
draftBillPayments | boolean |
timezone | string The timezone of the company. Example: "America/New_York" Used for timestamps in the UI, and for converstions of timestamps into Accounting Dates. |
custom1_enabled | boolean |
custom1_name | string |
custom1_invoice | boolean |
custom1_bill | boolean |
custom1_po | boolean |
custom1_so | boolean |
custom2_enabled | boolean |
custom2_name | string |
custom2_invoice | boolean |
custom2_bill | boolean |
custom2_po | boolean |
custom2_so | boolean |
custom3_enabled | boolean |
custom3_name | string |
custom3_invoice | boolean |
custom3_bill | boolean |
custom3_po | boolean |
custom3_so | boolean |
invoiceAmountPrecision | string <number> min 0, max 10 |
billAmountPrecision | string <number> min 0, max 10 |
poAmountPrecision | string <number> min 0, max 10 |
soAmountPrecision | string <number> min 0, max 10 |
cryptoPricePrecision | string <number> min 0, max 10 |
InvoiceEmailTemplateId | number Ref: Template._id |
POEmailTemplateId | number Ref: Template._id |
SOEmailTemplateId | number Ref: Template._id |
ARCreditEmailTemplateId | number Ref: Template._id |
defaultWIPId | number Ref: LedgerAccount._id |
defaultSalesTaxId | number Ref: LedgerAccount._id |
defaultOtherComprehensiveIncomeId | number Ref: LedgerAccount._id Only accounts of type 'Equity' are allowed here |
defaultAccumulatedOtherComprehensiveIncomeId | number Ref: LedgerAccount._id Only accounts of type 'Equity' are allowed here |
defaultRetainedEarningsId | number Ref: LedgerAccount._id Only accounts of type 'Equity' are allowed here |
defaultBillPaymentId | number Ref: LedgerAccount._id |
defaultAPICPayableId | number Ref: LedgerAccount._id |
defaultAPICReceivableId | number Ref: LedgerAccount._id |
defaultARICPayableId | number Ref: LedgerAccount._id |
defaultARICReceivableId | number Ref: LedgerAccount._id |
defaultUnappliedCreditId | number Ref: LedgerAccount._id |
defaultUnappliedCashId | number Ref: LedgerAccount._id |
defaultAccountsReceivableId | number Ref: LedgerAccount._id |
defaultAccountsPayableId | number Ref: LedgerAccount._id |
defaultCashId | number Ref: LedgerAccount._id |
defaultInventoryAccrualId | number Ref: LedgerAccount._id |
defaultItemInventoryAccrualId | number Ref: LedgerAccount._id |
defaultItemInvoiceAccountId | number Ref: LedgerAccount._id |
defaultItemInventoryAssetId | number Ref: LedgerAccount._id |
defaultItemCOGSId | number Ref: LedgerAccount._id |
defaultRevId | number Ref: LedgerAccount._id |
defaultABDId | number Ref: LedgerAccount._id |
inventoryCostingMethod | string Default: "fifo" Enum: "fifo" "avg" Cannot be updated if there are any existing stock adjustments |
cryptoHomeCurrency | string "Ref: Currency.code" Cannot be updated if there are any existing crypto transactions |
immaterialCostBasisErrorLedgerAccountId | number Ref: LedgerAccount._id |
immaterialCostBasisErrorReference | string |
immaterialCostBasisErrorThreshold | string <number> |
{- "ccInvoice": true,
- "costingMethod": "string",
- "emailOnInvoiceIssued": true,
- "emailOnSalesQuoteIssued": true,
- "emailOnPurchaseOrderIssued": true,
- "companyEIN": "string",
- "dateFormat": "MM/DD/YYYY",
- "useLocationOnDocuments": true,
- "displayItem": "description",
- "postCRJournal": true,
- "confirmDelete": true,
- "postVCJournal": true,
- "showProducts": true,
- "currencyAsCodeUI": true,
- "currencyAsCodePDF": true,
- "intercompanyEliminations": true,
- "hideLocationFromFinancials": true,
- "intercompanyEliminations2": true,
- "defaultLineItemType": "description",
- "showCostCenters": true,
- "showJobs": true,
- "autoApproveARPayments": true,
- "autoApproveAPPayments": true,
- "emailOnARCreditIssued": true,
- "hideTaxInvoice": true,
- "hideTaxBill": true,
- "hideTaxPO": true,
- "hideTaxSO": true,
- "pdfDateFormat": "MM/DD/YYYY",
- "wipSalesOrders": true,
- "defaultUpdateItemPriceReceive": true,
- "splitPartialReceives": true,
- "draftBillPayments": true,
- "timezone": "string",
- "custom1_enabled": true,
- "custom1_name": "string",
- "custom1_invoice": true,
- "custom1_bill": true,
- "custom1_po": true,
- "custom1_so": true,
- "custom2_enabled": true,
- "custom2_name": "string",
- "custom2_invoice": true,
- "custom2_bill": true,
- "custom2_po": true,
- "custom2_so": true,
- "custom3_enabled": true,
- "custom3_name": "string",
- "custom3_invoice": true,
- "custom3_bill": true,
- "custom3_po": true,
- "custom3_so": true,
- "invoiceAmountPrecision": "string",
- "billAmountPrecision": "string",
- "poAmountPrecision": "string",
- "soAmountPrecision": "string",
- "cryptoPricePrecision": "string",
- "InvoiceEmailTemplateId": 0,
- "POEmailTemplateId": 0,
- "SOEmailTemplateId": 0,
- "ARCreditEmailTemplateId": 0,
- "defaultWIPId": 0,
- "defaultSalesTaxId": 0,
- "defaultOtherComprehensiveIncomeId": 0,
- "defaultAccumulatedOtherComprehensiveIncomeId": 0,
- "defaultRetainedEarningsId": 0,
- "defaultBillPaymentId": 0,
- "defaultAPICPayableId": 0,
- "defaultAPICReceivableId": 0,
- "defaultARICPayableId": 0,
- "defaultARICReceivableId": 0,
- "defaultUnappliedCreditId": 0,
- "defaultUnappliedCashId": 0,
- "defaultAccountsReceivableId": 0,
- "defaultAccountsPayableId": 0,
- "defaultCashId": 0,
- "defaultInventoryAccrualId": 0,
- "defaultItemInventoryAccrualId": 0,
- "defaultItemInvoiceAccountId": 0,
- "defaultItemInventoryAssetId": 0,
- "defaultItemCOGSId": 0,
- "defaultRevId": 0,
- "defaultABDId": 0,
- "inventoryCostingMethod": "fifo",
- "cryptoHomeCurrency": "string",
- "immaterialCostBasisErrorLedgerAccountId": 0,
- "immaterialCostBasisErrorReference": "string",
- "immaterialCostBasisErrorThreshold": "string"
}
Update Sequence numbers
JSON body containing key and values to update
type required | string Enum: "invoice" "bill" "po" "so" |
number required | number [ 2 .. 999999998 ] Must be greater than current highest document number |
{- "type": "invoice",
- "number": 2
}
Returns a list of Shipment Receipts
object (ShipmentReceiptFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "dateReceived:ASC" "dateReceived:DESC" "postedDate:ASC" "postedDate:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "dateReceived": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "reference": "string",
- "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Shipment Receipt
JSON body to create new Shipment Receipts
dateReceived required | string <date-time> |
required | Array of objects |
postedDate | string <date> Defaults to dateReceived if not passed |
reference | string |
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
{- "dateReceived": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "reference": "string",
- "dontRunCostBasis": false,
- "ShipmentReceiptLines": [
- {
- "POLineItemId": 0,
- "WarehouseId": 0,
- "quantityReceived": "1.25",
- "amount": "1.25",
- "updateDefaultPrice": false
}
]
}
{- "_id": 0,
- "dateReceived": "2019-08-24T14:15:22Z",
- "VendorId": 0,
- "reference": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
Returns a list of Shipment Receipt Lines
object (ShipmentReceiptLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "quantityReceived:ASC" "quantityReceived:DESC" "amount:ASC" "amount:DESC" "ShipmentReceipt.dateReceived:ASC" "ShipmentReceipt.dateReceived:DESC" "ShipmentReceipt.postedDate:ASC" "ShipmentReceipt.postedDate:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "quantityReceived": "string",
- "amount": "string",
- "status": "received",
- "ShipmentReceiptId": 0,
- "WarehouseId": 0,
- "ItemId": 0,
- "POLineItemId": 0,
- "PurchaseOrderId": 0,
- "SOLineItemId": 0,
- "SalesOrderId": 0,
- "VendorId": 0,
- "InventoryReceivingAccountId": 0,
- "ReceiveJournalId": 0,
- "ReversalJournalId": 0,
- "ReceiveJournal": {
- "number": 0
}, - "ReversalJournal": {
- "number": 0
}, - "ShipmentReceipt": {
- "dateReceived": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "reference": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "string"
}, - "Warehouse": {
- "name": "string"
}, - "Item": {
- "name": "string",
- "number": "string",
- "description": "string",
- "sku": "string"
}, - "POLineItem": {
- "description": "string"
}, - "PurchaseOrder": {
- "number": "string",
- "currency": "string"
}, - "SalesOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of Shipment Receipt Lines
object (ShipmentReceiptLineFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Returns a count of Shipment Receipts
object (ShipmentReceiptFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Get one Shipment Receipt
id required | number or string ShipmentReceipt._id |
{- "_id": 0,
- "dateReceived": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "reference": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "VendorId": 0,
- "Vendor": {
- "id": 0,
- "name": "string",
- "email": "string"
}, - "ShipmentReceiptLines": [
- {
- "_id": 0,
- "quantityReceived": "string",
- "amount": "string",
- "status": "received",
- "ShipmentReceiptId": 0,
- "WarehouseId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "ItemId": 0,
- "ReceiveJournalId": 0,
- "ReversalJournalId": 0,
- "ReceiveJournal": {
- "number": 0
}, - "ReversalJournal": {
- "number": 0
}, - "Warehouse": {
- "name": "string"
}, - "Item": {
- "name": "string",
- "description": "string",
- "sku": "string",
- "number": 0
}, - "POLineItem": {
- "PurchaseOrderId": 0,
- "description": "string",
- "PurchaseOrder": {
- "number": 0,
- "currency": "string",
- "InventoryReceivingAccountId": 0
}
}, - "SOLineItem": {
- "SalesOrderId": 0,
- "SalesOrder": {
- "number": 0
}
}
}
]
}
Voids a Shipment Receipt line
Throws an error if inventory cost-basis is running
If multiple fulfillments at different prices were performed, their weighted average is used as price of adjustment
Stock adjustments are only created if there are linked adjustments to the receipt line
For cases when the shipment line has a linked Sales Order line, the following applies:
If an item of type 'Consume' is used in the receipt line:
Creates a 'VoidReceive' adjustment entry to void the receive adjustment Cost-basis is set to the weighted average (in case of multiple fulfillments) or shipment receipt line price
Purchase order line quantity received is updated
Purchase order status is updated if needed
id required | number or string ShipmentReceiptLine._id |
runCostBasis | boolean Default: false Set to true to run inventory cost-basis upon success |
{- "runCostBasis": false
}
Returns a list of Statements
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Enum: "endDate:DESC" "endDate:ASC" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "reference": "string",
- "description": "string",
- "LedgerAccountId": 0,
- "LocationId": 0,
- "status": "string",
- "currency": "string",
- "endDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "balance": "string",
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "name": "string",
- "id": "string"
}
}
]
}
Creates a new Statement
JSON body to create new Statement
Only one of [LedgerAccount.number, LedgerAccountId]
can be set
Only one of [Location.id, LocationId]
can be set
LedgerAccountId required | integer Ref: LedgerAccount._id |
LocationId required | integer Ref: Location._id |
currency required | string Ref: Currency.code |
endDate required | string <date> |
balance required | string <number> |
reference | string |
description | string |
object | |
object |
{- "reference": "string",
- "description": "string",
- "LedgerAccountId": 0,
- "LocationId": 0,
- "currency": "string",
- "balance": "string",
- "endDate": "2019-08-24",
- "LedgerAccount": {
- "number": "string"
}, - "Location": {
- "id": "string"
}
}
{- "_id": 0,
- "reference": "string",
- "description": "string",
- "LedgerAccountId": 0,
- "LocationId": 0,
- "status": "string",
- "balance": "string",
- "currency": "string",
- "endDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get one Statement
id required | number or string Statement._id |
{- "_id": 0,
- "reference": "string",
- "description": "string",
- "LedgerAccountId": 0,
- "LocationId": 0,
- "status": "string",
- "beginningBalance": "string",
- "balance": "string",
- "currency": "string",
- "endDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "lastStatementDate": "2019-08-24",
- "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "name": "string",
- "id": "string"
}
}
Reconcile Transactions
Transactions can only be reconciled if their corresponding statement (by LedgerAccount, currency, Location combo) is not closed
JSON body of TransactionIds to reconcile
TransactionIds | Array of numbers |
{- "TransactionIds": [
- 0
]
}
UnReconcile Transactions
Transactions can only be unreconciled if their corresponding statement (by LedgerAccount, currency, Location combo) is not closed
JSON body of TransactionIds to unreconcile
TransactionIds | Array of numbers |
{- "TransactionIds": [
- 0
]
}
Get the status of a job
type required | string Enum: "costbasis" "crypto-journals" "inventory" API type |
{- "status": "done",
- "type": "costbasis",
- "tenantId": "string",
- "data": {
- "_id": "string",
- "progress": "string",
- "timestamp": "string",
- "err": {
- "type": "string",
- "msg": "string"
}
}
}
Returns a list of Stock Adjustments
object (StockAdjustmentFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "transactionDate:DESC" Enum: "_id:ASC" "_id:DESC" "transactionDate:ASC" "transactionDate:DESC" "postedDate:ASC" "postedDate:DESC" "quantity:ASC" "quantity:DESC" "qtyAvailable:ASC" "qtyAvailable:DESC" "qtyPicked:ASC" "qtyPicked:DESC" "price:ASC" "price:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
LocationId | number Will include Stock Adjustments that have a Warehouse with this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "ItemId": 0,
- "description": "string",
- "WarehouseId": 0,
- "locked": true,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "AdjustmentLedgerAccountId": 0,
- "JournalId": 0,
- "type": "fulfill",
- "TransferId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "PurchaseOrderId": 0,
- "SalesOrderId": 0,
- "ShipmentReceiptLineId": 0,
- "quantity": "string",
- "qtyPicked": "string",
- "qtyAvailable": "string",
- "currency": "string",
- "price": "string",
- "currencyRate": "string",
- "costBasis": "string",
- "AdjustmentLedgerAccount": {
- "name": "string",
- "number": "string"
}, - "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "Warehouse": {
- "name": "string"
}, - "PurchaseOrder": {
- "number": "string"
}, - "SalesOrder": {
- "number": "string"
}, - "Journal": {
- "number": 0
}, - "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}
]
}
Creates a new Stock Adjustment
JSON body to create new Stock Adjustment
type required | string Enum: "adjustment" "return" Standard type is adjustment. Return is used for received shipment receipts. |
ItemId required | integer Ref: Item._id |
WarehouseId required | integer Ref: Warehouse._id |
AdjustmentLedgerAccountId required | integer Ref: LedgerAccount._id |
transactionDate required | string <date-time> Cannot be in the future |
quantity required | string <number> Cannot = 0 Must be < 0 for type = 'return' |
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
postedDate | string <date> Defaults to transactionDate |
description | string |
price | string <number> Required if quantity > 0 Must be > 0 Not allowed for type = 'return' |
currency | string <ISO4217 3 Char Code> 'Ref: Currency.code' Required if price is specified Not allowed for type = 'return' |
POLineItemId | integer Ref: POLineItem._id Required if type = 'return' Not allowed for type = 'adjustment' |
ShipmentReceiptLineId | integer Ref: ShipmentReceiptLine._id Required if type = 'return' Not allowed for type = 'adjustment' |
{- "type": "adjustment",
- "dontRunCostBasis": false,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "quantity": "string",
- "description": "string",
- "price": "string",
- "currency": "string",
- "ItemId": 0,
- "WarehouseId": 0,
- "AdjustmentLedgerAccountId": 0,
- "POLineItemId": 0,
- "ShipmentReceiptLineId": 0
}
{- "_id": 0,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "quantity": "string",
- "qtyPicked": "string",
- "price": "string",
- "costBasis": "string",
- "qtyAvailable": "string",
- "avgCost": "string",
- "type": "fulfill",
- "TransferId": 0,
- "locked": true,
- "currency": "string",
- "currencyRate": "string",
- "ItemId": 0,
- "WarehouseId": 0,
- "AdjustmentLedgerAccountId": 0,
- "JournalId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "ShipmentReceiptLineId": 0,
- "description": "string"
}
Returns a count of Stock Adjustments
object (StockAdjustmentFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Delete one Stock Adjustments
Can only delete if status if type is adjustment
and locked
is false.
The linked journal entry will be deleted if it exists.
id required | number or string StockAdjustment._id |
runCostBasis | boolean Default: false If true, will run cost basis calculation after delete succeeds. |
Update Stock Adjustment
id required | number or string StockAdjustment._id |
JSON body to update Stock Adjustment
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
transactionDate | string <date-time> Cannot be in the future |
postedDate | string <date> Defaults to transactionDate |
quantity | string <number> Cannot = 0 |
description | string |
price | string <number> Only allowed if quantity > 0, Must be >=0 |
currency | string <ISO4217 3 Char Code> Ref: Currency.code |
ItemId | integer Ref: Item._id |
WarehouseId | integer Ref: Warehouse._id |
AdjustmentLedgerAccountId | integer Ref: LedgerAccount._id |
{- "dontRunCostBasis": false,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "quantity": "string",
- "description": "string",
- "price": "string",
- "currency": "string",
- "ItemId": 0,
- "WarehouseId": 0,
- "AdjustmentLedgerAccountId": 0
}
{- "_id": 0,
- "transactionDate": "2019-08-24T14:15:22Z",
- "postedDate": "2019-08-24",
- "quantity": "string",
- "qtyPicked": "string",
- "price": "string",
- "costBasis": "string",
- "qtyAvailable": "string",
- "avgCost": "string",
- "type": "fulfill",
- "TransferId": 0,
- "locked": true,
- "currency": "string",
- "currencyRate": "string",
- "ItemId": 0,
- "WarehouseId": 0,
- "AdjustmentLedgerAccountId": 0,
- "JournalId": 0,
- "POLineItemId": 0,
- "SOLineItemId": 0,
- "ShipmentReceiptLineId": 0,
- "description": "string"
}
Returns a summary of the stock adjustments for a given item and warehouse Passing a transactionDate filter will summarize all of the adjustments with a transactionDate prior to or equal to the transactionDate passed Passing a postedDate filter will summarize all of the adjustments with a postedDate prior to or equal to the postedDate passed
object (StockAdjustmentSummaryFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "Item.name:DESC" Enum: "ItemId:ASC" "ItemId:DESC" "Item.number:ASC" "Item.number:DESC" "Item.name:ASC" "Item.name:DESC" "Item.sku:ASC" "Item.sku:DESC" "Item.description:ASC" "Item.description:DESC" "WarehouseId:ASC" "WarehouseId:DESC" "Warehouse.name:ASC" "Warehouse.name:DESC" "qtyAvailable:ASC" "qtyAvailable:DESC" Order to return results in. ex "date:desc" |
LocationId | number Will include Stock Adjustments that have a Warehouse with this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "ItemId": 0,
- "Item": {
- "name": "string",
- "number": 0,
- "sku": "string",
- "description": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string",
- "currency": "string"
}, - "qtyAvailable": "string",
- "totalCostBasis": "string"
}
]
}
Counts the Stock Summary data.
object (StockAdjustmentSummaryFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include Stock Adjustments that have a Warehouse with this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Returns a list of Stock Counts
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "submitDate:DESC" Enum: "_id:ASC" "_id:DESC" "submitDate:ASC" "submitDate:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "draft",
- "submitDate": "2019-08-24",
- "quantity": "string",
- "qtyInStock": "string",
- "variance": "string",
- "variancePrice": "string",
- "unitCost": "string",
- "ItemId": 0,
- "WarehouseId": 0,
- "SystemJobId": "string",
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string",
- "purchasePrice": "string"
}, - "Warehouse": {
- "name": "string"
}, - "SystemJob": {
- "name": "string",
- "date": "2019-08-24"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Update One Stock Count
Can only update if in draft status
id required | number or string StockCount._id |
JSON body containing key and values to update
quantity | string <number> |
unitCost | string <number> |
{- "quantity": "string",
- "unitCost": "string"
}
{- "_id": 0,
- "status": "string",
- "quantity": "string",
- "unitCost": "string",
- "submitDate": "2019-08-24",
- "SystemJobId": 0,
- "ItemId": 0,
- "WarehouseId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Submit a stock count for approval
id required | number or string StockCount._id |
Ledger Account must be active
LedgerAccountId required | integer Ref: LedgerAccounts, used as the Adjustment Ledger Account for the created stock adjustment |
submitDate | string Default: "NOW" Used as transaction date for created stock adjustment |
{- "LedgerAccountId": 0,
- "submitDate": "NOW"
}
Returns a list of system jobs
object (SystemJobFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
string or object Filter by queue name. Accepts either a single queue name or a JSON object for filtering multiple queue names. Examples:
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "queueName": "journal",
- "date": "2019-08-24T14:15:22Z",
- "name": "string",
- "progress": "string",
- "status": "completed",
- "url": "string",
- "results": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create new System Job
JSON body to create new System Job
queueName required | string Enum: "dimension" "doc" |
name | string |
object | |
notBulk | boolean If false appends 'bulk_' as prefix to queueName |
{- "queueName": "dimension",
- "name": "string",
- "data": {
- "dimensionType": "journal",
- "url": "string"
}, - "notBulk": true
}
{- "_id": "string",
- "name": "string",
- "date": "2019-08-24T14:15:22Z",
- "progress": "string",
- "queueName": "journal",
- "results": 0,
- "status": "completed",
- "tenantId": "string",
- "url": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of system jobs
object (SystemJobFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
string or object Filter by queue name. Accepts either a single queue name or a JSON object for filtering multiple queue names. Examples:
|
{- "count": 0,
- "estimate": true
}
Get one System Job
id required | number or string SystemJob._id |
{- "_id": "string",
- "queueName": "string",
- "date": "2019-08-24T14:15:22Z",
- "name": "string",
- "progress": "string",
- "status": "completed",
- "results": 0
}
Returns a list of Tax Codes
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "code:ASC" Enum: "_id:ASC" "_id:DESC" "code:ASC" "code:DESC" "description:ASC" "description:DESC" "rate:ASC" "rate:DESC" "LedgerAccount.number:ASC" "LedgerAccount.number:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Tax Code
JSON body to create new Tax Code.
One of [LedgerAccountId, LedgerAccount.number]
is required
code required | string |
rate required | string <number> |
description | string |
LedgerAccountId | number 'Ref: LedgerAccount._id' |
object |
{- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get one Tax Code
id required | number or string TaxCode._id |
{- "_id": 0,
- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One Tax Code
id required | number or string TaxCode._id |
JSON body containing key and values to update
code | string |
description | string |
rate | string <number> |
LedgerAccountId | number Ref: LedgerAccount._id |
object |
{- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "code": "string",
- "description": "string",
- "rate": "string",
- "LedgerAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a list of Templates
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "type:ASC" "type:DESC" "format:ASC" "format:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new template
JSON body to create new Template
name required | string |
type required | string Enum: "Invoice" "PurchaseOrder" "SalesOrder" "SalesQuote" |
data required | object |
format | string Default: "pdf" Enum: "pdf" "doc" |
{- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { }
}
{- "_id": 0,
- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get one Template
id required | number or string Template._id |
{- "_id": 0,
- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One Template
id required | number or string Template._id |
JSON body containing key and values to update
name | string |
type | string Enum: "Invoice" "PurchaseOrder" "SalesOrder" "SalesQuote" |
format | string Enum: "pdf" "doc" |
data | object |
{- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { }
}
{- "_id": 0,
- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
This endpoint is deprecated. Please use the new GET /journals/lines endpoint instead.
For the new endpoint documentation, refer to: GET /journals/lines
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "postedDate:ASC" Enum: "_id:ASC" "_id:DESC" "currency:ASC" "currency:DESC" "JournalId:ASC" "JournalId:DESC" "Journal_entryType:ASC" "Journal_entryType:DESC" "Journal_number:ASC" "Journal_number:DESC" "Journal_sourceLedger:ASC" "Journal_sourceLedger:DESC" "LedgerAccount_type:ASC" "LedgerAccount_type:DESC" "LedgerAccount_subtype:ASC" "LedgerAccount_subtype:DESC" "postedDate:ASC" "postedDate:DESC" "transactionDate:ASC" "transactionDate:DESC" "credit:ASC" "credit:DESC" "debit:ASC" "debit:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
currency | string ******* NOTE ********** We recommend using the v2/journals/lines route instead. This route only exists for legacy reporting support. Cannot use a custom currency If set, will return debit/credit values in this currency If not set, returns debit/credit values in thier posted currency. |
LocationId | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "description": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reversing": true,
- "reconcileId": "string",
- "consolidated": true,
- "elimination": true,
- "elim2": true,
- "currency": "string",
- "customCurrencyRate": "string",
- "JournalId": 0,
- "Journal_status": "draft",
- "Journal_sourceLedger": "Financial",
- "Journal_entryType": "Standard",
- "Journal_reference": "string",
- "Journal_notes": "string",
- "Journal_number": 0,
- "Journal_reverseDate": "2019-08-24",
- "Journal_createdAt": "2019-08-24T14:15:22Z",
- "Journal_updatedAt": "2019-08-24T14:15:22Z",
- "Journal_AccountingPeriodId": "string",
- "SystemJobId": "string",
- "LedgerAccountId": 0,
- "LedgerAccount_name": "string",
- "LedgerAccount_number": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "ICAccountId": 0,
- "ICAccount_name": "string",
- "ICAccount_number": "string",
- "ICAccount_type": "string",
- "ICAccount_subtype": "Asset",
- "CostCenterId": 0,
- "CostCenter_name": "string",
- "CostCenter_id": "string",
- "ProductId": 0,
- "Product_name": "string",
- "Product_id": "string",
- "Custom1Id": 0,
- "Custom1_name": "string",
- "Custom1_id": "string",
- "Custom2Id": 0,
- "Custom2_name": "string",
- "Custom2_id": "string",
- "Custom3Id": 0,
- "Custom3_name": "string",
- "Custom3_id": "string",
- "CustomerId": 0,
- "Customer_id": "string",
- "Customer_name": "string",
- "VendorId": 0,
- "Vendor_id": "string",
- "Vendor_name": "string",
- "InvoiceId": 0,
- "Invoice_number": "string",
- "BillId": 0,
- "Bill_invoiceNumber": "string",
- "PaymentId": 0,
- "SalesOrderId": 0,
- "SalesOrder_number": "string",
- "LocationId": 0,
- "Location_name": "string",
- "Location_id": "string",
- "Location_currency": "string",
- "Location_parent_path": [
- 0
], - "ICLocationId": 0,
- "ICLocation_name": "string",
- "ICLocation_id": "string",
- "ICLocation_currency": "string",
- "CashReceiptId": 0,
- "CashReceipt_number": "string",
- "VendorCreditId": "string",
- "VendorCredit_number": "string",
- "JobId": 0,
- "Job_number": "string",
- "Job_name": "string",
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "reportingCurrency": "string",
- "fxRate": "string",
- "debit": "string",
- "credit": "string",
- "txn_type": "standard"
}
]
}
Returns a list of Transactions with a running balance
currency required | string "Ref: Currency.code", cannot use a custom currency Return debit/credit values in this currency |
startDate required | string <date> Will include transactions from this postedDate and forward. |
endDate required | string <date> Will include transactions from this postedDate and back. |
LocationId required | number Will include transactions from this Location and its children Filters on LocationId can further limit data. |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "runningBalance": "string",
- "description": "string",
- "transactionDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "reversing": true,
- "reconcileId": "string",
- "consolidated": true,
- "elimination": true,
- "elim2": true,
- "currency": "string",
- "customCurrencyRate": "string",
- "JournalId": 0,
- "Journal_status": "draft",
- "Journal_sourceLedger": "Financial",
- "Journal_entryType": "Standard",
- "Journal_reference": "string",
- "Journal_notes": "string",
- "Journal_number": 0,
- "Journal_reverseDate": "2019-08-24",
- "Journal_createdAt": "2019-08-24T14:15:22Z",
- "Journal_updatedAt": "2019-08-24T14:15:22Z",
- "Journal_AccountingPeriodId": "string",
- "SystemJobId": "string",
- "ICAccountId": 0,
- "ICAccount_name": "string",
- "ICAccount_number": "string",
- "ICAccount_type": "string",
- "ICAccount_subtype": "Asset",
- "CostCenterId": 0,
- "CostCenter_name": "string",
- "CostCenter_id": "string",
- "ProductId": 0,
- "Product_name": "string",
- "Product_id": "string",
- "Custom1Id": 0,
- "Custom1_name": "string",
- "Custom1_id": "string",
- "Custom2Id": 0,
- "Custom2_name": "string",
- "Custom2_id": "string",
- "Custom3Id": 0,
- "Custom3_name": "string",
- "Custom3_id": "string",
- "CustomerId": 0,
- "Customer_id": "string",
- "Customer_name": "string",
- "VendorId": 0,
- "Vendor_id": "string",
- "Vendor_name": "string",
- "InvoiceId": 0,
- "Invoice_number": "string",
- "BillId": 0,
- "Bill_invoiceNumber": "string",
- "PaymentId": 0,
- "SalesOrderId": 0,
- "SalesOrder_number": "string",
- "LocationId": 0,
- "Location_name": "string",
- "Location_id": "string",
- "Location_currency": "string",
- "Location_parent_path": [
- 0
], - "ICLocationId": 0,
- "ICLocation_name": "string",
- "ICLocation_id": "string",
- "ICLocation_currency": "string",
- "CashReceiptId": 0,
- "CashReceipt_number": "string",
- "VendorCreditId": "string",
- "VendorCredit_number": "string",
- "JobId": 0,
- "Job_number": "string",
- "Job_name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "reportingCurrency": "string",
- "fxRate": "string",
- "debit": "string",
- "credit": "string",
- "txn_type": "standard"
}
]
}
Returns a sum of (Debit - Credit) for the given filter
currency required | string "Ref: Currency.code", cannot use a custom currency If set, will return debit/credit values in this currency If not set, returns debit/credit values in thier posted currency. |
startDate required | string <date> Sum will include transactions from this postedDate and forward. |
endDate required | string <date> Sum will include transactions from this postedDate and back. |
LocationId required | number Sum will include transactions from this Location and its children Filters on LocationId can further limit data. |
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
"string"
Returns a list of Stock Transfers
object (TransferFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "date:DESC" Enum: "_id:ASC" "_id:DESC" "quantity:ASC" "quantity:DESC" "date:ASC" "date:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "ItemId": 0,
- "status": "inTransit",
- "quantity": "string",
- "ToWarehouseId": 0,
- "FromWarehouseId": 0,
- "date": "2019-08-24T14:15:22Z",
- "Item": {
- "name": "string",
- "number": "string",
- "sku": "string"
}, - "ToWarehouse": {
- "name": "string"
}, - "FromWarehouse": {
- "name": "string"
}, - "createdAt": "2019-08-24",
- "updatedAt": "2019-08-24"
}
]
}
Creates a new Transfer
JSON body to create new Transfer
Cannot transfer to the same warehouse
Currency is set to currency of "FromWarehouse"
date required | string <date-time> Cannot be in the future |
quantity required | string <number> Must be > 0 |
ItemId required | integer Ref: Item._id |
FromWarehouseId required | integer Ref: Warehouse._id |
ToWarehouseId required | integer Ref: Warehouse._id |
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
status | string Default: "complete" Enum: "inTransit" "complete" |
{- "dontRunCostBasis": false,
- "date": "2019-08-24T14:15:22Z",
- "quantity": "string",
- "status": "inTransit",
- "ItemId": 0,
- "ToWarehouseId": 0,
- "FromWarehouseId": 0
}
{- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "quantity": "string",
- "status": "inProgress",
- "currency": "string",
- "ItemId": 0,
- "ToWarehouseId": 0,
- "FromWarehouseId": 0
}
Complete Transfer
id required | number or string Transfer._id |
Request Body
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
{- "dontRunCostBasis": false
}
Returns a count of Stock Transfers
object (TransferFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
Update Transfer
id required | string Transfer Id |
JSON body to update Transfer
Can only update a transfer if it is inTransit
Currency is set to currency of "FromWarehouse"
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
date | string <date-time> Cannot be in the future |
quantity | string <number> Must be > 0 |
ItemId | integer Ref: Item._id |
ToWarehouseId | integer Ref: Warehouse._id |
FromWarehouseId | integer Ref: Warehouse._id |
{- "dontRunCostBasis": false,
- "date": "2019-08-24T14:15:22Z",
- "quantity": "string",
- "ItemId": 0,
- "ToWarehouseId": 0,
- "FromWarehouseId": 0
}
{- "_id": 0,
- "date": "2019-08-24T14:15:22Z",
- "quantity": "string",
- "status": "inProgress",
- "currency": "string",
- "ItemId": 0,
- "ToWarehouseId": 0,
- "FromWarehouseId": 0
}
All Users
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
offset | number offset to page forwards from |
{- "totalItems": 0,
- "data": [
- {
- "LocationId": 0,
- "email": "string",
- "fname": "string",
- "lname": "string",
- "phone_number": "string",
- "profilePicURL": "string",
- "helpUrl": "string",
- "loginUrl": "string",
- "tenantId": "string",
- "tenants": [
- "string"
], - "use_mfa": true,
- "hasMfaEnrolled": true,
- "_id": "string"
}
]
}
Create new User
JSON body to create new User
fname required | string |
lname required | string |
email required | string |
phoneNumber required | string |
LocationId required | string |
use_mfa | boolean |
{- "fname": "string",
- "lname": "string",
- "email": "string",
- "phoneNumber": "string",
- "LocationId": "string",
- "use_mfa": true
}
{- "_id": "string",
- "profilePicURL": "string",
- "tenantId": "string",
- "use_mfa": true,
- "fname": "string",
- "lname": "string",
- "LocationId": 0,
- "phone_number": "string",
- "email": "string"
}
{- "_id": "string",
- "profilePicURL": "string",
- "tenantId": "string",
- "use_mfa": true,
- "hasMfaEnrolled": true,
- "lname": "string",
- "fname": "string",
- "LocationId": 0,
- "phone_number": "string",
- "authorization": true,
- "permissions": [
- "string"
], - "hmacKey": "string",
- "email": "string",
- "tenants": [
- {
- "uuid": "string",
- "company": "string",
- "LocationId": 0,
- "logo": "string"
}
]
}
Update User
id required | string User._id |
JSON body to update User
fname | string |
lname | string |
phone_number | string |
use_mfa | boolean |
LocationId | number |
{- "fname": "string",
- "lname": "string",
- "phone_number": "string",
- "use_mfa": true,
- "LocationId": 0
}
{- "app_metadata": {
- "LocationId": 0,
- "fname": "string",
- "lname": "string",
- "phone_number": "string",
- "tenantId": "string",
- "usa_mfa": true
}, - "user_id": "string",
- "email": "string",
- "email_verified": true,
- "identities": { },
- "name": "string",
- "nickname": "string",
- "picture": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
Update self
This endpoint will update the user's own information.
This request will only work with a user token and not an api token.
Settings such as hideZeroCoins
and stickyNav
will not trigger a webhook.
JSON body to update User
fname | string |
lname | string |
profilePicURL | string |
restoreId | string |
hideZeroCoins | boolean |
stickyNav | boolean |
{- "fname": "string",
- "lname": "string",
- "profilePicURL": "string",
- "restoreId": "string",
- "hideZeroCoins": true,
- "stickyNav": true
}
{- "_id": "string",
- "fname": "string",
- "lname": "string",
- "phone_number": "string",
- "hideZeroCoins": true,
- "stickyNav": true,
- "email": "string",
- "profilePicURL": "string"
}
Returns a list of Vendors
object (VendorFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
order | string Default: "id:ASC" Enum: "_id:ASC" "_id:DESC" "id:ASC" "id:DESC" "name:ASC" "name:DESC" "externalId:ASC" "externalId:DESC" "nameOnCheck:ASC" "nameOnCheck:DESC" "accNumber:ASC" "accNumber:DESC" "email:ASC" "email:DESC" "terms:ASC" "terms:DESC" "EIN:ASC" "EIN:DESC" "currency:ASC" "currency:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "string",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "customFields": { },
- "defaultDaysDue": 0,
- "is1099": true,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "ExpenseAccountId": 0,
- "ExpenseAccount": {
- "number": "string",
- "name": "string"
}, - "Address": {
- "_id": 0,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Contact": {
- "_id": 0,
- "name": "string",
- "email": "string",
- "phone": "string"
}
}
]
}
Creates a new Vendor
JSON body to create new Vendor
Only one of [ExpenseAccount.number, ExpenseAccountId]
can be set
name required | string |
externalId | string |
nameOnCheck | string |
accNumber | string |
string <email> | |
terms | string |
EIN | string |
currency | string Ref: Currency.code |
defaultDaysDue | integer >= 1 |
customFields | object Default: {} Key->Value store of custom fields |
is1099 | boolean Default: false |
inactive | boolean Default: false |
ExpenseAccountId | integer Ref: LedgerAccount._id |
object | |
object Default address for vendor | |
object Primary contact for vendor |
{- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "user@example.com",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "defaultDaysDue": 1,
- "customFields": { },
- "is1099": false,
- "inactive": false,
- "ExpenseAccountId": 0,
- "ExpenseAccount": {
- "number": "string"
}, - "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Contacts": {
- "name": "string",
- "email": "string",
- "phone": "string"
}
}
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "string",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "defaultDaysDue": 0,
- "customFields": { },
- "is1099": true,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "ExpenseAccountId": 0
}
This endpoint returns only bills for the specified vendor.
id required | number or string Vendor._id |
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string (BillLineOrder) Default: "Bill.invoiceNumber:ASC" Enum: "_id:ASC" "_id:DESC" "idx:ASC" "idx:DESC" "description:ASC" "description:DESC" "amount:ASC" "amount:DESC" "quantity:ASC" "quantity:DESC" "taxAmount:ASC" "taxAmount:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "Bill.invoiceNumber:ASC" "Bill.invoiceNumber:DESC" "Bill.status:ASC" "Bill.status:DESC" "Bill.approvalStatus:ASC" "Bill.approvalStatus:DESC" "Bill.paymentStatus:ASC" "Bill.paymentStatus:DESC" "Bill.currency:ASC" "Bill.currency:DESC" "Bill.description:ASC" "Bill.description:DESC" "Bill.invoiceDate:ASC" "Bill.invoiceDate:DESC" "Bill.postingDate:ASC" "Bill.postingDate:DESC" "Bill.dueDate:ASC" "Bill.dueDate:DESC" "Bill.createdAt:ASC" "Bill.createdAt:DESC" "Bill.updatedAt:ASC" "Bill.updatedAt:DESC" "APAccount.number:ASC" "APAccount.number:DESC" "BillAccount.number:ASC" "BillAccount.number:DESC" "LedgerAccount.number:ASC" "LedgerAccount.number:DESC" "Vendor.name:ASC" "Vendor.name:DESC" "Vendor.is1099:ASC" "Vendor.is1099:DESC" "Location.name:ASC" "Location.name:DESC" "ICLocation.name:ASC" "ICLocation.name:DESC" "TaxCode.code:ASC" "TaxCode.code:DESC" "Item.name:ASC" "Item.name:DESC" "Item.salePrice:ASC" "Item.salePrice:DESC" "Item.purchasePrice:ASC" "Item.purchasePrice:DESC" "CostCenter.id:ASC" "CostCenter.id:DESC" "Product.id:ASC" "Product.id:DESC" "Job.number:ASC" "Job.number:DESC" Order to return results in. ex "date:desc" |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "status": "created",
- "approvalStatus": "unapproved",
- "paymentStatus": "unpaid",
- "externalId": "string",
- "invoiceNumber": "string",
- "invoiceDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "notes": "string",
- "approved_on": "2019-08-24",
- "approved_name": "string",
- "approved_email": "user@example.com",
- "reference": "string",
- "currency": "string",
- "amount": "string",
- "dueAmount": "string",
- "customFields": { },
- "SystemJobId": "string",
- "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string",
- "name": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "APAccountId": 0,
- "APAccount": {
- "name": "string",
- "number": "string"
}, - "PurchaseOrderId": 0,
- "PurchaseOrder": {
- "number": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Returns a count of Vendors
object (VendorFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
{- "count": "string",
- "estimate": true
}
This endpoint returns only count of bills for the specified vendor.
id required | number or string Vendor._id |
object (BillFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
type | string Default: "all" Enum: "all" "positive" "negative" Filter bills by their entry type:
|
{- "count": "string",
- "estimate": true
}
Get one Vendor
id required | number or string Vendor._id |
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "string",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "defaultDaysDue": 0,
- "customFields": { },
- "is1099": true,
- "inactive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "ExpenseAccountId": 0,
- "ExpenseAccount": {
- "number": "string",
- "name": "string"
}, - "Addresses": [
- {
- "_id": 0,
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
], - "Contacts": [
- {
- "_id": 0,
- "isPrimary": true,
- "name": "string",
- "email": "string",
- "phone": "string"
}
]
}
Update One Vendor
id required | number or string Vendor._id |
JSON body containing key and values to update
Only one of [ExpenseAccount.number, ExpenseAccountId]
can be set
externalId | string |
name | string |
nameOnCheck | string |
accNumber | string |
string <email> | |
terms | string |
EIN | string |
currency | string Ref: Currency.code |
defaultDaysDue | integer >= 1 |
is1099 | boolean Default: false |
customFields | object Key->Value store of custom fields |
inactive | boolean Default: false |
ExpenseAccountId | integer Ref: LedgerAccount._id |
object |
{- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "user@example.com",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "defaultDaysDue": 1,
- "is1099": false,
- "customFields": { },
- "inactive": false,
- "ExpenseAccountId": 0,
- "ExpenseAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "id": "string",
- "externalId": "string",
- "name": "string",
- "nameOnCheck": "string",
- "accNumber": "string",
- "email": "string",
- "terms": "string",
- "EIN": "string",
- "currency": "string",
- "defaultDaysDue": 0,
- "is1099": true,
- "inactive": true,
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "ExpenseAccountId": 0
}
This endpoint returns only payments for the specified vendor. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string Vendor._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Returns a list of Vendor Credits
object (VendorCreditFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "number:DESC" Enum: "_id:ASC" "_id:DESC" "number:ASC" "number:DESC" "externalId:ASC" "externalId:DESC" "type:ASC" "type:DESC" "amount:ASC" "amount:DESC" "unused:ASC" "unused:DESC" "description:ASC" "description:DESC" "currency:ASC" "currency:DESC" "receiveDate:ASC" "receiveDate:DESC" "postingDate:ASC" "postingDate:DESC" "status:ASC" "status:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "string",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "UnappliedCreditAccountId": 0,
- "UnappliedCreditAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Creates a new Vendor Credit
JSON body to create new Vendor Credit
Only one of [Vendor.id, VendorId]
can be set
Only one of [LedgerAccount.number, LedgerAccountId]
can be set
Only one of [Location.id, LocationId]
can be set
Only one of [UnappliedCreditAccount.number, UnappliedCreditAccountId]
can be set
number required | string |
type required | string |
amount required | string <number> Must be > 0 |
currency required | string Ref: Currency.code |
receiveDate required | string <date> |
postingDate required | string <date> |
externalId | string |
description | string |
VendorId | number Ref: Vendor._id |
object | |
LedgerAccountId | number Ref: LedgerAccount._id |
object | |
LocationId | number Ref: Location._id |
object | |
UnappliedCreditAccountId | number Ref: LedgerAccount._id |
object |
{- "number": "string",
- "externalId": "string",
- "type": "string",
- "amount": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "VendorId": 0,
- "Vendor": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string"
}, - "UnappliedCreditAccountId": 0,
- "UnappliedCreditAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "string",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "VendorId": 0,
- "LedgerAccountId": 0,
- "LocationId": 0,
- "UnappliedCreditAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a count of Vendor Credits
object (VendorCreditFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Get one Vendor Credit
id required | number or string VendorCredit._id |
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "string",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "VendorId": 0,
- "Vendor": {
- "id": "string",
- "name": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string",
- "name": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string",
- "name": "string"
}, - "UnappliedCreditAccountId": 0,
- "UnappliedCreditAccount": {
- "number": "string",
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One Vendor Credit
id required | number or string VendorCredit._id |
JSON body containing key and values to update
Cannot update a Vendor Credit if an unapplied cash journal entry was created
Only one of [Vendor.id, VendorId]
can be set
Only one of [LedgerAccount.number, LedgerAccountId]
can be set
Only one of [Location.id, LocationId]
can be set
Only one of [UnappliedCreditAccount.number, UnappliedCreditAccountId]
can be set
number | string |
externalId | string |
type | string Enum: "charge" "check" "ACH" "Wire" |
amount | string <number> Must be > 0 |
description | string |
currency | string Ref: Currency.code |
receiveDate | string <date> |
postingDate | string <date> |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
VendorId | number Ref: Vendor._id |
object | |
LedgerAccountId | number Ref: LedgerAccount._id |
object | |
LocationId | number Ref: Location._id |
object | |
UnappliedCreditAccountId | number Ref: LedgerAccount._id |
object |
{- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "VendorId": 0,
- "Vendor": {
- "id": "string"
}, - "LedgerAccountId": 0,
- "LedgerAccount": {
- "number": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string"
}, - "UnappliedCreditAccountId": 0,
- "UnappliedCreditAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "number": "string",
- "externalId": "string",
- "type": "charge",
- "amount": "string",
- "unused": "string",
- "description": "string",
- "currency": "string",
- "receiveDate": "2019-08-24",
- "postingDate": "2019-08-24",
- "status": "created",
- "VendorId": 0,
- "LedgerAccountId": 0,
- "LocationId": 0,
- "UnappliedCreditAccountId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
This endpoint returns only payments for the specified vendor credit. The response and parameters of this endpoint are the same as for Payments Search
id required | number or string VendorCredit._id |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "externalId": "string",
- "externalCheckId": "string",
- "externalCheckBankId": "string",
- "type": "manual",
- "checkNumber": "string",
- "number": "string",
- "status": "created",
- "amount": "string",
- "paymentDate": "2019-08-24",
- "postedDate": "2019-08-24",
- "memo": "string",
- "notes": "string",
- "currency": "string",
- "BillId": 0,
- "VendorCreditId": 0,
- "LedgerAccountId": 0,
- "CashReceiptId": 0,
- "AddressId": 0,
- "LocationId": 0,
- "InvoiceId": 0,
- "VendorId": 0,
- "CustomerId": 0,
- "BatchPaymentId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Address": {
- "isDefault": true,
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "Vendor": {
- "id": "string",
- "name": "string",
- "email": "user@example.com",
- "nameOnCheck": "string"
}, - "Bill": {
- "invoiceNumber": "string",
- "description": "string"
}, - "Invoice": {
- "number": "string",
- "reference": "string"
}, - "Customer": {
- "id": "string",
- "name": "string",
- "email": "user@example.com"
}, - "VendorCredit": {
- "number": "string"
}, - "CashReceipt": {
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}, - "LedgerAccount": {
- "name": "string",
- "number": "string"
}, - "BatchPayment": {
- "referenceNumber": "string"
}
}
]
}
Returns a list of Vendor Prices
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "VendorId:ASC" "VendorId:DESC" "ItemId:ASC" "ItemId:DESC" "price:ASC" "price:DESC" "minValue:ASC" "minValue:DESC" "maxValue:ASC" "maxValue:DESC" Order to return results in. ex "date:desc" |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "price": "1",
- "minValue": "1",
- "maxValue": "1",
- "Item": {
- "name": "string",
- "sku": "string",
- "number": 0
}, - "Vendor": {
- "name": "string",
- "id": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create new Vendor Price
JSON body to create new Vendor Price
VendorId required | integer |
ItemId required | integer |
price required | number must be > 0 |
minValue required | number |
maxValue | number 0 will be treated as an infinite value, and returned as null. Must be greater than minValue |
{- "VendorId": 0,
- "ItemId": 0,
- "price": 0,
- "minValue": 0,
- "maxValue": 0
}
{- "_id": "string",
- "VendorId": 0,
- "ItemId": 0,
- "price": "string",
- "minValue": "string",
- "maxValue": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Show price for Vendor & Item relationships
quantity required | number quantity of items |
VendorId required | number VendorId of Vendor Price Pair |
ItemId required | number ItemId of Vendor Price Pair |
{- "price": "1",
- "source": "VendorPrice"
}
Update one Vendor Price
id required | number or string VendorPrice._id |
JSON object containing key and values to update
price | number must be > 0 |
minValue | number |
maxValue | number Must be > minValue. 0 will be treated as an infinite value |
{- "price": 0,
- "minValue": 0,
- "maxValue": 0
}
{- "_id": 0,
- "VendorId": 0,
- "ItemId": 0,
- "price": "string",
- "minValue": "string",
- "maxValue": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns a list of Wallets
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
object (WalletFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "address:ASC" "address:DESC" "exchange:ASC" "exchange:DESC" "description:ASC" "description:DESC" "tag:ASC" "tag:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" "DepositAccount.number:ASC" "DepositAccount.number:DESC" "WithdrawalAccount.number:ASC" "WithdrawalAccount.number:DESC" "Location.id:ASC" "Location.id:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "DepositAccountId": 0,
- "WithdrawalAccountId": 0,
- "LocationId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "DepositAccount": {
- "name": "string",
- "number": "string"
}, - "WithdrawalAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}
}
]
}
Creates a new Wallet
name required | string |
externalId | string |
address | string |
description | string |
exchange | string |
tag | string |
LocationId | integer 'Ref: Location._id' Defaults to Global Location |
object | |
DepositAccountId | integer Ref: LedgerAccount._id |
object | |
WithdrawalAccountId | integer Ref: LedgerAccount._id |
object |
{- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "DepositAccountId": 0,
- "DepositAccount": {
- "number": "string"
}, - "WithdrawalAccountId": 0,
- "WithdrawalAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "DepositAccountId": 0,
- "WithdrawalAccountId": 0,
- "LocationId": 0
}
Returns the count of Wallets
object (WalletFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
{- "count": "string",
- "estimate": true
}
Retrieves detailed information about a specific wallet by its unique identifier.
id required | string Wallet._id |
{- "_id": 0,
- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "DepositAccountId": 0,
- "WithdrawalAccountId": 0,
- "LocationId": 0,
- "DepositAccount": {
- "name": "string",
- "number": "string"
}, - "WithdrawalAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}
}
Updates a Wallet
id required | string Wallet._id |
name | string |
externalId | string |
address | string |
description | string |
exchange | string |
tag | string |
LocationId | integer Ref: Location._id |
object | |
DepositAccountId | integer Ref: LedgerAccount._id |
object | |
WithdrawalAccountId | integer Ref: LedgerAccount._id |
object |
{- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "DepositAccountId": 0,
- "DepositAccount": {
- "number": "string"
}, - "WithdrawalAccountId": 0,
- "WithdrawalAccount": {
- "number": "string"
}
}
{- "_id": 0,
- "name": "string",
- "externalId": "string",
- "address": "string",
- "description": "string",
- "exchange": "string",
- "tag": "string",
- "DepositAccountId": 0,
- "WithdrawalAccountId": 0,
- "LocationId": 0
}
List of Wallet's Coins with balance details
id required | string Wallet._id |
showHidden | string exclude zero balance coins |
date | string <date-time> date to filter by. defaults to "now" ISO DateTime |
object | |
order | any Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "symbol:ASC" "symbol:DESC" "rateSymbol:ASC" "rateSymbol:DESC" |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": "string",
- "name": "string",
- "gainLoss": "123.321",
- "symbol": "string",
- "isFiat": true,
- "rate": {
- "PRICE": "string",
- "CHANGEPCT24HOUR": "string"
}, - "rateId": "string",
- "rateSource": "coinmarketcap",
- "rateSymbol": "string",
- "quantity": "1",
- "totalCostBasis": "1",
- "value": "123.321",
- "customFields": { }
}
]
}
Returns a list of Warehouses
object (WarehouseFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
status | string Enum: "active" "inactive" Results will return |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
order | string Default: "name:ASC" Enum: "_id:ASC" "_id:DESC" "name:ASC" "name:DESC" "inactive:ASC" "inactive:DESC" "description:ASC" "description:DESC" "externalId:ASC" "externalId:DESC" "createdAt:ASC" "createdAt:DESC" "updatedAt:ASC" "updatedAt:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "inactive": true,
- "name": "string",
- "externalId": "string",
- "description": "string",
- "LocationId": 0,
- "ParentId": 0,
- "AddressId": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "Location": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "Parent": {
- "name": "string"
}, - "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}
]
}
Create new Warehouse
JSON body to create new Warehouse
One of [LocationId, Location.id]
is required
name required | string |
LocationId required | integer Ref: Location._id |
inactive | boolean Default: false |
description | string |
externalId | string |
object | |
object | |
ParentId | integer "Ref: Warehouse._id" Cannot set self as parent |
object |
{- "inactive": false,
- "name": "string",
- "description": "string",
- "externalId": "string",
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "LocationId": 0,
- "Location": {
- "id": 0
}, - "ParentId": 0,
- "Parent": {
- "name": 0
}
}
{- "_id": "string",
- "name": "string",
- "description": 0,
- "externalId": 0,
- "inactive": true,
- "AddressId": "string",
- "ParentId": "string",
- "LocationId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Returns the count of Warehouses
object (WarehouseFilter) | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
status | string Enum: "active" "inactive" Results will return |
LocationId | number Will include items from this Location and its children Filters on LocationId can further limit data. |
{- "count": "string",
- "estimate": true
}
Get one Warehouse
id required | number or string Warehouse._id |
{- "_id": 0,
- "inactive": true,
- "name": "string",
- "externalId": "string",
- "description": "string",
- "LocationId": 0,
- "ParentId": 0,
- "AddressId": 0,
- "Location": {
- "id": "string",
- "name": "string",
- "currency": "string"
}, - "Parent": {
- "name": "string"
}, - "Address": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "country": "string",
- "zip": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Updates a Warehouse
id required | number or string Warehouse._id |
Cannot Update Location if there are linked stock adjustments
name | string |
description | string |
externalId | string |
inactive | boolean |
AddressId | integer Ref: Address._id |
object Address properties if provided will be added to the warehouse current address or new (if a different AddressId is provided) | |
LocationId | integer Ref: Location._id |
object | |
ParentId | integer "Ref: Warehouse._id" Cannot set self as parent |
object |
{- "name": "string",
- "description": "string",
- "externalId": "string",
- "inactive": true,
- "AddressId": 0,
- "Address": {
- "label": "string",
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}, - "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ParentId": 0,
- "Parent": {
- "id": 0
}
}
{- "_id": "string",
- "name": "string",
- "description": 0,
- "externalId": 0,
- "inactive": true,
- "AddressId": "string",
- "ParentId": "string",
- "LocationId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Summary of Warehouse stocked Items
id required | number or string Warehouse._id |
childWh | boolean Determine if the summary balances include stock from child warehouses |
[- {
- "iId": 0,
- "iName": "string",
- "iNumber": "string",
- "iSku": "string",
- "iDescription": "string",
- "qtyAvailable": "1",
- "wiMinValue": "1",
- "wiMaxValue": "1"
}
]
Returns a list of Warehouse Items
object | |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
cursor | string Cursor key to page forwards from. Must be populated from the result of a previous query call. |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
order | string Default: "_id:ASC" Enum: "_id:ASC" "_id:DESC" "WarehouseId:ASC" "WarehouseId:DESC" "ItemId:ASC" "ItemId:DESC" "minValue:ASC" "minValue:DESC" "maxValue:ASC" "maxValue:DESC" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "WarehouseId": 0,
- "ItemId": 0,
- "minValue": "1",
- "maxValue": "1",
- "customFields": { },
- "Item": {
- "name": "string",
- "sku": "string",
- "number": 0,
- "description": "string"
}, - "Warehouse": {
- "name": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create new Warehouse Item
JSON body to create new Warehouse Item
WarehouseId required | integer |
ItemId required | integer |
minValue required | number |
maxValue | number must be > 0 and > minValue |
customFields | object Key->Value hash of custom field names and values. Custom fields must be defined via the UI to be visible in the UI Custom field values must be unique for all Warehouse Items in the same Warehouse |
{- "WarehouseId": 0,
- "ItemId": 0,
- "minValue": 0,
- "maxValue": 0,
- "customFields": { }
}
{- "_id": "string",
- "WarehouseId": 0,
- "ItemId": 0,
- "minValue": "1",
- "maxValue": "1",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update one Warehouse Item
id required | number or string WarehouseItem._id |
JSON object containing key and values to update
price | number |
minValue | number |
maxValue | number must be > 0 and > minValue |
customFields | object Key->Value hash of custom field names and values. Custom fields must be defined via the UI to be visible in the UI Custom field values must be unique for all Warehouse Items in the same Warehouse |
{- "price": 0,
- "minValue": 0,
- "maxValue": 0,
- "customFields": { }
}
{- "_id": 0,
- "WarehouseId": 0,
- "ItemId": 0,
- "minValue": "string",
- "maxValue": "string",
- "customFields": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
{- "totalItems": 0,
- "data": [
- {
- "_id": 0,
- "tenantId": "string",
- "year": 0,
- "start": "2019-08-24",
- "end": "2019-08-24",
- "type": "string",
- "status": "open",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
The passed data will be the first day of the year created. Format, year(YYYY), month(MM), day(DD). Any subsequent years must have the same MM/DD as the previous years. Years must be created ±1 apart (no gaps between years)
JSON body to create new Year
year required | number |
month required | string |
type | string Value: "month" |
{- "year": 0,
- "month": "string",
- "type": "month"
}
{- "_id": 0,
- "tenantId": "string",
- "year": 0,
- "start": "string",
- "end": "string",
- "type": "month",
- "status": "open",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}