REST API for GetCRM : Available commands documentation & examples

Customer

Customer - Add New Customer

post
api/customers

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
company String

Mandatory Customer company.

vat optional String

Optional Vat.

phonenumber optional String

Optional Customer Phone.

website optional String

Optional Customer Website.

groups_in optional Number[]

Optional Customer groups.

default_language optional String

Optional Customer Default Language.

default_currency optional String

Optional default currency.

address optional String

Optional Customer address.

city optional String

Optional Customer City.

state optional String

Optional Customer state.

zip optional String

Optional Zip Code.

partnership_type optional String

Optional Customer partnership type.

country optional String

Optional country.

billing_street optional String

Optional Billing Address: Street.

billing_city optional String

Optional Billing Address: City.

billing_state optional Number

Optional Billing Address: State.

billing_zip optional String

Optional Billing Address: Zip.

billing_country optional String

Optional Billing Address: Country.

shipping_street optional String

Optional Shipping Address: Street.

shipping_city optional String

Optional Shipping Address: City.

shipping_state optional String

Optional Shipping Address: State.

shipping_zip optional String

Optional Shipping Address: Zip.

shipping_country optional String

Optional Shipping Address: Country.

array (size=22)
  'company' => string 'Themesic Interactive' (length=38)
  'vat' => string '123456789' (length=9)
  'phonenumber' => string '123456789' (length=9)
  'website' => string 'AAA.com' (length=7)
  'groups_in' => 
    array (size=2)
      0 => string '1' (length=1)
      1 => string '4' (length=1)
  'default_currency' => string '3' (length=1)
  'default_language' => string 'english' (length=7)
  'address' => string '1a The Alexander Suite Silk Point' (length=27)
  'city' => string 'London' (length=14)
  'state' => string 'London' (length=14)
  'zip' => string '700000' (length=6)
  'country' => string '243' (length=3)
  'billing_street' => string '1a The Alexander Suite Silk Point' (length=27)
  'billing_city' => string 'London' (length=14)
  'billing_state' => string 'London' (length=14)
  'billing_zip' => string '700000' (length=6)
  'billing_country' => string '243' (length=3)
  'shipping_street' => string '1a The Alexander Suite Silk Point' (length=27)
  'shipping_city' => string 'London' (length=14)
  'shipping_state' => string 'London' (length=14)
  'shipping_zip' => string '700000' (length=6)
  'shipping_country' => string '243' (length=3)

Success 200

Field Type Description
status Boolean

Request status.

message String

Customer add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Customer add successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Customer add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Customer add fail."
}

Customer - Delete a Customer

delete
api/delete/customers/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Customer unique ID.

Success 200

Field Type Description
status String

Request status.

message String

Customer Delete Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Customer Delete Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Customer Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Customer Delete Fail."
}

Customer - Request customer information

get
api/customers/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

customer unique ID.

Success 200

Field Type Description
customer Object

information.

