Download OpenAPI specification:Download
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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
label | ✅ | ✅ |
line1 | ✅ | ❌ |
line2 | ✅ | ❌ |
city | ✅ | ❌ |
state | ✅ | ❌ |
zip | ✅ | ❌ |
country | ✅ | ❌ |
isDefault | ✅ | ❌ |
isVerified | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
CustomerId | ✅ | ❌ |
VendorId | ✅ | ❌ |
Customer.name | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string 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 in descending order by date
Field | Filterable |
---|---|
_id | ✅ |
date | ✅ |
object | ❌ |
objectType | ✅ |
objectId | ✅ |
message | ✅ |
user | ❌ |
api | ❌ |
userType | ✅ |
userLabel | ✅ |
where | string JSON Key:Value object to filter results on |
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"
}
]
}
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.
The transactions are sorted by date in descending order.
id required | string BankAccount.id |
startDate required | string <date> Date to start the search from |
endDate required | string <date> Date to end the search to |
offset | integer Default: 0 number of records to skip |
limit | integer [ 1 .. 1000 ] Default: 25 Maximum number of records to return. |
{- "data": [
- {
- "transaction_id": "string",
- "account_id": "string",
- "name": "string",
- "amount": "string",
- "date": "2019-08-24",
- "authorized_date": "2019-08-24",
- "category": "string",
- "iso_currency_code": "string",
- "pending": true,
- "hasPossibleMatches": true,
- "Journal": {
- "hasMatch": true,
- "linkedByPendingId": true,
- "JournalId": 0
}, - "CashReceipt": {
- "hasMatch": true,
- "linkedByPendingId": true,
- "CashReceiptId": 0
}
}
], - "totalItems": 0
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
status | ✅ | ✅ |
referenceNumber | ✅ | ✅ |
postedDate | ✅ | ✅ |
paymentDate | ✅ | ✅ |
currency | ✅ | ✅ |
amount | ✅ | ✅ |
LocationId | ✅ | ❌ |
ClearingAccountId | ✅ | ❌ |
CashAccountId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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. The parameters of this endpoint are the same as for Bills Search
id required | string BatchPayment._id |
{- "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 | string BatchPayment._id |
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Default: false 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.
filter | string JSON Key:Value object to filter results on |
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 | string 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 | string BatchPayment._id |
{- "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 | string BatchPayment._id |
filter | string JSON Key:Value object to filter results on |
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 | string 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
invoiceNumber | ✅ | ✅ |
externalId | ✅ | ✅ |
description | ✅ | ✅ |
invoiceDate | ✅ | ✅ |
postedDate | ✅ | ✅ |
dueDate | ✅ | ✅ |
dueAmount | ✅ | ✅ |
amount | ✅ | ✅ |
VendorId | ✅ | ❌ |
Vendor.name | ❌ | ✅ |
customFields | ✅ | ❌ |
currency | ✅ | ✅ |
LocationId | ✅ | ❌ |
ICLocationId | ✅ | ❌ |
status | ✅ | ✅ |
approvalStatus | ✅ | ✅ |
paymentStatus | ✅ | ✅ |
PurchaseOrderId | ✅ | ❌ |
APAccountId | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" Order to return results in. ex "date:desc" |
credit | boolean Default: false 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
idx | ✅ | ✅ |
description | ✅ | ✅ |
amount | ✅ | ✅ |
quantity | ✅ | ✅ |
taxAmount | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
BillId | ✅ | ❌ |
Bill.invoiceNumber | ✅ | ✅ |
Bill.status | ✅ | ✅ |
Bill.approvalStatus | ✅ | ✅ |
Bill.paymentStatus | ✅ | ✅ |
Bill.currency | ✅ | ✅ |
Bill.description | ✅ | ✅ |
Bill.invoiceDate | ✅ | ✅ |
Bill.postingDate | ✅ | ✅ |
Bill.dueDate | ✅ | ✅ |
Bill.customFields | ✅ | ❌ |
Bill.createdAt | ✅ | ✅ |
Bill.updatedAt | ✅ | ✅ |
Bill.VendorId | ✅ | ❌ |
Bill.APAccountId | ✅ | ❌ |
Bill.LocationId | ✅ | ❌ |
Bill.ICLocationId | ✅ | ❌ |
APAccount.number | ❌ | ✅ |
BillAccount.number | ❌ | ✅ |
LedgerAccountId | ✅ | ❌ |
LedgerAccount.number | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
Vendor.is1099 | ✅ | ✅ |
Location.name | ❌ | ✅ |
ICLocation.name | ❌ | ✅ |
TaxCodeId | ✅ | ❌ |
TaxCode.code | ❌ | ✅ |
ItemId | ✅ | ❌ |
Item.name | ❌ | ✅ |
Item.salePrice | ✅ | ✅ |
Item.purchasePrice | ✅ | ✅ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
CostCenter.id | ❌ | ✅ |
ProductId | ✅ | ❌ |
Product.id | ❌ | ✅ |
JobId | ✅ | ❌ |
Job.number | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
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: "Bill.invoiceNumber:ASC" Order to return results in. ex "date:desc" |
credit | boolean Filter by credit status of the Bill. Operates as follows:
|
{- "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.
The parameters of this endpoint are the same as for Bills Search
The following parameters are also supported in addition to the ones listed in Bills Search
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. |
{- "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.
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Default: false 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.
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Filter by credit status of the Bill. Operates as follows:
|
{- "count": "string",
- "estimate": true
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | 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 | 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 | 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 | 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 | 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
number | ✅ | ✅ |
externalId | ✅ | ✅ |
type | ✅ | ✅ |
amount | ✅ | ✅ |
unused | ✅ | ✅ |
description | ✅ | ✅ |
currency | ✅ | ✅ |
receiveDate | ✅ | ✅ |
postingDate | ✅ | ✅ |
status | ✅ | ✅ |
applyToInvoices | ✅ | ❌ |
CustomerId | ✅ | ❌ |
LedgerAccountId | ✅ | ❌ |
UnappliedCashAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Cash Receipt 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 | string Cash Receipt 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 | string CashReceipt._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"
}
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
symbol | ✅ | ✅ |
name | ✅ | ✅ |
impair | ✅ | ✅ |
hidden | ✅ | ✅ |
isFiat | ✅ | ✅ |
rateSymbol | ✅ | ✅ |
rateId | ❌ | ❌ |
rateSource | ❌ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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: "symbol:ASC" 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"
}
}
List of Coin Crypto Transactions. Not orderable.
Field | Filterable |
---|---|
_id | ✅ |
CostCenterId | ✅ |
createdAt | ✅ |
currency | ✅ |
Custom1Id | ✅ |
Custom2Id | ✅ |
Custom3Id | ✅ |
CustomerId | ✅ |
externalId | ✅ |
externalSource | ✅ |
fCoinId | ✅ |
fPrice | ✅ |
fQty | ✅ |
fWalletId | ✅ |
isJournalStale | ✅ |
JobId | ✅ |
JournalId | ✅ |
Journal.number | ✅ |
LedgerAccountId | ✅ |
locked | ✅ |
notes | ✅ |
ProductId | ✅ |
rCoinId | ✅ |
reference | ✅ |
rPrice | ✅ |
rQty | ✅ |
rWalletId | ✅ |
sCoinId | ✅ |
sPrice | ✅ |
sQty | ✅ |
sWalletId | ✅ |
SystemJobId | ✅ |
txHash | ✅ |
type | ✅ |
updatedAt | ✅ |
VendorId | ✅ |
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. |
filter | string JSON Key:Value object to filter results on |
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
Field | Filterable | Orderable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
rate | ❌ | ❌ |
value | ❌ | ❌ |
gainLoss | ❌ | ❌ |
isFiat | ❌ | ❌ |
rateSymbol | ❌ | ❌ |
custom | ❌ | ❌ |
impair | ❌ | ❌ |
quantity | ❌ | ❌ |
totalCostBasis | ❌ | ❌ |
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. |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
}
]
}
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.
See /crypto-transactions/coin/search for filterable fields.
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. |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": 0,
- "estimate": true
}
{- "_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 balance descriptions
Field | Filterable | Orderable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
symbol | ✅ | ✅ |
rate | ❌ | ❌ |
value | ❌ | ❌ |
gainLoss | ❌ | ❌ |
isFiat | ✅ | ❌ |
rateSymbol | ✅ | ✅ |
custom | ❌ | ❌ |
impair | ❌ | ❌ |
quantity | ❌ | ❌ |
totalCostBasis | ❌ | ❌ |
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. |
filter | string JSON Key:Value object to filter results on |
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" 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": { }
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
AccountingPeriodId | ✅ | ❌ |
ChildId | ✅ | ❌ |
ParentId | ✅ | ❌ |
AccountingPeriod.end | ❌ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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: "number:ASC" 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 | string Consolidation Rate Id |
Gets one rate record.
id required | 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 | 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
✅ | ❌ | |
phone | ✅ | ❌ |
isPrimary | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
CustomerId | ✅ | ❌ |
VendorId | ✅ | ❌ |
Customer.name | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
{- "_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 | 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
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
description | ✅ | ✅ |
inactive | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Cost Center 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 | string Cost Center 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 | string Transaction 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.
See /crypto-transactions/search for filterable fields.
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. |
filter | string JSON Key:Value object to filter results on |
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
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
CostCenter.id | ❌ | ✅ |
CostCenterId | ✅ | ❌ |
createdAt | ✅ | ✅ |
currency | ✅ | ✅ |
Custom1Id | ✅ | ❌ |
Custom1.id | ❌ | ✅ |
Custom2Id | ✅ | ❌ |
Custom2.id | ❌ | ✅ |
Custom3Id | ✅ | ❌ |
Custom3.id | ❌ | ✅ |
Customer.id | ❌ | ✅ |
CustomerId | ✅ | ❌ |
date | ✅ | ✅ |
externalId | ✅ | ✅ |
externalSource | ✅ | ✅ |
fCoin.symbol | ❌ | ✅ |
fCoinId | ✅ | ❌ |
fPrice | ✅ | ✅ |
fQty | ✅ | ✅ |
fWallet.name | ❌ | ✅ |
fWalletId | ✅ | ❌ |
isJournalStale | ✅ | ✅ |
Job.number | ❌ | ✅ |
JobId | ✅ | ❌ |
Journal.number | ✅ | ✅ |
JournalId | ✅ | ❌ |
LedgerAccount.number | ❌ | ✅ |
LedgerAccountId | ✅ | ❌ |
locked | ✅ | ✅ |
notes | ✅ | ✅ |
Product.id | ❌ | ✅ |
ProductId | ✅ | ❌ |
rCoin.symbol | ❌ | ✅ |
rCoinId | ✅ | ❌ |
reference | ✅ | ✅ |
rPrice | ✅ | ✅ |
rQty | ✅ | ✅ |
rWallet.name | ❌ | ✅ |
rWalletId | ✅ | ❌ |
sCoin.symbol | ❌ | ✅ |
sCoinId | ✅ | ❌ |
sPrice | ✅ | ✅ |
sQty | ✅ | ✅ |
sWallet.name | ❌ | ✅ |
sWalletId | ✅ | ❌ |
SystemJobId | ✅ | ✅ |
txHash | ✅ | ✅ |
type | ✅ | ✅ |
updatedAt | ✅ | ✅ |
Vendor.id | ❌ | ✅ |
VendorId | ✅ | ❌ |
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. |
filter | string JSON Key:Value object to filter results on |
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" 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 | string Crypto Transaction 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 | string Crypto Transaction 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.
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
description | ✅ | ✅ |
inactive | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
name required | string Custom Dimension Object Type Name |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
name required | string Custom Dimension Object Type Name |
filter | string JSON Key:Value object to filter results on |
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 | string Custom Dimension 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 | string Custom Dimension 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"
}
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": [ ]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
externalId | ✅ | ✅ |
✅ | ✅ | |
description | ✅ | ✅ |
terms | ✅ | ✅ |
customFields | ✅ | ❌ |
inactive | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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,
- "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 | 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. The response and parameters of this endpoint are the same as for Invoices Search
id required | string Customer._id |
{- "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.
The parameters of this endpoint are the same as for Invoices Search
id required | string Customer._id |
{- "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 | 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.
For the new endpoint documentation, refer to: GET /reports/trial-balance-by-currency
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,
- "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.
For the new endpoint documentation, refer to: GET /financials/balance-sheet
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.
For the new endpoint documentation, refer to: GET /financials/balance-sheet
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.
For the new endpoint documentation, refer to: GET /reports/ledger-account-by-dimension
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.
For the new endpoint documentation, refer to: GET /general-ledger
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.
For the new endpoint documentation, refer to: GET /trial-balance
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
Field | Filterable | Sortable |
---|---|---|
LedgerAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
currency | ✅ | ✅ |
Location_currency | ✅ | ✅ |
LedgerAccount_number | ❌ | ✅ |
Location_name | ❌ | ✅ |
AccountingPeriodId required | string AccountPeriod._id |
filter | string JSON Key:Value object to filter results on |
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: "currency:ASC" 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",
- "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
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
number | ✅ | ✅ |
externalId | ✅ | ✅ |
type | ✅ | ✅ |
reference | ✅ | ✅ |
invoiceDate | ✅ | ✅ |
postedDate | ✅ | ✅ |
dueDate | ✅ | ✅ |
amountPayable | ✅ | ✅ |
amount | ✅ | ✅ |
CustomerId | ✅ | ❌ |
Customer.name | ❌ | ✅ |
customFields | ✅ | ❌ |
currency | ✅ | ✅ |
LocationId | ✅ | ❌ |
ICLocationId | ✅ | ❌ |
status | ✅ | ✅ |
SalesOrderId | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" Order to return results in. ex "date:desc" |
credit | boolean Default: false If true, only returns AR Credits i.e. invoices with a negative amount. If false or not specified, only returns invoice 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 Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id | |||||||||||||||||||||||||||||||||||
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": "Template with name 'Default' and format = 'pdf'",
- "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,
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
description | ✅ | ✅ |
unitAmount | ✅ | ✅ |
taxAmount | ✅ | ✅ |
quantity | ✅ | ✅ |
customFields | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
InvoiceId | ✅ | ❌ |
Invoice.status | ✅ | ✅ |
Invoice.invoiceDate | ✅ | ✅ |
Invoice.AgentId | ✅ | ❌ |
Invoice.LocationId | ✅ | ❌ |
Invoice.ICLocationId | ✅ | ❌ |
Invoice.createdAt | ✅ | ✅ |
Invoice.updatedAt | ✅ | ✅ |
Invoice.number | ✅ | ✅ |
CostCenterId | ✅ | ❌ |
ItemId | ✅ | ❌ |
Item.salePrice | ✅ | ✅ |
Item.purchasePrice | ✅ | ✅ |
JobId | ✅ | ❌ |
LedgerAccountId | ✅ | ❌ |
ProductId | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
TaxCodeId | ✅ | ❌ |
LedgerAccount.name | ❌ | ✅ |
Location.name | ❌ | ✅ |
ICLocation.name | ❌ | ✅ |
TaxCode.code | ❌ | ✅ |
Customer.name | ❌ | ✅ |
Product.id | ❌ | ✅ |
CostCenter.id | ❌ | ✅ |
Job.number | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" Order to return results in. ex "date:desc" |
credit | boolean Filter by credit status of the Invoice. Operates as follows:
|
{- "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"
}
]
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Filter by credit status of the Invoice. Operates as follows:
|
{- "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
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Default: false If true, only counts AR Credits i.e. invoices with a negative amount. If false or not specified, only counts invoice with a positive amount. |
{- "count": "string",
- "estimate": true
}
creates a new Invoice Line
id required | 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 | 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 Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id |
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": "Template with name 'Default' and format = 'pdf'",
- "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 | 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
}
{- "_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 | 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 | string Invoice._id |
Optional body to set data on void journal entry
description | string |
postedDate | string <date> Default: "NOW" |
{- "description": "string",
- "postedDate": "NOW"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
externalIds | ✅ | ❌ |
number | ✅ | ✅ |
name | ✅ | ✅ |
sku | ✅ | ✅ |
type | ✅ | ❌ |
description | ✅ | ✅ |
inactive | ✅ | ❌ |
salePrice | ✅ | ❌ |
purchasePrice | ✅ | ❌ |
customFields | ✅ | ❌ |
InvoiceAccountId | ✅ | ❌ |
BillAccountId | ✅ | ❌ |
InventoryAccountId | ✅ | ❌ |
CogsAccountId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 Default: "Settings.defaultItemInvoiceAccountId" Ref: Ledger Account._id |
object | |
BillAccountId | integer Default: "Settings.defaultItemInventoryAccrualId" Ref: Ledger Account._id |
object | |
InventoryAccountId | integer Default: "Settings.defaultItemInventoryAssetId" Ref: Ledger Account._id |
object | |
CogsAccountId | integer Default: "Settings.defaultItemCOGSId" Ref: Ledger Account._id |
object |
{- "externalIds": "string",
- "name": "string",
- "salePrice": "0",
- "purchasePrice": "string",
- "description": "string",
- "sku": "string",
- "type": "inventory",
- "inactive": false,
- "customFields": { },
- "InvoiceAccountId": "Settings.defaultItemInvoiceAccountId",
- "InvoiceAccount": {
- "number": "string"
}, - "BillAccountId": "Settings.defaultItemInventoryAccrualId",
- "BillAccount": {
- "number": "string"
}, - "InventoryAccountId": "Settings.defaultItemInventoryAssetId",
- "InventoryAccount": {
- "number": "string"
}, - "CogsAccountId": "Settings.defaultItemCOGSId",
- "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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | 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 | string Item Id |
childWh | boolean Determine if the summary balances include stock from child warehouses |
[- {
- "wId": 0,
- "wName": "string",
- "wPid": 0,
- "qtyAvailable": "1"
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
number | ✅ | ✅ |
description | ✅ | ✅ |
status | ✅ | ❌ |
inactive | ✅ | ❌ |
CustomerId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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> Default: "First day of month after posted date." If entryType = 'Reversing', then this date will be used as the postedDate for the reversing Transaction Lines. |
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": "First day of month after posted date.",
- "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
}
]
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
currency | ✅ | ❌ |
entryType | ✅ | ✅ |
ICLocationId | ✅ | ❌ |
LocationId | ✅ | ❌ |
number | ✅ | ✅ |
postedDate | ✅ | ✅ |
reference | ✅ | ❌ |
reportingCurrency | ✅ | ❌ |
reverseDate | ✅ | ✅ |
sourceLedger | ✅ | ✅ |
status | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
transactionDate | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 | 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 | 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> Default: "First day of month after posted date." If entryType = 'Reversing', then this date will be used as the postedDate for the reversing Transaction Lines. |
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": "First day of month after posted date.",
- "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
}
]
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
elim2 | ✅ | ❌ |
BillId | ✅ | ❌ |
elimination | ✅ | ❌ |
CashReceiptId | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
currency | ✅ | ✅ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
CustomerId | ✅ | ❌ |
description | ✅ | ❌ |
InvoiceId | ✅ | ❌ |
ICAccountId | ✅ | ❌ |
ICLocationId | ✅ | ❌ |
JobId | ✅ | ❌ |
JournalId | ✅ | ✅ |
Journal_entryType | ✅ | ✅ |
Journal_notes | ✅ | ❌ |
Journal_number | ✅ | ✅ |
Journal_reference | ✅ | ❌ |
Journal_status | ✅ | ❌ |
Journal_sourceLedger | ✅ | ✅ |
Journal_AccountingPeriodId | ✅ | ❌ |
LedgerAccount_type | ✅ | ✅ |
LedgerAccount_subtype | ✅ | ✅ |
LedgerAccountId | ✅ | ❌ |
Location_currency_rate | ✅ | ✅ |
Location_currency_debit | ✅ | ✅ |
Location_currency_credit | ✅ | ✅ |
LocationId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
ProductId | ✅ | ❌ |
postedDate | ✅ | ✅ |
transactionDate | ✅ | ✅ |
reconcileId | ✅ | ❌ |
reversing | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
VendorId | ✅ | ❌ |
VendorCreditId | ✅ | ❌ |
BatchPaymentId | ✅ | ❌ |
PaymentId | ✅ | ❌ |
CryptoTxnId | ✅ | ❌ |
credit | ✅ | ✅ |
debit | ✅ | ✅ |
txn_type | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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": "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",
- "CryptoTxnId": 0
}
]
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
number | ✅ | ✅ |
naturalBalance | ✅ | ✅ |
description | ✅ | ✅ |
includeLocationChildren | ✅ | ✅ |
type | ✅ | ✅ |
subtype | ✅ | ✅ |
canDelete | ✅ | ✅ |
revalue_fx | ✅ | ✅ |
inactive | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
LocationId | ✅ | ❌ |
Location.id | ❌ | ✅ |
ICAccountId | ✅ | ❌ |
ICAccount.number | ❌ | ❌ |
useHistoricalConsolidationRate | ✅ | ❌ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Ledger Account 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 | string Ledger Account 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"
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ❌ |
number | ✅ | ✅ |
name | ✅ | ❌ |
id required | string Location _id |
filter | string JSON Key:Value object to filter results on |
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" Order to return results in. ex "date:desc" |
{- "hasNextPage": true,
- "cursor": "string",
- "data": [
- {
- "_id": 0,
- "number": "string",
- "name": "string",
- "ICAccountId": 0,
- "LocationId": 0,
- "ICAccount": {
- "name": "string",
- "number": "string"
}, - "Location": {
- "id": "string",
- "name": "string"
}
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
description | ✅ | ✅ |
currency | ✅ | ✅ |
externalId | ✅ | ✅ |
externalSource | ✅ | ✅ |
parent_id | ✅ | ❌ |
Parent.id | ❌ | ❌ |
FXGLAccountId | ✅ | ❌ |
filter | string JSON Key:Value object to filter results on |
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" 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
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
{- "_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 | 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 | 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
VendorId | ✅ | ✅ |
ItemId | ✅ | ✅ |
partNumber | ✅ | ✅ |
Item.name | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
order | string Default: "_id:ASC" 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 | string Part Number 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 | string Part Number 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
externalId | ✅ | ✅ |
type | ✅ | ❌ |
checkNumber | ✅ | ✅ |
status | ✅ | ❌ |
amount | ✅ | ✅ |
paymentDate | ✅ | ✅ |
postedDate | ✅ | ✅ |
memo | ✅ | ❌ |
notes | ✅ | ❌ |
currency | ✅ | ✅ |
BillId | ✅ | ❌ |
VendorId | ✅ | ❌ |
CustomerId | ✅ | ❌ |
VendorCreditId | ✅ | ❌ |
LedgerAccountId | ✅ | ❌ |
CashReceiptId | ✅ | ❌ |
LocationId | ✅ | ❌ |
BatchPaymentId | ✅ | ❌ |
InvoiceId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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.
filter | string JSON Key:Value object to filter results on |
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
}
{- "_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 | 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 | 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 | string Period 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 | string AccountingPeriod._id |
[- {
- "parentId": 0,
- "parentCurrency": "string",
- "childId": 0,
- "childCurrency": "string"
}
]
Open a specific period task
id required | string Period 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 or null |
type | string or null |
name | string or null |
data | object or null |
{- "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
Field | Filterable |
---|---|
_id | ✅ |
userId | ✅ |
type | ✅ |
key | ✅ |
name | ✅ |
data | ❌ |
createdAt | ❌ |
updatedAt | ❌ |
filter | string JSON Key:Value object to filter results on |
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"
}
]
}
{- "_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 | 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"
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
description | ✅ | ✅ |
inactive | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
Update Product
id required | 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"
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
externalId | ✅ | ✅ |
number | ✅ | ✅ |
description | ✅ | ❌ |
issueDate | ✅ | ✅ |
deliveryDate | ✅ | ✅ |
status | ✅ | ❌ |
amount | ✅ | ✅ |
currency | ✅ | ❌ |
VendorId | ✅ | ❌ |
WarehouseId | ✅ | ❌ |
LocationId | ✅ | ❌ |
customFields | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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> Default: "NOW" |
deliveryDate | string <date> Default: "NOW" |
attachments | Array of strings <uri> [ items <uri > ] Links to any attached documents |
TemplateId | integer Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id |
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 Default: "Ref: Settings.defaultInventoryAccrualId" Must be an active acccount "Ref: LedgerAccount._id" |
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": "NOW",
- "deliveryDate": "NOW",
- "currency": "string",
- "TemplateId": "Template with name 'Default' and format = 'pdf'",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "InventoryReceivingAccountId": "Ref: Settings.defaultInventoryAccrualId",
- "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": "NOW",
- "deliveryDate": "NOW",
- "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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
idx | ✅ | ✅ |
description | ✅ | ✅ |
amount | ✅ | ✅ |
quantity | ✅ | ✅ |
taxAmount | ✅ | ✅ |
quantityReceived | ✅ | ✅ |
customFields | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
PurchaseOrderId | ✅ | ❌ |
PurchaseOrder.number | ✅ | ✅ |
PurchaseOrder.status | ✅ | ✅ |
PurchaseOrder.VendorId | ✅ | ❌ |
PurchaseOrder.LocationId | ✅ | ❌ |
PurchaseOrder.ICLocationId | ✅ | ❌ |
PurchaseOrder.WarehouseId | ✅ | ❌ |
PurchaseOrder.createdAt | ✅ | ✅ |
PurchaseOrder.updatedAt | ✅ | ✅ |
ItemId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
JobId | ✅ | ❌ |
ProductId | ✅ | ❌ |
TaxCodeId | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
Item.name | ❌ | ✅ |
Item.salePrice | ❌ | ✅ |
Item.purchasePrice | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
SalesOrder.number | ❌ | ✅ |
Location.name | ❌ | ✅ |
ICLocation.name | ❌ | ✅ |
Warehouse.name | ❌ | ✅ |
CostCenter.id | ❌ | ✅ |
Product.id | ❌ | ✅ |
Job.number | ❌ | ✅ |
TaxCode.code | ❌ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
idx | ✅ | ✅ |
description | ✅ | ✅ |
amount | ✅ | ✅ |
quantity | ✅ | ✅ |
taxAmount | ✅ | ✅ |
quantityReceived | ✅ | ✅ |
customFields | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
PurchaseOrderId | ✅ | ❌ |
PurchaseOrder.number | ✅ | ✅ |
PurchaseOrder.status | ✅ | ✅ |
PurchaseOrder.VendorId | ✅ | ❌ |
PurchaseOrder.LocationId | ✅ | ❌ |
PurchaseOrder.ICLocationId | ✅ | ❌ |
PurchaseOrder.WarehouseId | ✅ | ❌ |
PurchaseOrder.createdAt | ✅ | ✅ |
PurchaseOrder.updatedAt | ✅ | ✅ |
ItemId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
JobId | ✅ | ❌ |
ProductId | ✅ | ❌ |
TaxCodeId | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
Item.name | ❌ | ✅ |
Item.salePrice | ❌ | ✅ |
Item.purchasePrice | ❌ | ✅ |
Vendor.name | ❌ | ✅ |
SalesOrder.number | ❌ | ✅ |
Location.name | ❌ | ✅ |
ICLocation.name | ❌ | ✅ |
Warehouse.name | ❌ | ✅ |
CostCenter.id | ❌ | ✅ |
Product.id | ❌ | ✅ |
Job.number | ❌ | ✅ |
TaxCode.code | ❌ | ✅ |
id required | string PurchaseOrder._id |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Purchase Order._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 | string PurchaseOrder id |
Get one Purchase Order
id required | string Purchase Order._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 | string Purchase Order._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 Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id |
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 Default: "Ref: Settings.defaultInventoryAccrualId" Must be an active acccount "Ref: LedgerAccount._id" |
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": "Template with name 'Default' and format = 'pdf'",
- "customFields": { },
- "LocationId": 0,
- "Location": {
- "id": "string"
}, - "ICLocationId": 0,
- "ICLocation": {
- "id": "string"
}, - "VendorId": 0,
- "Vendor": {
- "name": "string"
}, - "WarehouseId": 0,
- "Warehouse": {
- "name": "string"
}, - "InventoryReceivingAccountId": "Ref: Settings.defaultInventoryAccrualId",
- "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 | string POLineItem id |
Update a Purchase Order Line Item
id required | 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"
}
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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
enabled | ✅ | ✅ |
description | ✅ | ✅ |
eventType | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 | string Recurring Job 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. |
{- "data": [
- {
- "type": "summary",
- "label": "string",
- "depth": 0,
- "values": { },
- "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.
|
{- "data": [
- {
- "type": "summary",
- "label": "string",
- "depth": 0,
- "values": { },
- "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"
}
]
}
Search for reports
type | string Enum: "balanceSheet" "incomeStatement" "journalLines" "generalLedger" "trialBalance" "trialBalanceByCurrency" "ledgerAccountReview" "ledgerAccountByDimension" 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
}
}, - "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" |
BalanceSheetReportData (object) or IncomeStatementReportData (object) or TrialBalanceReportData (object) or TrialBalanceByCurrencyReportData (object) or GeneralLedgerReportData (object) or JournalLinesReportData (object) or LedgerAccountByDimensionReportData (object) or LedgerAccountReviewReportData (object) JSON object containing configuration for the report. |
{- "name": "string",
- "type": "balanceSheet",
- "data": {
- "LocationId": 0,
- "date": "2019-08-24",
- "configuration": {
- "financialReportType": "entity",
- "ReportLayoutId": 0
}
}
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Updates a report
id required | 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) JSON object containing updated configuration for the report. |
{- "name": "string",
- "data": {
- "LocationId": 0,
- "date": "2019-08-24",
- "configuration": {
- "financialReportType": "entity",
- "ReportLayoutId": 0
}
}
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "data": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ❌ |
elim2 | ✅ | ❌ |
BillId | ✅ | ❌ |
elimination | ✅ | ❌ |
CashReceiptId | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
currency | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
CustomerId | ✅ | ❌ |
description | ✅ | ❌ |
InvoiceId | ✅ | ❌ |
ICAccountId | ✅ | ❌ |
ICLocationId | ✅ | ❌ |
JobId | ✅ | ❌ |
JournalId | ✅ | ❌ |
Journal_entryType | ✅ | ❌ |
Journal_notes | ✅ | ❌ |
Journal_number | ✅ | ❌ |
Journal_reference | ✅ | ❌ |
Journal_status | ✅ | ❌ |
Journal_sourceLedger | ✅ | ❌ |
Journal_AccountingPeriodId | ✅ | ❌ |
Location_currency_rate | ✅ | ❌ |
Location_currency_debit | ✅ | ❌ |
Location_currency_credit | ✅ | ❌ |
LocationId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
ProductId | ✅ | ❌ |
postedDate | ✅ | ❌ |
transactionDate | ✅ | ❌ |
reconcileId | ✅ | ❌ |
reversing | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
VendorId | ✅ | ❌ |
VendorCreditId | ✅ | ❌ |
BatchPaymentId | ✅ | ❌ |
PaymentId | ✅ | ❌ |
credit | ✅ | ❌ |
debit | ✅ | ❌ |
txn_type | ✅ | ❌ |
createdAt | ✅ | ❌ |
updatedAt | ✅ | ❌ |
filter | string JSON Key:Value object to filter results on |
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"
}
]
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 |
{- "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
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 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 |
consolidated | boolean Default: false Set to true to return consolidated balances of all locations under the given LocationId Consolidated report will:
Set to false to only return balances from the given LocationId Unconsolidates report will:
|
{- "data": [
- {
- "LedgerAccountId": 0,
- "LedgerAccount_number": "string",
- "LedgerAccount_name": "string",
- "LedgerAccount_type": "Asset",
- "LedgerAccount_subtype": "string",
- "LedgerAccount_reportGroup": "Cash",
- "currency": "string",
- "debit": "string",
- "credit": "string",
- "balance": "string"
}
], - "translation": "string"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
type | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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",
- "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",
"children": [
{
"id": "current-assets",
"header": "Current Assets",
"summary": "Total Current Assets",
"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",
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
]
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get one ReportLayout
id required | string ReportLayout Id |
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update One ReportLayout
id required | 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) (Section) |
{- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
]
}
{- "_id": 0,
- "name": "string",
- "type": "balanceSheet",
- "sections": [
- {
- "id": "string",
- "header": "string",
- "summary": "string",
- "accounts": {
- "reportGroups": [
- "string"
], - "subtypes": [
- "string"
], - "LedgerAccountIds": [
- "string"
]
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Accepts a Sales Order that has been issued
id required | 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 | 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"
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
number | ✅ | ✅ |
externalId | ✅ | ✅ |
status | ✅ | ✅ |
CustomerId | ✅ | ❌ |
reference | ✅ | ✅ |
externalRef | ✅ | ✅ |
LocationId | ✅ | ❌ |
quoteDate | ✅ | ✅ |
quoteExpiration | ✅ | ✅ |
orderDate | ✅ | ✅ |
deliveryDate | ✅ | ✅ |
completeDate | ✅ | ✅ |
amount | ✅ | ✅ |
customFields | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id |
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": "Template with name 'Default' and format = 'pdf'",
- "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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
SalesOrder.number | ✅ | ✅ |
SalesOrder.status | ✅ | ❌ |
SalesOrder.reference | ✅ | ❌ |
SalesOrder.externalRef | ✅ | ❌ |
SalesOrder.quoteDate | ✅ | ✅ |
SalesOrder.orderDate | ✅ | ✅ |
SalesOrder.completeDate | ✅ | ✅ |
SalesOrder.createdAt | ✅ | ✅ |
SalesOrder.updatedAt | ✅ | ✅ |
SalesOrder.CustomerId | ✅ | ❌ |
SalesOrder.LocationId | ✅ | ❌ |
Customer.name | ❌ | ✅ |
Location.id | ❌ | ✅ |
TaxCode.code | ❌ | ✅ |
PurchaseOrder.number | ❌ | ✅ |
description | ✅ | ❌ |
externalId | ✅ | ❌ |
amount | ✅ | ✅ |
quantity | ✅ | ✅ |
quantityFulFilled | ✅ | ✅ |
ItemId | ✅ | ❌ |
Item.name | ❌ | ✅ |
Item.salePrice | ❌ | ✅ |
Item.purchasePrice | ❌ | ✅ |
CostCenterId | ✅ | ❌ |
ProductId | ✅ | ❌ |
JobId | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
The same filters as Line Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | 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> Default: "NOW" Cannot be in the future Must be after all of the stock adjustments linked to this sales order |
{- "completeDate": "NOW"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string SOLineItem 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 | string Sales Order._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 | 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 Default: "Template with name 'Default' and format = 'pdf'" Ref: Template._id |
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": "Template with name 'Default' and format = 'pdf'",
- "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 | string SOLineItem._id |
Update a Sales Order Line
id required | string SOLineItem._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 | 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> Default: "NOW" |
dontRunCostBasis | boolean Default: false Don't run cost basis on fulfillment |
{- "quantity": "string",
- "date": "NOW",
- "WarehouseId": 0,
- "dontRunCostBasis": false
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
SalesOrder.number | ✅ | ✅ |
SalesOrder.status | ✅ | ❌ |
SalesOrder.reference | ✅ | ❌ |
SalesOrder.externalRef | ✅ | ❌ |
SalesOrder.quoteDate | ✅ | ✅ |
SalesOrder.orderDate | ✅ | ✅ |
SalesOrder.completeDate | ✅ | ✅ |
SalesOrder.createdAt | ✅ | ✅ |
SalesOrder.updatedAt | ✅ | ✅ |
SalesOrder.CustomerId | ✅ | ❌ |
SalesOrder.LocationId | ✅ | ❌ |
Customer.name | ❌ | ✅ |
Location.id | ❌ | ✅ |
TaxCode.code | ❌ | ✅ |
PurchaseOrder.number | ❌ | ✅ |
description | ✅ | ❌ |
externalId | ✅ | ❌ |
amount | ✅ | ✅ |
quantity | ✅ | ✅ |
quantityFulFilled | ✅ | ✅ |
ItemId | ✅ | ❌ |
Item.name | ❌ | ✅ |
Item.salePrice | ❌ | ✅ |
Item.purchasePrice | ❌ | ✅ |
CostCenterId | ✅ | ❌ |
ProductId | ✅ | ❌ |
JobId | ✅ | ❌ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
id required | string SalesOrder Id |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
The same filters as Line Search can be used here.
id required | string SalesOrder Id |
filter | string JSON Key:Value object to filter results on |
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 | string Sales Order Line _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> Default: "NOW" |
object | |
runCostBasis | boolean Default: false Run cost basis on fulfillment |
ReturnAccountId | number Ref: LedgerAccount._id |
object |
{- "quantity": "string",
- "date": "NOW",
- "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
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
dateReceived | ✅ | ✅ |
postedDate | ✅ | ✅ |
reference | ✅ | ❌ |
VendorId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
quantityReceived | ✅ | ✅ |
amount | ✅ | ✅ |
status | ✅ | ❌ |
ShipmentReceiptId | ✅ | ❌ |
WarehouseId | ✅ | ❌ |
ItemId | ✅ | ❌ |
POLineItemId | ✅ | ❌ |
PurchaseOrderId | ✅ | ❌ |
SOLineItemId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
VendorId | ✅ | ❌ |
ReceiveJournalId | ✅ | ❌ |
ReversalJournalId | ✅ | ❌ |
InventoryReceivingAccountId | ✅ | ❌ |
ShipmentReceipt.dateReceived | ✅ | ✅ |
ShipmentReceipt.postedDate | ✅ | ✅ |
ShipmentReceipt.reference | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
The same filters as Line Search can be used here.
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
{- "count": "string",
- "estimate": true
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | 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 | string ShipmentReceiptLine._id |
runCostBasis | boolean Default: false Set to true to run inventory cost-basis upon success |
{- "runCostBasis": false
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ❌ |
reference | ✅ | ❌ |
description | ✅ | ❌ |
LedgerAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
status | ✅ | ❌ |
currency | ✅ | ❌ |
endDate | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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. |
{- "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"
}
{- "_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"
}
}
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
ItemId | ✅ | ❌ |
description | ✅ | ❌ |
WarehouseId | ✅ | ❌ |
locked | ✅ | ❌ |
transactionDate | ✅ | ✅ |
postedDate | ✅ | ✅ |
AdjustmentLedgerAccountId | ✅ | ❌ |
JournalId | ✅ | ❌ |
type | ✅ | ❌ |
PurchaseOrderId | ✅ | ❌ |
POLineItemId | ✅ | ❌ |
SalesOrderId | ✅ | ❌ |
SOLineItemId | ✅ | ❌ |
TransferId | ✅ | ❌ |
quantity | ✅ | ✅ |
qtyAvailable | ✅ | ✅ |
qtyPicked | ✅ | ✅ |
currency | ✅ | ❌ |
price | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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> Default: "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": "transactionDate",
- "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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Statement Id |
runCostBasis | boolean Default: false If true, will run cost basis calculation after delete succeeds. |
Update Stock Adjustment
id required | string Stock Adjustment 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> Default: "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": "transactionDate",
- "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"
}
Field | Filterable | Sortable |
---|---|---|
ItemId | ✅ | ✅ |
Item.number | ✅ | ✅ |
Item.name | ✅ | ✅ |
Item.sku | ✅ | ✅ |
Item.description | ✅ | ✅ |
WarehouseId | ✅ | ✅ |
Warehouse.name | ✅ | ✅ |
qtyAvailable | ❌ | ✅ |
transactionDate | ✅ | ❌ |
postedDate | ✅ | ❌ |
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
filter | string JSON Key:Value object to filter results on |
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" 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.
The same filters as Stock Summary can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
status | ✅ | ❌ |
submitDate | ✅ | ✅ |
ItemId | ✅ | ❌ |
WarehouseId | ✅ | ❌ |
quantity | ✅ | ❌ |
unitCost | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 | string Stock Count 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 | 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 in descending order by date
Field | Filterable |
---|---|
_id | ✅ |
tenantId | ✅ |
date | ✅ |
queueName | ✅ |
status | ✅ |
name | ✅ |
result | ❌ |
progress | ❌ |
url | ❌ |
createdAt | ❌ |
updatedAt | ❌ |
filter | string JSON Key:Value object to filter results on |
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. |
queueName | string Enum: "journal" "bill" "crypto" "invoice" "stockCounts" "ledgerAccounts" "customers" "vendors" "items" "warehouses" "stockAdjustments" "vendorPrices" "costCenters" "jobs" "products" "custom1" "custom2" "custom3" "bankTransactions" Example: queueName={"in":["ledgerAccounts","customers","vendors"]}.
or simple a string 'vendorPrice'
JSON Key:Value object to filter queueNames on |
{- "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
Field | Filterable |
---|---|
_id | ✅ |
tenantId | ✅ |
date | ✅ |
queueName | ✅ |
status | ✅ |
name | ✅ |
result | ❌ |
progress | ❌ |
url | ❌ |
createdAt | ❌ |
updatedAt | ❌ |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
queueName | string Enum: "journal" "bill" "crypto" "invoice" "stockCounts" "ledgerAccounts" "customers" "vendors" "items" "warehouses" "stockAdjustments" "vendorPrices" "costCenters" "jobs" "products" "custom1" "custom2" "custom3" Example: queueName={"in":["ledgerAccounts","customers","vendors"]}.
or simple a string 'vendorPrice'
JSON Key:Value object to filter queueNames on |
{- "count": 0,
- "estimate": true
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
code | ✅ | ✅ |
description | ✅ | ✅ |
rate | ✅ | ✅ |
LedgerAccountId | ✅ | ❌ |
LedgerAccount.number | ❌ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
Update One Tax Code
id required | string Tax Code 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"
}
{- "_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",
- "name": "string",
- "type": "Invoice",
- "format": "pdf",
- "data": { }
}
Update One Template
id required | 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
type | ✅ | ✅ |
format | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
This endpoint is deprecated. Please use the new GET /journals/lines endpoint instead.
For the new endpoint documentation, refer to: GET /journals/lines
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
elimination | ✅ | ❌ |
elim2 | ✅ | ❌ |
CostCenterId | ✅ | ❌ |
currency | ✅ | ✅ |
Custom1Id | ✅ | ❌ |
Custom2Id | ✅ | ❌ |
Custom3Id | ✅ | ❌ |
CustomerId | ✅ | ❌ |
description | ✅ | ❌ |
ICAccountId | ✅ | ❌ |
ICLocationId | ✅ | ❌ |
JobId | ✅ | ❌ |
JournalId | ✅ | ✅ |
Journal_entryType | ✅ | ✅ |
Journal_notes | ✅ | ❌ |
Journal_number | ✅ | ✅ |
Journal_reference | ✅ | ❌ |
Journal_status | ✅ | ❌ |
Journal_sourceLedger | ✅ | ✅ |
Journal_AccountingPeriodId | ✅ | ❌ |
LedgerAccount_type | ✅ | ✅ |
LedgerAccount_subtype | ✅ | ✅ |
LedgerAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
ProductId | ✅ | ❌ |
postedDate | ✅ | ✅ |
transactionDate | ✅ | ✅ |
reconcileId | ✅ | ❌ |
reversing | ✅ | ❌ |
SystemJobId | ✅ | ❌ |
VendorId | ✅ | ❌ |
BatchPaymentId | ✅ | ❌ |
credit | ✅ | ✅ |
debit | ✅ | ✅ |
txn_type | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
]
}
Field | Filterable |
---|---|
_id | ✅ |
description | ✅ |
elimination | ✅ |
elim2 | ✅ |
CostCenterId | ✅ |
currency | ✅ |
Custom1Id | ✅ |
Custom2Id | ✅ |
Custom3Id | ✅ |
CustomerId | ✅ |
ICAccountId | ✅ |
ICLocationId | ✅ |
JobId | ✅ |
JournalId | ✅ |
Journal_entryType | ✅ |
Journal_notes | ✅ |
Journal_number | ✅ |
Journal_reference | ✅ |
Journal_status | ✅ |
Journal_sourceLedger | ✅ |
LedgerAccount_type | ✅ |
LedgerAccount_subtype | ✅ |
LedgerAccountId | ✅ |
LocationId | ✅ |
ProductId | ✅ |
postedDate | ✅ |
transactionDate | ✅ |
reconcileId | ✅ |
reversing | ✅ |
SystemJobId | ✅ |
VendorId | ✅ |
txn_type | ✅ |
createdAt | ✅ |
updatedAt | ✅ |
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. |
filter | string JSON Key:Value object to filter results on |
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"
}
]
}
Field | Filterable |
---|---|
_id | ✅ |
description | ✅ |
elimination | ✅ |
elim2 | ✅ |
CostCenterId | ✅ |
Custom1Id | ✅ |
Custom2Id | ✅ |
Custom3Id | ✅ |
CustomerId | ✅ |
ICAccountId | ✅ |
ICLocationId | ✅ |
JobId | ✅ |
JournalId | ✅ |
Journal_entryType | ✅ |
Journal_notes | ✅ |
Journal_number | ✅ |
Journal_reference | ✅ |
Journal_status | ✅ |
Journal_sourceLedger | ✅ |
LedgerAccount_type | ✅ |
LedgerAccount_subtype | ✅ |
LedgerAccountId | ✅ |
LocationId | ✅ |
ProductId | ✅ |
postedDate | ✅ |
transactionDate | ✅ |
reconcileId | ✅ |
reversing | ✅ |
SystemJobId | ✅ |
VendorId | ✅ |
currency | ✅ |
txn_type | ✅ |
createdAt | ✅ |
updatedAt | ✅ |
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. |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
"string"
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
ItemId | ✅ | ❌ |
status | ✅ | ❌ |
FromWarehouseId | ✅ | ❌ |
ToWarehouseId | ✅ | ❌ |
quantity | ✅ | ✅ |
date | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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 | string Transfer Id |
Request Body
dontRunCostBasis | boolean Default: false Set to true to prevent running costbasis upon success |
{- "dontRunCostBasis": false
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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"
], - "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 User Roles
id required | string User Id |
JSON body to update User Roles
id | string |
description | string |
name | string |
[- {
- "id": "string",
- "description": "string",
- "name": "string"
}
]
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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
id | ✅ | ✅ |
name | ✅ | ✅ |
externalId | ✅ | ✅ |
nameOnCheck | ✅ | ✅ |
accNumber | ✅ | ✅ |
✅ | ✅ | |
terms | ✅ | ✅ |
EIN | ✅ | ✅ |
currency | ✅ | ✅ |
customFields | ✅ | ❌ |
defaultDaysDue | ❌ | ❌ |
is1099 | ✅ | ❌ |
inactive | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
ExpenseAccountId | ❌ | ❌ |
ExpenseAccount.number | ❌ | ❌ |
filter | string JSON Key:Value object to filter results on |
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" 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. The response and parameters of this endpoint are the same as for Bills Search
id required | string Vendor._id |
{- "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.
filter | string JSON Key:Value object to filter results on |
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. The same filters as Search can be used here.
id required | string Vendor Id |
filter | string JSON Key:Value object to filter results on |
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. |
credit | boolean Default: false 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
}
{- "_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 | 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 | 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"
}
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
number | ✅ | ✅ |
externalId | ✅ | ✅ |
type | ✅ | ✅ |
amount | ✅ | ✅ |
unused | ✅ | ✅ |
description | ✅ | ✅ |
currency | ✅ | ✅ |
receiveDate | ✅ | ✅ |
postingDate | ✅ | ✅ |
status | ✅ | ✅ |
VendorId | ✅ | ❌ |
LedgerAccountId | ✅ | ❌ |
UnappliedCreditAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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 | string Vendor Credit 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 | string Vendor Credit 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 | string Vendor Credit._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"
}
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
VendorId | ✅ | ✅ |
ItemId | ✅ | ✅ |
price | ✅ | ✅ |
minValue | ✅ | ✅ |
maxValue | ✅ | ✅ |
Item | ❌ | ❌ |
Vendor | ❌ | ❌ |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
order | string Default: "_id:ASC" 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 or null 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 | string Vendor Price 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"
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
externalId | ✅ | ❌ |
address | ✅ | ✅ |
exchange | ✅ | ✅ |
description | ✅ | ✅ |
tag | ✅ | ✅ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
DepositAccountId | ✅ | ❌ |
WithdrawalAccountId | ✅ | ❌ |
LocationId | ✅ | ❌ |
DepositAccount.number | ❌ | ✅ |
WithdrawalAccount.number | ❌ | ✅ |
Location.id | ❌ | ✅ |
LocationId | string Filters for Wallets (Receive, Sent, Fee) in the specified location. Defaults to Global Location when not set. |
filter | string JSON Key:Value object to filter results on |
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" 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 Default: "Global Location" 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": "Global Location",
- "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": "Global Location"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
{- "_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 id value |
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": "Global Location"
}
List of Wallet's Coins with balance details
Field | Filterable | Orderable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
symbol | ✅ | ✅ |
isFiat | ❌ | ❌ |
rateSymbol | ✅ | ✅ |
quantity | ❌ | ❌ |
totalCostBasis | ❌ | ❌ |
id required | string Wallet.Id |
showHidden | string exclude zero balance coins |
date | string <date-time> date to filter by. defaults to "now" ISO DateTime |
hideZero | string <date-time> exclude zero balance coins |
filter | string JSON Key:Value object to filter results on |
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": { }
}
]
}
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
name | ✅ | ✅ |
inactive | ✅ | ✅ |
description | ✅ | ✅ |
externalId | ✅ | ✅ |
AddressId | ✅ | ❌ |
Address.label | ✅ | ❌ |
Address.line1 | ✅ | ❌ |
Address.line2 | ✅ | ❌ |
Address.city | ✅ | ❌ |
Address.state | ✅ | ❌ |
Address.zip | ✅ | ❌ |
Address.country | ✅ | ❌ |
ParentId | ✅ | ❌ |
LocationId | ✅ | ❌ |
createdAt | ✅ | ✅ |
updatedAt | ✅ | ✅ |
filter | string JSON Key:Value object to filter results on |
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" 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"
}
The same filters as Search can be used here.
filter | string JSON Key:Value object to filter results on |
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
}
{- "_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 | string id value |
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 | string ID of Warehouse |
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"
}
]
Field | Filterable | Sortable |
---|---|---|
_id | ✅ | ✅ |
WarehouseId | ✅ | ✅ |
ItemId | ✅ | ✅ |
minValue | ✅ | ✅ |
maxValue | ✅ | ✅ |
customFields | ✅ | ❌ |
Item | ❌ | ❌ |
Warehouse | ❌ | ❌ |
filter | string JSON Key:Value object to filter results on |
filterType | string Default: "all" Enum: "all" "any" Results will match "all" filters or just "any" of the passed filters |
order | string Default: "_id:ASC" 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,
- "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 | string Warehouse Item 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"
}