Skip to main content

API v1

Offorte API Reference Docs - Version 1

Proposals

Proposals list

Returns a paginated list of proposals by status (edit|open|won|lost|closed).

Searching can be done by using the optional query parameter, the provided status will then be ignored.

Deprecated fields:
total_price, total_price_override.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Proposal details

Returns all proposal details

Deprecated fields:
type, pages_total, language, pricetable-rows: count, userinput_count, userinput_optional, userinput_optional_checked.

Responses

Response samples

Content type
application/json
{
  • "account_user_email": "[email protected]",
  • "account_user_id": 1234,
  • "account_user_name": "Elon Musk",
  • "comments": [
    ],
  • "company": {
    },
  • "content": {
    },
  • "date_modified": "15 jun 2018 (06:49)",
  • "design_template_id": 1234,
  • "emails": [
    ],
  • "id": 1234,
  • "logs": {
    },
  • "name": "Proposal you can't refuse",
  • "price_total": "$999.99",
  • "price_total_original": 999.99,
  • "price_total_override": 999.99,
  • "proposal_language": "en",
  • "proposal_nr": "nr 000123",
  • "receivers": [],
  • "remarks": "Make some modifications as requested by Vegan Seagal",
  • "status": "won",
  • "text_template_id": 1234
}

Create proposal

Create a new proposal.

Parameters

name type description
account_user_id integer The proposal is assigned to this user and will be send out in name of this user
company_contacts array List with company contact id's who are going to receive the proposal; Make sure they got an email filled in
company_id integer The proposal is assigned to this company
design_template_id integer Design template id
name string Name of the proposal
price_total float Proposal value as calculated by pricetables
status string Proposal status. Possible values: edit, open, won, lost, closed
text_template_id integer Text template id
content object Content for the proposal (see below)

Content: Pricetables
Optionally you have the option to add rows to pricetables. Make sure you updated the 'Unique ID' field through the pricetable settings in your proposal template. Then you can target this pricetable to add rows to.

Fields per row type:

type fields
price type, content, quantity, price, vat_percentage, selectable (false, check, radio), user_selected, user_quantity, discount_type (false, percentage, amount), discount_value, recurring_type (false, month, year), recurring_include_in_totals, hide_price, hide_quantity, unique_id, product_id, sku
discount type, content, discount_type (percentage, amount), discount_value
subtotal type, content
title type, content

Deprecated fields:
row-type-price: count, userinput_optional, userinput_optional_checked, userinput_count; row-type-discount: discount

Request Body schema: application/json
account_user_id
number
automations_set_id
number
company_contacts
Array of numbers
company_id
number
object
design_template_id
number
name
string
proposal_template_id
number
text_template_id
number

Responses

Request samples

Content type
application/json
{
  • "account_user_id": 1234,
  • "automations_set_id": 1234,
  • "company_contacts": [
    ],
  • "company_id": 1234,
  • "content": {
    },
  • "design_template_id": 1234,
  • "name": "Proposal you can't refuse",
  • "proposal_template_id": 1234,
  • "text_template_id": 1234
}

Response samples

Content type
application/json
{
  • "id": 1234,
  • "version_id": 1234
}

Send proposal

Send a proposal

Parameters

name type description
password_reset boolean Optional: Reset the existing passwords when proposal was send before
send_method string Optional: Choose if you want to send it through Offorte or send the proposal your self. Defaults to 'offorte'. Possible values: offorte,self
send_message string The actual message you want to send in plain text. If not provided you must provide the 'send_message_id'
send_message_id integer The id of the email template you want to use as the accompanying message
Request Body schema: application/json
send_message_id
number

Responses

Request samples

Content type
application/json
{
  • "send_message_id": 1234
}

Response samples

Content type
application/json
{}

Update proposal

Updates the proposal details with the provided attributes. Other (unprovided) attributes remain unchanged

Parameters details

name type description
account_user_id integer The proposal is assigned to this user and will be send out in name of this user
company_contacts array List with company contact id's who are going to receive the proposal; Make sure they got an email filled in
company_id integer The proposal is assigned to this company
design_template_id integer Design template id
name string Name of the proposal
price_total float Proposal value as calculated by pricetables
status string Proposal status. Possible values: edit, open, won, lost, closed
text_template_id integer Text template id
Request Body schema: application/json
account_user_id
number
company_contacts
Array of numbers
company_id
number
design_template_id
number
name
string
price_total
number
status
string
text_template_id
number

Responses

Request samples

Content type
application/json
{
  • "account_user_id": 1234,
  • "company_contacts": [
    ],
  • "company_id": 1234,
  • "design_template_id": 1234,
  • "name": "Proposal you can't refuse",
  • "price_total": 999.99,
  • "status": "won",
  • "text_template_id": 1234
}

Response samples

Content type
application/json
{
  • "status": "200 OK"
}