HTTP/1.1 200 OK
{
     "id": "28",
     "name": "Test1",
     "description": null,
     "status": "1",
     "clientid": "11",
     "billing_type": "3",
     "start_date": "2019-04-19",
     "deadline": "2019-08-30",
     "customer_created": "2019-07-16",
     "date_finished": null,
     "progress": "0",
     "progress_from_tasks": "1",
     "customer_cost": "0.00",
     "customer_rate_per_hour": "0.00",
     "estimated_hours": "0.00",
     "addedfrom": "5",
     "rel_type": "customer",
     "potential_revenue": "0.00",
     "potential_margin": "0.00",
     "external": "E",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Customer - Search Customer Information

get
api/customers/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
customer Object

information.

HTTP/1.1 200 OK
{
     "id": "28",
     "name": "Test1",
     "description": null,
     "status": "1",
     "clientid": "11",
     "billing_type": "3",
     "start_date": "2019-04-19",
     "deadline": "2019-08-30",
     "customer_created": "2019-07-16",
     "date_finished": null,
     "progress": "0",
     "progress_from_tasks": "1",
     "customer_cost": "0.00",
     "customer_rate_per_hour": "0.00",
     "estimated_hours": "0.00",
     "addedfrom": "5",
     "rel_type": "customer",
     "potential_revenue": "0.00",
     "potential_margin": "0.00",
     "external": "E",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Customer - Update a Customer

put
api/customers/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
company String

Mandatory Customer company.

vat optional String

Optional Vat.

phonenumber optional String

Optional Customer Phone.

website optional String

Optional Customer Website.

groups_in optional Number[]

Optional Customer groups.

default_language optional String

Optional Customer Default Language.

default_currency optional String

Optional default currency.

address optional String

Optional Customer address.

city optional String

Optional Customer City.

state optional String

Optional Customer state.

zip optional String

Optional Zip Code.

country optional String

Optional country.

billing_street optional String

Optional Billing Address: Street.

billing_city optional String

Optional Billing Address: City.

billing_state optional Number

Optional Billing Address: State.

billing_zip optional String

Optional Billing Address: Zip.

billing_country optional String

Optional Billing Address: Country.

shipping_street optional String

Optional Shipping Address: Street.

shipping_city optional String

Optional Shipping Address: City.

shipping_state optional String

Optional Shipping Address: State.

shipping_zip optional String

Optional Shipping Address: Zip.

shipping_country optional String

Optional Shipping Address: Country.

{
    "company": "Công ty A",
    "vat": "",
    "phonenumber": "0123456789",
    "website": "",
    "default_language": "",
    "default_currency": "0",
    "country": "243",
    "city": "TP London",
    "zip": "700000",
    "state": "Quận 12",
    "address": "hẻm 71, số 34/3 Đường TA 16, Phường Thới An, Quận 12",
    "billing_street": "hẻm 71, số 34/3 Đường TA 16, Phường Thới An, Quận 12",
    "billing_city": "TP London",
    "billing_state": "Quận 12",
    "billing_zip": "700000",
    "billing_country": "243",
    "shipping_street": "",
    "shipping_city": "",
    "shipping_state": "",
    "shipping_zip": "",
    "shipping_country": "0"
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Customer Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Customer Update Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Customer Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Customer Update Fail."
}

Contact

Contact - Add New Contact

post
api/contacts/

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
customer_id Number

Mandatory Customer id.

firstname String

Mandatory First Name

lastname String

Mandatory Last Name

email String

Mandatory E-mail

title optional String

Optional Position

phonenumber optional String

Optional Phone Number

direction optional String

Optional Direction (rtl or ltr)

Default value: rtl

password optional String

Optional password (only required if you pass send_set_password_email parameter)

is_primary optional String

Optional Primary Contact (set on or don't pass it)

Default value: on

donotsendwelcomeemail optional String

Optional Do Not Send Welcome Email (set on or don't pass it)

send_set_password_email optional String

Optional Send Set Password Email (set on or don't pass it)

permissions optional Array

Optional Permissions for this contact(["1", "2", "3", "4", "5", "6" ])
[
"1", // Invoices permission
"2", // Estimates permission
"3", // Contracts permission
"4", // Proposals permission
"5", // Support permission
"6" // Projects permission
]

invoice_emails optional String

Optional E-Mail Notification for Invoices (set value same as name or don't pass it)

Default value: invoice_emails

estimate_emails optional String

Optional E-Mail Notification for Estimate (set value same as name or don't pass it)

Default value: estimate_emails

credit_note_emails optional String

Optional E-Mail Notification for Credit Note (set value same as name or don't pass it)

Default value: credit_note_emails

project_emails optional String

Optional E-Mail Notification for Project (set value same as name or don't pass it)

Default value: project_emails

ticket_emails optional String

Optional E-Mail Notification for Tickets (set value same as name or don't pass it)

Default value: ticket_emails

task_emails optional String

Optional E-Mail Notification for Task (set value same as name or don't pass it)

Default value: task_emails

contract_emails optional String

Optional E-Mail Notification for Contract (set value same as name or don't pass it)

Default value: contract_emails

Success 200

Field Type Description
status Boolean

Request status.

message String

Contact added successfully.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Contact added successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status

message String

Contact add fail

email String

This Email is already exists

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Contact add fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"email":"This Email is already exists"
		},
		"message": "This Email is already exists"
    }

Contact - Delete Contact

delete
api/delete/contacts/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
customer_id Number

unique Customer id

Success 200

Field Type Description
status String

Request status.

message String

Contact Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Contact Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status

message String

Contact Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Contact Delete Fail"
}

Contact - List all Contacts of a Customer

get
api/contacts/:customer_id/:contact_id

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
customer_id Number

Mandatory Customer unique ID

contact_id Number

Optional Contact unique ID
Note : if you don't pass Contact id then it will list all contacts of the customer

Success 200

Field Type Description
Contact Object

Contact information

    HTTP/1.1 200 OK
	{
		"id": "6",
		"userid": "1",
		"company": "xyz",
		"vat": "",
		"phonenumber": "1234567890",
		"country": "0",
		"city": "",
		"zip": "360005",
		"state": "",
		"address": "",
		"website": "",
		"datecreated": "2020-08-19 20:07:49",
		"active": "1",
		"leadid": null,
		"billing_street": "",
		"billing_city": "",
		"billing_state": "",
		"billing_zip": "",
		"billing_country": "0",
		"shipping_street": "",
		"shipping_city": "",
		"shipping_state": "",
		"shipping_zip": "",
		"shipping_country": "0",
		"longitude": null,
		"latitude": null,
		"default_language": "english",
		"default_currency": "0",
		"show_primary_contact": "0",
		"stripe_id": null,
		"registration_confirmed": "1",
		"addedfrom": "1"
	}

Error 4xx

Name Type Description
status Boolean

Request status

message String

No data were found

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Contact - Search Contact Information

get
api/contacts/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
keysearch String

Search Keywords

Success 200

Field Type Description
Contact Object

Contact information

 HTTP/1.1 200 OK
 {
    "id": "8",
    "userid": "1",
    "is_primary": "0",
    "firstname": "chirag",
    "lastname": "jagani",
    "email": "useremail@gmail.com",
    "phonenumber": "",
    "title": null,
    "datecreated": "2020-05-19 20:07:49",
    "password": "$2a$08$6DLJFalqvJGVymCwW2ppNe9HOG5YUP04vzthXZjOFFUQknxfG6QHe",
    "new_pass_key": null,
    "new_pass_key_requested": null,
    "email_verified_at": "2020-08-28 21:36:06",
    "email_verification_key": null,
    "email_verification_sent_at": null,
    "last_ip": null,
    "last_login": null,
    "last_password_change": null,
    "active": "1",
    "profile_image": null,
    "direction": null,
    "invoice_emails": "0",
    "estimate_emails": "0",
    "credit_note_emails": "0",
    "contract_emails": "0",
    "task_emails": "0",
    "project_emails": "0",
    "ticket_emails": "0",
    "company": "trueline",
    "vat": "",
    "country": "0",
    "city": "",
    "zip": "",
    "state": "",
    "address": "",
    "website": "",
    "leadid": null,
    "billing_street": "",
    "billing_city": "",
    "billing_state": "",
    "billing_zip": "",
    "billing_country": "0",
    "shipping_street": "",
    "shipping_city": "",
    "shipping_state": "",
    "shipping_zip": "",
    "shipping_country": "0",
    "longitude": null,
    "latitude": null,
    "default_language": "english",
    "default_currency": "0",
    "show_primary_contact": "0",
    "stripe_id": null,
    "registration_confirmed": "1",
    "addedfrom": "1"
}

Error 4xx

Name Type Description
status Boolean

Request status

message String

No data were found

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Contact - Update Contact Information

put
api/contacts/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
id Number

Mandatory Customer Contact id.

firstname String

Mandatory First Name

lastname String

Mandatory Last Name

email String

Mandatory E-mail

title optional String

Optional Position

phonenumber optional String

Optional Phone Number

direction optional String

Optional Direction (rtl or ltr)

Default value: rtl

password optional String

Optional password (only required if you pass send_set_password_email parameter)

is_primary optional String

Optional Primary Contact (set on or don't pass it)

Default value: on

donotsendwelcomeemail optional String

Optional Do Not Send Welcome Email (set on or don't pass it)

send_set_password_email optional String

Optional Send Set Password Email (set on or don't pass it)

permissions optional Array

Optional Permissions for this contact(["1", "2", "3", "4", "5", "6" ])
[
"1", // Invoices permission
"2", // Estimates permission
"3", // Contracts permission
"4", // Proposals permission
"5", // Support permission
"6" // Projects permission
]

invoice_emails optional String

Optional E-Mail Notification for Invoices (set value same as name or don't pass it)

Default value: invoice_emails

estimate_emails optional String

Optional E-Mail Notification for Estimate (set value same as name or don't pass it)

Default value: estimate_emails

credit_note_emails optional String

Optional E-Mail Notification for Credit Note (set value same as name or don't pass it)

Default value: credit_note_emails

project_emails optional String

Optional E-Mail Notification for Project (set value same as name or don't pass it)

Default value: project_emails

ticket_emails optional String

Optional E-Mail Notification for Tickets (set value same as name or don't pass it)

Default value: ticket_emails

task_emails optional String

Optional E-Mail Notification for Task (set value same as name or don't pass it)

Default value: task_emails

contract_emails optional String

Optional E-Mail Notification for Contract (set value same as name or don't pass it)

Default value: contract_emails

{
    "firstname": "new first name",
    "lastname": "new last name",
    "email": "dummy@gmail.com",
    "title": "",
    "phonenumber": "9909999099",
    "direction": "rtl",
    "password": "123456",
    "is_primary": "on",
    "send_set_password_email": "on",
    "permissions": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6"
    ],
    "invoice_emails": "invoice_emails",
    "estimate_emails": "estimate_emails",
    "credit_note_emails": "credit_note_emails",
    "project_emails": "project_emails",
    "ticket_emails": "ticket_emails",
    "task_emails": "task_emails",
    "contract_emails": "contract_emails"
}

Success 200

Field Type Description
status Boolean

Request status

message String

Contact updated successful

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Contact Updated Successfully"
}

Error 4xx

Name Type Description
email String

This Email is already exists

status Boolean

Request status

message String

Contact add fail

    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"email":"This Email is already exists"
		},
		"message": "This Email is already exists"
    }
HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Contact Update fail"
}

Invoice

Invoice - Add New invoice

post
api/invoices/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid Number

Mandatory. Customer id

number Number

Mandatory. Invoice Number

date Date

Mandatory. Invoice Date

currency Number

Mandatory. currency field

newitems Array

Mandatory. New Items to be added

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and Adjustment

billing_street String

Mandatory. Street Address

allowed_payment_modes Array

Mandatory. Payment modes

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

include_shipping optional boolean

Optional. set yes if you want add Shipping Address

Default value: no

show_shipping_on_invoice optional boolean

Optional. Shows shipping details in invoice.

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

duedate optional Date

Optional. Due date for Invoice

cancel_overdue_reminders optional boolean

Optional. Prevent sending overdue remainders for invoice

tags optional String

Optional. TAGS comma separated

sale_agent optional Number

Optional. Sale Agent name

recurring optional String

Optional. recurring 1 to 12 or custom

discount_type optional String

Optional. before_tax / after_tax discount type

repeat_every_custom optional Number

Optional. if recurring is custom set number gap

repeat_type_custom optional String

Optional. if recurring is custom set gap option day/week/month/year

cycles optional Number

Optional. number of cycles 0 for infinite

adminnote optional String

Optional. notes by admin

items optional Array

Optional. Existing items with Id

removed_items optional Array

Optional. Items to be removed

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

  [
		"clientid"=>1,
		"number"=>"00001",
		"date"=>"2020-09-07",
		"currency"=>1,
		"newitems[0][description]"=>"item 1 description",
		"newitems[0][long_description]"=>"item 1 long description",
		"newitems[0][qty]"=>1,
		"newitems[0][rate]"=>100,
		"newitems[0][order]"=>1,
		"newitems[0][taxname][]"=>CGST|9.00,
		"newitems[0][taxname][]"=>SGST|9.00,
		"newitems[0][unit]"=>"",
		"newitems[1][description]"=>"item 2 description",
		"newitems[1][long_description]"=>"item 2 long description",
		"newitems[1][qty]"=>1,
		"newitems[1][rate]"=>100,
		"newitems[1][order]"=>1,
		"newitems[1][taxname][]"=>CGST|9.00,
		"newitems[1][taxname][]"=>SGST|9.00,
		"newitems[1][unit]"=>"",
		"subtotal"=>236.00,
		"total"=>236.00,
		"billing_street"=>"billing address",
		"allowed_payment_modes[0]"=>1,
		"allowed_payment_modes[1]"=>2,
		....
	]

Success 200

Field Type Description
status Boolean

Request status.

message String

Invoice Added Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Invoice Added Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Invoice add fail

newitems[] String

The Items field is required

number String

The Invoice number is already in use

allowed_payment_modes[] String

The Allow Payment Mode field is required

billing_street String

The Billing Street field is required

subtotal String

The Sub Total field is required

total String

The Total field is required

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Invoice Add Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Invoice number is already in use"
		},
		"message": "The Invoice number is already in use"
    }
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "allowed_payment_modes[]": "The Allow Payment Mode field is required."
	    },
	    "message": "<p>The Allow Payment Mode field is required.</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "billing_street": "The Billing Street field is required"
	    },
	    "message": "<p>The Billing Street field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "newitems[]": "The Items field is required"
	    },
	    "message": "<p>The Items field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "subtotal": "The Sub Total field is required"
	    },
	    "message": "<p>The Sub Total field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "total": "The Total field is required"
	    },
	    "message": "<p>The Total field is required</p>\n"
	}

Invoice - Delete invoice

delete
api/invoices/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
status Boolean

Request status.

message String

Invoice Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Invoice Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Invoice Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Invoice Delete Fail"
}

Invoice - Request invoice information

get
api/invoices/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Contact unique ID

Success 200

Field Type Description
Invoice Object

Invoice information.

  HTTP/1.1 200 OK
  {
      "id": "2",
      "sent": "0",
      "datesend": null,
      "clientid": "1",
      "deleted_customer_name": null,
      "number": "2",
      "prefix": "INV-",
      "number_format": "1",
      "datecreated": "2020-05-26 19:53:11",
      "date": "2020-05-26",
      "duedate": "2020-06-25",
      "currency": "1",
      "subtotal": "5.00",
      "total_tax": "0.00",
      "total": "5.00",
      "adjustment": "0.00",
      "addedfrom": "0",
      "hash": "7bfac86da004df5364407574d4d1dbf2",
      "status": "1",
      "clientnote": null,
      "adminnote": null,
      "last_overdue_reminder": null,
      "cancel_overdue_reminders": "0",
      "allowed_payment_modes": "['1']",
      "token": null,
      "discount_percent": "0.00",
      "discount_total": "0.00",
      "discount_type": "",
      "recurring": "0",
      "recurring_type": null,
      "custom_recurring": "0",
      "cycles": "0",
      "total_cycles": "0",
      "is_recurring_from": null,
      "last_recurring_date": null,
      "terms": null,
      "sale_agent": "0",
      "billing_street": "",
      "billing_city": "",
      "billing_state": "",
      "billing_zip": "",
      "billing_country": null,
      "shipping_street": null,
      "shipping_city": null,
      "shipping_state": null,
      "shipping_zip": null,
      "shipping_country": null,
      "include_shipping": "0",
      "show_shipping_on_invoice": "1",
      "show_quantity_as": "1",
      "project_id": "0",
      "subscription_id": "0",
      "symbol": "$",
      "name": "USD",
      "decimal_separator": ".",
      "thousand_separator": ",",
      "placement": "before",
      "isdefault": "1",
      "currencyid": "1",
      "currency_name": "USD",
      "total_left_to_pay": "5.00",
      "items": [
       {
          "id": "2",
          "rel_id": "2",
          "rel_type": "invoice",
          "description": "12MP Dual Camera with cover",
          "long_description": "The JBL Cinema SB110 is a hassle-free soundbar",
          "qty": "1.00",
          "rate": "5.00",
          "unit": "",
          "item_order": "1"
          }
      ],
      "attachments": [],
      "visible_attachments_to_customer_found": false,
      "client": {
      "userid": "1",
      "company": "trueline",
      "vat": "",
      "phonenumber": "",
      "country": "0",
      "city": "",
      "zip": "",
      "state": "",
      "address": "",
      "website": "",
      "datecreated": "2020-05-19 20:07:49",
      "active": "1",
      "leadid": null,
      "billing_street": "",
      "billing_city": "",
      "billing_state": "",
      "billing_zip": "",
      "billing_country": "0",
      "shipping_street": "",
      "shipping_city": "",
      "shipping_state": "",
      "shipping_zip": "",
      "shipping_country": "0",
      "longitude": null,
      "latitude": null,
      "default_language": "english",
      "default_currency": "0",
      "show_primary_contact": "0",
      "stripe_id": null,
      "registration_confirmed": "1",
      "addedfrom": "1"
  },
  "payments": [],
  "scheduled_email": null
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Invoice - Search invoice information

get
api/invoices/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Invoice Object

Information.

HTTP/1.1 200 OK
  {
      "id": "19",
      "sent": "0",
      "datesend": null,
      "clientid": "3",
      "deleted_customer_name": null,
      "number": "19",
      "prefix": "INV-",
      "number_format": "1",
      "datecreated": "2020-08-18 21:19:51",
      "date": "2020-07-04",
      "duedate": "2020-08-03",
      "currency": "1",
      "subtotal": "20.00",
      "total_tax": "1.80",
      "total": "21.80",
      "adjustment": "0.00",
      "addedfrom": "1",
      "hash": "809c0e4c9efba2a3bedfdb5871dc6240",
      "status": "2",
      "clientnote": "",
      "adminnote": "",
      "last_overdue_reminder": null,
      "cancel_overdue_reminders": "0",
      "allowed_payment_modes": "['1']",
      "token": null,
      "discount_percent": "0.00",
      "discount_total": "0.00",
      "discount_type": "",
      "recurring": "0",
      "recurring_type": null,
      "custom_recurring": "0",
      "cycles": "0",
      "total_cycles": "0",
      "is_recurring_from": null,
      "last_recurring_date": null,
      "terms": "",
      "sale_agent": "0",
      "billing_street": "",
      "billing_city": "",
      "billing_state": "",
      "billing_zip": "",
      "billing_country": "0",
      "shipping_street": "",
      "shipping_city": "",
      "shipping_state": "",
      "shipping_zip": "",
      "shipping_country": "0",
      "include_shipping": "0",
      "show_shipping_on_invoice": "1",
      "show_quantity_as": "1",
      "project_id": "0",
      "subscription_id": "0",
      "userid": "3",
      "company": "xyz",
      "vat": "",
      "phonenumber": "",
      "country": "0",
      "city": "",
      "zip": "",
      "state": "",
      "address": "",
      "website": "",
      "active": "1",
      "leadid": null,
      "longitude": null,
      "latitude": null,
      "default_language": "",
      "default_currency": "0",
      "show_primary_contact": "0",
      "stripe_id": null,
      "registration_confirmed": "1",
      "invoiceid": "19"
  }

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No Data Were Found"
}

Invoice - Update invoice

put
api/invoices/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid Number

Mandatory Customer id.

number Number

Mandatory. Invoice Number

date Date

Mandatory. Invoice Date

currency Number

Mandatory. currency field

newitems Array

Mandatory. New Items to be added

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and Adjustment

billing_street String

Mandatory. Street Address

allowed_payment_modes Array

Mandatory. Payment modes

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

include_shipping optional boolean

Optional. set yes if you want add Shipping Address

Default value: no

show_shipping_on_invoice optional boolean

Optional. Shows shipping details in invoice.

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

duedate optional Date

Optional. Due date for Invoice

cancel_overdue_reminders optional boolean

Optional. Prevent sending overdue remainders for invoice

tags optional String

Optional. TAGS comma separated

sale_agent optional Number

Optional. Sale Agent name

recurring optional String

Optional. recurring 1 to 12 or custom

discount_type optional String

Optional. before_tax / after_tax discount type

repeat_every_custom optional Number

Optional. if recurring is custom set number gap

repeat_type_custom optional String

Optional. if recurring is custom set gap option day/week/month/year

cycles optional Number

Optional. number of cycles 0 for infinite

adminnote optional String

Optional. notes by admin

items optional Array

Optional. Existing items with Id

removed_items optional Array

Optional. Items to be removed

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

{
    "clientid": "1",
    "billing_street": "billing address",
    "billing_city": "billing city name",
    "billing_state": "billing state name",
    "billing_zip": "billing zip code",
    "billing_country": "",
    "include_shipping": "on",
    "show_shipping_on_invoice": "on",
    "shipping_street": "shipping address",
    "shipping_city": "city name",
    "shipping_state": "state name",
    "shipping_zip": "zip code",
    "shipping_country": "",
    "number": "000001",
    "date": "2020-08-28",
    "duedate": "2020-09-27",
    "cancel_overdue_reminders": "on",
    "tags": "TAG 1,TAG 2",
    "allowed_payment_modes": [
        "1",
        "2"
    ],
    "currency": "1",
    "sale_agent": "1",
    "recurring": "custom",
    "discount_type": "before_tax",
    "repeat_every_custom": "7",
    "repeat_type_custom": "day",
    "cycles": "0",
    "adminnote": "TEST",
    "show_quantity_as": "1",
    "items": {
        "1": {
            "itemid": "1",
            "order": "1",
            "description": "item description",
            "long_description": "item long description",
            "qty": "1",
            "unit": "1",
            "rate": "10.00"
        }
    },
    "removed_items": [
        "2",
        "3"
    ],
    "newitems": {
        "2": {
            "order": "2",
            "description": "item 2 description",
            "long_description": "item 2 logn description",
            "qty": "1",
            "unit": "",
            "rate": "100.00"
        }
    },
    "subtotal": "10.00",
    "discount_percent": "10",
    "discount_total": "1.00",
    "adjustment": "1",
    "total": "10.00",
    "clientnote": "client note",
    "terms": "terms"
}
HTTP/1.1 200 OK
{
  "status": false,
  "message": "Invoice Updated Successfully"
}

Error 4xx

Name Type Description
number String

The Invoice number is already in use

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Invoice Update Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Invoice number is already in use"
		},
		"message": "The Invoice number is already in use"
    }

Items

Items - Request items information

get
api/items/items/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
Item Object

item information.

    HTTP/1.1 200 OK
    {
	  "itemid": "1",
       "rate": "100.00",
       "taxrate": "5.00",
       "taxid": "1",
       "taxname": "PAYPAL",
       "taxrate_2": "9.00",
       "taxid_2": "2",
       "taxname_2": "CGST",
       "description": "JBL Soundbar",
       "long_description": "The JBL Cinema SB110 is a hassle-free soundbar",
       "group_id": "0",
       "group_name": null,
       "unit": ""
    }

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Items - Search invoice item information

get
api/items/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
keysearch String

Search Keywords

Success 200

Field Type Description
Item Object

Item Information

HTTP/1.1 200 OK
{
  "rate": "100.00",
  "id": "1",
  "name": "(100.00) JBL Soundbar",
  "subtext": "The JBL Cinema SB110 is a hassle-free soundbar..."
}

Error 4xx

Name Type Description
status Boolean

Request status

message String

No data were found

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Lead

Lead - Add New Lead

post
api/leads

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
source String

Mandatory Lead source.

status String

Mandatory Lead Status.

name String

Mandatory Lead Name.

assigned optional String

Optional Lead assigned.

client_id optional String

Optional Lead From Customer.

tags optional String

Optional Lead tags.

contact optional String

Optional Lead contact.

title optional String

Optional Position.

email optional String

Optional Lead Email Address.

website optional String

Optional Lead Website.

phonenumber optional String

Optional Lead Phone.

company optional String

Optional Lead company.

address optional String

Optional Lead address.

city optional String

Optional Lead City.

state optional String

Optional Lead state.

country optional String

Optional Lead Country.

default_language optional String

Optional Lead Default Language.

description optional String

Optional Lead description.

custom_contact_date optional String

Optional Lead From Customer.

contacted_today optional String

Optional Lead Contacted Today.

is_public optional String

Optional Lead google sheet id.

array (size=20)
   'status' => string '2' (length=1)
   'source' => string '6' (length=1)
   'assigned' => string '1' (length=1)
   'client_id' => string '5' (length=1)
   'tags' => string '' (length=0)
   'name' => string 'Lead Name' (length=9)
   'contact' => string 'Contact A' (length=9)
   'title' => string 'Position A' (length=10)
   'email' => string 'AAA@gmail.com' (length=13)
   'website' => string '' (length=0)
   'phonenumber' => string '123456789' (length=9)
   'company' => string 'Themesic Interactive' (length=20)
   'address' => string '710-712 Cách Mạng Tháng Tám, P. 5, Q. Tân Bình' (length=33)
   'city' => string 'London' (length=6)
   'state' => string '' (length=0)
   'default_language' => string 'english' (length=10)
   'description' => string 'Description' (length=11)
   'custom_contact_date' => string '' (length=0)
   'is_public' => string 'on' (length=2)
   'contacted_today' => string 'on' (length=2)

Success 200

Field Type Description
status Boolean

Request status.

message String

Lead add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Lead add successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Lead add fail."
}

Lead - Delete a Lead

delete
api/delete/leads/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

lead unique ID.

Success 200

Field Type Description
status String

Request status.

message String

Lead Delete Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Lead Delete Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Lead Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Lead Delete Fail."
}

Lead - Request lead information

get
api/leads/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Lead unique ID.

Success 200

Field Type Description
Lead Object

information.

HTTP/1.1 200 OK
{
    "id": "17",
    "hash": "c6e938f8b7a40b1bcfd98dc04f6eeee0-60d9c039da373a685fc0f74d4bfae631",
    "name": "Lead name",
    "contact": "",
    "title": "",
    "company": "Themesic Interactive",
    "description": "",
    "country": "243",
    "zip": null,
    "city": "London",
    "state": "London",
    "address": "1a The Alexander Suite Silk Point",
    "assigned": "5",
    "dateadded": "2019-07-18 08:59:28",
    "from_form_id": "0",
    "status": "0",
    "source": "4",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Lead - Search Lead Information

get
api/leads/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Lead Object

information.

HTTP/1.1 200 OK
{
    "id": "17",
    "hash": "c6e938f8b7a40b1bcfd98dc04f6eeee0-60d9c039da373a685fc0f74d4bfae631",
    "name": "Lead name",
    "contact": "",
    "title": "",
    "company": "Themesic Interactive",
    "description": "",
    "country": "243",
    "zip": null,
    "city": "London",
    "state": "London",
    "address": "1a The Alexander Suite Silk Point",
    "assigned": "5",
    "dateadded": "2019-07-18 08:59:28",
    "from_form_id": "0",
    "status": "0",
    "source": "4",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Lead - Update a lead

put
api/leads/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
source String

Mandatory Lead source.

status String

Mandatory Lead Status.

name String

Mandatory Lead Name.

assigned optional String

Optional Lead assigned.

client_id optional String

Optional Lead From Customer.

tags optional String

Optional Lead tags.

contact optional String

Optional Lead contact.

title optional String

Optional Position.

email optional String

Optional Lead Email Address.

website optional String

Optional Lead Website.

phonenumber optional String

Optional Lead Phone.

company optional String

Optional Lead company.

address optional String

Optional Lead address.

city optional String

Optional Lead City.

state optional String

Optional Lead state.

country optional String

Optional Lead Country.

default_language optional String

Optional Lead Default Language.

description optional String

Optional Lead description.

lastcontact optional String

Optional Lead Last Contact.

is_public optional String

Optional Lead google sheet id.

{
    "name": "Lead name",
    "contact": "contact",
    "title": "title",
    "company": "C.TY TNHH TM VẬN TẢI & DU LỊCH ĐẠI BẢO AN",
    "description": "description",
    "tags": "",
    "city": "London",
    "state": "London",
    "address": "1a The Alexander Suite Silk Point",
    "assigned": "5",
    "source": "4",
    "email": "AA@gmail.com",
    "website": "www.themesic.com",
    "phonenumber": "123456789",
    "is_public": "on",
    "default_language": "english",
    "client_id": "3",
    "lastcontact": "25/07/2019 08:38:04"
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Lead Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Lead Update Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Lead Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Lead Update Fail."
}

Milestone

Milestone - Add New Milestone

post
api/milestones

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
project_id String

Mandatory project id.

name String

Mandatory Milestone Name.

due_date Date

Mandatory Milestone Due date.

description optional String

Optional Milestone Description.

description_visible_to_customer optional String

Show description to customer.

milestone_order optional String

Optional Milestone Order.

array (size=6)
  'project_id' => string '2' (length=1)
  'name' => string 'Milestone A' (length=11)
  'due_date' => string '30/07/2019' (length=10)
  'description' => string 'Description' (length=11)
  'description_visible_to_customer' => string 'on' (length=2)
  'milestone_order' => string '1' (length=1)

Success 200

Field Type Description
status String

Request status.

message String

Milestone add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Milestone add successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Milestone add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Milestone add fail."
}

Milestone - Delete a Milestone

delete
api/delete/milestones/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Milestone unique ID.

Success 200

Field Type Description
status String

Request status.

message String

Milestone Delete Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Milestone Delete Successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Milestone Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Milestone Delete Fail."
}

Milestone - Request Milestones information

get
api/milestones/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Milestones unique ID.

Success 200

Field Type Description
Milestones Object

information.

  HTTP/1.1 200 OK
{
    "id": "5",
    "name": "MIlestone A",
    "description": "",
    "description_visible_to_customer": "0",
    "due_date": "2019-09-30",
    "project_id": "2",
    "color": null,
    "milestone_order": "1",
    "datecreated": "2019-07-19",
    "total_tasks": "0",
    "total_finished_tasks": "0"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Milestone - Search Milestones Information

get
api/milestones/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Milestones Object

information.

HTTP/1.1 200 OK
    {
      "id": "5",
      "name": "MIlestone A",
      "description": "",
      "description_visible_to_customer": "0",
      "due_date": "2019-09-30",
      "project_id": "2",
      "color": null,
      "milestone_order": "1",
      "datecreated": "2019-07-19",
      "total_tasks": "0",
      "total_finished_tasks": "0"
  }

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Milestone - Update a Milestone

put
api/milestones/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
project_id String

Mandatory project id.

name String

Mandatory Milestone Name.

due_date Date

Mandatory Milestone Due date.

description optional String

Optional Milestone Description.

description_visible_to_customer optional String

Show description to customer.

milestone_order optional String

Optional Milestone Order.

{
    "project_id": "1",
    "name": "Milestone A",
    "due_date": "30/07/2019",
    "description": "Description",
    "description_visible_to_customer": "on",
    "milestone_order": "1"
}

Success 200

Field Type Description
status String

Request status.

message String

Milestone Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Milestone Update Successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Milestone Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Milestone Update Fail."
}

Project

Project - Add New Project

post
api/projects

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
name String

Mandatory Project Name.

rel_type string

Mandatory Project Related.

Allowed values: "lead", "customer", "internal"

clientid Number

Mandatory Related ID.

billing_type Number

Mandatory Billing Type.

start_date Date

Mandatory Project Start Date.

status Number

Mandatory Project Status.

progress_from_tasks optional String

Optional on or off progress from tasks.

project_cost optional String

Optional Project Cost.

progress optional String

Optional project progress.

project_rate_per_hour optional String

Optional project rate per hour.

estimated_hours optional String

Optional Project estimated hours.

project_members optional Number[]

Optional Project members.

deadline optional Date

Optional Project deadline.

tags optional String

Optional Project tags.

description optional String

Optional Project description.

array (size=15)
   'name' => string 'Project Name' (length=12)
   'rel_type' => string 'customer' (length=8)
   'clientid' => string '3' (length=1)
   'progress_from_tasks' => string 'on' (length=2)
   'progress' => string '0' (length=1)
   'billing_type' => string '3' (length=1)
   'status' => string '2' (length=1)
   'project_cost' => string '' (length=0)
   'project_rate_per_hour' => string '' (length=0)
   'estimated_hours' => string '' (length=0)
   'project_members' => 
     array (size=1)
       0 => string '1' (length=1)
   'start_date' => string '25/07/2019' (length=10)
   'deadline' => string '' (length=0)
   'tags' => string '' (length=0)
   'description' => string '' (length=0)

Success 200

Field Type Description
status Boolean

Request status.

message String

Project add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Project add successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Project add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Project add fail."
}

