Introduction

The Plutio API is a RESTful interface, resource-oriented URLs and uses HTTP response codes to indicate API errors, allowing you to programmatically update and access much of your data on the platform. It provides predictable URLs for accessing resources, and uses built-in HTTP features to receive commands and return responses. This makes it easy to communicate with from a wide variety of environments, from command-line utilities to browser plugins to native applications. *JSON is returned by all API responses, including errors.

Authentication

We use a standard OAuth 2 authentication method.

You can generate an application key and a secret code from your settings page inside the Plutio app and use them to create a temporary access token.

YOUR_PLUTIO_SUBDOMAIN header value should be the first part of your Plutio domain. For example YOUR_PLUTIO_SUBDOMAIN value for https://test.plutio.com would be test.

Visit the "Getting Started"section for more information.

Error Codes

Code

Description

400

Bad request. The server cannot or will not process the request due to an apparent client error (malformed request syntax, invalid params)

401

Unauthorized. Access token is invalid or missing.

403

Forbidden. User is not allowed to perform the action, usually due to permission settings.

404

Not found. The requested resource could not be found.

405

Method not allowed. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST

429

Too Many Requests. Your API limits have been reached.

500

Internal server error. Server could not process your request due to unexpected condition. Please try again later or if the issue persists please contact us.

Rate limit

There is a current limit of 1000 API calls an hour.

Allowed list values

Some collections share the same allowed values

Type

Allowed values

Country

AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW

Currency

AED, AFN, ALL, AMD, ARS, AUD, AZN, BAM, BDT, BGN, BHD, BIF, BND, BOB, BRL, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, GBP, GEL, GHS, GNF, GTQ, HKD, HNL, HRK, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KHR, KMF, KRW, KWD, KZT, LBP, LKR, LYD, MAD, MDL, MGA, MKD, MMK, MOP, MUR, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SDG, SEK, SGD, SOS, SYP, THB, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, XAF, XOF, YER, ZAR, ZMK

Timezone

Africa/Abidjan, Africa/Accra, Africa/Addis_Ababa, Africa/Algiers, Africa/Asmara, Africa/Asmera, Africa/Bamako, Africa/Bangui, Africa/Banjul, Africa/Bissau, Africa/Blantyre, Africa/Brazzaville, Africa/Bujumbura, Africa/Cairo, Africa/Casablanca, Africa/Ceuta, Africa/Conakry, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Douala, Africa/El_Aaiun, Africa/Freetown, Africa/Gaborone, Africa/Harare, Africa/Johannesburg, Africa/Juba, Africa/Kampala, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Lome, Africa/Luanda, Africa/Lubumbashi, Africa/Lusaka, Africa/Malabo, Africa/Maputo, Africa/Maseru, Africa/Mbabane, Africa/Mogadishu, Africa/Monrovia, Africa/Nairobi, Africa/Ndjamena, Africa/Niamey, Africa/Nouakchott, Africa/Ouagadougou, Africa/Porto-Novo, Africa/Sao_Tome, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, Africa/Windhoek, America/Adak, America/Anchorage, America/Anguilla, America/Antigua, America/Araguaina, America/Argentina/Buenos_Aires, America/Argentina/Catamarca, America/Argentina/ComodRivadavia, America/Argentina/Cordoba, America/Argentina/Jujuy, America/Argentina/La_Rioja, America/Argentina/Mendoza, America/Argentina/Rio_Gallegos, America/Argentina/Salta, America/Argentina/San_Juan, America/Argentina/San_Luis, America/Argentina/Tucuman, America/Argentina/Ushuaia, America/Aruba, America/Asuncion, America/Atikokan, America/Atka, America/Bahia, America/Bahia_Banderas, America/Barbados, America/Belem, America/Belize, America/Blanc-Sablon, America/Boa_Vista, America/Bogota, America/Boise, America/Buenos_Aires, America/Cambridge_Bay, America/Campo_Grande, America/Cancun, America/Caracas, America/Catamarca, America/Cayenne, America/Cayman, America/Chicago, America/Chihuahua, America/Coral_Harbour, America/Cordoba, America/Costa_Rica, America/Creston, America/Cuiaba, America/Curacao, America/Danmarkshavn, America/Dawson, America/Dawson_Creek, America/Denver, America/Detroit, America/Dominica, America/Edmonton, America/Eirunepe, America/El_Salvador, America/Ensenada, America/Fort_Nelson, America/Fort_Wayne, America/Fortaleza, America/Glace_Bay, America/Godthab, America/Goose_Bay, America/Grand_Turk, America/Grenada, America/Guadeloupe, America/Guatemala, America/Guayaquil, America/Guyana, America/Halifax, America/Havana, America/Hermosillo, America/Indiana/Indianapolis, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Indianapolis, America/Inuvik, America/Iqaluit, America/Jamaica, America/Jujuy, America/Juneau, America/Kentucky/Louisville, America/Kentucky/Monticello, America/Knox_IN, America/Kralendijk, America/La_Paz, America/Lima, America/Los_Angeles, America/Louisville, America/Lower_Princes, America/Maceio, America/Managua, America/Manaus, America/Marigot, America/Martinique, America/Matamoros, America/Mazatlan, America/Mendoza, America/Menominee, America/Merida, America/Metlakatla, America/Mexico_City, America/Miquelon, America/Moncton, America/Monterrey, America/Montevideo, America/Montreal, America/Montserrat, America/Nassau, America/New_York, America/Nipigon, America/Nome, America/Noronha, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Ojinaga, America/Panama, America/Pangnirtung, America/Paramaribo, America/Phoenix, America/Port-au-Prince, America/Port_of_Spain, America/Porto_Acre, America/Porto_Velho, America/Puerto_Rico, America/Punta_Arenas, America/Rainy_River, America/Rankin_Inlet, America/Recife, America/Regina, America/Resolute, America/Rio_Branco, America/Rosario, America/Santa_Isabel, America/Santarem, America/Santiago, America/Santo_Domingo, America/Sao_Paulo, America/Scoresbysund, America/Shiprock, America/Sitka, America/St_Barthelemy, America/St_Johns, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Swift_Current, America/Tegucigalpa, America/Thule, America/Thunder_Bay, America/Tijuana, America/Toronto, America/Tortola, America/Vancouver, America/Virgin, America/Whitehorse, America/Winnipeg, America/Yakutat, America/Yellowknife, Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Macquarie, Antarctica/Mawson, Antarctica/McMurdo, Antarctica/Palmer, Antarctica/Rothera, Antarctica/South_Pole, Antarctica/Syowa, Antarctica/Troll, Antarctica/Vostok, Arctic/Longyearbyen, Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe, Asia/Ashgabat, Asia/Ashkhabad, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku, Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei, Asia/Calcutta, Asia/Chita, Asia/Choibalsan, Asia/Chongqing, Asia/Chungking, Asia/Colombo, Asia/Dacca, Asia/Damascus, Asia/Dhaka, Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Harbin, Asia/Hebron, Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Istanbul, Asia/Jakarta, Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Kashgar, Asia/Kathmandu, Asia/Katmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macao, Asia/Macau, Asia/Magadan, Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk, Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak, Asia/Pyongyang, Asia/Qatar, Asia/Qyzylorda, Asia/Rangoon, Asia/Riyadh, Asia/Saigon, Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran, Asia/Tel_Aviv, Asia/Thimbu, Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Ulan_Bator, Asia/Urumqi, Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon, Asia/Yekaterinburg, Asia/Yerevan, Atlantic/Azores, Atlantic/Bermuda, Atlantic/Canary, Atlantic/Cape_Verde, Atlantic/Faeroe, Atlantic/Faroe, Atlantic/Jan_Mayen, Atlantic/Madeira, Atlantic/Reykjavik, Atlantic/South_Georgia, Atlantic/St_Helena, Atlantic/Stanley, Australia/ACT, Australia/Adelaide, Australia/Brisbane, Australia/Broken_Hill, Australia/Canberra, Australia/Currie, Australia/Darwin, Australia/Eucla, Australia/Hobart, Australia/LHI, Australia/Lindeman, Australia/Lord_Howe, Australia/Melbourne, Australia/NSW, Australia/North, Australia/Perth, Australia/Queensland, Australia/South, Australia/Sydney, Australia/Tasmania, Australia/Victoria, Australia/West, Australia/Yancowinna, Brazil/Acre, Brazil/DeNoronha, Brazil/East, Brazil/West, Canada/Atlantic, Canada/Central, Canada/Eastern, Canada/Mountain, Canada/Newfoundland, Canada/Pacific, Canada/Saskatchewan, Canada/Yukon, Chile/Continental, Chile/EasterIsland, Europe/Amsterdam, Europe/Andorra, Europe/Astrakhan, Europe/Athens, Europe/Belfast, Europe/Belgrade, Europe/Berlin, Europe/Bratislava, Europe/Brussels, Europe/Bucharest, Europe/Budapest, Europe/Busingen, Europe/Chisinau, Europe/Copenhagen, Europe/Dublin, Europe/Gibraltar, Europe/Guernsey, Europe/Helsinki, Europe/Isle_of_Man, Europe/Istanbul, Europe/Jersey, Europe/Kaliningrad, Europe/Kiev, Europe/Kirov, Europe/Lisbon, Europe/Ljubljana, Europe/London, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Mariehamn, Europe/Minsk, Europe/Monaco, Europe/Moscow, Europe/Nicosia, Europe/Oslo, Europe/Paris, Europe/Podgorica, Europe/Prague, Europe/Riga, Europe/Rome, Europe/Samara, Europe/San_Marino, Europe/Sarajevo, Europe/Saratov, Europe/Simferopol, Europe/Skopje, Europe/Sofia, Europe/Stockholm, Europe/Tallinn, Europe/Tirane, Europe/Tiraspol, Europe/Ulyanovsk, Europe/Uzhgorod, Europe/Vaduz, Europe/Vatican, Europe/Vienna, Europe/Vilnius, Europe/Volgograd, Europe/Warsaw, Europe/Zagreb, Europe/Zaporozhye, Europe/Zurich, Indian/Antananarivo, Indian/Chagos, Indian/Christmas, Indian/Cocos, Indian/Comoro, Indian/Kerguelen, Indian/Mahe, Indian/Maldives, Indian/Mauritius, Indian/Mayotte, Indian/Reunion, Mexico/BajaNorte, Mexico/BajaSur, Mexico/General, Pacific/Apia, Pacific/Auckland, Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter, Pacific/Efate, Pacific/Enderbury, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti, Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam, Pacific/Honolulu, Pacific/Johnston, Pacific/Kiritimati, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway, Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea, Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei, Pacific/Ponape, Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Samoa, Pacific/Tahiti, Pacific/Tarawa, Pacific/Tongatapu, Pacific/Truk, Pacific/Wake, Pacific/Wallis, Pacific/Yap, US/Alaska, US/Aleutian, US/Arizona, US/Central, US/East-Indiana, US/Eastern, US/Hawaii, US/Indiana-Starke, US/Michigan, US/Mountain, US/Pacific, US/Pacific-New, US/Samoa

Shared schemas

Meta

Keys below are attached to every collection.

Field

Type

Description

_id

string

Unique 17 characters long ID

businessId

string

Business ID

createdAt

date

Creation dateDefault: Current date

createdBy

string

Person who created a document ID

updatedAt

date

Last update date

File

For preview, file URL must be constructed as follows: https://cdn.filestackcontent.com/security=policy:{SECURITY_POLICY},signature:{SECURITY_SIGNATURE}/{HANDLE}

Field

Type

Description

_id

string

File Id

extension

string

Extension

handle

string

Unique handle

mimeType

string

MimetypeMax: 256

security

object

Object holding policy and signature required to view the file

security.policy

string

Security policy

security.signature

string

Security signature

size

number

File size in bytes

storage

string

Allowed values: default, messenger

title

string

TitleMin: 1Max: 128

Custom Field

Field

Type

Description

_id

string

Custom field ID

value

array

List of values

value.$

string

Value. If custom field type is text, value will contain a text value. If custom field type is select or multi, value will be an option ID

Breadcrumb

Field

Type

Description

breadcrumb

array

List of breadcrumb items

breadcrumb.$

object

Breadcrumb object

breadcrumb.$._id

string

Entity ID

breadcrumb.$.entityType

string

Entity type

breadcrumb.$.title

string

Entity title

Repeat

Field

Type

Description

repeat

object

Repeat object

repeat.action

string

ActionAllowed values: change_due_date, create_newDefault: change_due_date

repeat.interval

number