Delete proposal

Deletes a proposal

It will be moved to the trashcan and can be manually restored via the interface (settings/trashcan)

Responses

Favorite templates list

Returns a list of proposal favorites (templates).

Deprecated fields:
type,config_language_id,proposal_tpl_id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Contacts

Companies list

Returns a paginated list of companies.

Searching on name can be done by using the optional query parameter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create company

Creates a new company

Request Body schema: application/json
city
string
coc_number
string
country
string
email
string
facebook
string
fax
string
internet
string
linkedin
string
name
string
phone
string
state
string
street
string
twitter
string
vat_number
string
zipcode
string

Responses

Request samples

Content type
application/json
{
  • "city": "Breda",
  • "coc_number": "12345678",
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "fax": "+31 76 12344567",
  • "internet": "www.example.com",
  • "linkedin": "linkedin.com/example",
  • "name": "Example Inc",
  • "phone": "+31 76 12344567",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "vat_number": "NL123455678",
  • "zipcode": "4800AA"
}

Response samples

Content type
application/json
{
  • "city": "Breda",
  • "coc_number": 12345678,
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "fax": "+31 76 12344567",
  • "id": 1234,
  • "internet": "www.example.com",
  • "linkedin": "linkedin.com/example",
  • "name": "Example Inc",
  • "people": [ ],
  • "phone": "+31 76 12344567",
  • "proposals": [ ],
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "vat_number": "NL123455678",
  • "zipcode": "4800AA"
}

Company details

Returns all company details

Deprecated fields:
proposal_status, proposal_name, account_company_user_id.

Responses

Response samples

Content type
application/json
{
  • "city": "Breda",
  • "coc_number": "12345678",
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "fax": "+31 76 12344567",
  • "id": 1234,
  • "internet": "www.example.com",
  • "linkedin": "linkedin.com/example",
  • "name": "Example Inc",
  • "people": [
    ],
  • "phone": "+31 76 12344567",
  • "proposals": [
    ],
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "vat_number": "NL123455678",
  • "zipcode": "4800AA"
}

Delete company

Deletes a company.

It will be moved to the trashcan and can be manually restored via the interface (settings/trashcan)

Request Body schema: multipart/form-data
object

Responses

Update company

Updates the company details with the provided attributes. Other (unprovided) attributes remain unchanged

Request Body schema: application/json
city
string
coc_number
string
country
string
email
string
facebook
string
fax
string
internet
string
linkedin
string
name
string
phone
string
state
string
street
string
twitter
string
vat_number
string
zipcode
string

Responses

Request samples

Content type
application/json
{
  • "city": "Breda",
  • "coc_number": "12345678",
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "fax": "+31 76 12344567",
  • "internet": "www.example.com",
  • "linkedin": "linkedin.com/example",
  • "name": "Example Inc",
  • "phone": "+31 76 12344567",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "vat_number": "NL123455678",
  • "zipcode": "4800AA"
}

Response samples

Content type
application/json
{
  • "status": "200 OK"
}

Company people list

Returns a paginated list of the people in a company.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create company person

Creates a new person in a company.

Parameters details

name type description
email string required
fullname string required
Request Body schema: application/json
city
string
country
string
email
string
facebook
string
firstname
string
fullname
string
internet
string
lastname
string
linkedin
string
mobile
string
phone
string
salutation
string
state
string
street
string
twitter
string
zipcode
string

Responses

Request samples

Content type
application/json
{
  • "city": "Breda",
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "firstname": "Chuck",
  • "fullname": "Chuck Norris",
  • "internet": "www.example.com",
  • "lastname": "Norris",
  • "linkedin": "linkedin.com/example",
  • "mobile": "+31 76 12344567",
  • "phone": "+31 76 12344567",
  • "salutation": "Mr",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "zipcode": "4800AA"
}

Response samples

Content type
application/json
{
  • "city": "Breda",
  • "company_id": 1234,
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "firstname": "Chuck",
  • "fullname": "Chuck Norris",
  • "id": 1234,
  • "internet": "www.example.com",
  • "lastname": "Norris",
  • "linkedin": "linkedin.com/example",
  • "mobile": "+31 76 12344567",
  • "phone": "+31 76 12344567",
  • "salutation": "Mr",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "zipcode": "4800AA"
}

Company person details

Returns all details of a person

Responses

Response samples

Content type
application/json
{
  • "city": "Breda",
  • "company_id": 1234,
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "firstname": "Chuck",
  • "fullname": "Chuck Norris",
  • "id": 1234,
  • "internet": "www.example.com",
  • "lastname": "Norris",
  • "linkedin": "linkedin.com/example",
  • "mobile": "+31 76 12344567",
  • "phone": "+31 76 12344567",
  • "salutation": "Mr",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "zipcode": "4800AA"
}

Delete company person