Project - Delete a Project

delete
api/delete/projects/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

project unique ID.

Success 200

Field Type Description
status Boolean

Request status.

message String

Project Delete successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Project Delete Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Project Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Project Delete Fail."
}

Project - Request project information

get
api/projects/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

project unique ID.

Success 200

Field Type Description
Project Object

information.

HTTP/1.1 200 OK
{
     "id": "28",
     "name": "Test1",
     "description": null,
     "status": "1",
     "clientid": "11",
     "billing_type": "3",
     "start_date": "2019-04-19",
     "deadline": "2019-08-30",
     "project_created": "2019-07-16",
     "date_finished": null,
     "progress": "0",
     "progress_from_tasks": "1",
     "project_cost": "0.00",
     "project_rate_per_hour": "0.00",
     "estimated_hours": "0.00",
     "addedfrom": "5",
     "rel_type": "lead",
     "potential_revenue": "0.00",
     "potential_margin": "0.00",
     "external": "E",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Project - Search Project Information

get
api/projects/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search keywords.

Success 200

Field Type Description
Project Object

information.

HTTP/1.1 200 OK
{
     "id": "28",
     "name": "Test1",
     "description": null,
     "status": "1",
     "clientid": "11",
     "billing_type": "3",
     "start_date": "2019-04-19",
     "deadline": "2019-08-30",
     "project_created": "2019-07-16",
     "date_finished": null,
     "progress": "0",
     "progress_from_tasks": "1",
     "project_cost": "0.00",
     "project_rate_per_hour": "0.00",
     "estimated_hours": "0.00",
     "addedfrom": "5",
     "rel_type": "lead",
     "potential_revenue": "0.00",
     "potential_margin": "0.00",
     "external": "E",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Project - Update a project

put
api/projects/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
name String

Mandatory Project Name.

rel_type string

Mandatory Project Related.

Allowed values: "lead", "customer", "internal"

clientid Number

Mandatory Related ID.

billing_type Number

Mandatory Billing Type.

start_date Date

Mandatory Project Start Date.

status Number

Mandatory Project Status.

progress_from_tasks optional String

Optional on or off progress from tasks.

project_cost optional String

Optional Project Cost.

progress optional String

Optional project progress.

project_rate_per_hour optional String

Optional project rate per hour.

estimated_hours optional String

Optional Project estimated hours.

project_members optional Number[]

Optional Project members.

deadline optional Date

Optional Project deadline.

tags optional String

Optional Project tags.

description optional String

Optional Project description.

{
   "name": "Test1",
   "rel_type": "lead",
   "clientid": "9",
   "status": "2",
   "progress_from_tasks": "on",
   "progress": "0.00", 
   "billing_type": "3",
   "project_cost": "0",
   "project_rate_per_hour": "0",
   "estimated_hours": "0",
   "project_members":
    {
        "0": "5"
    }
   "start_date": "19/04/2019",
   "deadline": "30/08/2019",
   "tags": "",
   "description": "",
   "settings": 
     {
       "available_features":
         {
          "0": "project_overview",
           "1": "project_milestones" ,
           "2": "project_gantt" ,
           "3": "project_tasks" ,
           "4": "project_estimates" ,
           "5": "project_credit_notes" ,
           "6": "project_invoices" ,
           "7": "project_expenses",
           "8": "project_subscriptions" ,
           "9": "project_activity" ,
           "10": "project_tickets" ,
           "11": "project_timesheets",
           "12": "project_files" ,
           "13": "project_discussions" ,
           "14": "project_notes" 
        }
    }
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Project Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Project Update Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Project Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Project Update Fail."
}

Staff

Staff - Add New Staff

post
api/staffs

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
firstname String

Mandatory Staff Name.

email String

Mandatory Staff Related.

password String

Mandatory Staff password.

hourly_rate optional Number

Optional hourly rate.

phonenumber optional String

Optional Staff phonenumber.

facebook optional String

Optional Staff facebook.

linkedin optional String

Optional Staff linkedin.

skype optional String

Optional Staff skype.

default_language optional String

Optional Staff default language.

email_signature optional String

Optional Staff email signature.

direction optional String

Optional Staff direction.

send_welcome_email optional String

Optional Staff send welcome email.

departments optional Number[]

Optional Staff departments.

 array (size=15)
 'firstname' => string '4' (length=1)
 'email' => string 'a@gmail.com' (length=11)
 'hourly_rate' => string '0' (length=1)
 'phonenumber' => string '' (length=0)
 'facebook' => string '' (length=0)
 'linkedin' => string '' (length=0)
 'skype' => string '' (length=0)
 'default_language' => string '' (length=0)
 'email_signature' => string '' (length=0)
 'direction' => string '' (length=0)
'departments' => 
   array (size=5)
     0 => string '1' (length=1)
     1 => string '2' (length=1)
     2 => string '3' (length=1)
     3 => string '4' (length=1)
     4 => string '5' (length=1)
 'send_welcome_email' => string 'on' (length=2)
 'fakeusernameremembered' => string '' (length=0)
 'fakepasswordremembered' => string '' (length=0)
 'password' => string '1' (length=1)
 'role' => string '18' (length=2)

Success 200

Field Type Description
status String

Request status.

message String

Staff add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Staff add successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Staff add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Staff add fail."
}

Staff - Delete a Staff

delete
api/delete/staffs/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Staff unique ID.

Success 200

Field Type Description
status String

Request status.

message String

Staff registration successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Staff Delete."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Not register your accout.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Staff Not Delete."
}

Staff - Request Staff information

get
api/staffs/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Staff unique ID.

Success 200

Field Type Description
Staff Object

information.

HTTP/1.1 200 OK
{
     "staffid": "8",
     "email": "data1.gsts@gmail.com",
     "firstname": "Đào Quang Dân",
     "lastname": "",
     "facebook": "",
     "linkedin": "",
     "phonenumber": "",
     "skype": "",
     "password": "$2a$08$ySLokLAM.AqmW9ZjY2YREO0CIrd5K4Td\/Bpfp8d9QJamWNUfreQuK",
     "datecreated": "2019-02-25 09:11:31",
     "profile_image": "8.png",
    ...
}