Interval (depends on repeat.intervalTypeDefault: 1Min: 0Max: 500

repeat.intervalType

string

Interval typeAllowed values: day, month, week, year

repeat.monthDay

number

Month day. Only if repeat.intervalType is monthDefault: 1Min: 1Max: 31

repeat.weekDays

array

List of repeat week days. Only if repeat.intervalType is week

repeat.weekDays.$

string

Week daysAllowed values: friday, monday, saturday, sunday, thursday, tuesday, wednesday

repeat.yearMonth

number

Year month. Only if repeat.intervalType is yearDefault: 1Min: 1Max: 12

repeat.yearMonthDay

number

Year month day. Only if repeat.intervalType is yearDefault: 1Min: 1Max: 31

Address

Field

Type

Description

city

string

CityMax: 256

country

string

Country

street

string

StreetMax: 256

zipCode

string

Zip codeMax: 256

Contact phones

Field

Type

Description

number

string

NumberMax: 256

type

string

TypeAllowed values: fax, mobile, office, personal, phone, workDefault: phone

Contact emails

Field

Type

Description

address

string

Address

type

string

TypeAllowed values: alternative, email, personal, workDefault: email

Getting started

POST Generate access token

https://api.plutio.com/v1/oauth/token

To use the Plutio API, your app must send an OAuth2 access token in an Authorization header with each request. To get access token, make a request with data below.

Field

Type

Description

client_id

string

Client ID obtained from settings page

client_secret

string

Client secret obtained from settings page

grant_type

string

Required value 'client_credentials'

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/oauth/token"
--header "Content-Type: application/x-www-form-urlencoded"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data 'client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials'
          
Example response200 OK
Copy
{
  "accessToken": "8ecbcc2e365a34565e1a95a65da25b87c10f5ae1",
  "accessTokenExpiresAt": "2019-04-13T11:55:18.785Z",
  "client": {
    "id": "nwAspvKfsskvurqvG"
  },
  "user": {
    "id": "2f8tBzYPTLZLSTJrZ",
    "businesses": [
      "test"
    ]
  }
}

Businesses

Field

Type

Description

address

Address

archivedAt

date

Business archiving date

billingCustomFields

array

Billing custom fields list

billingCustomFields.$

object

Billing custom field

billingCustomFields.$.key

string

Key

billingCustomFields.$.value

string

Value

color

object

Business brand colors

color.primary

string

Primary

color.primaryText

string

Primary text

color.secondary

string

Secondary

color.secondaryText

string

Secondary text

colors

array

Default colors listDefault: [#4E42C3, #46526C, #4DBF39, #FA7E00, #F7C602, #3285FA, #DB253C, #50E3C2, #8B572A]Max: 10

colors.$

string

Color. Must be a valid hex string in format of #XXXXXX

contactEmails

array

Contact emails list

contactEmails.$

Contact email object

contactPhones

array

Contact phones list

contactPhones.$

Contact phone object

currency

string

CurrencyDefault: USD

customRoles

array

Custom roles. Read only.

customRoles.$

object

Custom roles list

customRoles.$.slug

string

Slug

customRoles.$.title

string

Title

domain

string

DomainMin: 3Max: 256

invoices

object

Invoice settings

invoices.banks

array

Banks list

invoices.banks.$

object

Bank item

invoices.banks.$._id

string

Unique ID. Auto generated.

invoices.banks.$.active

boolean

Is activeDefault: false

invoices.banks.$.details

array

List of custom bank fields

invoices.banks.$.details.$

object

Field item

invoices.banks.$.details.$.key

string

KeyMax: 100

invoices.banks.$.details.$.value

string

ValueMax: 500

invoices.banks.$.title

string

TitleMax: 256

invoices.daysDue

number

Default invoice days dueDefault: 30Min: 0Max: 365

invoices.nextId

string

Next invoice ID. Auto generated.Default: 001

invoices.note

string

Default invoice noteMax: 10000

invoices.paypal

object

Paypal settings

invoices.paypal.active

boolean

Is active

invoices.paypal.email

string

Email address

invoices.prefix

string

Invoices prefix

invoices.stripe

object

Stripe settings

invoices.stripe.active

boolean

Is active

invoices.stripe.stripeAccountId

string

Stripe account ID

invoices.suffix

string

Invoices suffix

invoices.tax

array

Taxes list

invoices.tax.$

object

Tax item

invoices.tax.$.title

string

TitleMax: 100

invoices.tax.$.value

number

Tax amount

isBetaActive

boolean

Is beta activeDefault: false

logo

Square logo

logo.big

Big logo

logo.favicon

Favicon

logo.squareAlternate

Alternate square logo used for dark backgrounds

meta

object

Meta tags

meta.description

string

DescriptionMax: 120

meta.title

string

TitleMax: 60

name

string

NameMin: 3Max: 256

permissions

object

Role permissions

proposals

object

Proposal settings

proposals.nextId

string

Next proposal ID. Auto generated.Default: 001

proposals.prefix

string

Proposal prefix

proposals.suffix

string

Proposal suffix

rate

number

Billing rateMin: 0

removalConfirmationCode

string

Business removal confirmation codeMin: 30Max: 30

rolesUsage

object

Roles usage on business

settings

object

General settings

settings.general

object

General settings

settings.general.defaultMessages

object

Default messages

settings.general.defaultMessages.invitation

string

InvitationMax: 10000

settings.general.defaultMessages.invoiceEmail

string

Invoice emailMax: 10000

settings.general.defaultMessages.proposalEmail

string

Proposal emailMax: 10000

settings.general.isInvoicingEnabled

boolean

Is invoicing enabledDefault: true

settings.general.isProposalsEnabled

boolean

Is proposals enabledDefault: true

settings.general.isTimeTrackEnabled

boolean

Is time tracking enabledDefault: true

settings.invoice

object

Invoice settings

settings.locale

object

Locale settings

settings.locale.dateFormat

string

Date formatAllowed values: DD-MM-YY, DD-MM-YYYY, DD.MM.YYYY, DD/MM/YY, DD/MM/YYYY, MM-DD-YYYY, MM/DD/YYYY, YYYY-MM-DD, YYYY/MM/DDDefault: DD/MM/YYYY

settings.locale.language

string

LanguageAllowed values: ar, bg, cs, da, de, el, en-US, es-ES, fr, he, hi, id, it, ja, lv, nl, no, pl, pt-BR, ro, ru, sk-SK, sl, sv, th, tl-PH, zhDefault: en-US

settings.locale.timeFormat

string

Time formatAllowed values: HH:mm, h:mm A, hh:mm ADefault: h:mm A

settings.locale.timezone

string

TimezoneDefault: Europe/London

settings.locale.weekStartDay

string

Start day of the weekAllowed values: friday, monday, saturday, sunday, thursday, tuesday, wednesdayDefault: monday

settings.task

object

Task settings

settings.task.newTaskTop

boolean

Add new tasks on top inside task groupDefault: true

status

string

StatusAllowed values: active, archived, expiredDefault: active

subscription

object

Subscription settings. Read only.

subscription.addons

object

Subscription addons

subscription.addons.contributor

object

Contributor addon

subscription.addons.contributor.quantity

number

QuantityDefault: 0

subscription.addons.contributor.subscriptionId

string

Stripe subscription ID

subscription.addons.subscriptionId

string

Stripe subscription ID

subscription.addons.whitelabel

object

Whitelabel addon

subscription.addons.whitelabel.quantity

number

QuantityDefault: 0

subscription.addons.whitelabel.subscriptionId

string

Stripe subscription ID

subscription.cancelAtPeriodEnd

boolean

Cancel at period endDefault: false

subscription.currency

string

Currency

subscription.discount

object

Total discount applied on a plan

subscription.discount.amountOff

number

Discount amount off

subscription.discount.code

string

Discount code used

subscription.discount.percentOff

number

Discount percentage off

subscription.expiresAt

date

Expires at

subscription.extraAllowances

object

Extra allowances

subscription.extraAllowances.contributor

number

Extra allowed contributors for businessMin: 0

subscription.id

string

Plan ID

subscription.isCampaign

boolean

Is campaign

subscription.nextBillingDate

date

Next billing date

subscription.plan

string

PlanAllowed values: AppSumo, AppSumoBlackFriday, AppSumoBriefcase, AppSumoStacked, StackCommerce, solo, studio, team, trial

subscription.planId

string

Plan ID

subscription.price

number

Price

subscription.status

string

StatusAllowed values: active, expired, none, past_due, trial

subscription.subscribedAt

date

Subscribed at

subscription.tax

number

Tax amountDefault: 0

subscription.type

string

TypeAllowed values: lifetime, limited-time, monthly, yearly

whitelabel

object

Whitelabel. Read only field.

whitelabel.domain

string

Whitelabeled domain name

whitelabel.isActive

boolean

Is whitelabel active on businessDefault: true

whitelabel.mail

object

Whitelabeled email settings

whitelabel.mail.address

string

Email address

whitelabel.mail.host

string

SMTP host

whitelabel.mail.isActive

boolean

Is email activeDefault: false

whitelabel.mail.name

string

Sender nameMax: 150

whitelabel.mail.port

number

SMTP port numberMin: 0Max: 65535

whitelabel.mail.service

string

ServiceAllowed values: 126, 163, 1und1, AOL, DebugMail, DynectEmail, FastMail, GandiMail, Gmail, Godaddy, GodaddyAsia, GodaddyEurope, Hotmail, Mail.ru, Maildev, Mailgun, Mailjet, Mailosaur, Mandrill, Naver, OpenMailBox, Outlook365, Postmark, QQ, QQex, SES, SES-EU-WEST-1, SES-US-EAST-1, SES-US-WEST-2, SendCloud, SendGrid, SendPulse, SendinBlue, Sparkpost, Yahoo, Yandex, Zoho, hot.ee, iCloud, mail.ee, qiye.aliyun

whitelabel.mail.useSSL

boolean

Whether it should use SSL connectionDefault: false

whitelabel.mail.username

string

SMTP user username

workingHours

Working hours listMin: 7Max: 7

workingHours.$

object

Working hours

workingHours.$.endTime

string

End time. Must be in a valid 24 hour format.Default: 17:00

workingHours.$.isActive

boolean

Is activeDefault: true

workingHours.$.startTime

string

Start time. Must be in a valid 24 hour format.Default: 08:00

GET Get business

https://api.plutio.com/v1/businesses
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/businesses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
{
  "_id": "BEdDkLLS2ZDuSAZhZ",
  "name": "Test",
  "domain": "test",
  "logo": {
    "square": {},
    "squareAlternate": {},
    "big": {},
    "favicon": {}
  },
  "contactEmails": [],
  "contactPhones": [],
  "address": {},
  "currency": "USD",
  "whitelabel": {
    "isActive": true
  },
  "invoices": {
    "daysDue": 30,
    "tax": [
      {}
    ],
    "paypal": {},
    "stripe": {},
    "banks": [],
    "nextId": "001"
  },
  "proposals": {
    "nextId": "001"
  },
  "subscription": {
    "plan": "trial",
    "status": "trial",
    "cancelAtPeriodEnd": false,
    "expiresAt": "2019-04-27T11:19:38.880Z",
    "tax": 0,
    "discount": {},
    "log": []
  },
  "permissions": {
    "client": [
      "task_board.view",
      "task_group.view",
      "task.create",
      "task.complete",
      "conversation.create",
      "file.upload"
    ],
    "team": [
      "project.create",
      "project.edit",
      "project.edit_status",
      "project.view_contributors",
      "task_group.view",
      "task_group.edit",
      "task_group.create",
      "task_board.view",
      "task_board.edit",
      "task_board.create",
      "task.complete",
      "task.delegate",
      "task.create",
      "conversation.view",
      "conversation.create",
      "conversation.edit",
      "file.upload",
      "file.edit",
      "file.view",
      "file-folder.create",
      "file-folder.edit",
      "file-folder.view",
      "people.view_profile",
      "people.add",
      "people.edit",
      "activities.view_page",
      "invoice.view",
      "invoice.create",
      "invoice.edit",
      "invoice.email",
      "invoice.update_status",
      "proposal.view",
      "proposal.create",
      "proposal.edit",
      "proposal.email",
      "proposal.update_status",
      "template.view"
    ]
  },
  "customRoles": [
    {
      "title": "Teammate",
      "slug": "team"
    },
    {
      "title": "Client",
      "slug": "client"
    }
  ],
  "rolesUsage": {
    "owner": 1
  },
  "status": "active",
  "colors": [
    "#4E42C3",
    "#46526C",
    "#4DBF39",
    "#FA7E00",
    "#F7C602",
    "#3285FA",
    "#DB253C",
    "#50E3C2",
    "#8B572A"
  ],
  "isBetaActive": false,
  "settings": {
    "task": {
      "newTaskTop": true
    },
    "invoice": {},
    "locale": {
      "timezone": "Europe/London",
      "weekStartDay": "monday",
      "dateFormat": "DD/MM/YYYY",
      "timeFormat": "h:mm A",
      "language": "en-US"
    },
    "general": {
      "isProposalsEnabled": true,
      "isInvoicingEnabled": true,
      "isTimeTrackEnabled": true,
      "defaultMessages": {}
    }
  },
  "billingCustomFields": [],
  "meta": {},
  "workingHours": [
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    }
  ],
  "createdAt": "2019-04-12T11:19:38.877Z",
  "updatedAt": "2019-04-12T13:17:08.913Z"
}

PUT Update business

https://api.plutio.com/v1/businesses
Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/businesses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"contactEmails":[{"address":"business@example.com","type":"work"}],"contactPhones":[{"number":"+440000000000","type":"fax"}],"name":"My business","currency":"GBP"}'
          
Example response200 OK
Copy
{
  "_id": "BEdDkLLS2ZDuSAZhZ",
  "name": "My business",
  "domain": "test",
  "logo": {
    "square": {},
    "squareAlternate": {},
    "big": {},
    "favicon": {}
  },
  "contactEmails": [
    {
      "address": "business@example.com",
      "type": "work"
    }
  ],
  "contactPhones": [
    {
      "number": "+440000000000",
      "type": "fax"
    }
  ],
  "address": {},
  "currency": "GBP",
  "whitelabel": {
    "isActive": true
  },
  "invoices": {
    "daysDue": 30,
    "tax": [
      {}
    ],
    "paypal": {},
    "stripe": {},
    "banks": [],
    "nextId": "001"
  },
  "proposals": {
    "nextId": "001"
  },
  "subscription": {
    "plan": "trial",
    "status": "trial",
    "cancelAtPeriodEnd": false,
    "expiresAt": "2019-04-27T11:19:38.880Z",
    "tax": 0,
    "discount": {},
    "log": []
  },
  "permissions": {
    "client": [
      "task_board.view",
      "task_group.view",
      "task.create",
      "task.complete",
      "conversation.create",
      "file.upload"
    ],
    "team": [
      "project.create",
      "project.edit",
      "project.edit_status",
      "project.view_contributors",
      "task_group.view",
      "task_group.edit",
      "task_group.create",
      "task_board.view",
      "task_board.edit",
      "task_board.create",
      "task.complete",
      "task.delegate",
      "task.create",
      "conversation.view",
      "conversation.create",
      "conversation.edit",
      "file.upload",
      "file.edit",
      "file.view",
      "file-folder.create",
      "file-folder.edit",
      "file-folder.view",
      "people.view_profile",
      "people.add",
      "people.edit",
      "activities.view_page",
      "invoice.view",
      "invoice.create",
      "invoice.edit",
      "invoice.email",
      "invoice.update_status",
      "proposal.view",
      "proposal.create",
      "proposal.edit",
      "proposal.email",
      "proposal.update_status",
      "template.view"
    ]
  },
  "customRoles": [
    {
      "title": "Teammate",
      "slug": "team"
    },
    {
      "title": "Client",
      "slug": "client"
    }
  ],
  "rolesUsage": {
    "owner": 1
  },
  "status": "active",
  "colors": [
    "#4E42C3",
    "#46526C",
    "#4DBF39",
    "#FA7E00",
    "#F7C602",
    "#3285FA",
    "#DB253C",
    "#50E3C2",
    "#8B572A"
  ],
  "isBetaActive": false,
  "settings": {
    "task": {
      "newTaskTop": true
    },
    "invoice": {},
    "locale": {
      "timezone": "Europe/London",
      "weekStartDay": "monday",
      "dateFormat": "DD/MM/YYYY",
      "timeFormat": "h:mm A",
      "language": "en-US"
    },
    "general": {
      "isProposalsEnabled": true,
      "isInvoicingEnabled": true,
      "isTimeTrackEnabled": true,
      "defaultMessages": {}
    }
  },
  "billingCustomFields": [],
  "meta": {},
  "workingHours": [
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    },
    {
      "isActive": true,
      "startTime": "08:00",
      "endTime": "17:00"
    }
  ],
  "createdAt": "2019-04-12T11:19:38.877Z",
  "updatedAt": "2019-04-12T13:17:08.913Z"
}

Canned responses

Field

Type

Description

categoryId

string

Category ID

description

string

DescriptionMax: 5000

descriptionText

string

Description text

title

string

TitleMin: 1Max: 200

POST Create canned response

https://api.plutio.com/v1/canned-responses

Field

Type

Description

description

string

DescriptionMax: 5000

title

string

TitleMin: 1Max: 200

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/canned-responses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"title":"My canned response"}'
          
Example response200 OK
Copy
{
  "categoryId": "zM65kAC8HSYpkdpPL",
  "title": "My canned response",
  "description": "Canned response",
  "_id": "LX3DAefohj3nz6c2t",
  "descriptionText": "Canned response",
  "createdAt": "2019-04-12T14:09:25.767Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get canned response

https://api.plutio.com/v1/canned-responses
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/canned-responses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "LX3DAefohj3nz6c2t",
    "categoryId": "zM65kAC8HSYpkdpPL",
    "title": "My canned response",
    "description": "Canned response",
    "descriptionText": "Canned response",
    "createdAt": "2019-04-12T14:09:25.767Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update canned response

https://api.plutio.com/v1/canned-responses

Field

Type

Description

_id

string

Canned response ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/canned-responses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"LX3DAefohj3nz6c2t","description":"Updated description"}'
          
Example response200 OK
Copy
{
  "_id": "LX3DAefohj3nz6c2t",
  "categoryId": "zM65kAC8HSYpkdpPL",
  "title": "My canned response",
  "description": "Updated description",
  "descriptionText": "Updated description",
  "createdAt": "2019-04-12T14:09:25.767Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:11:25.438Z"
}

DELETE Delete canned response

https://api.plutio.com/v1/canned-responses

Field

Type

Description

_id

string

Canned response ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/canned-responses"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"LX3DAefohj3nz6c2t"}'
          
Example response200 OK
Copy
{
  "_id": "LX3DAefohj3nz6c2t",
  "categoryId": "zM65kAC8HSYpkdpPL",
  "title": "My canned response",
  "description": "Updated description",
  "descriptionText": "Updated description",
  "createdAt": "2019-04-12T14:09:25.767Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:11:25.438Z"
}

Categories

Field

Type

Description

description

string

DescriptionMax: 1000

descriptionText

string

Description text

entityType

string

Entity typeAllowed values: canned-response

title

string

TitleMax: 200

POST Create category

https://api.plutio.com/v1/categories

Field

Type

Description

entityType

string

Entity typeAllowed values: canned-response

title

string

TitleMax: 200

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/categories"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"canned-response","title":"My category"}'
          