Deletes a person

Request Body schema: multipart/form-data
object

Responses

Update company person

Updates the person details with the provided attributes. Other (unprovided) attributes remain unchanged

Request Body schema: application/json
city
string
country
string
email
string
facebook
string
firstname
string
fullname
string
internet
string
lastname
string
linkedin
string
mobile
string
phone
string
salutation
string
state
string
street
string
twitter
string
zipcode
string

Responses

Request samples

Content type
application/json
{
  • "city": "Breda",
  • "country": "the Netherlands",
  • "email": "[email protected]",
  • "facebook": "facebook.com/example",
  • "firstname": "Chuck",
  • "fullname": "Chuck Norris",
  • "internet": "www.example.com",
  • "lastname": "Norris",
  • "linkedin": "linkedin.com/example",
  • "mobile": "+31 76 12344567",
  • "phone": "+31 76 12344567",
  • "salutation": "Mr",
  • "state": "Noord-Brabant",
  • "street": "Ginnekenweg 1",
  • "twitter": "twitter.com/example",
  • "zipcode": "4800AA"
}

Response samples

Content type
application/json
{
  • "status": "200 OK"
}

Templates & Settings

Design templates list

Returns a list of design templates.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Email templates list

Returns a list of email templates.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Text / Language templates list

Returns a list of text / language templates.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

VAT (tax) groups list

Returns a list of VAT groups.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Products

Products list

List the products for a directory.

Deprecated fields:
optional.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create product

Creates a new product.

Parameters details

name type description
selectable string Row is optional to choose by the customer. Check is multiple choice, Radio is single choice. Types: check, radio, false
recurring string Row is recurring and from type: month, year

_Deprecated fields:_optional.

Request Body schema: application/json
descr_short
string
name
string
price
number
recurring
string
selectable
string
sku
number
vat_id
number

Responses

Request samples

Content type
application/json
{
  • "descr_short": "Hello here is my descr",
  • "name": "API some new product",
  • "price": 3000,
  • "recurring": "month",
  • "selectable": "radio",
  • "sku": 1234,
  • "vat_id": 7
}

Response samples

Content type
application/json
{
  • "product_id": 1234
}

Delete product

Deletes a product

Responses

Update product

Updates the product with the provided attributes.

Parameters details

name type description
selectable string Row is optional to choose by the customer. Check is multiple choice, Radio is single choice. Types: check, radio, false
recurring string Row is recurring and from type: month, year

_Deprecated fields:_optional.

Request Body schema: application/json
descr_short
string
directory_id
number
name
string
price
string
recurring
string
selectable
string
sku
string
vat_id
number

Responses

Request samples

Content type
application/json
{
  • "descr_short": "This is a description",
  • "directory_id": 1,
  • "name": "Example Inc",
  • "price": "1000",
  • "recurring": "month",
  • "selectable": "check",
  • "sku": "abc12345678",
  • "vat_id": 1
}

Response samples

Content type
application/octet-stream
true

Product directories list

List the product directories

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create product directory

Creates a new product directory

Request Body schema: application/json
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "Example Inc"
}

Response samples

Content type
application/json
{
  • "status": "201 Created"
}

Delete product directory

Deletes a product directory. The directory should not contain any products, otherwise the request will fail.

Responses

Update product directory

Updates the product directory with the provided attributes

Request Body schema: application/json
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "Example Inc"
}

Response samples

Content type
application/json
{
  • "status": "200 OK"
}

Automations

Automations sets list

Returns a list of automations sets

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Account

Users list

Returns a list of active account users.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Webhooks

Webhooks list

Returns a list of webhooks.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create webhook

Creates a new webhook

Parameters

name type desscription
payload_url string Url where the data will be posted to; must be a full https url
payload_content_type string Content type header: json
active boolean Is it active or not
events array Events to subscribe to
Request Body schema: application/json
active
boolean
events
Array of strings
payload_content_type
string
payload_url
string

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "events": [
    ],
  • "payload_content_type": "json",
}

Response samples

Content type
application/json
{
  • "webhook_id": 1
}

Webhook details

Returns the webhook details.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "api_version": 1,
  • "date_created": "2025-06-15 18:05:59",
  • "date_failed": "2025-06-15 18:05:59",
  • "date_modified": "2025-06-15 18:05:59",
  • "events": [
    ],
  • "id": 1,
  • "payload_content_type": "json",
}

Delete webhook

Deletes a webhook

Responses

Update webhook

Updates the webhook details with the provided attributes. Other (unprovided) attributes remain unchanged

Parameters

name type desscription
payload_url string Url where the data will be posted to; must be a full https url
payload_content_type string Content type header: json
active boolean Is it active or not
events array Events to subscribe to
Request Body schema: application/json
active
boolean
events
Array of strings
payload_content_type
string
payload_url
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "status": "200 OK"
}