Error 4xx

Name Description
StaffNotFound

The id of the Staff was not found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Staff - Search Staff Information

get
api/staffs/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search keywords.

Success 200

Field Type Description
Staff Object

information.

HTTP/1.1 200 OK
{
     "staffid": "8",
     "email": "data1.gsts@gmail.com",
     "firstname": "Đào Quang Dân",
     "lastname": "",
     "facebook": "",
     "linkedin": "",
     "phonenumber": "",
     "skype": "",
     "password": "$2a$08$ySLokLAM.AqmW9ZjY2YREO0CIrd5K4Td\/Bpfp8d9QJamWNUfreQuK",
     "datecreated": "2019-02-25 09:11:31",
     "profile_image": "8.png",
    ...
}

Error 4xx

Name Description
StaffNotFound

The id of the Staff was not found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Staff - Update a Staff

put
api/staffs/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
firstname String

Mandatory Staff Name.

email String

Mandatory Staff Related.

password String

Mandatory Staff password.

hourly_rate optional Number

Optional hourly rate.

phonenumber optional String

Optional Staff phonenumber.

facebook optional String

Optional Staff facebook.

linkedin optional String

Optional Staff linkedin.

skype optional String

Optional Staff skype.

default_language optional String

Optional Staff default language.

email_signature optional String

Optional Staff email signature.

direction optional String

Optional Staff direction.

departments optional Number[]

Optional Staff departments.

{
    "firstname": "firstname",
    "email": "aa454@gmail.com",
    "hourly_rate": "0.00",
    "phonenumber": "",
    "facebook": "",
    "linkedin": "",
    "skype": "",
    "default_language": "",
    "email_signature": "",
    "direction": "",
    "departments": {
        "0": "1",
        "1": "2"
    },
    "password": "123456"
}

Success 200

Field Type Description
status String

Request status.

message String

Staff Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Staff Update Successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Staff Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Staff Update Fail."
}

Task

Task - Add New Task

post
api/tasks

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
name String

Mandatory Task Name.

startdate Date

Mandatory Task Start Date.

is_public optional String

Optional Task public.

billable optional String

Optional Task billable.

hourly_rate optional String

Optional Task hourly rate.

milestone optional String

Optional Task milestone.

duedate optional Date

Optional Task deadline.

priority optional String

Optional Task priority.

repeat_every optional String

Optional Task repeat every.

repeat_every_custom optional Number

Optional Task repeat every custom.

repeat_type_custom optional String

Optional Task repeat type custom.

cycles optional Number

Optional cycles.

rel_type string

Mandatory Task Related.

Allowed values: "lead", "customer", "invoice", "project", "quotation", "contract", "annex", "ticket", "expense", "proposal"

rel_id Number

Optional Related ID.

tags optional String

Optional Task tags.

description optional String

Optional Task description.

array (size=15)
'is_public' => string 'on' (length=2)
'billable' => string 'on' (length=2)
'name' => string 'Task 12' (length=7)
'hourly_rate' => string '0' (length=1)
'milestone' => string '' (length=0)
'startdate' => string '17/07/2019' (length=10)
'duedate' => string '31/07/2019 11:07' (length=16)
'priority' => string '2' (length=1)
'repeat_every' => string '' (length=0)
'repeat_every_custom' => string '1' (length=1)
'repeat_type_custom' => string 'day' (length=3)
'rel_type' => string 'customer' (length=8)
'rel_id' => string '9' (length=1)
'tags' => string '' (length=0)
'description' => string '<span>Task Description</span>' (length=29)

Success 200

Field Type Description
status String

Request status.

message String

Task add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Task add successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Task add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Task add fail."
}

Task - Delete a Task

delete
api/delete/tasks/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Task unique ID.

Success 200

Field Type Description
status String

Request status.

message String

Task Delete Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Task Delete Successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Task Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Task Delete Fail."
}

Task - Request Task information

get
api/tasks/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Task unique ID.

Success 200

Field Type Description
Tasks Object

information.

HTTP/1.1 200 OK
{
    "id": "10",
    "name": "Khảo sát chi tiết hiện trạng",
    "description": "",
    "priority": "2",
    "dateadded": "2019-02-25 12:26:37",
    "startdate": "2019-01-02 00:00:00",
    "duedate": "2019-01-04 00:00:00",
    "datefinished": null,
    "addedfrom": "9",
    "is_added_from_contact": "0",
    "status": "4",
    "recurring_type": null,
    "repeat_every": "0",
    "recurring": "0",
    "is_recurring_from": null,
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Task - Search Tasks Information

get
api/tasks/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Tasks Object

information.

HTTP/1.1 200 OK
{
    "id": "10",
    "name": "Khảo sát chi tiết hiện trạng",
    "description": "",
    "priority": "2",
    "dateadded": "2019-02-25 12:26:37",
    "startdate": "2019-01-02 00:00:00",
    "duedate": "2019-01-04 00:00:00",
    "datefinished": null,
    "addedfrom": "9",
    "is_added_from_contact": "0",
    "status": "4",
    "recurring_type": null,
    "repeat_every": "0",
    "recurring": "0",
    "is_recurring_from": null,
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Task - Update a task

put
api/tasks/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
name String

Mandatory Task Name.

startdate Date

Mandatory Task Start Date.

is_public optional String

Optional Task public.

billable optional String

Optional Task billable.

hourly_rate optional String

Optional Task hourly rate.

milestone optional String

Optional Task milestone.

duedate optional Date

Optional Task deadline.

priority optional String

Optional Task priority.

repeat_every optional String

Optional Task repeat every.

repeat_every_custom optional Number

Optional Task repeat every custom.

repeat_type_custom optional String

Optional Task repeat type custom.

cycles optional Number

Optional cycles.

rel_type string

Mandatory Task Related.

Allowed values: "lead", "customer", "invoice", "project", "quotation", "contract", "annex", "ticket", "expense", "proposal"

rel_id Number

Optional Related ID.

tags optional String

Optional Task tags.

description optional String

Optional Task description.

{
    "billable": "1",
    "is_public": "1",
    "name": "Task 1",
    "hourly_rate": "0.00",
    "milestone": "0",
    "startdate": "27/08/2019",
    "duedate": null,
    "priority": "0",
    "repeat_every": "",
    "repeat_every_custom": "1",
    "repeat_type_custom": "day",
    "cycles": "0",
    "rel_type": "lead",
    "rel_id": "11",
    "tags": "",
    "description": ""
}

Success 200

Field Type Description
status String

Request status.

message String

Task Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Task Update Successful."
}

Error 4xx

Name Type Description
status String

Request status.

message String

Task Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Task Update Fail."
}

Ticket

Ticket - Add New Ticket

post
api/tickets

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
subject String

Mandatory Ticket name .

department String

Mandatory Ticket Department.

contactid String

Mandatory Ticket Contact.

userid String

Mandatory Ticket user.

project_id optional String

Optional Ticket Project.

message optional String

Optional Ticket message.

service optional String

Optional Ticket Service.

assigned optional String

Optional Assign ticket.

cc optional String

Optional Ticket CC.

priority optional String

Optional Priority.

tags optional String

Optional ticket tags.

array (size=11)
 'subject' => string 'ticket name' (length=11)
 'contactid' => string '4' (length=1)
 'userid' => string '5' (length=1)
 'department' => string '2' (length=1)
 'cc' => string '' (length=0)
 'tags' => string '' (length=0)
 'assigned' => string '8' (length=1)
 'priority' => string '2' (length=1)
 'service' => string '2' (length=1)
 'project_id' => string '' (length=0)
 'message' => string '' (length=0)

Success 200

Field Type Description
status Boolean

Request status.

message String

Ticket add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Ticket add successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Ticket add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Ticket add fail."
}

Ticket - Delete a Ticket

delete
api/delete/tickets/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Ticket unique ID.

Success 200

Field Type Description
status Boolean

Request status.

message String

Ticket Delete Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Ticket Delete Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Ticket Delete Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Ticket Delete Fail."
}

Ticket - Request Ticket information

get
api/tickets/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Ticket unique ID.

Success 200

Field Type Description
Ticket Object

information.

HTTP/1.1 200 OK
{
    "ticketid": "7",
    "adminreplying": "0",
    "userid": "0",
    "contactid": "0",
    "email": null,
    "name": "Trung bình",
    "department": "1",
    "priority": "2",
    "status": "1",
    "service": "1",
    "ticketkey": "8ef33d61bb0f26cd158d56cc18b71c02",
    "subject": "Ticket ER",
    "message": "Ticket ER",
    "admin": "5",
    "date": "2019-04-10 03:08:21",
    "project_id": "5",
    "lastreply": null,
    "clientread": "0",
    "adminread": "1",
    "assigned": "5",
    "line_manager": "8",
    "milestone": "27",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

The id of the Ticket was not found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Ticket - Search Ticket Information

get
api/tickets/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search keywords.

Success 200

Field Type Description
Ticket Object

information.

HTTP/1.1 200 OK
{
    "ticketid": "7",
    "adminreplying": "0",
    "userid": "0",
    "contactid": "0",
    "email": null,
    "name": "Trung bình",
    "department": "1",
    "priority": "2",
    "status": "1",
    "service": "1",
    "ticketkey": "8ef33d61bb0f26cd158d56cc18b71c02",
    "subject": "Ticket ER",
    "message": "Ticket ER",
    "admin": "5",
    "date": "2019-04-10 03:08:21",
    "project_id": "5",
    "lastreply": null,
    "clientread": "0",
    "adminread": "1",
    "assigned": "5",
    "line_manager": "8",
    "milestone": "27",
    ...
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

The id of the Ticket was not found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Ticket - Update a ticket

put
api/tickets/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
subject String

Mandatory Ticket name .

department String

Mandatory Ticket Department.

contactid String

Mandatory Ticket Contact.

userid String

Mandatory Ticket user.

priority String

Mandatory Priority.

project_id optional String

Optional Ticket Project.

message optional String

Optional Ticket message.

service optional String

Optional Ticket Service.

assigned optional String

Optional Assign ticket.

tags optional String

Optional ticket tags.

{
    "subject": "Ticket ER",
    "department": "1",
    "contactid": "0",
    "ticketid": "7",
    "userid": "0",
    "project_id": "5",
    "message": "Ticket ER",
    "service": "1",
    "assigned": "5",
    "priority": "2",
    "tags": ""
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Ticket Update Successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Ticket Update Successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Ticket Update Fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Ticket Update Fail."
}

Credit Notes

Credit Notes - Add New Credit Notes

post
api/credit_notes

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid Number

Mandatory. Customer id

date Date

Mandatory. Credit Note Date

number Number

Mandatory. Credit Note Number

currency Number

Mandatory. currency field

newitems Array

Mandatory. New Items to be added

billing_street String

Optional. Street Address

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

discount_type optional String

Optional. before_tax / after_tax discount type

Admin optional String

Note] Optional. Admin Note

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

 [
		"clientid" => 2
		"date" => 2021-08-20
		"number" => 2
		"newitems[0][description]" => item 1 description
		"newitems[0][long_description]" => item 1 long description
		"newitems[0][qty]" => 1
		"newitems[0][rate]" => 1200
		"newitems[0][order]" => 1
		"newitems[0][unit]" => 
		"newitems[0][unit]" => 
		"newitems[0][custom_fields][items][1]" => "new condition"
		"subtotal" => 1200.00
		"total" => 1200.00
		"currency" => 1
		"custom_fields"[credit_note][1]" => customfield_value
]

Success 200

Field Type Description
status Boolean

Request status.

message String

Credit Note Added Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Credit Note Added Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Credit Note add fail

newitems[] String

The Items field is required

number String

The Credit Note number is already in use

subtotal String

The Sub Total field is required

total String

The Total field is required

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Credit Note Add Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Credit Note number is already in use"
		},
		"message": "The Credit Note number is already in use"
    }
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "newitems[]": "The Items field is required"
	    },
	    "message": "<p>The Items field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "subtotal": "The Sub Total field is required"
	    },
	    "message": "<p>The Sub Total field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "total": "The Total field is required"
	    },
	    "message": "<p>The Total field is required</p>\n"
	}

Credit Notes - Delete Credit Note

delete
api/credit_notes/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
status Boolean

Request status.

message String

Credit Note Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Credit Note Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Credit Note Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Credit Note Delete Fail"
}

Credit Notes - Request Credit notes information

get
api/credit_notes/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
Credit Object

notes information.

    HTTP/1.1 200 OK
    {
	        "id": "2",
	        "clientid": "1",
	        "deleted_customer_name": null,
	        "number": "2",
        "prefix": "CN-",
	        "number_format": "1",
	        "datecreated": "2021-07-30 16:29:46",
	        "date": "2021-08-02",
	        "adminnote": "adminnote2",
        "terms": "",
	        "clientnote": "",
	        "currency": "1",
	        "subtotal": "1200.00",
	        "total_tax": "0.00",
	        "total": "1200.00",
	        "adjustment": "0.00",
	        "addedfrom": "1",
	        "status": "1",
	        "project_id": "0",
	        "discount_percent": "0.00",
	        "discount_total": "0.00",
	        "discount_type": "",
	        "billing_street": "Test",
	        "billing_city": "Test",
	        "billing_state": "Test",
	        "billing_zip": "3000",
	        "billing_country": "102",
	        "shipping_street": "Test",
	        "shipping_city": "Test",
	        "shipping_state": "Test",
	        "shipping_zip": "3000",
	        "shipping_country": "102",
	        "include_shipping": "1",
	        "show_shipping_on_credit_note": "1",
	        "show_quantity_as": "1",
	        "reference_no": "",
	        "userid": "1",
	        "company": "Test",
	        "vat": "",
	        "phonenumber": "01324568903",
	        "country": "102",
	        "city": "Test",
	        "zip": "3000",
	        "state": "Test",
	        "address": "Test",
	        "website": "",
	        "active": "1",
	        "leadid": null,
	        "longitude": null,
	        "latitude": null,
	        "default_language": "",
	        "default_currency": "0",
	        "show_primary_contact": "0",
	        "stripe_id": null,
	        "registration_confirmed": "1",
	        "credit_note_id": "2",
	        "customfields": []
	    }

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Credit Notes - Search credit notes item information

get
api/credit_notes/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
keysearch String

Search Keywords

Success 200

