Ajera API
message for Ajera API general doc
For additional api methods see the following below:
Home
Contacts API
Employees API
Vendors API
Projects API
Expense Reports API
GL Accounts API
Various List Methods
Messages ¶
Group of all messages-related resources.
API Endpoint ¶
id
is an Ajera API specific id that is required to access the API for any given
API server call. This id and specific url can be obtained from the
Ajera 8 Menu Utility -> Setup Integrations -> API Settings
List ClientsPOST/AjeraAPI.ashx?{id}
ListClients returns an array of Clients, limited by the optional filters detailed below.
Each returned Client includes only very basic information. This method is intended to be used for querying Clients for particular key values, which can then be passed to GetClients for more detailed information.
Example URI
- id
string
(required) Example: ew0KICAiRGF0YWJhc2VOYW1lIjogIkFqZXJhX01haW4iDQp9An unique identifier required for api access.
ListClients
Headers
Content-Type: application/json
Accept: application/json
Body
{
Method: "ListClients",
SessionToken: "",
MethodArguments: {
FilterByCompany: [4,5],
FilterByStatus: ["Active"],
FilterByNameLike: "string",
FilterByNameEquals: "string",
FilterByClientType: [1, 2, 3],
FilterByEarliestModifiedDate: "2015-03-11 16:22:54.229 GMT-0700",
FilterByLatestModifiedDate: "2015-03-11 16:22:54.229 GMT-0700"
}
}
Schema
{
Method: "string, required",
Username: "string, max(# characters)",
Password: "string, max(# characters)",
APIVersion: "int",
UseSessionCookie: "boolean"
Method: "string, required",
SessionToken: "string",
MethodArguments: {
FilterByCompany: "int array, optional",
FilterByStatus: "string array, optional",
FilterByNameLike: "string, optional",
FilterByNameEquals: "string, optional",
FilterByClientType: "int array, optional"
FilterByEarliestModifiedDate: "date string, optional(specific format)",
FilterByLatestModifiedDate: "date string, optional(specific format)"
}
}
200
Headers
Content-Type: application/json
Body
{
ResponseCode: 200,
Message: "Success",
Errors: [],
Content: {
Clients: [
{
ClientKey: 4,
Description: "City of Portland"
},
{
ClientKey: 5,
Description: "Portland Public Schools"
}
]
},
UsageKey: "acb5509b-d7ba-434a-8e51-937db175d651"
}
Schema
{
ResponseCode: {
type: int
},
Message: {
type: "string"
},
Errors: {
type: "array"
},
Content: {
type: "object",
properties: {
ClientKey: {
type: int
},
Description: {
type: "string"
}
}
},
UsageKey: {
type: "guid"
}
}
}
Get ClientsPOST/AjeraAPI.ashx?{id}
GetClients takes one or more key values, and returns an array of matching Clients.
This method returns detailed information, which can be used to populate required fields when calling UpdateClients.
CustomFields can be viewed/updated, the field names are prepended with the string CF_
Example URI
- id
string
(required) Example: ew0KICAiRGF0YWJhc2VOYW1lIjogIkFqZXJhX01haW4iDQp9An unique identifier required for api access.
GetClients
Headers
Content-Type: application/json
Accept: application/json
Body
{
Method: "GetClients",
SessionToken: "",
MethodArguments: {
RequestedClients: [1, 2, 3]
}
}
Schema
{
Method: "string, required",
SessionToken: "string",
MethodArguments: {
RequestedClients: "int array, optional"
}
}
200
Headers
Content-Type: application/json
Body
{
ResponseCode: 200,
Message: "Success",
Errors: [],
Content: {
ClientKey: 1,
Status: "Active",
Description: "Shop Architects",
DateEstablished: "2015-03-11",
SendStatements: true,
CreateFinanceCharge: true,
AnnualPercentageRate: 0.00,
PrePaymentBeginningBalance: 0.0,
AccountID: "",
PrimaryPhoneNumber: "555-555-5555",
PrimaryPhoneDescription: "",
SecondaryPhoneNumber: "555-555-5555",
SecondaryPhoneDescription: "",
TertiaryPhoneNumber: "555-555-5555",
TertiaryPhoneDescription: "",
FaxNumber: "",
FaxDescription: "",
Email: "",
Website: "",
PrimaryAddressLineOne: "",
PrimaryAddressLineTwo: "",
PrimaryAddressLineThree: "",
PrimaryAddressCity: "",
PrimaryAddressZip: "",
PrimaryAddressState: "",
PrimaryAddressCountry: "",
MailingAddressSameAsPrimary: true,
MailingAddressLineOne: "",
MailingAddressLineTwo: "",
MailingAddressLineThree: "",
MailingAddressCity: "",
MailingAddressZip: "",
MailingAddressState: "",
MailingAddressCountry: "",
EmailStatementTemplateKey: 1,
EmailStatementTemplateDescription: "",
Contacts: [
{
ContactKey: 21,
Text: "Contact for all questions on active jobs",
FirstName: "Adrian",
MiddleName: "",
LastName: "Dalton",
Title: "Engineer",
Company: "Portland Public Schools",
Order: 0
}
],
Notes: "",
ClientTypeKey: 1,
ClientTypeDescription: "Test",
ClientTypeNotes: "",
LastModifiedDate: "2015-03-11 16:22:54.229 GMT-0700"
},
UsageKey: "6e983af4-946f-4947-9fbd-a233f796f6b4"
}
Schema
{
ResponseCode: {
type: int
},
Message: {
type: "string"
},
Errors: {
type: "array"
},
Content: {
type: "object",
properties: {
ClientKey: {
type: int
},
Description: {
type: "string"
},
Status: {
type: "string"
},
DateEstablished: {
type: "string"
},
SendStatements: {
type: boolean
},
CreateFinanceCharge: {
type: boolean
},
AnnualPercentageRate: {
type: float
},
PrePaymentBeginningBalance: {
type: int
},
AccountID: {
type: "string"
},
PrimaryPhoneNumber: {
type: "string"
},
PrimaryPhoneDescription: {
type: "string"
},
SecondaryPhoneNumber: {
type: "string"
},
SecondaryPhoneDescription: {
type: "string"
},
TertiaryPhoneNumber: {
type: "string"
},
TertiaryPhoneDescription: {
type: "string"
},
FaxNumber:{
type: "string"
},
FaxDescription: {
type: "string"
},
Email: {
type: "string"
},
Website: {
type: "string"
},
PrimaryAddressLineOne: {
type: "string"
},
PrimaryAddressLineTwo: {
type: "string"
},
PrimaryAddressLineThree: {
type: "string"
},
PrimaryAddressCity: {
type: "string"
},
PrimaryAddressZip: {
type: "string"
},
PrimaryAddressState: {
type: "string"
},
PrimaryAddressCountry: {
type: "string"
},
MailingAddressSameAsPrimary: {
type: boolean
},
MailingAddressLineOne: {
type: "string"
},
MailingAddressLineTwo: {
type: "string"
},
MailingAddressLineThree: {
type: "string"
},
MailingAddressCity: {
type: "string"
},
MailingAddressZip: {
type: "string"
},
MailingAddressState: {
type: "string"
},
MailingAddressCountry: {
type: "string"
},
Contacts: [ ],
Notes: {
type: "string"
},
ClientTypeKey: {
type: "string"
},
ClientTypeDescription: {
type: "string"
},
ClientTypeNotes: {
type: "string"
},
LastModifiedDate: {
type: "string"
},
EmailStatementTemplateKey: {
type: int
},
EmailStatementTemplateDescription: {
type: "string"
},
}
},
UsageKey: {
type: "guid"
}
}
}
Update ClientsPOST/AjeraAPI.ashx?{id}
UpdateClients is used to update, create or delete clients.
To create clients, Clients is set to empty, and UpdatedClients items are given an ClientKey with a negative value.
To update or delete clients, Clients must be provided with all fields populated with current data, most likely obtained from calling GetClients. If updating, UpdatedClients is populated with the desired values in place for each field, and optional fields may be omitted. If deleting, UpdatedClients has the optional “Delete” field set to true, and only ClientKey and LastModifiedDate fields are required.
CustomFields can be viewed/updated, the field names are prepended with the string CF_
Example URI
- id
string
(required) Example: ew0KICAiRGF0YWJhc2VOYW1lIjogIkFqZXJhX01haW4iDQp9An unique identifier required for api access.
UpdateClients
Headers
Content-Type: application/json
Accept: application/json
Body
{
Method: "UpdateClients",
SessionToken: "",
MethodArguments: {
UpdatedClients: [
{
ClientKey: -1,
Description: "Shop Architects",
LastModifiedDate: "2015-03-11 16:22:54.229 GMT-0700",
Delete: false,
Status: "Active",
DateEstablished: "2015-03-11",
SendStatements: true,
CreateFinanceCharge: true,
AnnualPercentageRate: 0,
PrePaymentBeginningBalance: 0,
AccountID: "sldfkjsdf",
PrimaryPhoneNumber: "555-555-5555",
PrimaryPhoneDescription: "",
SecondaryPhoneNumber: "555-555-5555",
SecondaryPhoneDescription: "",
TertiaryPhoneNumber: "555-555-5555",
TertiaryPhoneDescription: "",
FaxNumber: "",
FaxDescription: "",
Email: "",
Website: "",
PrimaryAddressLineOne: "",
PrimaryAddressLineTwo: "",
PrimaryAddressLineThree: "",
PrimaryAddressCity: "",
PrimaryAddressZip: "",
PrimaryAddressState: "",
PrimaryAddressCountry: "",
MailingAddressSameAsPrimary: true,
MailingAddressLineOne: "",
MailingAddressLineTwo: "",
MailingAddressLineThree: "",
MailingAddressCity: "",
MailingAddressZip: "",
MailingAddressState: "",
MailingAddressCountry: "",
EmailStatementTemplateKey: 1,
Contacts: [
{
ContactKey: 1,
Order: 1,
Note: "text",
FirstName: "",
MiddleName: "",
LastName: "",
Title: "",
Company: ""
}
],
Notes: "",
ClientTypeKey: 1,
ClientTypeDescription: "",
ClientTypeNotes: ""
},{
ClientKey: 1,
Description: "Shop Architects",
LastModifiedDate: "2015-03-11 16:22:54.229 GMT-0700",
Delete: false,
Status: "Active",
DateEstablished: "2015-03-11",
SendStatements: true,
CreateFinanceCharge: true,
AnnualPercentageRate: 0,
PrePaymentBeginningBalance: 0,
AccountID: "sldfkjsdf",
PrimaryPhoneNumber: "555-555-5555",
PrimaryPhoneDescription: "",
SecondaryPhoneNumber: "555-555-5555",
SecondaryPhoneDescription: "",
TertiaryPhoneNumber: "555-555-5555",
TertiaryPhoneDescription: "",
FaxNumber: "",
FaxDescription: "",
Email: "",
Website: "",
PrimaryAddressLineOne: "",
PrimaryAddressLineTwo: "",
PrimaryAddressLineThree: "",
PrimaryAddressCity: "",
PrimaryAddressZip: "",
PrimaryAddressState: "",
PrimaryAddressCountry: "",
MailingAddressSameAsPrimary: true,
MailingAddressLineOne: "",
MailingAddressLineTwo: "",
MailingAddressLineThree: "",
MailingAddressCity: "",
MailingAddressZip: "",
MailingAddressState: "",
MailingAddressCountry: "",
Contacts: [
{
ContactKey: 1,
Order: 1,
Note: "text",
FirstName: "",
MiddleName: "",
LastName: "",
Title: "",
Company: ""
}
],
Notes: "",
ClientTypeKey: 1,
ClientTypeDescription: "",
ClientTypeNotes: ""
},{
ClientKey: 2,
LastModifiedDate: "2015-03-11 16:22:54.229 GMT-0700",
Delete: true
}
],
UnchangedClients: [
{
ClientKey: 1,
Description: "Shop Architects",
LastModifiedDate: "2015-03-11 16:22:54.229 GMT-0700",
Delete: false,
Status: "Active",
DateEstablished: "2015-03-11",
SendStatements: true,
CreateFinanceCharge: true,
AnnualPercentageRate: 0,
PrePaymentBeginningBalance: 0,
AccountID: "sldfkjsdf",
PrimaryPhoneNumber: "555-555-5555",
PrimaryPhoneDescription: "",
SecondaryPhoneNumber: "555-555-5555",
SecondaryPhoneDescription: "",
TertiaryPhoneNumber: "555-555-5555",
TertiaryPhoneDescription: "",
FaxNumber: "",
FaxDescription: "",
Email: "",
Website: "",
PrimaryAddressLineOne: "",
PrimaryAddressLineTwo: "",
PrimaryAddressLineThree: "",
PrimaryAddressCity: "",
PrimaryAddressZip: "",
PrimaryAddressState: "",
PrimaryAddressCountry: "",
MailingAddressSameAsPrimary: true,
MailingAddressLineOne: "",
MailingAddressLineTwo: "",
MailingAddressLineThree: "",
MailingAddressCity: "",
MailingAddressZip: "",
MailingAddressState: "",
MailingAddressCountry: "",
Contacts: [
{
ContactKey: 1,
Order: 1,
Note: "text",
FirstName: "",
MiddleName: "",
LastName: "",
Title: "",
Company: ""
}
],
Notes: "",
ClientTypeKey: 1,
ClientTypeDescription: "",
ClientTypeNotes: ""
}
]
UseSingleTransaction: false
}
Schema
{
Method: "string, required",
UseSessionCookie: "boolean",
SessionToken: "string, required, unless UseSessionCookie is true",
MethodArguments: {
UpdatedClients: [
{
ClientKey: "int, required",
Description: "string, required",
LastModifiedDate: "string, required, date string format",
Delete: "boolean, required, default false"
Status: "string, required, default Active",
DateEstablished: "date string, optional, nullable",
SendStatements: "boolean, optional, default true",
CreateFinanceCharge: "boolean, optional, default true",
AnnualPercentageRate: "float, optional",
PrePaymentBeginningBalance: "double, optional, readonly",
AccountID: "string, optional, will only exist if AccountKey is populated",
PrimaryPhoneNumber: "string, optional, max(30 characters)",
PrimaryPhoneDescription: "string, optional, max(80 characters)",
SecondaryPhoneNumber: "string, optional, max(30 characters)",
SecondaryPhoneDescription: "string, optional, max(80 characters)",
TertiaryPhoneNumber: "string, optional, max(30 characters)",
TertiaryPhoneDescription: "string, optional, max(80 characters)",
FaxNumber: "string, optional, max(30 characters)",
FaxDescription: "string, optional, max(80 characters)",
Email: "string, optional, max(254 characters)",
Website: "string, optional, max(100 characters)",
PrimaryAddressLineOne: "string, optional, max(50 characters)",
PrimaryAddressLineTwo: "string, optional, max(50 characters)",
PrimaryAddressLineThree: "string, optional, max(50 characters)",
PrimaryAddressCity: "string, optional, max(30 characters)",
PrimaryAddressZip: "string, optional, max(20 characters)",
PrimaryAddressState: "string, optional, max(10 characters)",
PrimaryAddressCountry: "string, optional, max(30 characters)",
MailingAddressSameAsPrimary: "boolean, optional, default true",
MailingAddressLineOne: "string, optional, max(50 characters)",
MailingAddressLineTwo: "string, optional, max(50 characters)",
MailingAddressLineThree: "string, optional, max(50 characters)",
MailingAddressCity: "string, optional, max(30 characters)",
MailingAddressZip: "string, optional, max(20 characters)",
MailingAddressState: "string, optional, max(10 characters)",
MailingAddressCountry: "string, optional, max(30 characters)",
Contacts: [ "array, optional, max of 5 contacts per client"],
Notes: "string, optional, nullable",
ClientTypeKey: "int, optional, nullable",
ClientTypeDescription: "string, optional, max(80 characters), Only valid if ClientTypeKey is populated and valid",
ClientTypeNotes: "string, optional, nullable, Only valid if ClientTypeKey is populated and valid"
}
],
UnchangedClients: [] "array, required, see UpdatedClients"
UseSingleTransaction: "boolean, required"
}
}
200
Headers
Content-Type: application/json
Body
{
Content: {
Clients:[]
},
Errors: [],
Message: "Success",
ResponseCode: 0,
UsageKey: "6e983af4-946f-4947-9fbd-a233f796f6b4"
}
Schema
{
Content: {
type: "object"
},
Errors: {
type: "array"
},
Message: {
type: "string"
},
ResponseCode: {
type: int
},
UsageKey: {
type: "guid"
}
}
List Client TypesPOST/AjeraAPI.ashx?{id}
ListClientTypes returns an array of Client Types, limited by the optional filters detailed below.
Each returned Client Type includes only very basic information. This method is intended to be used for querying Client Types for particular key values.
Example URI
- id
string
(required) Example: ew0KICAiRGF0YWJhc2VOYW1lIjogIkFqZXJhX01haW4iDQp9An unique identifier required for api access.
ListClientTypes
Headers
Content-Type: application/json
Accept: application/json
Body
{
Method: "ListClientTypes",
SessionToken: "",
MethodArguments: {
FilterByStatus: ["Active"]
}
}
Schema
{
Method: "string, required",
SessionToken: "string",
MethodArguments: {
FilterByStatus: "string array, optional"
}
}
200
Headers
Content-Type: application/json
Body
{
ResponseCode: 200,
Message: "Success",
Errors: [],
Content: {
ClientTypes: [{
ClientTypeKey: 1,
Description: "Architect",
Status: "Active",
Notes: "some random text"
}]
},
UsageKey: "d286b4e7-41fe-42f9-97e8-bfd842a77b88"
}
Schema
{
ResponseCode: {
type: int
},
Message: {
type: "string"
},
Errors: {
type: "array"
},
Content: {
type: "object",
properties: {
ClientTypeKey: {
type: int
},
Description: {
type: "string"
},
Status: {
type: "string"
},
Notes: {
type: "string"
}
}
},
UsageKey: {
type: "guid"
}
}
}