Example response200 OK
Copy
{
  "_id": "zM65kAC8HSYpkdpPL",
  "entityType": "canned-response",
  "title": "My category",
  "createdAt": "2019-04-12T13:51:10.864Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get category

https://api.plutio.com/v1/categories
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/categories"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "zM65kAC8HSYpkdpPL",
    "entityType": "canned-response",
    "title": "My category",
    "createdAt": "2019-04-12T13:51:10.864Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update category

https://api.plutio.com/v1/categories

Field

Type

Description

_id

string

Category ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/categories"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"zM65kAC8HSYpkdpPL","title":"My updated category"}'
          
Example response200 OK
Copy
{
  "_id": "zM65kAC8HSYpkdpPL",
  "entityType": "canned-response",
  "title": "My updated category",
  "createdAt": "2019-04-12T13:51:10.864Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:05:29.873Z"
}

DELETE Delete category

https://api.plutio.com/v1/categories

Field

Type

Description

_id

string

Category ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/categories"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"zM65kAC8HSYpkdpPL"}'
          
Example response200 OK
Copy
{
  "_id": "zM65kAC8HSYpkdpPL",
  "entityType": "canned-response",
  "title": "My updated category",
  "createdAt": "2019-04-12T13:51:10.864Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:05:29.873Z"
}

Comments

Field

Type

Description

attachments

array

List of attached files

attachments.$

File

body

string

Body

bodyText

string

Body text

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: conversation, file, task

isAuthorExternal

boolean

Is author externalDefault: false

isNote

boolean

Is comment a noteDefault: false

mentions

array

Mentioned people list

mentions.$

string

Mentioned person ID

POST Create comment

https://api.plutio.com/v1/comments

Field

Type

Description

body

string

Body

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: conversation, file, task

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/comments"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"conversation","entityId":"hqsBRwaPfrYbdJCzy","body":"My comment"}'
          
Example response200 OK
Copy
{
  "entityType": "conversation",
  "entityId": "hqsBRwaPfrYbdJCzy",
  "body": "My comment",
  "_id": "g63pg7L3MQa3FM62x",
  "bodyText": "My comment",
  "attachments": [],
  "mentions": [],
  "isNote": false,
  "isAuthorExternal": false,
  "createdAt": "2019-04-12T14:52:28.018Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get comment

https://api.plutio.com/v1/comments
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/comments?entityType=conversation&entityId=hqsBRwaPfrYbdJCzy"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "g63pg7L3MQa3FM62x",
    "entityType": "conversation",
    "entityId": "hqsBRwaPfrYbdJCzy",
    "body": "My comment",
    "bodyText": "My comment",
    "attachments": [],
    "mentions": [],
    "isNote": false,
    "isAuthorExternal": false,
    "createdAt": "2019-04-12T14:52:28.018Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update comment

https://api.plutio.com/v1/comments

Field

Type

Description

_id

string

Comment ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/comments"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"g63pg7L3MQa3FM62x","body":"Updated comment"}'
          
Example response200 OK
Copy
{
  "_id": "g63pg7L3MQa3FM62x",
  "entityType": "conversation",
  "entityId": "hqsBRwaPfrYbdJCzy",
  "body": "Updated comment",
  "bodyText": "Updated comment",
  "attachments": [],
  "mentions": [],
  "isNote": false,
  "isAuthorExternal": false,
  "createdAt": "2019-04-12T14:52:28.018Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:57:54.702Z"
}

DELETE Delete comment

https://api.plutio.com/v1/comments

On comment removal, all files attached to the comment are removed as well.

Field

Type

Description

_id

string

Comment ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/comments"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"g63pg7L3MQa3FM62x"}'
          
Example response200 OK
Copy
{
  "_id": "g63pg7L3MQa3FM62x",
  "entityType": "conversation",
  "entityId": "hqsBRwaPfrYbdJCzy",
  "body": "Updated comment",
  "bodyText": "Updated comment",
  "attachments": [],
  "mentions": [],
  "isNote": false,
  "isAuthorExternal": false,
  "createdAt": "2019-04-12T14:52:28.018Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T14:57:54.702Z"
}

Companies

Field

Type

Description

address

Address

billingCustomFields

array

Billing custom fields listDefault: []

billingCustomFields.$

object

Billing custom field

billingCustomFields.$.key

string

Key

billingCustomFields.$.value

string

Value

color

string

Color. Must be a valid hex string in format of #XXXXXX

contactEmails

array

Contact emails list

contactEmails.$

Contact email

contactPhones

array

Contact phones list

contactPhones.$

Contact phone

customFields

array

Custom fields list

customFields.$

Custom field

description

string

DescriptionMax: 2000

industry

string

IndustryAllowed values: accounting, airlines-aviation, alternative-dispute-resolution, alternative-medicine, animation, apparel-fashion, architecture-planning, arts-and-crafts, automotive, aviation-aerospace, banking, biotechnology, broadcast-media, building-materials, business-supplies-and-equipment, capital-markets, chemicals, civic-social-organization, civil-engineering, commercial-real-estate, computer-games, computer-hardware, computer-network-security, computer-networking, computer-software, construction, consumer-electronics, consumer-goods, consumer-services, cosmetics, dairy, defense-space, design, e-learning, education-management, electrical-electronic-manufacturing, entertainment, environmental-services, events-services, executive-office, facilities-services, farming, financial-services, fine-art, fishery, food-beverages, food-production, fund-raising, furniture, gambling-casinos, glass-ceramics-concrete, government-administration, government-relations, graphic-design, health-wellness-and-fitness, higher-education, hospital-health-care, hospitality, human-resources, import-and-export, individual-family-services, industrial-automation, information-services, information-technology-and-services, insurance, international-affairs, international-trade-and-development, internet, investment-banking, investment-management, judiciary, law-enforcement, law-practice, legal-services, legislative-office, leisure-travel-tourism, libraries, logistics-and-supply-chain, luxury-goods-jewelry, machinery, management-consulting, maritime, market-research, marketing-and-advertising, mechanical-or-industrial-engineering, media-production, medical-devices, medical-practice, mental-health-care, military, mining-metals, motion-pictures-and-film, museums-and-institutions, music, nanotechnology, newspapers, nonprofit-organization-management, oil-energy, online-media, outsourcing-offshoring, package-freight-delivery, packaging-and-containers, paper-forest-products, performing-arts, pharmaceuticals, philanthropy, photography, plastics, political-organization, primary-secondary-education, printing, professional-training-coaching, program-development, public-policy, public-relations-and-communications, public-safety, publishing, railroad-manufacture, ranching, real-estate, recreational-facilities-and-services, religious-institutions, renewables-environment, research, restaurants, retail, security-and-investigations, semiconductors, shipbuilding, sporting-goods, sports, staffing-and-recruiting, supermarkets, telecommunications, textiles, think-tanks, tobacco, translation-and-localization, transportation-trucking-railroad, utilities, venture-capital-private-equity, veterinary, warehousing, wholesale, wine-and-spirits, wireless, writing-and-editing

logo

Logo

people

array

Company people list

people.$

object

Person

people.$._id

string

Person ID

people.$.role

string

RoleMax: 256

title

string

TitleMin: 2Max: 256

websiteLinks

array

Website links list

websiteLinks.$

object

Website link

websiteLinks.$.title

string

TitleMax: 256

websiteLinks.$.type

string

Type. Inserted based on provided URL.Allowed values: behance, dribbble, facebook, github, instagram, linkedin, pinterest, twitter, vimeo, website, youtube

websiteLinks.$.url

string

Url

POST Create company

https://api.plutio.com/v1/companies

Field

Type

Description

title

string

TitleMin: 2Max: 256

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/companies"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"title":"My company","people":[{"_id":"7uvJeXLgDw858widw","role":"CEO"}],"industry":"accounting"}'
          
Example response200 OK
Copy
{
  "title": "My company",
  "people": [
    {
      "_id": "7uvJeXLgDw858widw",
      "role": "CEO"
    }
  ],
  "industry": "accounting",
  "_id": "WqdBnx6XsBhMbjC7p",
  "customFields": [],
  "logo": {},
  "contactEmails": [],
  "contactPhones": [],
  "address": {},
  "websiteLinks": [],
  "billingCustomFields": [],
  "createdAt": "2019-04-12T14:22:13.669Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get company

https://api.plutio.com/v1/companies
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/companies"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "WqdBnx6XsBhMbjC7p",
    "title": "My company",
    "people": [
      {
        "_id": "7uvJeXLgDw858widw",
        "role": "CEO"
      }
    ],
    "industry": "accounting",
    "customFields": [],
    "logo": {},
    "contactEmails": [],
    "contactPhones": [],
    "address": {},
    "websiteLinks": [],
    "billingCustomFields": [],
    "createdAt": "2019-04-12T14:22:13.669Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update company

https://api.plutio.com/v1/companies

Field

Type

Description

_id

string

Company ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/companies"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"WqdBnx6XsBhMbjC7p","color":"#FF00EE","websiteLinks":[{"title":"Company website","url":"https://www.example.com"}]}'
          
Example response200 OK
Copy
{
  "_id": "WqdBnx6XsBhMbjC7p",
  "title": "My company",
  "people": [
    {
      "_id": "7uvJeXLgDw858widw",
      "role": "CEO"
    }
  ],
  "industry": "accounting",
  "customFields": [],
  "logo": {},
  "contactEmails": [],
  "contactPhones": [],
  "address": {},
  "websiteLinks": [
    {
      "title": "Company website",
      "url": "https://www.example.com",
      "type": "website"
    }
  ],
  "billingCustomFields": [],
  "createdAt": "2019-04-12T14:22:13.669Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#FF00EE",
  "updatedAt": "2019-04-12T14:25:00.523Z"
}

DELETE Delete company

https://api.plutio.com/v1/companies

On company removal, all people are removed from company as well.

Field

Type

Description

_id

string

Company ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/companies"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"WqdBnx6XsBhMbjC7p"}'
          
Example response200 OK
Copy
{
  "_id": "WqdBnx6XsBhMbjC7p",
  "title": "My company",
  "people": [
    {
      "_id": "7uvJeXLgDw858widw",
      "role": "CEO"
    }
  ],
  "industry": "accounting",
  "customFields": [],
  "logo": {},
  "contactEmails": [],
  "contactPhones": [],
  "address": {},
  "websiteLinks": [
    {
      "title": "Company website",
      "url": "https://www.example.com",
      "type": "website"
    }
  ],
  "billingCustomFields": [],
  "createdAt": "2019-04-12T14:22:13.669Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#FF00EE",
  "updatedAt": "2019-04-12T14:25:00.523Z"
}

Conversations

Field

Type

Description

activeDrafts

array

Active drafts list

activeDrafts.$

object

Active draft

activeDrafts.$.content

string

Content

activeDrafts.$.personId

string

Person ID

activeDrafts.$.sendAt

date

Scheduled send date

activeSnoozes

array

Active snoozes list

activeSnoozes.$

object

Snooze item

activeSnoozes.$.endDate

date

End date

activeSnoozes.$.personId

string

Person ID

activeSnoozes.$.startDate

date

Start date

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: messenger, person, project

lastMessage

object

Last message info

lastMessage._id

string

Last message ID

lastMessage.bodyText

string

Body text

lastMessage.createdAt

date

Created at

lastMessage.createdBy

string

Created by

members

array

Members list

members.$

string

Person ID

status

object

Status

status._id

string

Status ID

status.color

string

Color

status.title

string

TitleMax: 256

status.type

string

TypeAllowed values: active, closed, completed, open

title

string

TitleMax: 500

POST Create conversation

https://api.plutio.com/v1/conversations

Field

Type

Description

entityId

string

Entity ID. Required only if entityType is "project"

entityType

string

Entity typeAllowed values: messenger, person, project

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/conversations"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"person","title":"Private conversation","status":{"_id":"ywH9bPTzdhFbM4DzA"},"members":["7uvJeXLgDw858widw"]}'
          
Example response200 OK
Copy
{
  "entityType": "person",
  "title": "Private conversation",
  "status": {
    "_id": "ywH9bPTzdhFbM4DzA",
    "title": "In progress",
    "color": "#EE3377",
    "type": "open"
  },
  "members": [
    "7uvJeXLgDw858widw",
    "5yTXLcrYN5Qw6RLu9"
  ],
  "lastMessage": {
    "createdAt": "2019-04-12T14:48:08.564Z"
  },
  "updatedAt": "2019-04-12T14:48:08.564Z",
  "_id": "hqsBRwaPfrYbdJCzy",
  "activeSnoozes": [],
  "activeDrafts": [],
  "createdAt": "2019-04-12T14:48:08.565Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get conversation

https://api.plutio.com/v1/conversations
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/conversations"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "hqsBRwaPfrYbdJCzy",
    "entityType": "person",
    "title": "Private conversation",
    "status": {
      "_id": "ywH9bPTzdhFbM4DzA",
      "title": "In progress",
      "color": "#EE3377",
      "type": "open"
    },
    "members": [
      "7uvJeXLgDw858widw",
      "5yTXLcrYN5Qw6RLu9"
    ],
    "lastMessage": {
      "createdAt": "2019-04-12T14:48:08.564Z"
    },
    "updatedAt": "2019-04-12T14:50:05.597Z",
    "activeSnoozes": [],
    "activeDrafts": [],
    "createdAt": "2019-04-12T14:48:08.565Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update conversation

https://api.plutio.com/v1/conversations

Field

Type

Description

_id

string

Conversation ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/conversations"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"hqsBRwaPfrYbdJCzy","status":{"title":"Custom status title"}}'
          
Example response200 OK
Copy
{
  "_id": "hqsBRwaPfrYbdJCzy",
  "entityType": "person",
  "title": "Private conversation",
  "status": {
    "_id": "ywH9bPTzdhFbM4DzA",
    "title": "Custom status title",
    "color": "#EE3377",
    "type": "open"
  },
  "members": [
    "7uvJeXLgDw858widw",
    "5yTXLcrYN5Qw6RLu9"
  ],
  "lastMessage": {
    "createdAt": "2019-04-12T14:48:08.564Z"
  },
  "updatedAt": "2019-04-12T14:50:05.597Z",
  "activeSnoozes": [],
  "activeDrafts": [],
  "createdAt": "2019-04-12T14:48:08.565Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

DELETE Delete conversation

https://api.plutio.com/v1/conversations

On conversation removal, all comments that are part of conversation are removed as well.

Field

Type

Description

_id

string

Conversation ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/conversations"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"hqsBRwaPfrYbdJCzy"}'
          
Example response200 OK
Copy
{
  "_id": "hqsBRwaPfrYbdJCzy",
  "entityType": "person",
  "title": "Private conversation",
  "status": {
    "_id": "ywH9bPTzdhFbM4DzA",
    "title": "Custom status title",
    "color": "#EE3377",
    "type": "open"
  },
  "members": [
    "7uvJeXLgDw858widw",
    "5yTXLcrYN5Qw6RLu9"
  ],
  "lastMessage": {
    "_id": "g63pg7L3MQa3FM62x",
    "createdAt": "2019-04-12T14:52:28.018Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "bodyText": "My comment"
  },
  "updatedAt": "2019-04-12T14:52:28.029Z",
  "activeSnoozes": [],
  "activeDrafts": [],
  "createdAt": "2019-04-12T14:48:08.565Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "seenMessages": {
    "5yTXLcrYN5Qw6RLu9": {
      "createdAt": "2019-04-12T14:52:28.028Z"
    }
  }
}

Custom fields

Field

Type

Description

allowCreate

boolean

Allow create extra options. Only if 'inputType' is 'select' or 'multi'Default: false

displayTime

boolean

Display time. Only if 'inputType' is 'date'Default: false

entityType

string

Entity typeAllowed values: company, file, invoice, person, project, proposal, task

inputType

string

Input typeAllowed values: date, multi, select, textDefault: text

isAddedByDefault

boolean

Is custom field added by default when creating an entityDefault: false

options

array

Options list. Only if 'inputType' is 'select' or 'multi'

options.$

object

Option

options.$._id

string

ID

options.$.color

string

Color

options.$.index

number

Index

options.$.name

string

Name

permissions

object

Permissions

title

string

Title

POST Create custom field

https://api.plutio.com/v1/custom-fields

Field

Type

Description

entityType

string

Entity typeAllowed values: company, file, invoice, person, project, proposal, task

title

string

Title

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/custom-fields"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"project","title":"My custom field","inputType":"text"}'
          
Example response200 OK
Copy
{
  "entityType": "project",
  "title": "My custom field",
  "inputType": "text",
  "permissions": {
    "team": "view",
    "client": "view"
  },
  "_id": "WGvsZ882Etj3WoCvA",
  "options": [],
  "allowCreate": false,
  "displayTime": false,
  "isAddedByDefault": false,
  "createdAt": "2019-04-12T15:09:57.134Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get custom field

https://api.plutio.com/v1/custom-fields
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/custom-fields"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "WGvsZ882Etj3WoCvA",
    "entityType": "project",
    "title": "My custom field",
    "inputType": "text",
    "permissions": {
      "team": "view",
      "client": "view"
    },
    "options": [],
    "allowCreate": false,
    "displayTime": false,
    "isAddedByDefault": false,
    "createdAt": "2019-04-12T15:09:57.134Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update custom field

https://api.plutio.com/v1/custom-fields

Field

Type

Description

_id

string

Custom field ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/custom-fields"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"WGvsZ882Etj3WoCvA","title":"Updated title"}'
          
Example response200 OK
Copy
{
  "_id": "WGvsZ882Etj3WoCvA",
  "entityType": "project",
  "title": "Updated title",
  "inputType": "text",
  "permissions": {
    "team": "view",
    "client": "view"
  },
  "options": [],
  "allowCreate": false,
  "displayTime": false,
  "isAddedByDefault": false,
  "createdAt": "2019-04-12T15:09:57.134Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:11:43.348Z"
}

DELETE Delete custom field

https://api.plutio.com/v1/custom-fields

On custom field removal, all entities that custom field was assigned to will be updated.

Field

Type

Description

_id

string

Custom field ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/custom-fields"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"WGvsZ882Etj3WoCvA"}'
          
Example response200 OK
Copy
{
  "_id": "WGvsZ882Etj3WoCvA",
  "entityType": "project",
  "title": "Updated title",
  "inputType": "text",
  "permissions": {
    "team": "view",
    "client": "view"
  },
  "options": [],
  "allowCreate": false,
  "displayTime": false,
  "isAddedByDefault": false,
  "createdAt": "2019-04-12T15:09:57.134Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:11:43.348Z"
}

Events

Field

Type

Description

color

string

Color. Must be a valid hex string in format of #XXXXXX

description

string

DescriptionMax: 5000

descriptionText

string

Description text

endDate

date

End date

participants

array

Participants list

participants.$

string

personID

projectId

string

Project ID

repeat

Repeat

service

object

Service

service.calendarId

string

Calendar ID

service.itemId

string

Item ID

service.type

string

TypeAllowed values: google

startDate

date

Start date

startDateRemindAt

date

Start date remind at

startDateReminder

number

Start date reminder in minutesMin: 0Max: 720000

title

string

TitleMin: 2Max: 500

POST Create event

https://api.plutio.com/v1/events

Field

Type

Description

startDate

date

Start date

title

string

TitleMin: 2Max: 500

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/events"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"title":"My event","startDate":"2019-04-20T14:15:00.978Z"}'
          
Example response200 OK
Copy
{
  "title": "My event",
  "startDate": "2019-04-20T14:15:00.978Z",
  "_id": "Hg2Dw99dg33nHYp7e",
  "participants": [],
  "createdAt": "2019-04-12T15:55:45.241Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get event

https://api.plutio.com/v1/events
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/events"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"client_id":"YOUR_CLIENT_ID"}'
          
Example response200 OK
Copy
[
  {
    "_id": "Hg2Dw99dg33nHYp7e",
    "title": "My event",
    "startDate": "2019-04-20T14:15:00.978Z",
    "participants": [],
    "createdAt": "2019-04-12T15:55:45.241Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update event

https://api.plutio.com/v1/events

Field

Type

Description

_id

string

Event ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/events"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"Hg2Dw99dg33nHYp7e","color":"#882211","participants":["7uvJeXLgDw858widw"]}'
          
Example response200 OK
Copy
{
  "_id": "Hg2Dw99dg33nHYp7e",
  "title": "My event",
  "startDate": "2019-04-20T14:15:00.978Z",
  "participants": [
    "7uvJeXLgDw858widw"
  ],
  "createdAt": "2019-04-12T15:55:45.241Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#882211",
  "updatedAt": "2019-04-12T15:57:15.255Z"
}

DELETE Delete event

https://api.plutio.com/v1/events

Field

Type

Description

_id

string

Event ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/events"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"Hg2Dw99dg33nHYp7e"}'
          
Example response200 OK
Copy
{
  "_id": "Hg2Dw99dg33nHYp7e",
  "title": "My event",
  "startDate": "2019-04-20T14:15:00.978Z",
  "participants": [
    "7uvJeXLgDw858widw"
  ],
  "createdAt": "2019-04-12T15:55:45.241Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#882211",
  "updatedAt": "2019-04-12T15:57:15.255Z"
}

Folders

Field

Type

Description

breadcrumb

array

Breadcrumb list

breadcrumb.$

Breadcrumb item

color

string

Color. Must be a valid hex string in format of #XXXXXX

customFields

array

Custom fields list

customFields.$

Custom fields

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: project

parentFolderId

string

Parent folder ID

shareSettings

object

Share settings

shareSettings.method

string

MethodAllowed values: default, private, publicDefault: default

shareSettings.sharedWith

array

Shared with list

shareSettings.sharedWith.$

string

person ID

title

string

TitleMin: 1Max: 64

POST Create folder

https://api.plutio.com/v1/file-folders

Field

Type

Description

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: project

title

string

TitleMin: 1Max: 64

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/file-folders"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"project","entityId":"FbbTk3QiSX8cqcRh6","title":"My folder"}'
          
Example response200 OK
Copy
{
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "title": "My folder",
  "_id": "ATNFRTmytungz9ktk",
  "breadcrumb": [
    {
      "_id": "ATNFRTmytungz9ktk",
      "title": "My folder",
      "entityType": "file-folder"
    }
  ],
  "titleSortKey": "my folder",
  "shareSettings": {
    "method": "default",
    "isManualShare": false
  },
  "customFields": [],
  "createdAt": "2019-04-12T16:07:19.220Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get folder

https://api.plutio.com/v1/file-folders
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/file-folders?entityType=project&entityId=FbbTk3QiSX8cqcRh6"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "ATNFRTmytungz9ktk",
    "entityType": "project",
    "entityId": "FbbTk3QiSX8cqcRh6",
    "title": "My folder",
    "breadcrumb": [
      {
        "_id": "ATNFRTmytungz9ktk",
        "title": "My folder",
        "entityType": "file-folder"
      }
    ],
    "titleSortKey": "my folder",
    "shareSettings": {
      "method": "default",
      "isManualShare": false
    },
    "customFields": [],
    "createdAt": "2019-04-12T16:07:19.220Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update folder

https://api.plutio.com/v1/file-folders

Field

Type

Description

_id

string

Folder ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/file-folders"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"ATNFRTmytungz9ktk","title":"Updated title","color":"#fff000"}'
          
Example response200 OK
Copy
{
  "_id": "ATNFRTmytungz9ktk",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "title": "Updated title",
  "breadcrumb": [
    {
      "_id": "ATNFRTmytungz9ktk",
      "title": "My folder",
      "entityType": "file-folder"
    }
  ],
  "titleSortKey": "updated title",
  "shareSettings": {
    "method": "default",
    "isManualShare": false
  },
  "customFields": [],
  "createdAt": "2019-04-12T16:07:19.220Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#fff000",
  "updatedAt": "2019-04-12T16:09:57.721Z"
}

POST Move folder

https://api.plutio.com/v1/file-folders/move

Field

Type

Description

_id

string

Folder ID

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/file-folders/move"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"ATNFRTmytungz9ktk","parentFolderId":"3eeSNocaRgoctmGMe"}'
          
Example response200 OK
Copy
{
  "_id": "ATNFRTmytungz9ktk",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "title": "Updated title",
  "breadcrumb": [
    {
      "_id": "3eeSNocaRgoctmGMe",
      "title": "My folder",
      "entityType": "file-folder"
    },
    {
      "_id": "ATNFRTmytungz9ktk",
      "title": "Updated title",
      "entityType": "file-folder"
    }
  ],
  "titleSortKey": "updated title",
  "shareSettings": {
    "method": "default",
    "isManualShare": false
  },
  "customFields": [],
  "createdAt": "2019-04-12T16:07:19.220Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "color": "#fff000",
  "updatedAt": "2019-04-12T16:11:37.974Z",
  "parentFolderId": "3eeSNocaRgoctmGMe"
}

DELETE Delete folder

https://api.plutio.com/v1/file-folders

On folder removal all files inside the folder will be removed as well.

Field

Type

Description

_id

string

Folder ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/file-folders"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"ATNFRTmytungz9ktk"}'
          
Example response200 OK
Copy
{
  "_id": "ATNFRTmytungz9ktk",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "title": "My folder",
  "breadcrumb": [
    {
      "_id": "3eeSNocaRgoctmGMe",
      "title": "My folder",
      "entityType": "file-folder"
    }
  ],
  "titleSortKey": "my folder",
  "shareSettings": {
    "method": "default",
    "isManualShare": false
  },
  "customFields": [],
  "createdAt": "2019-04-12T16:11:28.058Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

Files

Field

Type

Description

customFields

array

Custom fields list

customFields.$

Custom field

documentBody

string

Document bodyMax: 30000

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: business, comment, company, conversation, inbox-group, invoice, item, person, project, proposal, task, template

extension

string

Extension

folderId

string

Folder ID

handle

string

Handle

isTemplate

boolean

Is templateDefault: false

link

string

Link

mimeType

string

Mime typeMax: 256

security

object

Security

security.policy

string

Policy

security.signature

string

Signature

size

number

Size

storage

string

Storage typeAllowed values: default, messenger, url

title

string

TitleMin: 1Max: 128

type

string

TypeAllowed values: document, file, linkDefault: file

POST Create file

https://api.plutio.com/v1/files

Field

Type

Description

documentBody

string

Document content. Only if 'type' is 'document'Max: 30000

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: business, comment, company, conversation, inbox-group, invoice, item, person, project, proposal, task, template

handle

string

If 'storage' is 'url', the value will be the file URL. Otherwise unique ID

link

string

Valid URL address. Required only if 'type' is 'link'

title

string

Title. Required only if 'type' is 'document' or 'link'Min: 1Max: 128

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/files"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"project","entityId":"FbbTk3QiSX8cqcRh6","folderId":"ATNFRTmytungz9ktk","type":"document","documentBody":"My document","title":"My file"}'
          
Example response200 OK
Copy
{
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "folderId": "ATNFRTmytungz9ktk",
  "type": "document",
  "documentBody": "My document",
  "title": "My file",
  "_id": "iwpEaLpABacPhzQP3",
  "titleSortKey": "my file",
  "isPendingAttachment": false,
  "isTemplate": false,
  "customFields": [],
  "createdAt": "2019-04-12T16:15:34.558Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get file

https://api.plutio.com/v1/files
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/files?entityType=project&entityId=FbbTk3QiSX8cqcRh6"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "iwpEaLpABacPhzQP3",
    "entityType": "project",
    "entityId": "FbbTk3QiSX8cqcRh6",
    "folderId": "ATNFRTmytungz9ktk",
    "type": "document",
    "documentBody": "My document",
    "title": "My file",
    "titleSortKey": "my file",
    "isPendingAttachment": false,
    "isTemplate": false,
    "customFields": [],
    "createdAt": "2019-04-12T16:15:34.558Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update file

https://api.plutio.com/v1/files

Field

Type

Description

_id

string

File ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/files"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"iwpEaLpABacPhzQP3","title":"Updated title"}'
          
Example response200 OK
Copy
{
  "_id": "iwpEaLpABacPhzQP3",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "folderId": "ATNFRTmytungz9ktk",
  "type": "document",
  "documentBody": "My document",
  "title": "Updated title",
  "titleSortKey": "updated title",
  "isPendingAttachment": false,
  "isTemplate": false,
  "customFields": [],
  "createdAt": "2019-04-12T16:15:34.558Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:18:50.632Z"
}

POST Move file

https://api.plutio.com/v1/files/move

Field

Type

Description

_id

string

File ID

folderId

string

Folder ID or null

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/files/move"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"iwpEaLpABacPhzQP3","folderId":null}'
          
Example response200 OK
Copy
{
  "_id": "iwpEaLpABacPhzQP3",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "folderId": null,
  "type": "document",
  "documentBody": "My document",
  "title": "Updated title",
  "titleSortKey": "updated title",
  "isPendingAttachment": false,
  "isTemplate": false,
  "customFields": [],
  "createdAt": "2019-04-12T16:15:34.558Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:21:11.281Z"
}

DELETE Delete file

https://api.plutio.com/v1/files

On file removal, all comments inside a file will be removed as well.

Field

Type

Description

_id

string

File ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/files"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"iwpEaLpABacPhzQP3"}'
          
Example response200 OK
Copy
{
  "_id": "iwpEaLpABacPhzQP3",
  "entityType": "project",
  "entityId": "FbbTk3QiSX8cqcRh6",
  "folderId": null,
  "type": "document",
  "documentBody": "My document",
  "title": "Updated title",
  "titleSortKey": "updated title",
  "isPendingAttachment": false,
  "isTemplate": false,
  "customFields": [],
  "createdAt": "2019-04-12T16:15:34.558Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:21:11.281Z"
}

Inbox groups

Field

Type

Description

isActive

boolean

Is activeDefault: true

isWhitelabeled

boolean

Is whitelabeled. Read only. If you have a whitelabel addon, it will be 'true'Default: false

members

array

Members

members.$

string

person ID

messenger

object

Messenger settings

messenger.domains

array

Whitelisted domain listDefault: []Max: 3

messenger.domains.$

string

DomainMin: 3

messenger.greetings

array

Greetings listDefault: []

messenger.greetings.$

object

Greeting

messenger.greetings.$.delay

number

Delay in millisecondsDefault: 1000Min: 0Max: 1000000

messenger.greetings.$.display

string

When to display greetingsAllowed values: business_hours, off, onDefault: off

messenger.greetings.$.title

string

TitleDefault: Hey there, let us know if we can help.Min: 1

messenger.iconImage

Icon image

messenger.position

string

PositionAllowed values: left, rightDefault: right

messenger.primaryBg

string

Primary background color

messenger.primaryText

string

Primary text color

messenger.secondaryBg

string

Secondary background color

messenger.secondaryText

string

Secondary text color

messenger.strings

object

Default text strings

messenger.strings.away

string

AwayDefault: We're currently away but we've received your message and will respond as soon as we're back. Thanks for your patience.Min: 1

messenger.strings.formPlaceholder

string

Form placeholderDefault: Type here...Min: 1

messenger.strings.header

string

HeaderDefault: How can we help?Min: 1

messenger.strings.unknownUserEmail

string

Unknown user emailDefault: 👋 Real quick, what’s your email address? We’ll use it for any follow-up messages.Min: 1

messenger.strings.unknownUserFinish

string

Unknown user finishDefault: Great, you can begin by asking your question below.Min: 1

messenger.strings.unknownUserName

string

Unknown user nameDefault: Got it. Can we also have your first name, please?Min: 1

messenger.workingHours

array

Working hoursMin: 7Max: 7

messenger.workingHours.$

object

Working hours

messenger.workingHours.$.endTime

string

End time. Must be in a valid 24 hour format.Default: 17:00

messenger.workingHours.$.isActive

boolean

Is activeDefault: true

messenger.workingHours.$.startTime

string

Start time. Must be in a valid 24 hour format.Default: 08:00

title

string

TitleMin: 1Max: 200

type

string

TypeAllowed values: email, messenger

POST Create inbox group

https://api.plutio.com/v1/inbox-groups

Field

Type

Description

title

string

TitleMin: 1Max: 200

type

string

TypeAllowed values: email, messenger

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/inbox-groups"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"title":"My messenger","type":"messenger","messenger":{"position":"left","primaryBg":"#ffffff","primaryText":"#000000","greetings":[{"title":"Hello!","display":"on","delay":2000}]}}'
          
Example response200 OK
Copy
{
  "title": "My messenger",
  "type": "messenger",
  "messenger": {
    "position": "left",
    "primaryBg": "#ffffff",
    "primaryText": "#000000",
    "greetings": [
      {
        "title": "Hello!",
        "display": "on",
        "delay": 2000
      }
    ],
    "domains": [],
    "iconImage": {},
    "strings": {
      "header": "How can we help?",
      "formPlaceholder": "Type here...",
      "unknownUserEmail": "👋 Real quick, what’s your email address? We’ll use it for any follow-up messages.",
      "unknownUserName": "Got it. Can we also have your first name, please?",
      "unknownUserFinish": "Great, you can begin by asking your question below.",
      "away": "We're currently away but we've received your message and will respond as soon as we're back. Thanks for your patience."
    },
    "workingHours": [
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      }
    ]
  },
  "isWhitelabeled": true,
  "_id": "mvuwp2Db4A8H9LmLA",
  "isActive": true,
  "mailboxes": [],
  "members": [],
  "createdAt": "2019-04-12T16:51:28.256Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get inbox group

https://api.plutio.com/v1/inbox-groups
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/inbox-groups"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "mvuwp2Db4A8H9LmLA",
    "title": "My messenger",
    "type": "messenger",
    "messenger": {
      "position": "left",
      "primaryBg": "#ffffff",
      "primaryText": "#000000",
      "greetings": [
        {
          "title": "Hello!",
          "display": "on",
          "delay": 2000
        }
      ],
      "domains": [],
      "iconImage": {},
      "strings": {
        "header": "How can we help?",
        "formPlaceholder": "Type here...",
        "unknownUserEmail": "👋 Real quick, what’s your email address? We’ll use it for any follow-up messages.",
        "unknownUserName": "Got it. Can we also have your first name, please?",
        "unknownUserFinish": "Great, you can begin by asking your question below.",
        "away": "We're currently away but we've received your message and will respond as soon as we're back. Thanks for your patience."
      },
      "workingHours": [
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        },
        {
          "isActive": true,
          "startTime": "08:00",
          "endTime": "17:00"
        }
      ]
    },
    "isWhitelabeled": true,
    "isActive": true,
    "mailboxes": [],
    "members": [],
    "createdAt": "2019-04-12T16:51:28.256Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update inbox group

https://api.plutio.com/v1/inbox-groups

Field

Type

Description

_id

string

Inbox group ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/inbox-groups"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"mvuwp2Db4A8H9LmLA","messenger":{"position":"right","primaryBg":"#ffffff"}}'
          
Example response200 OK
Copy
{
  "_id": "mvuwp2Db4A8H9LmLA",
  "title": "My messenger",
  "type": "messenger",
  "messenger": {
    "position": "right",
    "primaryBg": "#ffffff",
    "domains": [],
    "iconImage": {},
    "strings": {
      "header": "How can we help?",
      "formPlaceholder": "Type here...",
      "unknownUserEmail": "👋 Real quick, what’s your email address? We’ll use it for any follow-up messages.",
      "unknownUserName": "Got it. Can we also have your first name, please?",
      "unknownUserFinish": "Great, you can begin by asking your question below.",
      "away": "We're currently away but we've received your message and will respond as soon as we're back. Thanks for your patience."
    },
    "greetings": [],
    "workingHours": [
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      }
    ]
  },
  "isWhitelabeled": true,
  "isActive": true,
  "mailboxes": [],
  "members": [],
  "createdAt": "2019-04-12T16:51:28.256Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:53:46.331Z"
}

DELETE Delete inbox group

https://api.plutio.com/v1/inbox-groups

On inbox group (messenger) removal, all conversations, comments and files that are part of this messenger will be removed as well.

Field

Type

Description

_id

string

Inbox group ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/inbox-groups"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"mvuwp2Db4A8H9LmLA"}'
          
Example response200 OK
Copy
{
  "_id": "mvuwp2Db4A8H9LmLA",
  "title": "My messenger",
  "type": "messenger",
  "messenger": {
    "position": "right",
    "primaryBg": "#ffffff",
    "domains": [],
    "iconImage": {},
    "strings": {
      "header": "How can we help?",
      "formPlaceholder": "Type here...",
      "unknownUserEmail": "👋 Real quick, what’s your email address? We’ll use it for any follow-up messages.",
      "unknownUserName": "Got it. Can we also have your first name, please?",
      "unknownUserFinish": "Great, you can begin by asking your question below.",
      "away": "We're currently away but we've received your message and will respond as soon as we're back. Thanks for your patience."
    },
    "greetings": [],
    "workingHours": [
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      },
      {
        "isActive": true,
        "startTime": "08:00",
        "endTime": "17:00"
      }
    ]
  },
  "isWhitelabeled": true,
  "isActive": true,
  "mailboxes": [],
  "members": [],
  "createdAt": "2019-04-12T16:51:28.256Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:53:46.331Z"
}

Invoice subscriptions

Field

Type

Description

amount

number

Amount

clientId

string

Client ID

currency

string

CurrencyDefault: USD

customFields

array

Custom fields list

customFields.$

Custom field

customerId

string

Stripe customer ID

invoices

array

Invoices list

invoices.$

object

Invoice

invoices.$._id

string

ID

invoices.$.createdAt

date

Created at

invoices.$.status

string

Status

isAutoBilled

boolean

Is auto billedDefault: false

issueDate

date

Issue date

mainInvoiceId

string

Main invoice ID

repeat

Repeat

status

string

StatusAllowed values: active, cancelled

title

string

Title

upcomingInvoiceDate

date

Upcoming invoice date

GET Get subscription

https://api.plutio.com/v1/invoice-subscriptions
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/invoice-subscriptions"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "FomaMAYBLuuYeT9PQ",
    "mainInvoiceId": "nMoHgEAFCMkZXXvT4",
    "title": "001",
    "amount": 237.6,
    "currency": "EUR",
    "clientId": "7uvJeXLgDw858widw",
    "repeat": {
      "interval": 10,
      "intervalType": "day",
      "action": "change_due_date",
      "monthDay": 1,
      "yearMonth": 1,
      "yearMonthDay": 1
    },
    "status": "active",
    "customFields": [],
    "issueDate": "2019-04-12T16:26:55.594Z",
    "upcomingInvoiceDate": "2019-04-21T22:00:00.000Z",
    "invoices": [],
    "isAutoBilled": false,
    "createdAt": "2019-04-12T16:30:12.724Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update subscription

https://api.plutio.com/v1/invoice-subscriptions

Field

Type

Description

_id

string

Invoice subscription ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/invoice-subscriptions"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"FomaMAYBLuuYeT9PQ","status":"cancelled"}'
          
Example response200 OK
Copy
{
  "_id": "FomaMAYBLuuYeT9PQ",
  "mainInvoiceId": "nMoHgEAFCMkZXXvT4",
  "title": "001",
  "amount": 237.6,
  "currency": "EUR",
  "clientId": "7uvJeXLgDw858widw",
  "repeat": {
    "interval": 10,
    "intervalType": "day",
    "action": "change_due_date",
    "monthDay": 1,
    "yearMonth": 1,
    "yearMonthDay": 1
  },
  "status": "cancelled",
  "customFields": [],
  "issueDate": "2019-04-12T16:26:55.594Z",
  "upcomingInvoiceDate": "2019-04-21T22:00:00.000Z",
  "invoices": [],
  "isAutoBilled": false,
  "createdAt": "2019-04-12T16:30:12.724Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:35:03.416Z"
}

DELETE Delete subscription

https://api.plutio.com/v1/invoice-subscriptions

On invoice subscription removal all invoices that are part of this subscription will be removed as well.

Field

Type

Description

_id

string

Invoice subscription ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/invoice-subscriptions"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"FomaMAYBLuuYeT9PQ"}'
          
Example response200 OK
Copy
{
  "_id": "FomaMAYBLuuYeT9PQ",
  "mainInvoiceId": "nMoHgEAFCMkZXXvT4",
  "title": "001",
  "amount": 237.6,
  "currency": "EUR",
  "clientId": "7uvJeXLgDw858widw",
  "repeat": {
    "interval": 10,
    "intervalType": "day",
    "action": "change_due_date",
    "monthDay": 1,
    "yearMonth": 1,
    "yearMonthDay": 1
  },
  "status": "cancelled",
  "customFields": [],
  "issueDate": "2019-04-12T16:26:55.594Z",
  "upcomingInvoiceDate": "2019-04-21T22:00:00.000Z",
  "invoices": [],
  "isAutoBilled": false,
  "createdAt": "2019-04-12T16:30:12.724Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:35:03.416Z"
}

Invoices

Field

Type

Description

amount

number

AmountDefault: 0

cancelledAt

date

Date invoice was cancelled

clientId

string

Client ID

currency

string

CurrencyDefault: USD

customFields

array

Custom fields list

customFields.$

Custom field

discount

string

Discount. Can be either in numeric format or percentage.

dueDate

date

Due date

dueDateTemplate

number

Due date relative time. Valid only in template invoices.

invoiceId

string

Invoice ID

isTemplate

boolean

Is templateDefault: false

issueDate

date

Issue date

issueDateTemplate

number

Issue date relative time. Valid only in template invoices.

items

array

Invoice items list

items.$

object

Item

items.$._id

string

ID

items.$.amount

number

AmountDefault: 0Min: 0

items.$.attachment

Attachment

items.$.description

string

DescriptionMax: 10000

items.$.discount

string

Discount. Can be either in numeric format or percentage.

items.$.isTask

boolean

Is task item connected to taskDefault: false

items.$.quantity

number

QuantityDefault: 1Min: 0

items.$.subTotal

number

Sub total. Auto calculatedMin: 0

items.$.taskId

string

Task ID attached to invoice item

items.$.tax

number

TaxDefault: 0

items.$.taxAmount

number

Tax amount. Auto calculated.

items.$.timeTracks

array

Timesheet

items.$.timeTracks.$

object

Tracked time entry

items.$.timeTracks.$._id

string

ID

items.$.timeTracks.$.amount

number

AmountMin: 0

items.$.timeTracks.$.isActive

boolean

Is active

items.$.timeTracks.$.rate

number

RateMin: 0

items.$.timeTracks.$.startedAt

date

Started at

items.$.timeTracks.$.stoppedAt

date

Stopped at

items.$.timeTracks.$.time

number

TimeMin: 0

items.$.title

string

TitleMax: 500

items.$.totalAmount

number

Total amount. Auto calculated.Default: 0

items.$.totalDiscount

number

Total discount. Auto calculated.

name

string

NameMin: 1Max: 256

nextRecurrenceDate

date

Next recurrence date

note

string

NoteMax: 10000

paidAt

date

Date invoice was paid

paidBy

string

Payee name

paymentId

string

Payment ID. Only if invoice was paid by 'paypal' or 'stripe'

paymentOptions

array

Payment options list

paymentOptions.$

string

Payment optionAllowed values: bank, bank ID from business collection, paypal, stripe

pendingAt

date

Date invoice was marked as pending

projectId

string

Project ID

proposalId

string

Proposal ID

recurringPayments

object

Recurring payments

recurringPayments.createdAt

date

Created at

recurringPayments.mainInvoiceId

string

Main invoice ID

recurringPayments.retries

array

Retries

recurringPayments.retries.$

object

Retries

recurringPayments.retries.$.createdAt

date

Created at

recurringPayments.retries.$.reason

string

Reason

recurringPayments.retriesCount

number

Retries count

recurringPayments.status

string

Status

reference

string

ReferenceMax: 256

repeat

Repeat. Only valid if 'type' is 'recurring_invoice' or 'recurring_billing'

status

string

StatusAllowed values: cancelled, draft, overdue, paid, pendingDefault: draft

subTotal

number

Sub total. Auto calculated.Default: 0

subscriptionId

string

Subscription ID

tax

array

Tax list

tax.$

object

Tax item

tax.$.amount

number

Amount

tax.$.title

string

TitleMax: 100

tax.$.value

number

Value

totalDiscount

number

Total discount. Auto calculated.Default: 0

type

string

TypeAllowed values: default, recurring_billing, recurring_invoiceDefault: default

viewedAt

date

Date invoice was viewed

POST Create invoice

https://api.plutio.com/v1/invoices
Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/invoices"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"clientId":"7uvJeXLgDw858widw","currency":"EUR","discount":"10%","items":[{"quantity":2,"amount":100},{"quantity":1,"amount":50,"discount":"30"}],"tax":[{"title":"Tax","value":20}]}'
          
Example response200 OK
Copy
{
  "clientId": "7uvJeXLgDw858widw",
  "currency": "EUR",
  "discount": "10%",
  "items": [
    {
      "quantity": 2,
      "amount": 100,
      "_id": "LuspA24ioy8ZeBTJo",
      "totalAmount": 200,
      "taxAmount": 0,
      "subTotal": 200,
      "totalDiscount": 0,
      "attachment": {},
      "tax": 0,
      "isTask": false
    },
    {
      "quantity": 1,
      "amount": 50,
      "discount": "30",
      "_id": "CvmJw3fbE6RiSoGPZ",
      "totalAmount": 20,
      "taxAmount": 0,
      "subTotal": 50,
      "totalDiscount": 30,
      "attachment": {},
      "tax": 0,
      "isTask": false
    }
  ],
  "tax": [
    {
      "title": "Tax",
      "value": 20,
      "amount": 44
    }
  ],
  "dueDate": "2019-05-12T16:26:55.593Z",
  "issueDate": "2019-04-12T16:26:55.594Z",
  "paymentOptions": [],
  "amount": 237.6,
  "subTotal": 220,
  "totalDiscount": 56.4,
  "invoiceId": "001",
  "_id": "nMoHgEAFCMkZXXvT4",
  "name": "001",
  "status": "draft",
  "customFields": [],
  "type": "default",
  "isTemplate": false,
  "createdAt": "2019-04-12T16:26:55.625Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get invoice

https://api.plutio.com/v1/invoices
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/invoices"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "nMoHgEAFCMkZXXvT4",
    "clientId": "7uvJeXLgDw858widw",
    "currency": "EUR",
    "discount": "10%",
    "items": [
      {
        "quantity": 2,
        "amount": 100,
        "_id": "LuspA24ioy8ZeBTJo",
        "totalAmount": 200,
        "taxAmount": 0,
        "subTotal": 200,
        "totalDiscount": 0,
        "attachment": {},
        "tax": 0,
        "isTask": false
      },
      {
        "quantity": 1,
        "amount": 50,
        "discount": "30",
        "_id": "CvmJw3fbE6RiSoGPZ",
        "totalAmount": 20,
        "taxAmount": 0,
        "subTotal": 50,
        "totalDiscount": 30,
        "attachment": {},
        "tax": 0,
        "isTask": false
      }
    ],
    "tax": [
      {
        "title": "Tax",
        "value": 20,
        "amount": 44
      }
    ],
    "dueDate": "2019-05-12T16:26:55.593Z",
    "issueDate": "2019-04-12T16:26:55.594Z",
    "paymentOptions": [],
    "amount": 237.6,
    "subTotal": 220,
    "totalDiscount": 56.4,
    "invoiceId": "001",
    "name": "001",
    "status": "draft",
    "customFields": [],
    "type": "default",
    "isTemplate": false,
    "createdAt": "2019-04-12T16:26:55.625Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update invoice

https://api.plutio.com/v1/invoices

Field

Type

Description

_id

string

Invoice ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/invoices"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"nMoHgEAFCMkZXXvT4","type":"recurring_invoice","repeat":{"interval":10,"intervalType":"day"},"status":"pending"}'
          
Example response200 OK
Copy
{
  "_id": "nMoHgEAFCMkZXXvT4",
  "clientId": "7uvJeXLgDw858widw",
  "currency": "EUR",
  "discount": "10%",
  "items": [
    {
      "quantity": 2,
      "amount": 100,
      "_id": "LuspA24ioy8ZeBTJo",
      "totalAmount": 200,
      "taxAmount": 0,
      "subTotal": 200,
      "totalDiscount": 0,
      "attachment": {},
      "tax": 0,
      "isTask": false
    },
    {
      "quantity": 1,
      "amount": 50,
      "discount": "30",
      "_id": "CvmJw3fbE6RiSoGPZ",
      "totalAmount": 20,
      "taxAmount": 0,
      "subTotal": 50,
      "totalDiscount": 30,
      "attachment": {},
      "tax": 0,
      "isTask": false
    }
  ],
  "tax": [
    {
      "title": "Tax",
      "value": 20,
      "amount": 44
    }
  ],
  "dueDate": "2019-05-12T16:26:55.593Z",
  "issueDate": "2019-04-12T16:26:55.594Z",
  "paymentOptions": [],
  "amount": 237.6,
  "subTotal": 220,
  "totalDiscount": 56.4,
  "invoiceId": "001",
  "name": "001",
  "status": "pending",
  "customFields": [],
  "type": "recurring_invoice",
  "isTemplate": false,
  "createdAt": "2019-04-12T16:26:55.625Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "nextRecurrenceDate": "2019-04-21T22:00:00.000Z",
  "pendingAt": "2019-04-12T16:30:12.710Z",
  "repeat": {
    "interval": 10,
    "intervalType": "day",
    "action": "change_due_date",
    "monthDay": 1,
    "yearMonth": 1,
    "yearMonthDay": 1
  },
  "subscriptionId": "FomaMAYBLuuYeT9PQ",
  "updatedAt": "2019-04-12T16:30:12.714Z"
}

DELETE Delete invoice

https://api.plutio.com/v1/invoices

Invoice that is part of a subscription cannot be removed.

Field

Type

Description

_id

string

Invoice ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/invoices"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"nMoHgEAFCMkZXXvT4"}'
          
Example response200 OK
Copy
{
  "_id": "nMoHgEAFCMkZXXvT4",
  "clientId": "7uvJeXLgDw858widw",
  "currency": "EUR",
  "discount": "10%",
  "items": [
    {
      "quantity": 2,
      "amount": 100,
      "_id": "LuspA24ioy8ZeBTJo",
      "totalAmount": 200,
      "taxAmount": 0,
      "subTotal": 200,
      "totalDiscount": 0,
      "attachment": {},
      "tax": 0,
      "isTask": false
    },
    {
      "quantity": 1,
      "amount": 50,
      "discount": "30",
      "_id": "CvmJw3fbE6RiSoGPZ",
      "totalAmount": 20,
      "taxAmount": 0,
      "subTotal": 50,
      "totalDiscount": 30,
      "attachment": {},
      "tax": 0,
      "isTask": false
    }
  ],
  "tax": [
    {
      "title": "Tax",
      "value": 20,
      "amount": 44
    }
  ],
  "dueDate": "2019-05-12T16:26:55.593Z",
  "issueDate": "2019-04-12T16:26:55.594Z",
  "paymentOptions": [],
  "amount": 237.6,
  "subTotal": 220,
  "totalDiscount": 56.4,
  "invoiceId": "001",
  "name": "001",
  "status": "pending",
  "customFields": [],
  "type": "recurring_invoice",
  "isTemplate": false,
  "createdAt": "2019-04-12T16:26:55.625Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "nextRecurrenceDate": "2019-04-21T22:00:00.000Z",
  "pendingAt": "2019-04-12T16:30:12.710Z",
  "repeat": {
    "interval": 10,
    "intervalType": "day",
    "action": "change_due_date",
    "monthDay": 1,
    "yearMonth": 1,
    "yearMonthDay": 1
  },
  "subscriptionId": "FomaMAYBLuuYeT9PQ",
  "updatedAt": "2019-04-12T16:30:12.714Z"
}

Items

Field

Type

Description

amount

number

AmountDefault: 0Min: 0

attachment

Attachment

description

string

DescriptionMax: 3000

discount

string

Discount.Can be either in numeric format or percentage.

isTemplate

boolean

Is templateDefault: false

quantity

number

QuantityDefault: 1Min: 0

subTotal

number

Sub total. Auto calculated.Min: 0

tax

number

TaxDefault: 0

taxAmount

number

Tax amount. Auto calculated.

title

string

TitleMax: 500

totalAmount

number

Total amount. Auto calculated.Default: 0

totalDiscount

number

Total discount. Auto calculated.

POST Create item

https://api.plutio.com/v1/items
Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/items"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"amount":10,"discount":"50%","title":"My item"}'
          
Example response200 OK
Copy
{
  "amount": 10,
  "discount": "50%",
  "title": "My item",
  "totalAmount": 5,
  "taxAmount": 0,
  "subTotal": 10,
  "totalDiscount": 5,
  "_id": "jWE3FCXMjsKywqnqr",
  "attachment": {},
  "quantity": 1,
  "tax": 0,
  "isTemplate": false,
  "createdAt": "2019-04-15T17:08:37.589Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get item

https://api.plutio.com/v1/items
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/items"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "jWE3FCXMjsKywqnqr",
    "amount": 10,
    "discount": "50%",
    "title": "My item",
    "totalAmount": 5,
    "taxAmount": 0,
    "subTotal": 10,
    "totalDiscount": 5,
    "attachment": {},
    "quantity": 1,
    "tax": 0,
    "isTemplate": false,
    "createdAt": "2019-04-15T17:08:37.589Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update item

https://api.plutio.com/v1/items

Field

Type

Description

_id

string

Item ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/items"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"jWE3FCXMjsKywqnqr","description":"Updated item description","tax":20}'
          
Example response200 OK
Copy
{
  "_id": "jWE3FCXMjsKywqnqr",
  "amount": 10,
  "discount": "50%",
  "title": "My item",
  "totalAmount": 6,
  "taxAmount": 1,
  "subTotal": 10,
  "totalDiscount": 5,
  "attachment": {},
  "quantity": 1,
  "tax": 20,
  "isTemplate": false,
  "createdAt": "2019-04-15T17:08:37.589Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "description": "Updated item description",
  "updatedAt": "2019-04-15T17:10:04.104Z"
}

DELETE Delete item

https://api.plutio.com/v1/items

Field

Type

Description

_id

string

Item ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/items"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
{
  "_id": "jWE3FCXMjsKywqnqr",
  "amount": 10,
  "discount": "50%",
  "title": "My item",
  "totalAmount": 6,
  "taxAmount": 1,
  "subTotal": 10,
  "totalDiscount": 5,
  "attachment": {},
  "quantity": 1,
  "tax": 20,
  "isTemplate": false,
  "createdAt": "2019-04-15T17:08:37.589Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "description": "Updated item description",
  "updatedAt": "2019-04-15T17:10:04.104Z"
}

Notes

Field

Type

Description

description

string

DescriptionMax: 5000

descriptionText

string

Description text

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: company, person

POST Create note

https://api.plutio.com/v1/notes

Field

Type

Description

description

string

DescriptionMax: 5000

entityId

string

Entity ID

entityType

string

Entity typeAllowed values: company, person

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/notes"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"entityType":"person","entityId":"7uvJeXLgDw858widw","description":"My note"}'
          
Example response200 OK
Copy
{
  "entityType": "person",
  "entityId": "7uvJeXLgDw858widw",
  "description": "My note",
  "_id": "MDRbLnNkSdRx43gnY",
  "descriptionText": "My note",
  "attachments": [],
  "createdAt": "2019-04-12T16:37:13.081Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get note

https://api.plutio.com/v1/notes
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/notes?entityType=person&entityId=7uvJeXLgDw858widw"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "MDRbLnNkSdRx43gnY",
    "entityType": "person",
    "entityId": "7uvJeXLgDw858widw",
    "description": "My note",
    "descriptionText": "My note",
    "attachments": [],
    "createdAt": "2019-04-12T16:37:13.081Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update note

https://api.plutio.com/v1/notes

Field

Type

Description

_id

string

Note ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/notes"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"MDRbLnNkSdRx43gnY","description":"Updated note"}'
          
Example response200 OK
Copy
{
  "_id": "MDRbLnNkSdRx43gnY",
  "entityType": "person",
  "entityId": "7uvJeXLgDw858widw",
  "description": "Updated note",
  "descriptionText": "Updated note",
  "attachments": [],
  "createdAt": "2019-04-12T16:37:13.081Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:41:56.361Z"
}

DELETE Delete note

https://api.plutio.com/v1/notes

Field

Type

Description

_id

string

Note ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/notes"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"MDRbLnNkSdRx43gnY"}'
          
Example response200 OK
Copy
{
  "_id": "MDRbLnNkSdRx43gnY",
  "entityType": "person",
  "entityId": "7uvJeXLgDw858widw",
  "description": "Updated note",
  "descriptionText": "Updated note",
  "attachments": [],
  "createdAt": "2019-04-12T16:37:13.081Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T16:41:56.361Z"
}

People

Field

Type

Description

address

Address

avatar

Avatar

badgeCounts

object

Badge counts (notification)

badgeCounts.conversation

array

ConversationDefault: []

badgeCounts.conversation.$

object

Conversation

badgeCounts.conversation.$._id

string

ID

badgeCounts.conversation.$.entityId

string

Entity ID

badgeCounts.conversation.$.entityType

string

Entity type

badgeCounts.conversation.$.group

string

Group

billingCustomFields

array

Billing custom fields list

billingCustomFields.$

object

Billing custom field

billingCustomFields.$.key

string

Key

billingCustomFields.$.value

string

Value

bio

string

BioMax: 2000

birthDay

date

Birth day

color

string

Color. Must be a valid hex string in format of #XXXXXX

companies

array

Companies list

companies.$

object

Company

companies.$._id

string

ID

companies.$.role

string

RoleMax: 256

contactEmails

array

Contact emails list

contactEmails.$

Contact emails

contactPhones

array

Contact phones list

contactPhones.$

Contact phone

customFields

array

Custom fields list

customFields.$

Custom fields

deletedAt

date

Deleted at

invitedBy

string

Person name who invited

isOnboarded

boolean

Is onboardedDefault: false

lastLogin

date

Last login

locale

object

Locale settings

locale.timezone

string

TimezoneDefault: Europe/London

name

object

Name

name.first

string

FirstMin: 1Max: 30

name.last

string

LastMax: 50

permissions

object

Permissions

preferences

object

Preferences

preferences.calendar

object

Calendar

preferences.calendar.google

object

Google

preferences.calendar.google.accessToken

string

Access token

preferences.calendar.google.calendars

array

Calendars

preferences.calendar.google.calendars.$

object

Calendars

preferences.calendar.google.calendars.$._id

string

ID

preferences.calendar.google.calendars.$.canWrite

boolean

Can writeDefault: false

preferences.calendar.google.calendars.$.color

string

Color

preferences.calendar.google.calendars.$.isActive

boolean

Is activeDefault: false

preferences.calendar.google.calendars.$.isPrimary

boolean

Is primaryDefault: false

preferences.calendar.google.calendars.$.title

string

Title

preferences.calendar.google.isActive

boolean

Is activeDefault: false

preferences.calendar.google.refreshToken

string

Refresh token

preferences.calendar.lastSyncedAt

date

Last synced at

preferences.closedGroups

object

Closed groups

preferences.closedGroups.task_board

array

Task board

preferences.closedGroups.task_board.$

string

Task board

preferences.filters

object

Filters

preferences.general

object

General

preferences.general.cssMode

string

Css modeAllowed values: dark, defaultDefault: default

preferences.general.isMenuCollapsed

boolean

Is menu collapsedDefault: false

preferences.notifications

object

Notifications

preferences.notifications.chat

object

Chat

preferences.notifications.chat.newDM

boolean

New dmDefault: true

preferences.notifications.conversation

object

Conversation

preferences.notifications.conversation.added_to_conversation

boolean

Added to conversationDefault: true

preferences.notifications.conversation.new_reply

boolean

New replyDefault: true

preferences.notifications.desktop_push_enabled

boolean

Desktop push enabledDefault: true

preferences.notifications.digest

object

Digest

preferences.notifications.digest.enabled

boolean

EnabledDefault: false

preferences.notifications.digest.time

number

TimeAllowed values: 0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 3, 4, 5, 6, 7, 8, 9Default: 10

preferences.notifications.email_enabled

boolean

Email enabledDefault: true

preferences.notifications.invoice

object

Invoice

preferences.notifications.invoice.paid

boolean

PaidDefault: true

preferences.notifications.mobile_push_enabled

boolean

Mobile push enabledDefault: true

preferences.notifications.project

object

Project

preferences.notifications.project.added_to_project

boolean

Added to projectDefault: true

preferences.notifications.project.new_file

boolean

New fileDefault: true

preferences.notifications.proposal

object

Proposal

preferences.notifications.proposal.signed

boolean

SignedDefault: true

preferences.notifications.reminders

boolean

RemindersDefault: true

preferences.notifications.send_email_when

string

Send email whenAllowed values: always, offlineDefault: offline

preferences.notifications.task

object

Task

preferences.notifications.task.assignedToMe

boolean

Assigned to meDefault: true

preferences.notifications.task.delegatedCompleted

boolean

Delegated completedDefault: true

preferences.notifications.task.newComment

boolean

New commentDefault: true

preferences.notifications.task.remindTime

number

Remind timeAllowed values: 0, 10, 120, 20, 30, 300, 5, 60Default: 5

preferences.notifications.web_push_enabled

boolean

Web push enabledDefault: true

preferences.openFilters

object

Open filters

preferences.views

object

Views

preferences.views.companies

string

CompaniesAllowed values: cards, cols, list, timelineDefault: list

preferences.views.invoice_subscriptions

string

Invoice subscriptionsAllowed values: cards, cols, list, timelineDefault: list

preferences.views.invoices

string

InvoicesAllowed values: cards, cols, list, timelineDefault: list

preferences.views.main_tasks

string

Main tasksAllowed values: cards, cols, list, timelineDefault: list

preferences.views.people

string

PeopleAllowed values: cards, cols, list, timelineDefault: cards

preferences.views.projects

string

ProjectsAllowed values: cards, cols, list, timelineDefault: cards

preferences.views.proposals

string

ProposalsAllowed values: cards, cols, list, timelineDefault: list

preferences.views.tasks

string

TasksAllowed values: cards, cols, list, timelineDefault: cols

rate

number

RateDefault: 0Min: 0

role

string

Role

status

string

StatusAllowed values: active, archived, deleted, inactive, pending

timeZone.dateFormat

string

Date formatAllowed values: DD-MM-YY, DD-MM-YYYY, DD.MM.YYYY, DD/MM/YY, DD/MM/YYYY, MM-DD-YYYY, MM/DD/YYYY, YYYY-MM-DD, YYYY/MM/DDDefault: DD/MM/YYYY

timeZone.timeFormat

string

Time formatAllowed values: HH:mm, h:mm A, hh:mm ADefault: h:mm A

timeZone.weekStartDay

string

Week start dayAllowed values: friday, monday, saturday, sunday, thursday, tuesday, wednesdayDefault: monday

unusedInvitationSentAt

date

Date the invitation was sent at

unusedInvitationSentTo

string

Email the invitation was sent to

userId

string

User ID

websiteLinks

array

Website links list

websiteLinks.$

object

Website links

websiteLinks.$.title

string

TitleMax: 256

websiteLinks.$.type

string

Type. Inserted based on provided URL.Allowed values: behance, dribbble, facebook, github, instagram, linkedin, pinterest, twitter, vimeo, website, youtube

websiteLinks.$.url

string

Url

POST Create person

https://api.plutio.com/v1/people

Field

Type

Description

name

object

Name

name.first

string

FirstMin: 1Max: 30

role

string

Role

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/people"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"name":{"first":"Test","last":"Client"},"role":"client","websiteLinks":[{"title":"Personal","url":"https://example.com"}],"color":"#ff0000"}'
          
Example response200 OK
Copy
{
  "name": {
    "first": "Test",
    "last": "Client"
  },
  "role": "client",
  "websiteLinks": [
    {
      "title": "Personal",
      "url": "https://example.com",
      "type": "website"
    }
  ],
  "color": "#ff0000",
  "status": "inactive",
  "_id": "7uvJeXLgDw858widw",
  "preferences": {
    "views": {
      "projects": "cards",
      "tasks": "cols",
      "people": "cards",
      "invoices": "list",
      "invoice_subscriptions": "list",
      "main_tasks": "list",
      "proposals": "list",
      "companies": "list"
    },
    "openFilters": {},
    "notifications": {
      "web_push_enabled": true,
      "desktop_push_enabled": true,
      "mobile_push_enabled": true,
      "email_enabled": true,
      "send_email_when": "offline",
      "reminders": true,
      "chat": {
        "newDM": true
      },
      "project": {
        "added_to_project": true,
        "new_file": true
      },
      "conversation": {
        "added_to_conversation": true,
        "new_reply": true
      },
      "task": {
        "newComment": true,
        "assignedToMe": true,
        "delegatedCompleted": true,
        "remindTime": 5
      },
      "digest": {
        "enabled": false,
        "time": 10
      },
      "invoice": {
        "paid": true
      },
      "proposal": {
        "signed": true
      }
    },
    "filters": {},
    "closedGroups": {
      "task_board": []
    },
    "general": {
      "cssMode": "default",
      "isMenuCollapsed": false
    },
    "calendar": {
      "google": {
        "isActive": false
      }
    }
  },
  "customFields": [],
  "avatar": {},
  "contactEmails": [],
  "locale": {
    "timezone": "Europe/London",
    "weekStartDay": "monday",
    "dateFormat": "DD/MM/YYYY",
    "timeFormat": "h:mm A"
  },
  "contactPhones": [],
  "address": {},
  "authenticationLog": [],
  "rate": 0,
  "isOnboarded": false,
  "companies": [],
  "billingCustomFields": [],
  "badgeCounts": {
    "notification": 0,
    "conversation": []
  },
  "createdAt": "2019-04-12T14:15:59.978Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get person

https://api.plutio.com/v1/people
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/people"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "7uvJeXLgDw858widw",
    "name": {
      "first": "Test",
      "last": "Client"
    },
    "role": "client",
    "websiteLinks": [
      {
        "title": "Personal",
        "url": "https://example.com",
        "type": "website"
      }
    ],
    "color": "#ff0000",
    "status": "inactive",
    "customFields": [],
    "avatar": {},
    "contactEmails": [],
    "locale": {
      "timezone": "Europe/London",
      "weekStartDay": "monday",
      "dateFormat": "DD/MM/YYYY",
      "timeFormat": "h:mm A"
    },
    "contactPhones": [],
    "address": {},
    "rate": 0,
    "isOnboarded": false,
    "companies": [],
    "billingCustomFields": [],
    "badgeCounts": {
      "notification": 0,
      "conversation": []
    },
    "createdAt": "2019-04-12T14:15:59.978Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  },
  {
    "_id": "5yTXLcrYN5Qw6RLu9",
    "userId": "2f8tBzYPTLZLSTJrZ",
    "name": {
      "first": "First",
      "last": "Name"
    },
    "locale": {
      "timezone": "Europe/Madrid",
      "weekStartDay": "monday",
      "dateFormat": "DD/MM/YYYY",
      "timeFormat": "h:mm A"
    },
    "contactEmails": [
      {
        "address": "email@example.com",
        "type": "email"
      }
    ],
    "businessId": "BEdDkLLS2ZDuSAZhZ",
    "role": "owner",
    "status": "active",
    "customFields": [],
    "avatar": {},
    "contactPhones": [],
    "address": {},
    "websiteLinks": [],
    "rate": 0,
    "isOnboarded": true,
    "companies": [],
    "billingCustomFields": [],
    "badgeCounts": {
      "notification": 0,
      "conversation": []
    },
    "createdAt": "2019-04-12T11:19:38.919Z",
    "lastLogin": "2019-04-12T13:48:49.666Z",
    "updatedAt": "2019-04-12T13:48:49.673Z"
  }
]

PUT Update person

https://api.plutio.com/v1/people

Field

Type

Description

_id

string

Person ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/people"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"7uvJeXLgDw858widw","contactEmails":[{"address":"client@example.com"}],"color":"#ffffff","bio":"Best client :)"}'
          
Example response200 OK
Copy
{
  "_id": "7uvJeXLgDw858widw",
  "name": {
    "first": "Test",
    "last": "Client"
  },
  "role": "client",
  "websiteLinks": [
    {
      "title": "Personal",
      "url": "https://example.com",
      "type": "website"
    }
  ],
  "color": "#ffffff",
  "status": "inactive",
  "preferences": {
    "views": {
      "projects": "cards",
      "tasks": "cols",
      "people": "cards",
      "invoices": "list",
      "invoice_subscriptions": "list",
      "main_tasks": "list",
      "proposals": "list",
      "companies": "list"
    },
    "openFilters": {},
    "notifications": {
      "web_push_enabled": true,
      "desktop_push_enabled": true,
      "mobile_push_enabled": true,
      "email_enabled": true,
      "send_email_when": "offline",
      "reminders": true,
      "chat": {
        "newDM": true
      },
      "project": {
        "added_to_project": true,
        "new_file": true
      },
      "conversation": {
        "added_to_conversation": true,
        "new_reply": true
      },
      "task": {
        "newComment": true,
        "assignedToMe": true,
        "delegatedCompleted": true,
        "remindTime": 5
      },
      "digest": {
        "enabled": false,
        "time": 10
      },
      "invoice": {
        "paid": true
      },
      "proposal": {
        "signed": true
      }
    },
    "filters": {},
    "closedGroups": {
      "task_board": []
    },
    "general": {
      "cssMode": "default",
      "isMenuCollapsed": false
    },
    "calendar": {
      "google": {
        "isActive": false
      }
    }
  },
  "customFields": [],
  "avatar": {},
  "contactEmails": [
    {
      "address": "client@example.com",
      "type": "email"
    }
  ],
  "locale": {
    "timezone": "Europe/London",
    "weekStartDay": "monday",
    "dateFormat": "DD/MM/YYYY",
    "timeFormat": "h:mm A"
  },
  "contactPhones": [],
  "address": {},
  "authenticationLog": [],
  "rate": 0,
  "isOnboarded": false,
  "companies": [],
  "billingCustomFields": [],
  "badgeCounts": {
    "notification": 0,
    "conversation": []
  },
  "createdAt": "2019-04-12T14:15:59.978Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "bio": "Best client :)",
  "updatedAt": "2019-04-12T14:19:18.627Z"
}

DELETE Delete/archive person

https://api.plutio.com/v1/people

On person removal, he/she will be unassigned from all tasks, projects, invoices, proposals. However we still keep data such as comments made by removed person along with persons first and last name.

Field

Type

Description

_id

string

Person ID

status

string

If status is 'deleted', person wil be removed, else it will be marked as inactive

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/people"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"client_id":"YOUR_CLIENT_ID"}'
          

Profiles

Field

Type

Description

address

Address

avatar

Avatar

birthDay

date

Birth day

contactEmails

array

Contact emails list

contactEmails.$

Contact email

contactPhones

array

Contact phones list

contactPhones.$

Contact phone

customData

array

Custom data list

customData.$

object

Custom data item

customData.$.key

string

KeyMin: 1Max: 200

customData.$.value

number

Value

customData.$.value.$

number

Value

locale

object

Locale settings

locale.timezone

string

Timezone

name

object

Name

name.first

string

FirstMin: 1Max: 30

name.last

string

LastMax: 50

uniqueId

string

Unique IDMin: 1Max: 100

GET Get profile

https://api.plutio.com/v1/profiles
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/profiles"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "YaYWXwFg5HoApELLQ",
    "businessId": "BEdDkLLS2ZDuSAZhZ",
    "uniqueId": "test@example.com",
    "address": {
      "country": "ES"
    },
    "avatar": {},
    "contactEmails": [
      {
        "address": "email@example.com",
        "type": "email"
      }
    ],
    "contactPhones": [],
    "createdAt": "2019-04-12T16:58:14.082Z",
    "customData": [
      {
        "key": "memberSince",
        "value": "2019-04-12T17:02:24.584Z"
      },
      {
        "key": "plans",
        "value": [
          "Solo",
          "Team"
        ]
      }
    ],
    "locale": {
      "timezone": "Europe/Madrid"
    },
    "name": {
      "first": "First",
      "last": "Name"
    },
    "updatedAt": "2019-04-12T17:02:35.672Z"
  }
]

Projects

Field

Type

Description

color

string

Color. Must be a valid hex string in format of #XXXXXX

contributors

array

Contributors list

contributors.$

string

Person ID

currency

string

Currency

customFields

array

Custom fields list

customFields.$

Custom fields

description

string

DescriptionMax: 30000

descriptionText

string

Description text

dueDate

date

Due date

dueDateTemplate

number

Due date relative value. In templates only.

index

number

IndexDefault: 0Min: 0

isTemplate

boolean

Is templateDefault: false

name

string

NameMin: 2Max: 256

rate

number

RateMin: 0

shareSettings

object

Share settings

shareSettings.isShared

boolean

Is sharedDefault: false

shareSettings.sharedBoards

array

Shared boards list

shareSettings.sharedBoards.$

string

Shared board ID

shareSettings.url

string

UrlMin: 2Max: 50

startDate

date

Start date

startDateTemplate

number

Start date relative value. In templates only.

status

object

Status

status._id

string

ID

status.color

string

Color

status.title

string

TitleMax: 256

status.type

string

TypeAllowed values: active, completed

taskBoards

array

Task boards list

taskBoards.$

string

Task board ID

taskCounts

object

Task counts list

taskCounts.$

object

Task counts

taskCounts.$.all

number

AllMin: 0

taskCounts.$.completed

number

CompletedMin: 0

taskCounts.$.overdue

number

OverdueMin: 0

POST Create project

https://api.plutio.com/v1/projects

Field

Type

Description

name

string

NameMin: 2Max: 256

templateId

string

Template ID which the project should be created based on.Optional: true

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/projects"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"name":"My project","customFields":[{"_id":"","value":["Custom field text"]}]}'
          
Example response200 OK
Copy
{
  "_id": "8PDKKQGPXq6oEKXW5",
  "name": "My project",
  "customFields": [
    {
      "_id": "",
      "value": [
        "Custom field text"
      ]
    }
  ],
  "status": {
    "_id": "Myu5p7rpEr3mBaQmr",
    "title": "New",
    "color": "#3285fa",
    "type": "active"
  },
  "contributors": [
    "5yTXLcrYN5Qw6RLu9"
  ],
  "currency": "GBP",
  "taskBoards": [
    "zjkvvkQu7z53dPK2B"
  ],
  "index": 0,
  "shareSettings": {
    "isShared": false,
    "sharedBoards": []
  },
  "isTemplate": false,
  "taskCounts": {
    "5yTXLcrYN5Qw6RLu9": {
      "all": 0,
      "overdue": 0,
      "completed": 0
    }
  },
  "createdAt": "2019-04-12T15:22:13.759Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:22:13.815Z"
}

GET Get project

https://api.plutio.com/v1/projects
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/projects"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"client_id":"YOUR_CLIENT_ID"}'
          
Example response200 OK
Copy
[
  {
    "_id": "8PDKKQGPXq6oEKXW5",
    "name": "My project",
    "customFields": [
      {
        "_id": "",
        "value": [
          "Custom field text"
        ]
      }
    ],
    "status": {
      "_id": "Myu5p7rpEr3mBaQmr",
      "title": "New",
      "color": "#3285fa",
      "type": "active"
    },
    "contributors": [
      "5yTXLcrYN5Qw6RLu9"
    ],
    "currency": "GBP",
    "taskBoards": [
      "zjkvvkQu7z53dPK2B"
    ],
    "index": 0,
    "shareSettings": {
      "isShared": false,
      "sharedBoards": []
    },
    "isTemplate": false,
    "taskCounts": {
      "5yTXLcrYN5Qw6RLu9": {
        "all": 0,
        "overdue": 0,
        "completed": 0
      }
    },
    "createdAt": "2019-04-12T15:22:13.759Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ",
    "updatedAt": "2019-04-12T15:22:13.815Z"
  }
]

PUT Update project

https://api.plutio.com/v1/projects

Field

Type

Description

_id

string

Project ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/projects"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"8PDKKQGPXq6oEKXW5","contributors":["7uvJeXLgDw858widw"]}'
          
Example response200 OK
Copy
{
  "_id": "8PDKKQGPXq6oEKXW5",
  "name": "My project",
  "customFields": [
    {
      "_id": "",
      "value": [
        "Custom field text"
      ]
    }
  ],
  "status": {
    "_id": "Myu5p7rpEr3mBaQmr",
    "title": "New",
    "color": "#3285fa",
    "type": "active"
  },
  "contributors": [
    "5yTXLcrYN5Qw6RLu9",
    "7uvJeXLgDw858widw"
  ],
  "currency": "GBP",
  "taskBoards": [
    "zjkvvkQu7z53dPK2B"
  ],
  "index": 0,
  "shareSettings": {
    "isShared": false,
    "sharedBoards": []
  },
  "isTemplate": false,
  "taskCounts": {
    "5yTXLcrYN5Qw6RLu9": {
      "all": 0,
      "overdue": 0,
      "completed": 0
    }
  },
  "createdAt": "2019-04-12T15:22:13.759Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:25:50.599Z"
}

POST Copy project

https://api.plutio.com/v1/projects/copy

Field

Type

Description

_id

string

Project ID

index

number

IndexDefault: 0Min: 0

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/projects/copy"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"8PDKKQGPXq6oEKXW5","index":1}'
          
Example response200 OK
Copy
{
  "_id": "YRq5YJsLbSia7TxBq",
  "name": "My project",
  "customFields": [
    {
      "_id": "",
      "value": [
        "Custom field text"
      ]
    }
  ],
  "status": {
    "_id": "Myu5p7rpEr3mBaQmr",
    "title": "New",
    "color": "#3285fa",
    "type": "active"
  },
  "contributors": [
    "5yTXLcrYN5Qw6RLu9",
    "7uvJeXLgDw858widw"
  ],
  "currency": "GBP",
  "taskBoards": [
    "YiDqk5Zrt5gANBKyK"
  ],
  "index": 2,
  "shareSettings": {
    "isShared": false,
    "sharedBoards": []
  },
  "createdAt": "2019-04-12T15:35:13.322Z",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:35:13.359Z",
  "isTemplate": false,
  "createdBy": "5yTXLcrYN5Qw6RLu9"
}

POST Move project

https://api.plutio.com/v1/projects/move

Field

Type

Description

_id

string

Project ID

index

number

New index

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/projects/move"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"8PDKKQGPXq6oEKXW5","index":"1"}'
          

DELETE Delete project

https://api.plutio.com/v1/projects

On project removal, all project conversations, task boards, task groups, tasks and files will be removed as well.

Field

Type

Description

_id

string

Project ID

Example request
Copy
curl --location --request DELETE "https://api.plutio.com/v1/projects"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"YRq5YJsLbSia7TxBq"}'
          
Example response200 OK
Copy
{
  "_id": "YRq5YJsLbSia7TxBq",
  "name": "My project",
  "customFields": [
    {
      "_id": "",
      "value": [
        "Custom field text"
      ]
    }
  ],
  "status": {
    "_id": "Myu5p7rpEr3mBaQmr",
    "title": "New",
    "color": "#3285fa",
    "type": "active"
  },
  "contributors": [
    "5yTXLcrYN5Qw6RLu9",
    "7uvJeXLgDw858widw"
  ],
  "currency": "GBP",
  "taskBoards": [
    "YiDqk5Zrt5gANBKyK"
  ],
  "index": 0,
  "shareSettings": {
    "isShared": false,
    "sharedBoards": []
  },
  "createdAt": "2019-04-12T15:35:13.322Z",
  "businessId": "BEdDkLLS2ZDuSAZhZ",
  "updatedAt": "2019-04-12T15:35:13.359Z",
  "isTemplate": false,
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "taskCounts": {
    "5yTXLcrYN5Qw6RLu9": {
      "all": 0,
      "overdue": 0,
      "completed": 0
    }
  }
}

Proposals

Field

Type

Description

amount

number

AmountDefault: 0

approvedAt

date

Approved at

autoInvoice

boolean

Create auto invoice when proposal is signedDefault: false

autoInvoiceId

string

Auto invoice ID

autoProject

boolean

Create auto project when proposal is signedDefault: false

blocks

array

Blocks list

blocks.$

object

Block

blocks.$._id

string

ID

blocks.$.attachment

Attachment

blocks.$.items

array

Items. Only if 'type' is 'items', 'packages' or 'fees'

blocks.$.items.$

object

Item

blocks.$.items.$._id

string

ID

blocks.$.items.$.amount

number

AmountDefault: 0Min: 0

blocks.$.items.$.attachment

Attachment

blocks.$.items.$.description

string

DescriptionMax: 10000

blocks.$.items.$.discount

string

Discount. Can be either a numeric value or a percentage.

blocks.$.items.$.isActive

boolean

Is activeDefault: true

blocks.$.items.$.isReadOnly

boolean

Is read onlyDefault: false

blocks.$.items.$.quantity

number

QuantityDefault: 1Min: 0

blocks.$.items.$.subTotal

number

Sub total. Auto calculatedMin: 0

blocks.$.items.$.tax

number

TaxDefault: 0

blocks.$.items.$.taxAmount

number

Tax amount. Auto calculated.

blocks.$.items.$.title

string

TitleMax: 500

blocks.$.items.$.totalAmount

number

Total amount. Auto calculated.Default: 0

blocks.$.items.$.totalDiscount

number

Total discount. Auto calculated.

blocks.$.rows

array

Rows list. Only if 'type' is 'table'

blocks.$.rows.$

array

Rows

blocks.$.rows.$.$

string

Rows

blocks.$.title

string

Title

blocks.$.type

string

TypeAllowed values: content, fees, html, image, intro, items, packages, table, video

blocks.$.value

string

Value

cancelledAt

date

Cancelled at

clientId

string

Client ID

contractBlocks

array

Contract blocks list

contractBlocks.$

object

Contract block

contractBlocks.$._id

string

ID

contractBlocks.$.attachment

Attachment

contractBlocks.$.rows

array

Rows list. Only if 'type' is 'table'

contractBlocks.$.rows.$

array

Row

contractBlocks.$.rows.$.$

string

Rows

contractBlocks.$.title

string

Title

contractBlocks.$.type

string

TypeAllowed values: content, html, image, intro, table, video

contractBlocks.$.value

string

Value

contractSignature

object

Contract signature

contractSignature.name

string

NameMin: 5

contractSignature.signature

string

Signature

contractSignature.signedAt

date

Signed at

currency

string

Currency

customFields

array

Custom fields list

customFields.$

Custom field

deposit

number

Invoice deposit, percentageMin: 0Max: 100

discount

string

Discount. Can be either a numeric value or a percentage

dueDate

date

Due date

dueDateTemplate

number

Due date template

hasContract

boolean

Has contract

isAutoInvoicePaid

boolean

Is auto invoice paid

isTemplate

boolean

Is templateDefault: false

issueDate

date

Issue date

issueDateTemplate

number

Issue date template

name

string

NameMin: 1Max: 256

pendingAt

date

Pending at

projectId

string

Project ID

projectTemplateId

string

Project template ID

proposalId

string

Proposal ID

signature

object

Signature

signature.name

string

NameMin: 5

signature.signature

string

Signature

signature.signedAt

date

Signed at

status

string

StatusAllowed values: approved, cancelled, draft, overdue, pendingDefault: draft

subTotal

number

Sub total. Auto calculated.Default: 0

tax

array

Tax

tax.$

object

Tax list

tax.$.amount

number

Amount

tax.$.title

string

TitleMax: 100

tax.$.value

number

Value

POST Create proposal

https://api.plutio.com/v1/proposals

Field

Type

Description

name

string

NameMin: 1Max: 256

Example request
Copy
curl --location --request POST "https://api.plutio.com/v1/proposals"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"blocks":[{"type":"intro"},{"type":"content","value":"My content"},{"type":"table","title":"Simple table","rows":[["Key","Value"],["Key2","Value2"]]},{"type":"items","title":"Items","items":[{"quantity":1,"amount":50,"isActive":true,"isReadOnly":false,"title":"Item"}]},{"type":"packages","title":"Packages","items":[{"isActive":false,"totalAmount":25,"taxAmount":9,"quantity":10,"amount":5,"isReadOnly":false,"title":"Package","description":"Description","discount":"50%"}]},{"type":"html","value":"<html>\n  <head>\n    Title\n  </head>\n  <body>\n    <p>Hello</p>\n  </body>\n</html>"},{"type":"fees"}],"name":"My proposal","status":"draft"}'
          
Example response200 OK
Copy
{
  "currency": "GBP",
  "tax": [
    {}
  ],
  "blocks": [
    {
      "type": "intro",
      "_id": "HQDHvZmviwFwmFyiP",
      "items": [],
      "attachment": {},
      "rows": []
    },
    {
      "type": "content",
      "value": "My content",
      "_id": "f96ca63ACHwxRPYKu",
      "items": [],
      "attachment": {},
      "rows": []
    },
    {
      "type": "table",
      "title": "Simple table",
      "rows": [
        [
          "Key",
          "Value"
        ],
        [
          "Key2",
          "Value2"
        ]
      ],
      "_id": "rjqGk4FvdzBrHvAgR",
      "items": [],
      "attachment": {}
    },
    {
      "type": "items",
      "title": "Items",
      "items": [
        {
          "quantity": 1,
          "amount": 50,
          "isActive": true,
          "isReadOnly": false,
          "title": "Item",
          "_id": "HdySeJFoo6zzNBE2h",
          "totalAmount": 50,
          "taxAmount": 0,
          "subTotal": 50,
          "totalDiscount": 0,
          "attachment": {},
          "tax": 0
        }
      ],
      "_id": "fmvxD8SSwffLzpxxS",
      "attachment": {},
      "rows": []
    },
    {
      "type": "packages",
      "title": "Packages",
      "items": [
        {
          "isActive": false,
          "totalAmount": 25,
          "taxAmount": 0,
          "quantity": 10,
          "amount": 5,
          "isReadOnly": false,
          "title": "Package",
          "description": "Description",
          "discount": "50%",
          "_id": "CL7Xf82zNKiEwqFKM",
          "subTotal": 50,
          "totalDiscount": -20,
          "attachment": {},
          "tax": 0
        }
      ],
      "_id": "wc8LoQsEg6cZAysZp",
      "attachment": {},
      "rows": []
    },
    {
      "type": "html",
      "value": "<html>\n  <head>\n    Title\n  </head>\n  <body>\n    <p>Hello</p>\n  </body>\n</html>",
      "_id": "kmACAMM5zaXS6d2rP",
      "items": [],
      "attachment": {},
      "rows": []
    },
    {
      "type": "fees",
      "_id": "hp9fsPjd5vouKfunq",
      "items": [
        {
          "quantity": 1,
          "amount": 50,
          "isActive": true,
          "isReadOnly": true,
          "title": "Item",
          "_id": "HdySeJFoo6zzNBE2h",
          "totalAmount": 50,
          "taxAmount": 0,
          "subTotal": 50,
          "totalDiscount": 0,
          "attachment": {},
          "tax": 0
        }
      ],
      "attachment": {},
      "rows": []
    }
  ],
  "name": "My proposal",
  "status": "draft",
  "contractBlocks": [
    {
      "type": "content",
      "value": null,
      "_id": "2i6KRbNqShJij9nHS",
      "items": [],
      "attachment": {},
      "rows": []
    }
  ],
  "issueDate": "2019-04-12T17:12:31.257Z",
  "dueDate": "2019-05-12T17:12:31.257Z",
  "hasContract": false,
  "signature": null,
  "contractSignature": null,
  "subTotal": 50,
  "amount": 50,
  "proposalId": "002",
  "_id": "53FzENNkhn4AG6DyK",
  "isTemplate": false,
  "customFields": [],
  "autoProject": false,
  "autoInvoice": false,
  "createdAt": "2019-04-12T17:12:31.275Z",
  "createdBy": "5yTXLcrYN5Qw6RLu9",
  "businessId": "BEdDkLLS2ZDuSAZhZ"
}

GET Get proposal

https://api.plutio.com/v1/proposals
Example request
Copy
curl --location --request GET "https://api.plutio.com/v1/proposals"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data ''
          
Example response200 OK
Copy
[
  {
    "_id": "A58xxP4q6vSw6FhZh",
    "currency": "GBP",
    "tax": [
      {
        "amount": 0
      }
    ],
    "blocks": [
      {
        "type": "intro",
        "attachment": {},
        "_id": "fum8CxGJAeAvaMmNG",
        "items": [],
        "rows": []
      },
      {
        "type": "content",
        "value": "{\"blocks\":[{\"key\":\"dieck\",\"text\":\"Content\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[],\"data\":{}}],\"entityMap\":{}}",
        "_id": "fECmSTGbNDy4j5XW2",
        "items": [],
        "attachment": {},
        "rows": []
      },
      {
        "type": "table",
        "title": "Simple table",
        "rows": [
          [
            "Key",
            "Value"
          ],
          [
            "Key2",
            "Value2"
          ],
          [
            "",
            ""
          ]
        ],
        "_id": "Lbyx9m5Y7pdfxkyXB",
        "items": [],
        "attachment": {}
      },
      {
        "type": "items",
        "title": "Items",
        "items": [
          {
            "_id": "mT35NL5ZSBRGGfvMv",
            "totalAmount": 50,
            "taxAmount": 0,
            "subTotal": 50,
            "totalDiscount": 0,
            "attachment": {},
            "quantity": 1,
            "tax": 0,
            "amount": 50,
            "isActive": true,
            "isReadOnly": false,
            "title": "Item"
          }
        ],
        "_id": "nzEZtvtgxBL8srora",
        "attachment": {}
      },
      {
        "type": "packages",
        "title": "Packages",
        "items": [
          {
            "_id": "moPJ93itWvotXXnD6",
            "isActive": false,
            "totalAmount": 25,
            "taxAmount": 0,
            "subTotal": 50,
            "totalDiscount": -20,
            "attachment": {},
            "quantity": 10,
            "tax": 0,
            "amount": 5,
            "isReadOnly": false,
            "title": "Package",
            "description": "Description",
            "discount": "50%"
          }
        ],
        "_id": "mEs9y9ssK7M9KtG2G",
        "attachment": {}
      },
      {
        "type": "html",
        "value": "<html>\n  <head>\n    Title\n  </head>\n  <body>\n    <p>Hello</p>\n  </body>\n</html>",
        "_id": "tBynxk7NZ8oEMBESe",
        "items": [],
        "attachment": {}
      },
      {
        "type": "fees",
        "_id": "WZDuQa7Jo5guj5sWD",
        "items": [
          {
            "_id": "mT35NL5ZSBRGGfvMv",
            "totalAmount": 50,
            "taxAmount": 0,
            "subTotal": 50,
            "totalDiscount": 0,
            "attachment": {},
            "quantity": 1,
            "tax": 0,
            "amount": 50,
            "isActive": true,
            "isReadOnly": true,
            "title": "Item"
          }
        ],
        "attachment": {},
        "rows": []
      }
    ],
    "contractBlocks": [
      {
        "type": "content",
        "value": null,
        "_id": "8ZCdqm3GFi5qaRa3P",
        "items": [],
        "attachment": {},
        "rows": []
      }
    ],
    "issueDate": "2019-04-12T17:06:13.694Z",
    "dueDate": "2019-05-12T17:06:13.694Z",
    "hasContract": false,
    "subTotal": 50,
    "amount": 50,
    "proposalId": "001",
    "name": "001",
    "status": "draft",
    "isTemplate": false,
    "customFields": [],
    "autoProject": false,
    "autoInvoice": false,
    "createdAt": "2019-04-12T17:06:13.706Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ",
    "updatedAt": "2019-04-12T17:07:58.765Z"
  },
  {
    "_id": "53FzENNkhn4AG6DyK",
    "currency": "GBP",
    "tax": [
      {}
    ],
    "blocks": [
      {
        "type": "intro",
        "_id": "HQDHvZmviwFwmFyiP",
        "items": [],
        "attachment": {},
        "rows": []
      },
      {
        "type": "content",
        "value": "My content",
        "_id": "f96ca63ACHwxRPYKu",
        "items": [],
        "attachment": {},
        "rows": []
      },
      {
        "type": "table",
        "title": "Simple table",
        "rows": [
          [
            "Key",
            "Value"
          ],
          [
            "Key2",
            "Value2"
          ]
        ],
        "_id": "rjqGk4FvdzBrHvAgR",
        "items": [],
        "attachment": {}
      },
      {
        "type": "items",
        "title": "Items",
        "items": [
          {
            "quantity": 1,
            "amount": 50,
            "isActive": true,
            "isReadOnly": false,
            "title": "Item",
            "_id": "HdySeJFoo6zzNBE2h",
            "totalAmount": 50,
            "taxAmount": 0,
            "subTotal": 50,
            "totalDiscount": 0,
            "attachment": {},
            "tax": 0
          }
        ],
        "_id": "fmvxD8SSwffLzpxxS",
        "attachment": {},
        "rows": []
      },
      {
        "type": "packages",
        "title": "Packages",
        "items": [
          {
            "isActive": false,
            "totalAmount": 25,
            "taxAmount": 0,
            "quantity": 10,
            "amount": 5,
            "isReadOnly": false,
            "title": "Package",
            "description": "Description",
            "discount": "50%",
            "_id": "CL7Xf82zNKiEwqFKM",
            "subTotal": 50,
            "totalDiscount": -20,
            "attachment": {},
            "tax": 0
          }
        ],
        "_id": "wc8LoQsEg6cZAysZp",
        "attachment": {},
        "rows": []
      },
      {
        "type": "html",
        "value": "<html>\n  <head>\n    Title\n  </head>\n  <body>\n    <p>Hello</p>\n  </body>\n</html>",
        "_id": "kmACAMM5zaXS6d2rP",
        "items": [],
        "attachment": {},
        "rows": []
      },
      {
        "type": "fees",
        "_id": "hp9fsPjd5vouKfunq",
        "items": [
          {
            "quantity": 1,
            "amount": 50,
            "isActive": true,
            "isReadOnly": true,
            "title": "Item",
            "_id": "HdySeJFoo6zzNBE2h",
            "totalAmount": 50,
            "taxAmount": 0,
            "subTotal": 50,
            "totalDiscount": 0,
            "attachment": {},
            "tax": 0
          }
        ],
        "attachment": {},
        "rows": []
      }
    ],
    "name": "My proposal",
    "status": "draft",
    "contractBlocks": [
      {
        "type": "content",
        "value": null,
        "_id": "2i6KRbNqShJij9nHS",
        "items": [],
        "attachment": {},
        "rows": []
      }
    ],
    "issueDate": "2019-04-12T17:12:31.257Z",
    "dueDate": "2019-05-12T17:12:31.257Z",
    "hasContract": false,
    "signature": null,
    "contractSignature": null,
    "subTotal": 50,
    "amount": 50,
    "proposalId": "002",
    "isTemplate": false,
    "customFields": [],
    "autoProject": false,
    "autoInvoice": false,
    "createdAt": "2019-04-12T17:12:31.275Z",
    "createdBy": "5yTXLcrYN5Qw6RLu9",
    "businessId": "BEdDkLLS2ZDuSAZhZ"
  }
]

PUT Update proposal

https://api.plutio.com/v1/proposals

Field

Type

Description

_id

string

Proposal ID

Example request
Copy
curl --location --request PUT "https://api.plutio.com/v1/proposals"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--header "Content-Type: application/json"
--header "Business: YOUR_PLUTIO_SUBDOMAIN"
--data '{"_id":"A58xxP4q6vSw6FhZh","currency":"EUR","tax":[{"title":"Tax","value":30}]}'
          
Example response200 OK
Copy
{
  "_id": "A58xxP4q6vSw6FhZh",
  "currency": "EUR",
  "tax": [
    {
      "title": "Tax",
      "value": 30,
      "amount": 15
    }
  ],
  "blocks": [
    {
      "type": "intro",
      "attachment": {},
      "_id": "fum8CxGJAeAvaMmNG",
      "items": [],
      "rows": []
    },
    {
      "type": "content",
      "value": "{\"blocks\":[{\"key\":\"dieck\",\"text\":\"Content\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[],\"data\":{}}],\"entityMap\":{}}",
      "_id": "fECmSTGbNDy4j5XW2",
      "items": [],
      "attachment": {},
      "rows": []
    },
    {
      "type": "table",
      "title": "Simple table",
      "rows": [
        [
          "Key",
          "Value"
        ],
        [
          "Key2",
          "Value2"
        ],
        [
          "",
          ""
        ]
      ],
      "_id": "Lbyx9m5Y7pdfxkyXB",
      "items": [],
      "attachment": {}
    },
    {
      "type": "items",
      "title": "Items",
      "items": [
        {
          "_id": "mT35NL5ZSBRGGfvMv",
          "totalAmount": 50,
          "taxAmount": 0,
          "subTotal": 50,
          "totalDiscount": 0,
          "attachment": {},
          "quantity": 1,
          "tax": 0,
          "amount": 50,
          "isActive": true,
          "isReadOnly": false,
          "title": "Item"
        }
      ],
      "_id": "nzEZtvtgxBL8srora",
      "attachment": {}
    },
    {
      "type": "packages",
      "title": "Packages",
      "items": [
        {
          "_id": "moPJ93itWvotXXnD6",
          "isActive": false,
          "totalAmount": 25,
          "taxAmount": 0,
          "subTotal": 50,
          "totalDiscount": -20,
          "attachment": {},
          "quantity": 10,
          "tax": 0,
          "amount": 5,
          "isReadOnly": false,
          "title": "Package",
          "description": "Description",
          "discount": "50%"
        }
      ],
      "_id": "mEs9y9ssK7M9KtG2G",
      "attachment": {}
    },
    {
      "type": "html",
      "value": "<html>\n  <head>\n    Title\n  </head>\n  <body>\n    <p>Hello</p>\n  </body>\n</html>",
      "_id": "tBynxk7NZ8oEMBESe",
      "items": [],
      "attachment": {}
    },
    {
      "type": "fees",
      "_id": "WZDuQa7Jo5guj5sWD",
      "items": [
        {
          "_id": "mT35NL5ZSBRGGfvMv",
          "totalAmount": 50,
          "taxAmount": 0,
          "subTotal": 50,
          "totalDiscount": 0,
          "attachment": {},
          "quantity": 1,
          "tax": 0,
          "amount": 50,
          "isActive": true,
          "isReadOnly": true,
          "title": "Item"
        }
      ],
      "attachment": {},
      "rows": []
    }
  ],
  "contractBlocks": [
    {
      "type": "content",
      "value": null,
      "_id": "8ZCdqm3GFi5qaRa3P",
      "items": [],
      "attachment": {},