Field Type Description
credit Object

notes Information

	HTTP/1.1 200 OK
    {
	        "id": "2",
	        "clientid": "1",
	        "deleted_customer_name": null,
	        "number": "2",
        "prefix": "CN-",
	        "number_format": "1",
	        "datecreated": "2021-07-30 16:29:46",
	        "date": "2021-08-02",
	        "adminnote": "adminnote2",
        "terms": "",
	        "clientnote": "",
	        "currency": "1",
	        "subtotal": "1200.00",
	        "total_tax": "0.00",
	        "total": "1200.00",
	        "adjustment": "0.00",
	        "addedfrom": "1",
	        "status": "1",
	        "project_id": "0",
	        "discount_percent": "0.00",
	        "discount_total": "0.00",
	        "discount_type": "",
	        "billing_street": "Test",
	        "billing_city": "Test",
	        "billing_state": "Test",
	        "billing_zip": "3000",
	        "billing_country": "102",
	        "shipping_street": "Test",
	        "shipping_city": "Test",
	        "shipping_state": "Test",
	        "shipping_zip": "3000",
	        "shipping_country": "102",
	        "include_shipping": "1",
	        "show_shipping_on_credit_note": "1",
	        "show_quantity_as": "1",
	        "reference_no": "",
	        "userid": "1",
	        "company": "test",
	        "vat": "",
	        "phonenumber": "01324568903",
	        "country": "102",
	        "city": "Test",
	        "zip": "3000",
	        "state": "Test",
	        "address": "Test",
	        "website": "",
	        "active": "1",
	        "leadid": null,
	        "longitude": null,
	        "latitude": null,
	        "default_language": "",
	        "default_currency": "0",
	        "show_primary_contact": "0",
	        "stripe_id": null,
	        "registration_confirmed": "1",
	        "credit_note_id": "2",
	        "customfields": []
	    }
HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Credit Notes - Update a Credit Note

put
api/credit_notes

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid Number

Mandatory. Customer id

date Date

Mandatory. Credit Note Date

number Number

Mandatory. Credit Note Number

currency Number

Mandatory. currency field

newitems Array

Mandatory. New Items to be added

items Array

Mandatory. Existing items with Id

removed_items Array

Optional. Items to be removed

billing_street String

Optional. Street Address

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

discount_type optional String

Optional. before_tax / after_tax discount type

Admin optional String

Note] Optional. Admin Note

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

{
    "clientid": 1,
    "date": "2021-08-20",
    "number": 1,
    "items": {
        "1": {
            "itemid": "25",
            "order": "1",
            "description": "item description",
            "long_description": "item long description",
            "qty": "1",
            "unit": "1",
            "rate": "10.00",
            "custom_fields": {
                "items": {
                    "31": "test 12 item 1",
                    "32": "10",
                    "33": "Lorem Ipsum is simply dummy text of the printing and typesetting industry",
                    "34": "Option 1",
                    "35": [
                        "Option 1",
                        "Option 2"
                    ],
                    "36": [
                        "Option 1",
                        "Option 3"
                    ],
                    "37": "2021-05-06",
                    "38": "2021-05-06 00:23:25",
                    "39": "#ffffff",
                    "40": "<a href=\"url.com\" target=\"_blank\">Link</a>"
                }
            }
        }
    },
    "newitems": {
        "2": {
            "order": "2",
            "description": "updated item 2 description",
            "long_description": "updated item 2 logn description",
            "qty": "1",
            "unit": "",
            "rate": "100.00",
            "custom_fields": {
                "items": {
                    "31": "test 12 item 2",
                    "32": "10",
                    "33": "Lorem Ipsum is simply dummy text of the printing and  typesetting industry",
                    "34": "Option 1",
                    "35": [
                        "Option 1",
                        "Option 2"
                    ],
                    "36": [
                        "Option 1",
                        "Option 3"
                    ],
                    "37": "2021-05-06",
                    "38": "2021-05-06 00:23:25",
                    "39": "#ffffff",
                    "40": "<a href=\"url.com\" target=\"_blank\">Link</a>"
                }
            }
        }
    },
    "custom_fields": {
        "credit_note": {
            "93": "test 1254"
        }
    },
    "subtotal": "1200.00",
    "total": "1200.00",
    "currency": 1
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Credit Note Updated Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Credit Note Updated Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Credit Note Update Fail

newitems[] String

The Items field is required

number String

The Credit Note number is already in use

subtotal String

The Sub Total field is required

total String

The Total field is required

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Credit Note Update Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Credit Note number is already in use"
		},
		"message": "The Credit Note number is already in use"
    }
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "newitems[]": "The Items field is required"
	    },
	    "message": "<p>The Items field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "subtotal": "The Sub Total field is required"
	    },
	    "message": "<p>The Sub Total field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "total": "The Total field is required"
	    },
	    "message": "<p>The Total field is required</p>\n"
	}

Custom Fields

Custom Fields - Add Custom Fields

Submit URL for POST request of the custom fields remains the same for each endpoint (ie api/contacts for Contacts endpoint, api/invoices for Invoices endpoint, etc..)

In this example, we will use the following form data which corresponds to the following custom field types:

custom_fields[invoice][1] = Input Type
custom_fields[invoice][2] = Number
custom_fields[invoice][3] = Textarea
custom_fields[invoice][4] = Radio
custom_fields[invoice][5] = Checkbox
custom_fields[invoice][6] = Multiselect
custom_fields[invoice][7] = Date
custom_fields[invoice][8] = Datetime
custom_fields[invoice][9] = Color
custom_fields[invoice][10] = Link

post
N/A

Parameter

Field Type Description
custom_fields[customFieldType] string/array

Custom Field Key should be same as field_name returned from Search custom field values' information

[
   custom_fields[invoice][1] => John Doe
   custom_fields[invoice][2] => 10
   custom_fields[invoice][3] => Lorem Ipsum is simply dummy text of the printing and typesetting industry.
   custom_fields[invoice][4] => Option 1
   custom_fields[invoice][5][] => Option 1
   custom_fields[invoice][5][] => Option 2
   custom_fields[invoice][6][] => Option 1
   custom_fields[invoice][6][] => Option 3
   custom_fields[invoice][7] => 2021-05-06
   custom_fields[invoice][8] => 2021-05-06 00:23:25
   custom_fields[invoice][9] => #FFFFFF
   custom_fields[invoice][10] => <a href="url.com" target="_blank">Link</a>
]
HTTP/1.1 200 OK
 Same as Original request
HTTP/1.1 404 Not Found
Same as Original request

Custom Fields - Delete Custom Fields

To remove particular custom field value you can use Update action and an empty value in the custom field.
Note: When you delete any record the corresponding custom field data will be automatically deleted.

delete
N/A

Custom Fields - Request Custom Fields

Custom fields' data will be returned combined with other request's information during the initial GET request of each available endpoint (Contacts, Invoices etc) with their respective label and value key

get
N/A
HTTP/1.1 200 OK
     {
        "id": "1",
        "sent": "0",
        "datesend": null,
        "clientid": "1",
        "deleted_customer_name": null,
        "number": "10",
        "prefix": "INV-",
        "number_format": "1",
        "datecreated": "2021-05-14 00:44:52",
        "date": "2021-08-28",
        "duedate": "2021-09-27",
        "currency": "1",
        "subtotal": "110.00",
        "total_tax": "0.00",
        "total": "110.00",
        "adjustment": "0.00",
        "addedfrom": "0",
        "hash": "4222d2f53404324ea73535d3c0f2c3f0",
        "status": "1",
        "clientnote": "",
        "adminnote": "",
        "last_overdue_reminder": null,
        "cancel_overdue_reminders": "1",
        "allowed_payment_modes": "a:2:{i:0;s:1:\"1\";i:1;s:1:\"2\";}",
        "token": null,
        "discount_percent": "0.00",
        "discount_total": "0.00",
        "discount_type": "",
        "recurring": "0",
        "recurring_type": null,
        "custom_recurring": "0",
        "cycles": "0",
        "total_cycles": "0",
        "is_recurring_from": null,
        "last_recurring_date": null,
        "terms": "",
        "sale_agent": "0",
        "billing_street": "billing address",
        "billing_city": "billing city name",
        "billing_state": "billing state name",
        "billing_zip": "billing zip code",
        "billing_country": "0",
        "shipping_street": "shipping address",
        "shipping_city": "city name",
        "shipping_state": "state name",
        "shipping_zip": "zip code",
        "shipping_country": "0",
        "include_shipping": "1",
        "show_shipping_on_invoice": "1",
        "show_quantity_as": "1",
        "project_id": "0",
        "subscription_id": "0",
        "short_link": null,
        "symbol": "$",
        "name": "USD",
        "decimal_separator": ".",
        "thousand_separator": ",",
        "placement": "before",
        "isdefault": "1",
        "currencyid": "1",
        "currency_name": "USD",
        "total_left_to_pay": "110.00",
        "items": [
            {
                "id": "1",
                "rel_id": "1",
                "rel_type": "invoice",
                "description": "item description",
                "long_description": "item long description",
                "qty": "1.00",
                "rate": "10.00",
                "unit": "1",
                "item_order": "1",
                "customfields": [
                    {
                        "label": "Input 1",
                        "value": "test 12 item 1"
                    },
                    {
                        "label": "Number 1",
                        "value": "10"
                    },
                    {
                        "label": "Textarea 1",
                        "value": "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
                    },
                    {
                        "label": "Select 1",
                        "value": "Option 1"
                    },
                    {
                        "label": "Multiselect 1",
                        "value": "Option 1, Option 2"
                    },
                    {
                        "label": "Checkbox 1",
                        "value": "Option 1, Option 3"
                    },
                    {
                        "label": "Datepicker 1",
                        "value": "2021-05-06"
                    },
                    {
                        "label": "Datetime Picker 1",
                        "value": "2021-05-06 00:23:25"
                    },
                    {
                        "label": "Colorpicker 1",
                        "value": "#ffffff"
                    },
                    {
                        "label": "Hyperlink 1",
                        "value": "<a>Link</a>"
                    }
                ]
            },
            {
                "id": "2",
                "rel_id": "1",
                "rel_type": "invoice",
                "description": "updated item 2 description",
                "long_description": "updated item 2 logn description",
                "qty": "1.00",
                "rate": "100.00",
                "unit": "",
                "item_order": "2",
                "customfields": [
                    {
                        "label": "Input 1",
                        "value": "test 12 item 2"
                    },
                    {
                        "label": "Number 1",
                        "value": "10"
                    },
                    {
                        "label": "Textarea 1",
                        "value": "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
                    },
                    {
                        "label": "Select 1",
                        "value": "Option 1"
                    },
                    {
                        "label": "Multiselect 1",
                        "value": "Option 1, Option 2"
                    },
                    {
                        "label": "Checkbox 1",
                        "value": "Option 1, Option 3"
                    },
                    {
                        "label": "Datepicker 1",
                        "value": "2021-05-06"
                    },
                    {
                        "label": "Datetime Picker 1",
                        "value": "2021-05-06 00:23:25"
                    },
                    {
                        "label": "Colorpicker 1",
                        "value": "#ffffff"
                    },
                    {
                        "label": "Hyperlink 1",
                        "value": "<a>Link</a>"
                    }
                ]
            }
        ],
        "attachments": [],
        "visible_attachments_to_customer_found": false,
        "client": {
            "userid": "1",
            "company": "updated company",
            "vat": "",
            "phonenumber": "",
            "country": "0",
            "city": "",
            "zip": "",
            "state": "",
            "address": "",
            "website": "",
            "datecreated": "2021-05-14 00:15:06",
            "active": "1",
            "leadid": null,
            "billing_street": "",
            "billing_city": "",
            "billing_state": "",
            "billing_zip": "",
            "billing_country": "0",
            "shipping_street": "",
            "shipping_city": "",
            "shipping_state": "",
            "shipping_zip": "",
            "shipping_country": "0",
            "longitude": null,
            "latitude": null,
            "default_language": "",
            "default_currency": "0",
            "show_primary_contact": "0",
            "stripe_id": null,
            "registration_confirmed": "1",
            "addedfrom": "0"
        },
        "payments": [],
        "scheduled_email": null,
        "customfields": [
            {
                "label": "Input 1",
                "value": "test 12"
            },
            {
                "label": "Number 1",
                "value": "10"
            },
            {
                "label": "Textarea 1",
                "value": "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
            },
            {
                "label": "Select 1",
                "value": "Option 1"
            },
            {
                "label": "Multiselect 1",
                "value": "Option 1, Option 2"
            },
            {
                "label": "Checkbox 1",
                "value": "Option 1, Option 3"
            },
            {
                "label": "Datepicker 1",
                "value": "2021-05-06"
            },
            {
                "label": "Datetime Picker 1",
                "value": "2021-05-06 00:23:25"
            },
            {
                "label": "Colorpicker 1",
                "value": "#ffffff"
            },
            {
                "label": "Hyperlink 1",
                "value": "<a>Link</a>"
            }
        ]
    }
HTTP/1.1 404 Not Found
Same as Original request

Custom Fields - Request Values of Custom Fields

get
api/custom_fields/:FieldBelongsto/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
FieldBelongsto string

Belongs to Mandatory Field Belongs to.

Allowed values:
"Company"
,
"Leads"
,
"Customers"
,
"Contacts"
,
"Staff"
,
"Contracts"
,
"Tasks"
,
"Expenses"
,
"Invoice"
,
"Items"
,
"Note"
,
"Estimate"
,
"Proposal"
,
"Projects"
,
"Tickets"

id optional Number

Optional unique ID.

Success 200

Field Type Description
Custom Object

Custom Fields information with values.

  HTTP/1.1 200 OK
[
    {
        "field_name": "custom_fields[invoice][1]",
        "custom_field_id": "1",
        "label": "Input 1",
        "required": "0",
        "type": "input",
        "value": "input1 data"
    },
    {
        "field_name": "custom_fields[invoice][2]",
        "custom_field_id": "2",
        "label": "Number 1",
        "required": "0",
        "type": "number",
        "value": "12"
    },
    {
        "field_name": "custom_fields[invoice][3]",
        "custom_field_id": "3",
        "label": "Textarea 1",
        "required": "0",
        "type": "textarea",
        "value": "textarea content"
    },
    {
        "field_name": "custom_fields[invoice][4]",
        "custom_field_id": "4",
        "label": "Select 1",
        "required": "0",
        "type": "select",
        "value": "[\"Option 1\"]",
        "options": "[\"Option 1\",\"Option 2\",\"Option 3\"]"
    },
    {
        "field_name": "custom_fields[invoice][5]",
        "custom_field_id": "5",
        "label": "Multiselect 1",
        "required": "0",
        "type": "multiselect",
        "value": "[\"Option 1\",\" Option 2\"]",
        "options": "[\"Option 1\",\"Option 2\",\"Option 3\"]"
    },
    {
        "field_name": "custom_fields[invoice][6]",
        "custom_field_id": "6",
        "label": "Checkbox 1",
        "required": "0",
        "type": "checkbox",
        "value": "[\"Option 1\",\" Option 2\"]",
        "options": "[\"Option 1\",\"Option 2\",\"Option 3\"]"
    },
    {
        "field_name": "custom_fields[invoice][7]",
        "custom_field_id": "7",
        "label": "Datepicker 1",
        "required": "0",
        "type": "date_picker",
        "value": "2021-05-16"
    },
    {
        "field_name": "custom_fields[invoice][8]",
        "custom_field_id": "8",
        "label": "Datetime Picker 1",
        "required": "0",
        "type": "date_picker_time",
        "value": "2021-05-25 23:06:00"
    },
    {
        "field_name": "custom_fields[invoice][9]",
        "custom_field_id": "9",
        "label": "Colorpicker 1",
        "required": "0",
        "type": "colorpicker",
        "value": "#8f1b1b"
    },
    {
        "field_name": "custom_fields[invoice][10]",
        "custom_field_id": "10",
        "label": "Hyperlink 1",
        "required": "0",
        "type": "link",
        "value": "<a href=\"https://google.com\" target=\"_blank\">google</a>"
    }
]

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Custom Fields - Search custom field values' information

Custom fields' data will be returned combined with other request's information during the initial SEARCH request of each available endpoint (Contacts, Invoices etc) with their respective label and value key

get
N/A
HTTP/1.1 200 OK
 [
        {
            "id": "1",
            "sent": "0",
            "datesend": null,
            "clientid": "1",
            "deleted_customer_name": null,
            "number": "10",
            "prefix": "INV-",
            "number_format": "1",
            "datecreated": "2021-05-14 00:15:06",
            "date": "2021-08-28",
            "duedate": "2021-09-27",
            "currency": "1",
            "subtotal": "110.00",
            "total_tax": "0.00",
            "total": "110.00",
            "adjustment": "0.00",
            "addedfrom": "0",
            "hash": "4222d2f53404324ea73535d3c0f2c3f0",
            "status": "1",
            "clientnote": "",
            "adminnote": "",
            "last_overdue_reminder": null,
            "cancel_overdue_reminders": "1",
            "allowed_payment_modes": "a:2:{i:0;s:1:\"1\";i:1;s:1:\"2\";}",
            "token": null,
            "discount_percent": "0.00",
            "discount_total": "0.00",
            "discount_type": "",
            "recurring": "0",
            "recurring_type": null,
            "custom_recurring": "0",
            "cycles": "0",
            "total_cycles": "0",
            "is_recurring_from": null,
            "last_recurring_date": null,
            "terms": "",
            "sale_agent": "0",
            "billing_street": "",
            "billing_city": "",
            "billing_state": "",
            "billing_zip": "",
            "billing_country": "0",
            "shipping_street": "",
            "shipping_city": "",
            "shipping_state": "",
            "shipping_zip": "",
            "shipping_country": "0",
            "include_shipping": "1",
            "show_shipping_on_invoice": "1",
            "show_quantity_as": "1",
            "project_id": "0",
            "subscription_id": "0",
            "short_link": null,
            "userid": "1",
            "company": "updated company",
            "vat": "",
            "phonenumber": "",
            "country": "0",
            "city": "",
            "zip": "",
            "state": "",
            "address": "",
            "website": "",
            "active": "1",
            "leadid": null,
            "longitude": null,
            "latitude": null,
            "default_language": "",
            "default_currency": "0",
            "show_primary_contact": "0",
            "stripe_id": null,
            "registration_confirmed": "1",
            "invoiceid": "1",
            "customfields": [
                {
                    "label": "Input 1",
                    "value": "test 12"
                },
                {
                    "label": "Number 1",
                    "value": "10"
                },
                {
                    "label": "Textarea 1",
                    "value": "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
                },
                {
                    "label": "Select 1",
                    "value": "Option 1"
                },
                {
                    "label": "Multiselect 1",
                    "value": "Option 1, Option 2"
                },
                {
                    "label": "Checkbox 1",
                    "value": "Option 1, Option 3"
                },
                {
                    "label": "Datepicker 1",
                    "value": "2021-05-06"
                },
                {
                    "label": "Datetime Picker 1",
                    "value": "2021-05-06 00:23:25"
                },
                {
                    "label": "Colorpicker 1",
                    "value": "#ffffff"
                },
                {
                    "label": "Hyperlink 1",
                    "value": "<a>Link</a>"
                }
            ]
        },
        {
            "id": "2",
            "sent": "0",
            "datesend": null,
            "clientid": "1",
            "deleted_customer_name": null,
            "number": "4",
            "prefix": "INV-",
            "number_format": "1",
            "datecreated": "2021-05-14 00:15:06",
            "date": "2021-05-28",
            "duedate": "2021-06-27",
            "currency": "1",
            "subtotal": "110.00",
            "total_tax": "0.00",
            "total": "110.00",
            "adjustment": "0.00",
            "addedfrom": "0",
            "hash": "630f8cc7ed2e6a70c4113ab24041bdf5",
            "status": "6",
            "clientnote": "",
            "adminnote": "",
            "last_overdue_reminder": null,
            "cancel_overdue_reminders": "1",
            "allowed_payment_modes": "a:2:{i:0;s:1:\"1\";i:1;s:1:\"2\";}",
            "token": null,
            "discount_percent": "0.00",
            "discount_total": "0.00",
            "discount_type": "",
            "recurring": "0",
            "recurring_type": null,
            "custom_recurring": "0",
            "cycles": "0",
            "total_cycles": "0",
            "is_recurring_from": null,
            "last_recurring_date": null,
            "terms": "",
            "sale_agent": "0",
            "billing_street": "",
            "billing_city": "",
            "billing_state": "",
            "billing_zip": "",
            "billing_country": "0",
            "shipping_street": "",
            "shipping_city": "",
            "shipping_state": "",
            "shipping_zip": "",
            "shipping_country": "0",
            "include_shipping": "1",
            "show_shipping_on_invoice": "1",
            "show_quantity_as": "1",
            "project_id": "0",
            "subscription_id": "0",
            "short_link": null,
            "userid": "1",
            "company": "updated company",
            "vat": "",
            "phonenumber": "",
            "country": "0",
            "city": "",
            "zip": "",
            "state": "",
            "address": "",
            "website": "",
            "active": "1",
            "leadid": null,
            "longitude": null,
            "latitude": null,
            "default_language": "",
            "default_currency": "0",
            "show_primary_contact": "0",
            "stripe_id": null,
            "registration_confirmed": "1",
            "invoiceid": "2",
            "customfields": [
                {
                    "label": "Input 1",
                    "value": "test 12"
                },
                {
                    "label": "Number 1",
                    "value": "10"
                },
                {
                    "label": "Textarea 1",
                    "value": "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
                },
                {
                    "label": "Select 1",
                    "value": "Option 1"
                },
                {
                    "label": "Multiselect 1",
                    "value": "Option 1, Option 2"
                },
                {
                    "label": "Checkbox 1",
                    "value": "Option 1, Option 3"
                },
                {
                    "label": "Datepicker 1",
                    "value": "2021-05-06"
                },
                {
                    "label": "Datetime Picker 1",
                    "value": "2021-05-06 00:23:25"
                },
                {
                    "label": "Colorpicker 1",
                    "value": "#ffffff"
                },
                {
                    "label": "Hyperlink 1",
                    "value": "<a>Link</a>"
                }
            ]
        }
    ]
HTTP/1.1 404 Not Found
Same as Original request

Custom Fields - Update Custom Fields

Submit URL for PUT request of the custom fields remains the same for each endpoint (ie api/contacts for Contacts endpoint, api/invoices for Invoices endpoint, etc..)

In this example, we will use the following form data which corresponds to the following custom field types:

custom_fields[invoice][1] = Input Type
custom_fields[invoice][2] = Number
custom_fields[invoice][3] = Textarea
custom_fields[invoice][4] = Radio
custom_fields[invoice][5] = Checkbox
custom_fields[invoice][6] = Multiselect
custom_fields[invoice][7] = Date
custom_fields[invoice][8] = Datetime
custom_fields[invoice][9] = Color
custom_fields[invoice][10] = Link

put
N/A

Parameter

Field Type Description
custom_fields[customFieldType] string/array

Custom Field JSON should be same as below with field_name and custom_field_id returned from Search custom field values' information

{
    "custom_fields": {
        "invoice": {
            "1": "test 12 item 1",
            "2": "10",
            "3": "Lorem Ipsum is simply dummy text of the printing and typesetting industry",
            "4": "Option 1",
            "5": [
                "Option 1",
                "Option 2"
            ],
            "6": [
                "Option 1",
                "Option 3"
            ],
            "7": "2021-05-06",
            "8": "2021-05-06 00:23:25",
            "9": "#ffffff",
            "10": "<a href=\"url.com\" target=\"_blank\">Link</a>"
        }
    }
}
HTTP/1.1 200 OK
 Same as Original request
HTTP/1.1 404 Not Found
Same as Original request

Estimates

Estimates - Add New Estimates

post
api/estimates

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid Number

Mandatory. Customer id

number Number

Mandatory. Estimates Number

date Date

Mandatory. Estimates Date

duedate optional Date

Optional. Expiry Date of Estimates

currency Number

Mandatory. currency field

newitems Array

Mandatory. New Items to be added

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and Adjustment

billing_street String

Optional. Street Address

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

tags optional String

Optional. TAGS comma separated

status optional Number

Optional. Status id (default status is Accepted)

Reference optional String

Optional. Reference name

sale_agent optional Number

Optional. Sale Agent name

adminnote optional String

Optional. notes by admin

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

  [
		"clientid"=>1,
		"number"=>"00001",
		"date"=>"2020-09-07",
		"currency"=>1,
		"newitems[0][description]"=>"item 1 description",
		"newitems[0][long_description]"=>"item 1 long description",
		"newitems[0][qty]"=>1,
		"newitems[0][rate]"=>100,
		"newitems[0][order]"=>1,
		"newitems[0][taxname][]"=>CGST|9.00,
		"newitems[0][taxname][]"=>SGST|9.00,
		"newitems[0][unit]"=>"",
		"newitems[1][description]"=>"item 2 description",
		"newitems[1][long_description]"=>"item 2 long description",
		"newitems[1][qty]"=>1,
		"newitems[1][rate]"=>100,
		"newitems[1][order]"=>1,
		"newitems[1][taxname][]"=>CGST|9.00,
		"newitems[1][taxname][]"=>SGST|9.00,
		"newitems[1][unit]"=>"",
		"subtotal"=>236.00,
		"total"=>236.00,
		"status"=>1,
		....
	]

Success 200

Field Type Description
status Boolean

Request status.

message String

Estimates Added Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Estimates Added Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Estimates add fail

newitems[] String

The Items field is required

number String

The Estimates number is already in use

subtotal String

The Sub Total field is required

total String

The Total field is required

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Estimates Add Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Estimates number is already in use"
		},
		"message": "The Estimates number is already in use"
    }
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "newitems[]": "The Items field is required"
	    },
	    "message": "<p>The Items field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "subtotal": "The Sub Total field is required"
	    },
	    "message": "<p>The Sub Total field is required</p>\n"
	}
  HTTP/1.1 404 Not Found
   {
	    "status": false,
	    "error": {
	        "total": "The Total field is required"
	    },
	    "message": "<p>The Total field is required</p>\n"
	}

Estimates - Delete Estimate

delete
api/estimates/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
status Boolean

Request status.

message String

Estimates Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Estimate Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Estimate Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Estimate Delete Fail"
}

Estimates - Request Estimate information

get
api/estimates/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Contact unique ID

Success 200

Field Type Description
Estimates Object

information.

  HTTP/1.1 200 OK
  {
	    "id": "1",
	    "sent": "0",
	    "datesend": null,
	    "clientid": "1",
	    "deleted_customer_name": null,
	    "project_id": "0",
	    "number": "1",
	    "prefix": "EST-",
	    "number_format": "1",
	    "hash": "b12ae9de6471d0cf153d7846f05128af",
	    "datecreated": "2021-07-31 11:06:49",
	    "date": "2021-07-31",
	    "expirydate": "2021-08-07",
	    "currency": "1",
	    "subtotal": "1200.00",
	    "total_tax": "0.00",
	    "total": "1200.00",
	    "adjustment": "0.00",
	    "addedfrom": "1",
	    "status": "1",
	    "clientnote": "",
	    "adminnote": "",
	    "discount_percent": "0.00",
	    "discount_total": "0.00",
	    "discount_type": "",
	    "invoiceid": null,
	    "invoiced_date": null,
	    "terms": "",
	    "reference_no": "",
	    "sale_agent": "0",
	    "billing_street": "Thangadh, Gujarat, India<br />\r\nShipping",
	    "billing_city": "Thangadh",
	    "billing_state": "Gujarat",
	    "billing_zip": "363630",
	    "billing_country": "102",
	    "shipping_street": "Thangadh, Gujarat, India<br />\r\nShipping",
	    "shipping_city": "Thangadh",
	    "shipping_state": "Gujarat",
	    "shipping_zip": "363630",
	    "shipping_country": "102",
	    "include_shipping": "1",
	    "show_shipping_on_estimate": "1",
	    "show_quantity_as": "1",
	    "pipeline_order": "0",
	    "is_expiry_notified": "0",
	    "acceptance_firstname": null,
	    "acceptance_lastname": null,
	    "acceptance_email": null,
	    "acceptance_date": null,
	    "acceptance_ip": null,
	    "signature": null,
	    "short_link": null,
	    "symbol": "$",
	    "name": "USD",
	    "decimal_separator": ".",
	    "thousand_separator": ",",
	    "placement": "before",
	    "isdefault": "1",
	    "currencyid": "1",
	    "currency_name": "USD",
	    "attachments": [],
	    "visible_attachments_to_customer_found": false,
	    "items": [
	        {
	            "id": "2",
	            "rel_id": "1",
	            "rel_type": "estimate",
	            "description": "test",
	            "long_description": "test",
	            "qty": "1.00",
	            "rate": "1200.00",
	            "unit": "1",
	            "item_order": "1"
	        }
	    ],
	    "client": {
	        "userid": "1",
	        "company": "test",
	        "vat": "",
	        "phonenumber": "01324568903",
	        "country": "102",
	        "city": "test",
	        "zip": "3000",
	        "state": "Test",
	        "address": "Test",
	        "website": "",
	        "datecreated": "2021-07-30 16:29:46",
	        "active": "1",
	        "leadid": null,
	        "billing_street": "Test",
	        "billing_city": "Test",
	        "billing_state": "Test",
	        "billing_zip": "3000",
	        "billing_country": "102",
	        "shipping_street": "Test",
	        "shipping_city": "Test",
	        "shipping_state": "Test",
	        "shipping_zip": "3000",
	        "shipping_country": "102",
	        "longitude": null,
	        "latitude": null,
	        "default_language": "",
	        "default_currency": "0",
	        "show_primary_contact": "0",
	        "stripe_id": null,
	        "registration_confirmed": "1",
	        "addedfrom": "1"
	    },
	    "scheduled_email": null,
	    "customfields": []
	}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Estimates - Search Estimate information

get
api/estimates/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Estimate Object

Information.

HTTP/1.1 200 OK
 {
    "id": "2",
    "sent": "0",
    "datesend": null,
    "clientid": "1",
    "deleted_customer_name": null,
    "project_id": "0",
    "number": "2",
    "prefix": "EST-",
    "number_format": "1",
    "hash": "ac754972999f948ade369c70bb44d696",
    "datecreated": "2021-07-30 16:29:46",
    "date": "2021-08-01",
    "expirydate": "2021-08-08",
    "currency": "1",
    "subtotal": "1200.00",
    "total_tax": "0.00",
    "total": "1200.00",
    "adjustment": "0.00",
    "addedfrom": "1",
    "status": "1",
    "clientnote": "",
    "adminnote": "adminnote",
    "discount_percent": "0.00",
    "discount_total": "0.00",
    "discount_type": "",
    "invoiceid": null,
    "invoiced_date": null,
    "terms": "",
    "reference_no": "",
    "sale_agent": "0",
    "billing_street": "Test",
    "billing_city": "Test",
    "billing_state": "Test",
    "billing_zip": "3000",
    "billing_country": "102",
    "shipping_street": "Test",
    "shipping_city": "Test",
    "shipping_state": "Test",
    "shipping_zip": "3000",
    "shipping_country": "102",
    "include_shipping": "1",
    "show_shipping_on_estimate": "1",
    "show_quantity_as": "1",
    "pipeline_order": "0",
    "is_expiry_notified": "0",
    "acceptance_firstname": null,
    "acceptance_lastname": null,
    "acceptance_email": null,
    "acceptance_date": null,
    "acceptance_ip": null,
    "signature": null,
    "short_link": null,
    "userid": "1",
    "company": "test",
    "vat": "",
    "phonenumber": "01324568903",
    "country": "102",
    "city": "Test",
    "zip": "3000",
    "state": "Test",
    "address": "Test",
    "website": "",
    "active": "1",
    "leadid": null,
    "longitude": null,
    "latitude": null,
    "default_language": "",
    "default_currency": "0",
    "show_primary_contact": "0",
    "stripe_id": null,
    "registration_confirmed": "1",
    "estimateid": "2",
   "customfields": []
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No Data Were Found"
}

Estimates - Update a estimate

put
api/estimates/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
clientid String

Mandatory. Customer.

billing_street String

Mandatory. Street Address

billing_city optional String

Optional. City Name for billing

billing_state optional String

Optional. Name of state for billing

billing_zip optional Number

Optional. Zip code

billing_country optional Number

Optional. Country code

include_shipping optional boolean

Optional. set yes if you want add Shipping Address

Default value: no

show_shipping_on_estimate optional boolean

Optional. Shows shipping details in estimate.

shipping_street optional String

Optional. Address of shipping

shipping_city optional String

Optional. City name for shipping

shipping_state optional String

Optional. Name of state for shipping

shipping_zip optional Number

Optional. Zip code for shipping

shipping_country optional Number

Optional. Country code

number Number

Mandatory. Estimate Number

date Date

Mandatory. Estimate Date

expirydate optional Date

Optional. Expiry Date of Estimate

tags optional String

Optional. TAGS comma separated

currency Number

Mandatory. currency field

status Number

Mandatory. Estimate Status(eg. Draft, Sent)

reference_no optional String

Optional. Reference #

sale_agent optional Number

Optional. Sale Agent name

discount_type optional String

Optional. before_tax / after_tax discount type

adminnote optional String

Optional. notes by admin

items optional Array

Mandatory. Existing items with Id

removed_items optional Array

Optional. Items to be removed

newitems optional Array

Optional. New Items to be added

subtotal Decimal

Mandatory. calculation based on item Qty, Rate and Tax

total Decimal

Mandatory. calculation based on subtotal, Discount and Adjustment

clientnote optional String

Optional. client notes

terms optional String

Optional. Terms

{
    "clientid": 1,
    "billing_street": "new 1 update",
    "number": 2,
    "status": 2,
    "date": "2021-08-19",
    "currency": 1,
    "items": {
        "1": {
            "itemid": "24",
            "order": "1",
            "description": "item description",
            "long_description": "item long description",
            "qty": "1",
            "unit": "1",
            "rate": "10.00",
            "custom_fields": {
                "items": {
                    "31": "test 12 item 1",
                    "32": "10",
                    "33": "Lorem Ipsum is simply dummy text of the printing and typesetting industry",
                    "34": "Option 1",
                    "35": [
                        "Option 1",
                        "Option 2"
                    ],
                    "36": [
                        "Option 1",
                        "Option 3"
                    ],
                    "37": "2021-05-06",
                    "38": "2021-05-06 00:23:25",
                    "39": "#ffffff",
                    "40": "<a href=\"url.com\" target=\"_blank\">Link</a>"
                }
            }
        }
    },
    "newitems": {
        "2": {
            "order": "2",
            "description": "updated item 2 description",
            "long_description": "updated item 2 logn description",
            "qty": "1",
            "unit": "",
            "rate": "100.00",
            "custom_fields": {
                "items": {
                    "31": "test 12 item 2",
                    "32": "10",
                    "33": "Lorem Ipsum is simply dummy text of the printing and typesetting industry",
                    "34": "Option 1",
                    "35": [
                        "Option 1",
                        "Option 2"
                    ],
                    "36": [
                        "Option 1",
                        "Option 3"
                    ],
                    "37": "2021-05-06",
                    "38": "2021-05-06 00:23:25",
                    "39": "#ffffff",
                    "40": "<a href=\"url.com\" target=\"_blank\">Link</a>"
                }
            }
        }
    },
    "custom_fields": {
        "estimate": {
            "92": "test 1254"
        }
    },
    "subtotal": "110.00",
    "total": "110.00"
}
HTTP/1.1 200 OK
{
  "status": false,
  "message": "Estimate Updated Successfully"
}

Error 4xx

Name Type Description
number String

The Estimate number is already in use

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Estimate Update Fail"
}
    HTTP/1.1 409 Conflict
    {
      "status": false,
      "error": {
			"number":"The Estimate number is already in use"
		},
		"message": "The Estimate number is already in use"
    }

Expense category

Expense category - Request Expense category

get
api/common/expense_category

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
Expense Array

category information.

HTTP/1.1 200 OK
{

   [
       {
           "id": "1",
           "name": "cloud server",
           "description": "AWS server"
       },
       {
           "id": "2",
           "name": "website domain",
           "description": "domain Managment and configurations"
       }
   ]

}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Expenses

Expenses - Add Expense

post
api/expenses

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
expense_name optional String

Optional. Expanse Name

note optional String

Optional. Expanse Note

category Number

Mandatory. Expense Category

amount Decimal

Mandatory. Expense Amount

date Date

Mandatory. Expense Date

clientid Number

Optional. Customer id

currency Number

Mandatory. Currency Field

tax Number

Optional. Tax 1

tax2 Number

Optional. Tax 2

paymentmode Number

Optional. Payment mode

reference_no optional String

Optional. Reference #

recurring optional String

Optional. recurring 1 to 12 or custom

repeat_every_custom optional Number

Optional. if recurring is custom set number gap

repeat_type_custom optional String

Optional. if recurring is custom set gap option day/week/month/year

{
    "expense_name": "Test51",
    "note": "Expanse note",
    "category": 300,
    "date": "2021-08-20",
    "amount": "1200.00",
    "billable": 1,
    "clientid": 1,
    "currency": 1,
    "tax": 1,
    "tax2": 1,
    "paymentmode": 2,
    "reference_no": 5874,
    "repeat_every": "6-month",
    "cycles": 5,
    "create_invoice_billable": 0,
    "send_invoice_to_customer": 1,
    "custom_fields": {
        "expenses": {
            "94": "test 1254"
        }
    }
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Expense Added Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Expense Added Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Expense Update Fail

category String

The Expense Category is not found.

date String

The Expense date field is required.

amount String

The Amount field is required.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Expense Add Fail"
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "category":"The Expense Category is not found"
 },
 "message": "The Expense Category is not found"
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "date":"The Expense date field is required."
 },
 "message": "The Expense date field is required."
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "amount":"The Amount field is required."
 },
 "message": "The Amount field is required."
}

Expenses - Delete Expense

delete
api/expenses/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
status Boolean

Request status.

message String

Expense Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Expense Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Expense Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Expense Delete Fail"
}

Expenses - Request Expense information

get
api/expenses/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Expense unique ID.

Success 200

Field Type Description
Expense Array

Expense information.

[
    {
        "id": "1",
        "category": "1",
        "currency": "1",
        "amount": "50.00",
        "tax": "0",
        "tax2": "0",
        "reference_no": "012457893",
        "note": "AWS server hosting charges",
        "expense_name": "Cloud Hosting",
        "clientid": "1",
        "project_id": "0",
        "billable": "0",
        "invoiceid": null,
        "paymentmode": "2",
        "date": "2021-09-01",
        "recurring_type": "month",
        "repeat_every": "1",
        "recurring": "1",
        "cycles": "12",
        "total_cycles": "0",
        "custom_recurring": "0",
        "last_recurring_date": null,
        "create_invoice_billable": "0",
        "send_invoice_to_customer": "0",
        "recurring_from": null,
        "dateadded": "2021-09-01 12:26:34",
        "addedfrom": "1",
        "is_expense_created_in_xero": "0",
        "userid": "1",
        "company": "Company A",
        "vat": "",
        "phonenumber": "",
        "country": "0",
        "city": "",
        "zip": "",
        "state": "",
        "address": "",
        "website": "",
        "datecreated": "2020-05-25 22:55:49",
        "active": "1",
        "leadid": null,
        "billing_street": "",
        "billing_city": "",
        "billing_state": "",
        "billing_zip": "",
        "billing_country": "0",
        "shipping_street": "",
        "shipping_city": "",
        "shipping_state": "",
        "shipping_zip": "",
        "shipping_country": "0",
        "longitude": null,
        "latitude": null,
        "default_language": "",
        "default_currency": "0",
        "show_primary_contact": "0",
        "stripe_id": null,
        "registration_confirmed": "1",
        "name": "Hosting Management",
        "description": "server space and other settings",
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "0",
        "taxrate": null,
        "category_name": "Hosting Management",
        "payment_mode_name": "Paypal",
        "tax_name": null,
        "tax_name2": null,
        "taxrate2": null,
        "expenseid": "1",
        "customfields": []
    }
]

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Expenses - Search Expenses information

get
api/expenses/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
keysearch String

Search Keywords

Success 200

Field Type Description
Expenses Array

Expenses Information

[
    {
        "id": "1",
        "category": "1",
        "currency": "1",
        "amount": "50.00",
        "tax": "0",
        "tax2": "0",
        "reference_no": "012457893",
        "note": "AWS server hosting charges",
        "expense_name": "Cloud Hosting",
        "clientid": "1",
        "project_id": "0",
        "billable": "0",
        "invoiceid": null,
        "paymentmode": "2",
        "date": "2021-09-01",
        "recurring_type": "month",
        "repeat_every": "1",
        "recurring": "1",
        "cycles": "12",
        "total_cycles": "0",
        "custom_recurring": "0",
        "last_recurring_date": null,
        "create_invoice_billable": "0",
        "send_invoice_to_customer": "0",
        "recurring_from": null,
        "dateadded": "2021-09-01 12:26:34",
        "addedfrom": "1",
        "is_expense_created_in_xero": "0",
        "userid": "1",
        "company": "Company A",
        "vat": "",
        "phonenumber": "",
        "country": "0",
        "city": "",
        "zip": "",
        "state": "",
        "address": "",
        "website": "",
        "datecreated": "2020-05-25 22:55:49",
        "active": "1",
        "leadid": null,
        "billing_street": "",
        "billing_city": "",
        "billing_state": "",
        "billing_zip": "",
        "billing_country": "0",
        "shipping_street": "",
        "shipping_city": "",
        "shipping_state": "",
        "shipping_zip": "",
        "shipping_country": "0",
        "longitude": null,
        "latitude": null,
        "default_language": "",
        "default_currency": "0",
        "show_primary_contact": "0",
        "stripe_id": null,
        "registration_confirmed": "1",
        "name": "Hosting Management",
        "description": "server space and other settings",
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "0",
        "taxrate": null,
        "category_name": "Hosting Management",
        "payment_mode_name": "Paypal",
        "tax_name": null,
        "tax_name2": null,
        "taxrate2": null,
        "expenseid": "1",
        "customfields": []
    }
]

Error 4xx

Name Type Description
status Boolean

Request status

message String

No data were found

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Expenses - Update a Expense

put
api/expenses

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
expense_name optional String

Optional. Name

note optional String

Optional. Note

category Number

Mandatory. Expense Category

amount Decimal

Mandatory. Expense Amount

date Date

Mandatory. Expense Date

clientid Number

Optional. Customer id

currency Number

Mandatory. currency field

tax Number

Optional. Tax 1

tax2 Number

Optional. Tax 2

paymentmode Number

Optional. Payment mode

reference_no optional String

Optional. Reference #

recurring optional String

Optional. recurring 1 to 12 or custom

repeat_every_custom optional Number

Optional. if recurring is custom set number gap

repeat_type_custom optional String

Optional. if recurring is custom set gap option day/week/month/year

{
    "expense_name": "Test51",
    "note": "exp note",
    "category": 300,
    "date": "2021-08-20",
    "amount": "1200.00",
    "billable": 1,
    "clientid": 1,
    "currency": 1,
    "tax": 1,
    "tax2": 1,
    "paymentmode": 2,
    "reference_no": 5874,
    "repeat_every": "6-month",
    "cycles": 5,
    "create_invoice_billable": 0,
    "send_invoice_to_customer": 1,
    "custom_fields": {
        "expenses": {
            "94": "test 1254"
        }
    }
}

Success 200

Field Type Description
status Boolean

Request status.

message String

Expense Updated Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Expense Updated Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Expense Update Fail

category String

The Expense Category is not found.

date String

The Expense date field is required.

amount String

The Amount field is required.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Expense Update Fail"
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "category":"The Expense Category is not found"
 },
 "message": "The Expense Category is not found"
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "date":"The Expense date field is required."
 },
 "message": "The Expense date field is required."
}
HTTP/1.1 409 Conflict
{
  "status": false,
  "error": {
     "amount":"The Amount field is required."
 },
 "message": "The Amount field is required."
}

List Taxes

List Taxes - Request Taxes

get
api/common/tax_data

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
Tax Array

information.

 HTTP/1.1 200 OK
[
    {
        "id": "4",
        "name": "PAYPAL",
        "taxrate": "5.00"
    },
    {
        "id": "1",
        "name": "CGST",
        "taxrate": "9.00"
    },
    {
        "id": "2",
        "name": "SGST",
        "taxrate": "9.00"
    },
    {
        "id": "3",
        "name": "GST",
        "taxrate": "18.00"
    }
]

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Payment Mode

Payment Mode - Request Payment Modes

get
api/common/payment_mode

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Success 200

Field Type Description
Payment Array

Modes.

 HTTP/1.1 200 OK
[
    {
        "id": "1",
        "name": "Bank",
        "description": null,
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "1",
        "active": "1"
    }
]

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Payments

Payments - List all Payments

get
api/payments/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
payment_id Number

Optional payment unique ID
Note : if you don't pass Payment id then it will list all payments records

Success 200

Field Type Description
Payments Array

List all Payment Records.

  HTTP/1.1 200 OK
[
    {
        "id": "3",
        "invoiceid": "7",
        "amount": "1000.00",
        "paymentmode": "3",
        "paymentmethod": "",
        "date": "2020-06-08",
        "daterecorded": "2020-06-08 20:29:54",
        "note": "",
        "transactionid": "000355795931",
        "name": "UPI",
        "description": "",
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "0",
        "active": "1",
        "paymentid": "1"
    },
    {
        "id": "4",
        "invoiceid": "12",
        "amount": "-3.00",
        "paymentmode": "4",
        "paymentmethod": "",
        "date": "2020-07-04",
        "daterecorded": "2020-07-04 15:32:59",
        "note": "",
        "transactionid": "P228210122733439",
        "name": "Stripe",
        "description": "",
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "0",
        "active": "1",
        "paymentid": "2"
    },
    {
        "id": "1",
        "invoiceid": "14",
        "amount": "8.00",
        "paymentmode": "1",
        "paymentmethod": "",
        "date": "2020-07-04",
        "daterecorded": "2020-07-04 15:47:30",
        "note": "",
        "transactionid": "000360166374",
        "name": "Bank",
        "description": null,
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "1",
        "active": "1",
        "paymentid": "3"
    },
    {
        "id": "2",
        "invoiceid": "13",
        "amount": "3.00",
        "paymentmode": "2",
        "paymentmethod": "Credit card",
        "date": "2020-07-04",
        "daterecorded": "2020-07-04 15:49:56",
        "note": "",
        "transactionid": "0124875873",
        "name": "paypal",
        "description": "",
        "show_on_pdf": "0",
        "invoices_only": "0",
        "expenses_only": "0",
        "selected_by_default": "0",
        "active": "1",
        "paymentid": "4"
    }
]

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Payments - Search Payments Information

get
api/contacts/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token

Parameter

Field Type Description
keysearch String

Search Keywords

Success 200

Field Type Description
Payments Array

Payments information

HTTP/1.1 200 OK
[
    {
        "id": "3",
        "invoiceid": "14",
        "amount": "8.00",
        "paymentmode": "2",
        "paymentmethod": "",
        "date": "2020-07-04",
        "daterecorded": "2020-07-04 15:47:30",
        "note": "",
        "transactionid": "",
        ...
    }
]

Error 4xx

Name Type Description
status Boolean

Request status

message String

No data were found

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Proposals

Proposals - Add New Proposals

post
api/proposals

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
subject String

Mandatory. Proposal Subject Name.

   string

Proposal Related.

Allowed values: "lead", "customer"

rel_id Number

Mandatory. Related ID.

proposal_to string

Mandatory. Lead / Customer name.

date Date

Mandatory. Proposal Start Date.

open_till Date

Optional. Proposal Open Till Date.

currency string

Mandatory. currency id.

discount_type string

Optional. Proposal Open Till Date.

status string

Optional. status id.

Assigned string

Optional. Assignee id.

Email string

Mandatory. Email id.

newitems Array

Mandatory. New Items to be added.

[
	"subject" => proposal subject
	"rel_type" => customer
	"rel_id" => 1
	"proposal_to" => John Doe
	"email" => customer@mail.com
	"date" => 2021-08-19
	"newitems[0][description]" => item 1 description
	"newitems[0][long_description]" => item 1 long description
	"newitems[0][qty]" => 1
	"newitems[0][rate]" => 1200
	"newitems[0][order]" => 1
	"newitems[0][unit]" => 1
	"newitems[0][unit]" => 1
	"newitems[0][custom_fields][items][1]" => custom field item
	"subtotal" => 1200.00
	"total" => 1200.00
	"currency" => 1
	"date" => 2021-08-19
	"status"  =>  6
	"custom_fields"[proposal][1]  =>  test
	....
]

Success 200

Field Type Description
status Boolean

Request status.

message String

Proposal add successful.

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Proposal add successful."
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Proposal add fail.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Proposal add fail."
}

Proposals - Delete Proposal

delete
api/proposals/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Proposal unique ID.

Success 200

Field Type Description
status Boolean

Request status.

message String

Proposals Deleted Successfully

HTTP/1.1 200 OK
{
  "status": true,
  "message": "Proposals Deleted Successfully"
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

Proposals Delete Fail

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Proposal Delete Fail"
}

Proposals - Request Proposal information

get
api/proposals/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
id Number

Proposal unique ID

Success 200

Field Type Description
Proposal Object

information.

  HTTP/1.1 200 OK
  {
	    "id": "1",
	    "subject": "Test Proposal",
	    "content": "{proposal_items}",
	    "addedfrom": "1",
	    "datecreated": "2021-08-01 13:38:08",
	    "total": "10.00",
	    "subtotal": "10.00",
	    "total_tax": "0.00",
	    "adjustment": "0.00",
	    "discount_percent": "0.00",
	    "discount_total": "0.00",
	    "discount_type": "",
	    "show_quantity_as": "1",
	    "currency": "1",
	    "open_till": "2021-08-08",
	    "date": "2021-08-01",
	    "rel_id": "1",
	    "rel_type": "customer",
	    "assigned": "0",
	    "hash": "9fc38e5ad2f8256b1b8430ee41069f75",
	    "proposal_to": "test",
	    "country": "102",
	    "zip": "30000202",
	    "state": "Test",
	    "city": "Test",
	    "address": "Test",
	    "email": "test@gmail.com",
	    "phone": "01324568903",
	    "allow_comments": "1",
	    "status": "6",
	    "estimate_id": null,
	    "invoice_id": null,
	    "date_converted": null,
	    "pipeline_order": "0",
	    "is_expiry_notified": "0",
	    "acceptance_firstname": null,
	    "acceptance_lastname": null,
	    "acceptance_email": null,
	    "acceptance_date": null,
	    "acceptance_ip": null,
	    "signature": null,
	    "short_link": null,
	    "symbol": "$",
	    "name": "USD",
	    "decimal_separator": ".",
	    "thousand_separator": ",",
	    "placement": "before",
	    "isdefault": "1",
	    "currencyid": "1",
	    "currency_name": "USD",
	    "attachments": [],
	    "items": [
	        {
	            "id": "4",
	            "rel_id": "1",
	            "rel_type": "proposal",
	            "description": "item 1",
	            "long_description": "item 1 description",
	            "qty": "1.00",
	            "rate": "10.00",
	            "unit": "1",
	            "item_order": "1"
	        }
	    ],
	    "visible_attachments_to_customer_found": false,
	    "customfields": [
	        {
	            "label": "Custom Field",
	            "value": "Custom Field value"
	        }
	    ]
	}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No data were found"
}

Proposals - Search proposals information

get
api/proposals/search/:keysearch

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
keysearch String

Search Keywords.

Success 200

Field Type Description
Proposals Object

Information.

 HTTP/1.1 200 OK
   {
 "id": "2",
 "subject": "Test 2",
 "content": "{proposal_items}",
 "addedfrom": "1",
"datecreated": "2021-08-01 13:43:49",
 "total": "10.00",
 "subtotal": "10.00",
 "total_tax": "0.00",
 "adjustment": "0.00",
 "discount_percent": "0.00",
 "discount_total": "0.00",
 "discount_type": "",
 "show_quantity_as": "1",
 "currency": "1",
 "open_till": "2021-08-08",
 "date": "2021-08-01",
 "rel_id": "1",
 "rel_type": "customer",
 "assigned": "0",
 "hash": "6fe6cd0bc66dff03663154660acc1a93",
 "proposal_to": "test",
 "country": "102",
 "zip": "300000",
 "state": "test",
 "city": "test",
 "address": "test",
 "email": "test@gmail.com",
 "phone": "01324568903",
 "allow_comments": "1",
 "status": "6",
 "estimate_id": null,
 "invoice_id": null,
 "date_converted": null,
 "pipeline_order": "0",
 "is_expiry_notified": "0",
 "acceptance_firstname": null,
 "acceptance_lastname": null,
 "acceptance_email": null,
 "acceptance_date": null,
 "acceptance_ip": null,
 "signature": null,
 "short_link": null,
 "symbol": "$",
 "name": "USD",
 "decimal_separator": ".",
 "thousand_separator": ",",
 "placement": "before",
 "isdefault": "1",
 "customfields": [
     {
         "label": "Custom Field",
	        "value": "Custom Field value"
     }
  ]
}

Error 4xx

Name Type Description
status Boolean

Request status.

message String

No data were found.

HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "No Data Were Found"
}

Proposals - Update a proposal

put
api/proposal/:id

Header

Field Type Description
Authorization String

Basic Access Authentication token.

Parameter

Field Type Description
subject String

Mandatory. Proposal Subject Name.

   string

Proposal Related.

Allowed values: "lead", "customer"

rel_id Number

Mandatory. Related ID.

proposal_to string

Mandatory. Lead / Customer name.

date Date

Mandatory. Proposal Start Date.

open_till Date

Optional. Proposal Open Till Date.

currency string

Mandatory. currency id.

discount_type string

Optional. Proposal Open Till Date.

status string

Optional. status id.

Assigned string

Optional. Assignee id.

Email string

Mandatory. Email id.

newitems Array

Mandatory. New Items to be added.

items Array

Optional. Existing items with Id

removed_items Array

Optional. Items to be removed

 	{
		"subject": "Test",
		"rel_type": "customer",
		"rel_id": 1,
		"proposal_to": "Trueline 1",
		"email": "test@mail.com",
		"date": "2021-08-19",
		"currency": 1,
		"status": 6,
		"items": {
		    "1": {
		        "itemid": "23",
		        "order": "1",
		        "description": "item description",
		        "long_description": "item long description",
		        "qty": "1",
		        "unit": "1",
		        "rate": "10.00",
		        "custom_fields":{
		            "items":{
		                "31":"test 12 item 1",
			            "32":"10",
			            "33":"Lorem Ipsum is simply dummy text of the printing and typesetting industry",*
			            "34":"Opti*on 1",*
			            "35":["Option 1","Option 2"],*
			            "36":["Option 1","Option 3"],
			            "37":"2021-05-06",
			            "38":"2021-05-06 00:23:25",
			            "39":"#ffffff",
			            "40":"<a href=\"url.com\" target=\"_blank\">Link</a>"
		            }
		        }
		    }
		},
		"newitems": {
		    "2": {
		        "order": "2",
		        "description": "updated item 2 description",
		        "long_description": "updated item 2 logn description",
		        "qty": "1",
		        "unit": "",
		        "rate": "100.00",
		        "custom_fields":{
		            "items":{
		                "31":"test 12 item 2",
			            "32":"10",
			            "33":"Lorem Ipsum is simply dummy text of the printing and typesetting industry",
			            "34":"Option 1",
			            "35":["Option 1","Option 2"],
			            "36":["Option 1","Option 3"],
			            "37":"2021-05-06",
			            "38":"2021-05-06 00:23:25",
			            "39":"#ffffff",
			            "40":"<a href=\"url.com\" target=\"_blank\">Link</a>"
		            }
		        }
		    }
		},
		"custom_fields":{
		    "proposal":{
		        "91":"test 12"
		    }
		},
		"subtotal":"110.00",
		"total":"110.00"
		}
HTTP/1.1 200 OK
{
  "status": false,
  "message": "Proposal Updated Successfully"
}
HTTP/1.1 404 Not Found
{
  "status": false,
  "message": "Proposal Update Fail"
}
Generated with apidoc 0.25.0 - 2021-09-11T03:07:55.893Z