RAYNET CRM API (2.0.0)

Download OpenAPI specification:Download

Cloud CRM REST API is a programming interface of the RAYNET CRM system that allows you to work with data inside the CRM system from third-party applications. Communication is done using the standard HTTP protocol with respect to REST principles.

Connection to RAYNET CRM

The communication protocol is HTTP, so you can use any application or library that supports this protocol. The curl application will be used for the demonstration. An alternative is, for example, the add-on Talend API Tester for Google Chrome. Access is secured with basic authentication (username and API key) and encrypted with TLSv1.2 and higher (HTTPS) to ensure maximum security. In the request header you must send the name of your instance (e.g. my-crm).


  curl -X GET -u 'user:api-key' -H 'X-Instance-Name: my-crm' 'https://app.raynet.cz/api/v2/company/'

Data types

The values of individual attributes in the RAYNET CRM system are made up of several basic data types:

  • String - Text value.

  • Number - Numeric value. Depending on the context, this can be either an integer or a decimal number. Decimal numbers use a decimal point.

  • Truth value - YES/NO value. For the YES value you can use true, on, yes and 1; for the NO value you can use false, off, no and 0.

  • Date - Date as a string in the format yyyy-MM-dd.

  • Date and time - Date and time as a string in the format yyyy-MM-dd HH:mm. Date and time in ISO8601 format are also accepted (e.g. 2022-01-01T12:00:00.000+01:00).

  • Reference - The reference data type refers to another record in the RAYNET CRM system. In the incoming data, the reference is a map (JavaScript object) that contains the keys:

    • id - Identifier of the referenced record.

Date and time

The date and time as a string in the format yyyy-MM-dd HH:mm is in the time zone of the user through whom the API requests are made. For filtering and writing (PUT, POST) it is possible to use both formats (yyyy-MM-dd HH:mm, ISO8601).

In response, the date and time is formatted as yyyy-MM-dd HH:mm in the user's time zone by default. By adding the parameter dateFormat=ISO8601 it is possible to influence the output format, the value will be formatted into the form 2022-01-01T12:00:00.000+01:00. e.g. https://ww....company/?dateFormat=ISO8601

List filtering

Operators working on attributes and values are as follows:

  • EQ - Test for equality of values.

  • EQ_OR_NULL - Test for equality or empty value.

  • NE - Test for inequality of values.

  • NE_OR_NULL - Test for inequality or empty value.

  • LT - The value in the database is less than the one entered.

  • LE - The value in the database is less than or equal to the one entered.

  • GT - The value in the database is greater than the one entered.

  • GE - The value in the database is greater than or equal to the one entered.

  • LIKE - Test for a value matching an expression (e.g. the ABC% filter value finds all records that start with the characters ABC).

  • LIKE_NOCASE - Similar to LIKE, but case insensitive.

  • IN - Test for equality of (multiple) values separated by comma. The correct input format is e.g. 1,2,3,4.

  • NOT_IN - Test for inequality of (multiple) values separated by comma. The correct input format is e.g. 1,2,3,4.

  • CUSTOM - Special operator - the test behavior is described later in the documentation.

The default operator is the equality EQ. The operator is written in square brackets after the attribute name. It is thus possible to enter multiple filtering criteria over the same attribute. https://app..../?validFrom[GT]="2014-06-01"&validTill[LT]="2014-06-10" A common scenario is to filter out all records that have the attribute empty or non-empty. For this purpose, the value empty string can be used in combination with the EQ or NE operator.

List layout

The layout of the list is controlled by the sortColumn and sortDirection parameters. For each API, there is a list of values that can be used to sort the list. The sortDirection parameter can have the values:

  • ASC - Values are sorted in ascending order

  • DESC - Values are sorted in descending order

List pagination

The list can be paginated by setting the offset and limit parameters. Offset specifies the first record to be displayed, limit specifies the number of records. The maximum page size is 1 000 items. Například https://app..../?offset=0&limit=2

Fulltext

In most of the lists, you can use full-text search according to the entered text string. The fulltext parameter is used for this purpose. It is applied e.g. as follows: https://app..../?fulltext=sometext

API limits

Each API response contains headers that describe the API usage status for the given instance.

curl -X GET -u 'user:api-key' -H 'X-Instance-Name: my-crm' 'https://app.raynet.cz/api/v2/company/'

HTTP/1.1 200 OK
Status: 200 OK
X-Ratelimit-Limit: 24000
X-Ratelimit-Remaining: 23999
X-Ratelimit-Reset: 1508889600

The meaning of each header is as follows:

Header Meaning
X-Ratelimit-Limit Total limit for the current time window and instance.
X-Ratelimit-Remaining Remaining number of requests.
X-Ratelimit-Reset Time when the time window will expire and the limit will be reset. The value indicates Unix time.

If the limit is exceeded, an error message is returned with the HTTP code 429 Too Many Requests:

{

  "type": "RequestLimitReached",

  "message": "API request limit reached. See the X-RateLimit-* headers and check out the API documentation for more details."

}

What if my limits aren't enough

By default, access is limited to 24,000 requests per day (counted from midnight to the next midnight in the UTC time zone). In case the limit is not enough for your integration, contact our customer support at podpora@raynet.cz and we will surely find a suitable solution together.

Wrong login

If more than 20 requests are sent with incorrect login information, this access will be blocked for 60 minutes. This restriction applies to the specific IP address.

Accounts

API for working with accounts.

list of accounts

Getting list of accounts. This list can be filtered, sorted and paginated using the parameters below.

https://app.raynet.cz/api/v2/company/?offset=0&limit=1&name[LIKE]=RAY%
Authorizations:
(basicAuthinstanceName)
query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned accounts is 1000

sortColumn
string
Enum: "id" "rowInfo.createdAt" "rowInfo.updatedAt" "rowInfo.lastModifiedAt" "name" "regNumber"
Example: sortColumn=name
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
fulltext
string
Example: fulltext=fulltext=myText

Full-text search in the list. Operator is not used in this case.

name
string
Example: name=name[LIKE]=RAY%

Filter accounts by name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

lastName
string
Example: lastName=name[LIKE]=RAY%

Filtering accounts by last name of individual. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

person
boolean
Example: person=person=true

Filtering accounts by flag This is an individual

regNumber
string
Example: regNumber=12345678

Filtering accounts by ID number. The EQ, NE operator can be used. The default operator is EQ. For example: for a list of all accounts with a specified ID number, you must enter regNumber[NE]=null

owner
integer <int64>
Example: owner=1

Filter accounts by owner (Person). Filtered by unique owner identifier (id)

rating
string

Filtering accounts by Rating

role
string

Filter accounts by Role

state
string

Filtering accounts by Status

category
integer <int64>
Example: category=1

Filtering accounts by category ID (CompanyCategory). The EQ, NE, IN operator can be used

economyActivity
integer <int64>
Example: economyActivity=1

Filtering accounts by industry ID (EconomyActivity). The EQ, NE, IN operator can be used

companyClassification1
integer <int64>
Example: companyClassification1=1

Filtering accounts by classification 1 ID (CompanyClassification1). The EQ, NE, IN operator can be used

companyClassification2
integer <int64>
Example: companyClassification2=1

Filtering accounts by classification 2 ID (CompanyClassification2). The EQ, NE, IN operator can be used

companyClassification3
integer <int64>
Example: companyClassification3=1

Filtering accounts by classification 3 ID (CompanyClassification3). The EQ, NE, IN operator can be used

primaryAddress-contactInfo.email
string
Example: primaryAddress-contactInfo.email=test@domain.rnt

Filtering accounts by email for primary address. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

primaryAddress-contactInfo.email2
string
Example: primaryAddress-contactInfo.email2=test@domain.rnt

Filtering accounts by second email for primary address. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering accounts by creation date. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering accounts by last modified date. The GT, GE, LT, LE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering accounts by last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

rowInfo.rowAccess
string
Example: rowInfo.rowAccess=INVALID

Filtering invalidated accounts. The EQ, NE, EQ_OR_NULL, NE_OR_NULL operator can be used

gdprTemplate
string
Example: gdprTemplate=gdprTemplate[CUSTOM]=1

Filtering accounts by legal title. Only the CUSTOM operator can be used.

withoutGdpr
string
Example: withoutGdpr=withoutGdpr[CUSTOM]

Filtering accounts that do not have a valid legal title. Only the CUSTOM operator can be used.

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

tags
string
Example: tags=tags

Filtering by tag. It is possible to search by multiple tags separated by a comma. The record must then contain at least one (tag1,tag2).

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "totalCount": 1,
  • "data": [
    ]
}

new account

Creating new account with addresses

Authorizations:
(basicAuthinstanceName)
Request Body schema: application/json
name
required
string

[Name]

person
boolean

[This is an individual]

lastName
string

[Last name of individual] - required if the 'This is an individual' flag is active

firstName
string

[Name of individual]

titleBefore
string

[Title before the name of the individual]

titleAfter
string

[Title after the name of the individual]

salutation
string

[Salutation]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

rating
required
string
Enum: "A" "B" "C"

[Rating]

state
required
string
Enum: "A_POTENTIAL" "B_ACTUAL" "C_DEFERRED" "D_UNATTRACTIVE"

[Status]

role
required
string
Enum: "A_SUBSCRIBER" "B_PARTNER" "C_SUPPLIER" "D_RIVAL"

[Relationship]

notice
string

[Note to account]

category
integer <int64>

[Category] Record ID from the CompanyCategory picklist

contactSource
integer <int64>

[Contact Source] Record ID from the ContactSource picklist

employeesNumber
integer <int64>

[Employees] Record ID from the EmployeesNumber picklist

legalForm
integer <int64>

[Legal form] Record ID from the LegalForm picklist

paymentTerm
integer <int64>

[Payment terms] Record ID from the PaymentTerm picklist

turnover
integer <int64>

[Turnover] Record ID from the CompanyTurnover picklist

economyActivity
integer <int64>

[Industry] Record ID from the EconomyActivity picklist

companyClassification1
integer <int64>

[Classification 1]Record ID from the CompanyClassification1 picklist

companyClassification2
integer <int64>

[Classification 2] Record ID from the CompanyClassification2 picklist

companyClassification3
integer <int64>

[Classification 3] Record ID the from CompanyClassification3 picklist

regNumber
string

[ID no.]

taxNumber
string

[Tax ID no.]

taxNumber2
string

[VAT ID no.] For Slovak accounts

taxPayer
string
Enum: "YES" "NO"

[VAT payer]

bankAccount
string

[Bank account]

databox
string

[Data box]

court
string

[Reference number]

birthday
string <date>

[Birthday/Anniversary]

Array of objects >= 0 items
object
tags
Array of strings
object

Responses

Request samples

Content type
application/json
{
  • "name": "COMPANYNAME LLC",
  • "securityLevel": 1,
  • "owner": 12,
  • "rating": "A",
  • "state": "A_POTENTIAL",
  • "role": "B_PARTNER",
  • "notice": "Note",
  • "category": 12,
  • "contactSource": 12,
  • "employeesNumber": 12,
  • "legalForm": 12,
  • "paymentTerm": 12,
  • "turnover": 12,
  • "economyActivity": 12,
  • "companyClassification1": 12,
  • "companyClassification2": 12,
  • "companyClassification3": 12,
  • "regNumber": "12345678",
  • "taxNumber": "CZ12345678",
  • "taxPayer": "YES",
  • "bankAccount": "123123123",
  • "addresses": [
    ],
  • "tags": [
    ],
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

account detail

Getting account detail. In the detail, the account is listed with all recorded data including all recorded addresses. If the account record contains custom fields, the fields that contain a blank value are not present in the output (for optimization reasons).

https://app.raynet.cz/api/v2/company/1/
Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "data": {
    }
}

modifying account

Modifying account data

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Request Body schema: application/json
name
string

[Name]

person
boolean

[This is an individual]

lastName
string

[Last name of individual] - required if the 'This is an individual' flag is active

firstName
string

[Name of individual]

titleBefore
string

[Title before the name of the individual]

titleAfter
string

[Title after the name of the individual]

salutation
string

[Salutation]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

rating
string
Enum: "A" "B" "C"

[Rating]

state
string
Enum: "A_POTENTIAL" "B_ACTUAL" "C_DEFERRED" "D_UNATTRACTIVE"

[Status]

role
string
Enum: "A_SUBSCRIBER" "B_PARTNER" "C_SUPPLIER" "D_RIVAL"

[Relationship]

notice
string

[Note to account]

category
integer <int64>

[Category] Record ID from the CompanyCategory picklist

contactSource
integer <int64>

[Contact Source] Record ID from the ContactSource picklist

employeesNumber
integer <int64>

[Employees] Record ID from the EmployeesNumber picklist

legalForm
integer <int64>

[Legal form] Record ID from the LegalForm picklist

paymentTerm
integer <int64>

[Payment terms] Record ID from the PaymentTerm picklist

turnover
integer <int64>

[Turnover] Record ID from the CompanyTurnover picklist

economyActivity
integer <int64>

[Industry] Record ID from the EconomyActivity picklist

companyClassification1
integer <int64>

[Classification 1]Record ID from the CompanyClassification1 picklist

companyClassification2
integer <int64>

[Classification 2] Record ID from the CompanyClassification2 picklist

companyClassification3
integer <int64>

[Classification 3] Record ID the from CompanyClassification3 picklist

regNumber
string

[ID no.]

taxNumber
string

[Tax ID no.]

taxNumber2
string

[VAT ID no.] For Slovak accounts

taxPayer
string
Enum: "YES" "NO"

[VAT payer]

bankAccount
string

[Bank account]

databox
string

[Data box]

court
string

[Reference number]

birthday
string <date>

[Birthday/Anniversary]

object
object

Responses

Request samples

Content type
application/json
{
  • "name": "COMPANYNAME LLC",
  • "owner": 12,
  • "rating": "A",
  • "state": "A_POTENTIAL",
  • "role": "B_PARTNER",
  • "notice": "Note",
  • "category": 12,
  • "contactSource": 12,
  • "employeesNumber": 12,
  • "legalForm": 12,
  • "paymentTerm": 12,
  • "turnover": 12,
  • "economyActivity": 12,
  • "companyClassification1": 12,
  • "companyClassification2": 12,
  • "companyClassification3": 12,
  • "regNumber": "12345678",
  • "taxNumber": "CZ12345678",
  • "taxPayer": "YES",
  • "bankAccount": "123123123",
  • "customFields": {
    }
}

deleting account

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

locking account

Locking the account record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

unlocking account

Unlocking the account record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

invalidating account

Account record invalidation.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

renewing account validity

Renewing account record validity.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

GDPR anonymize account

The record data will be anonymized.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

adding address to account

Adding a new address to the account with the companyId identifier. The address is classified as one of the other addresses (i.e. it is not primary).

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Request Body schema: application/json
object
object
territory
integer <int64>

[Business Territory] Record ID from the Territory picklist

Responses

Request samples

Content type
application/json
{
  • "address": {
    },
  • "contactInfo": {
    },
  • "territory": 12
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

modifying account address

For an account with the companyId identifier, the address with the addressId identifier will be modified.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

addressId
required
integer <int64>
Example: 123

address ID

Request Body schema: application/json
object
object
territory
integer <int64>

[Business Territory] Record ID from the Territory picklist

Responses

Request samples

Content type
application/json
{
  • "address": {
    },
  • "contactInfo": {
    },
  • "territory": 12
}

deleting account address

For an account with the companyId identifier, the address with the identifier addressId will be deleted. The primary address cannot be deleted (i.e. there must always be at least one address for the account).

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

addressId
required
integer <int64>
Example: 123

address ID

Responses

setting the primary address

For an account with the companyId identifier, a new primary address will be set. The address that was previously marked as the primary address will be moved to other addresses.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

addressId
required
integer <int64>
Example: 123

address ID

Responses

contact address settings

For an account with the companyId identifier, the address will be set as the contact address. This address will be displayed in the list of accounts and will be the first one in the account detail. The address that was previously marked as the contact address will be moved to other addresses.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

addressId
required
integer <int64>
Example: 123

address ID

Responses

adding TAG to account

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Request Body schema: application/json
tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "my tag"
}

deleting TAG from account

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Request Body schema: application/json
tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "my tag"
}

Relations to other accounts

Getting relations to other accounts.

https://app.raynet.cz/api/v2/company/1/relationship/
Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "totalCount": 1,
  • "data": [
    ]
}

adding relation to another account

Adding a new relation to an account. There are three types of relations - parent-subsidiary relation ("parent"), subsidiary-parent relation ("slave") or loose connection ("free"). After adding a new relation, a second relation is created between the two accounts at the same time - the inverse relation (e.g. for a new relation of the "parent" type, the opposite relation of the "slave" type is also created).

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

Request Body schema: application/json
companyJoin
required
integer <int64>

[Account] ID of the account record to which the relation will be created

companyJoinType
required
string
Enum: "parent" "slave" "free"

[Relationship type] Relationship type (parent - parent account to subsidiary account relationship, slave - subsidiary to parent relationship, free - loose connection)

notice
string

[Note]

Responses

Request samples

Content type
application/json
{
  • "companyJoin": 5,
  • "companyJoinType": "parent",
  • "notice": "Classification within holding"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

modifying relation to another account

For an existing relation, only the note can be changed.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

relationshipId
required
integer <int64>
Example: 123

ID of relationship with another account

Request Body schema: application/json
notice
string

[Note]

Responses

Request samples

Content type
application/json
{
  • "notice": "Classification within holding"
}

deleting relation to another account

The relation to another account will be deleted for the specified account. If there is an inverse relation to the relation being deleted, it will also be deleted.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

account ID

relationshipId
required
integer <int64>
Example: 123

Relation to account ID

Responses

Merging duplicate account

When merging, all data from the source account is transferred to the target account, followed by the deletion of the source account. For details on merging, see this article.

Authorizations:
(basicAuthinstanceName)
path Parameters
companyId
required
integer <int64>
Example: 123

ID of the target account, data will be transferred to this record

sourceCompanyId
required
integer <int64>
Example: 123

ID of the source account that will be merged with the target account and then deleted

Responses

Contacts

API for working with contacts.

list of contacts

https://app.raynet.cz/api/v2/person/?offset=0&limit=1&firstName[LIKE]=Jan%
Authorizations:
(basicAuthinstanceName)
query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned contacts is 1000

sortColumn
string
Enum: "id" "rowInfo.createdAt" "rowInfo.updatedAt" "rowInfo.lastModifiedAt" "firstName" "lastName"
Example: sortColumn=firstName
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
fulltext
string
Example: fulltext=fulltext=myText

Full-text search in the list. Operator is not used in this case.

firstName
string
Example: firstName=firstName[LIKE_NOCASE]=mar%

Filtering contacts by first name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

lastName
string
Example: lastName=Novak

Filtering contacts by last name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering contacts by creation date. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering contacts by last modified date. The GT, GE, LT, LE operator can be used

owner
integer <int64>
Example: owner=1

Filtering contacts by owner (Person). Filtering by unique owner identifier (id)

primaryRelationship-company-name
string
Example: primaryRelationship-company-name=primaryRelationship-company-name[LIKE]=RAY%

Filtering contacts by the name of the account in the primary relationship. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

primaryRelationship-company-id
integer <int64>
Example: primaryRelationship-company-id=1

Filtering contacts by account ID in the primary relationship. The EQ, NE operator can be used

personRelationship
string
Example: personRelationship=personRelationship[CUSTOM]=1

Filtering contacts by the ID of the company that has some relationship (primary or secondary) with the contact. Only the CUSTOM operator can be used.

userAccount-id
integer <int64>
Example: userAccount-id=3

Filter contacts by user ID. The EQ, NE operator can be used. You can also specify empty string as a value, e.g., to filter out contacts without a user account.

contactInfo.email
string
Example: contactInfo.email=test@domain.rnt

Filtering contacts by primary email. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

contactInfo.email2
string
Example: contactInfo.email2=test@domain.rnt

Filtering contacts by secondary email. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering contacts by last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

rowInfo.rowAccess
string
Example: rowInfo.rowAccess=INVALID

Filtering invalidated contacts. The EQ, NE, EQ_OR_NULL, NE_OR_NULL operator can be used

gdprTemplate
string
Example: gdprTemplate=gdprTemplate[CUSTOM]=1

Filtering contacts by legal title. Only the CUSTOM operator can be used.

withoutGdpr
string
Example: withoutGdpr=withoutGdpr[CUSTOM]

Filtering contacts that do not have a valid legal title. Only the CUSTOM operator can be used.

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

tags
string
Example: tags=tags

Filtering by tag. It is possible to search by multiple tags separated by a comma. The record must then contain at least one (tag1,tag2).

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "totalCount": 2,
  • "data": [
    ]
}

creating new contact

Authorizations:
(basicAuthinstanceName)
Request Body schema: application/json
titleBefore
string

[Title before]

firstName
string

[Name]

lastName
required
string

[Last name]

titleAfter
string

[Title after]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

category
integer <int64>

[Category] Record ID from the PersonCategory picklist

personClassification1
integer <int64>

[Classification 1] Record ID from the ContactClassification1 picklist

personClassification2
integer <int64>

[Classification 2] Record ID from the ContactClassification2 picklist

personClassification3
integer <int64>

[Classification 3] Record ID from the ContactClassification3 picklist

salutation
string

[Salutation]

birthday
string

[Birthday]

language
integer <int64>

[Language] Record ID from the Language picklist

maritalStatus
integer <int64>

[Marital Status] Record ID from the MaritalStatus picklist

gender
string
Enum: "MALE" "FEMALE"

[Gender]

object
object
object
notice
string

[Note to contact]

object
tags
Array of strings
keyman
boolean

[Key Person]

Responses

Request samples

Content type
application/json
{
  • "titleBefore": "M.E.",
  • "firstName": "Mary",
  • "lastName": "Johnson",
  • "titleAfter": "PhD",
  • "owner": 1,
  • "category": 96,
  • "personClassification1": 97,
  • "personClassification2": 98,
  • "personClassification3": 99,
  • "salutation": "Mrs.",
  • "birthday": "2022-06-10",
  • "language": 70,
  • "maritalStatus": 78,
  • "gender": "FEMALE",
  • "contactInfo": {
    },
  • "privateAddress": {
    },
  • "notice": "Note",
  • "relationship": {
    },
  • "tags": [
    ],
  • "keyman": false
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

contact detail

Getting contact detail. The contact detail shows the contact with all recorded data including all recorded relationships to individual accounts. If the contact record contains custom fields, the fields that contain a blank value are not present in the output (for optimization reasons).

https://app.raynet.cz/api/v2/person/3/
Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "data": {
    }
}

modifying contact

Modifying contact data

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Request Body schema: application/json
titleBefore
string

[Title before]

firstName
string

[Name]

lastName
string

[Last name]

titleAfter
string

[Title after]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

category
integer <int64>

[Category] Record ID from the PersonCategory picklist

personClassification1
integer <int64>

[Classification 1] Record ID from the ContactClassification1 picklist

personClassification2
integer <int64>

[Classification 2] Record ID from the ContactClassification2 picklist

personClassification3
integer <int64>

[Classification 3] Record ID from the ContactClassification3 picklist

salutation
string

[Salutation]

birthday
string

[Birthday]

language
integer <int64>

[Language] Record ID from the Language picklist

maritalStatus
integer <int64>

[Marital Status] Record ID from the MaritalStatus picklist

gender
string
Enum: "MALE" "FEMALE"

[Gender]

object
object
object
notice
string

[Note to contact]

object
keyman
boolean

[Key Person]

Responses

Request samples

Content type
application/json
{
  • "titleBefore": "M.E.",
  • "firstName": "Mary",
  • "lastName": "Johnson",
  • "titleAfter": "PhD",
  • "owner": 1,
  • "category": 96,
  • "personClassification1": 97,
  • "personClassification2": 98,
  • "personClassification3": 99,
  • "salutation": "Mrs.",
  • "birthday": "2022-06-10",
  • "language": 70,
  • "maritalStatus": 78,
  • "gender": "FEMALE",
  • "contactInfo": {
    },
  • "socialNetworkContact": {
    },
  • "privateAddress": {
    },
  • "notice": "Note",
  • "customFields": {
    },
  • "keyman": false
}

deleting contact

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

locking contact

Locking the contact record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

unlocking contact

Unlocking the contact record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

invalidating contact

Contact record invalidation.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

renewing contact validity

Renewing contact record validity.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

GDPR anonymize contact

The record data will be anonymized.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Responses

adding relationship

Adding a new relationship between contact with the personId identifier and account. The relationship will be classified as a secondary relationship.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Request Body schema: application/json
company
required
integer <int64>

[Account] account record ID

companyAddress
integer <int64>

[Address] address record ID from the account CompanyAddress

notice
string

[Note]

type
required
string

[Job title]

Responses

Request samples

Content type
application/json
{
  • "company": 1,
  • "companyAddress": 1,
  • "notice": "Customer support",
  • "type": "support"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

modifying relationship

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

relationshipId
required
integer <int64>
Example: 123

account relationship ID

Request Body schema: application/json
company
required
integer <int64>

[Account] account record ID

companyAddress
integer <int64>

[Address] address record ID from the account CompanyAddress

notice
string

[Note]

type
required
string

[Job title]

Responses

Request samples

Content type
application/json
{
  • "company": 1,
  • "companyAddress": 1,
  • "notice": "Customer support",
  • "type": "support"
}

deleting relationship

For a contact with the identifier personId, the relationship to the account with the identifier relationshipId will be deleted.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

relationshipId
required
integer <int64>
Example: 123

account relationship ID

Responses

setting up the primary relationship with an account

For contact with identifier personId, a new primary relationship will be set with identifier relationshipId. This account will appear as the main (first) account for the contact. The relationship that was previously the primary relationship will be classified as a secondary relationship.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

relationshipId
required
integer <int64>
Example: 123

account relationship ID

Responses

adding TAG to contact

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Request Body schema: application/json
tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "my tag"
}

deleting TAG from contact

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

Contact ID

Request Body schema: application/json
tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "my tag"
}

Merging duplicate contacts

When merging, all data from the source contact is transferred to the target contact, followed by the deletion of the source contact. For details on merging, see this article.

Authorizations:
(basicAuthinstanceName)
path Parameters
personId
required
integer <int64>
Example: 123

ID of the target contact, data will be transferred to this record

sourcePersonId
required
integer <int64>
Example: 123

ID of the source contact that will be merged with the target contact and then deleted

Responses

Leads

API for working with leads.

list of leads

Getting list of leads. This list can be filtered, sorted and paginated using the parameters below.

https://app.raynet.cz/api/v2/lead/?offset=0&limit=1&companyName[LIKE]=RAY%
Authorizations:
(basicAuthinstanceName)
query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned leads is 1000

sortColumn
string
Enum: "id" "rowInfo.createdAt" "rowInfo.updatedAt" "rowInfo.lastModifiedAt" "code" "leadDate" "priority" "companyName" "lastName"
Example: sortColumn=code
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
fulltext
string
Example: fulltext=fulltext=myText

Full-text search in the list. Operator is not used in this case.

code
string
Example: code=code[LIKE]=L-16-1111%

Filtering leads by code. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

companyName
string
Example: companyName=companyName[LIKE]=RAY%

Filtering leads by account name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

lastName
string
Example: lastName=lastName[LIKE]=Nov%

Filtering leads by last name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

contactInfo.email
string
Example: contactInfo.email=Smith@domain.rnt

Filtering leads by email. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

contactInfo.email2
string
Example: contactInfo.email2=Smith@domain.rnt

Filtering leads by the second email. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

regNumber
string
Example: regNumber=1234567

Filtering leads by ID no. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

owner
integer <int64>
Example: owner=1

Filtering leads by owner (Person). Filtered by unique owner identifier (id)

leadDate
string
Example: leadDate=2022-06-01

Filtering leads by received. The EQ, NE, GT, GE, LT, LE operator can be used

status
string
Enum: "B_ACTIVE" "G_STORNO" "D_DONE"
Example: status=E_WIN

Filtering deals by status group. The EQ, NE operator can be used. B_ACTIVE --open leads, G_STORNO --canceled leads, D_DONE --converted leads

leadPhase
integer <int64>
Example: leadPhase=21

Filtering leads by status (LeadPhase). The EQ, NE, IN, NOT_IN operator can be used

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering leads by creation date. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering leads by last modified date. The GT, GE, LT, LE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering leads by last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

gdprTemplate
integer <int64>
Example: gdprTemplate=gdprTemplate[CUSTOM]=1

Filtering leads by legal title. Only the CUSTOM operator can be used.

withoutGdpr
integer <int64>
Example: withoutGdpr=withoutGdpr[CUSTOM]

Filtering leads that do not have a valid legal title. Only the CUSTOM operator can be used.

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

tags
string
Example: tags=tags

Filtering by tag. It is possible to search by multiple tags separated by a comma. The record must then contain at least one (tag1,tag2).

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "totalCount": 165,
  • "data": [
    ]
}

new lead

Creating new lead. With the option to send a notification about the creation of the lead to selected email addresses (suitable for web forms).

Authorizations:
(basicAuthinstanceName)
Request Body schema: application/json
topic
required
string

[Subject]

priority
required
string
Enum: "MINOR" "DEFAULT" "CRITICAL"

[Priority]

companyName
string

[Company Name]

regNumber
string

[ID no.]

firstName
string

[Name]

lastName
string

[Last name]

titleBefore
string

[Title before]

titleAfter
string

[Title after]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

contactSource
integer <int64>

[Source] Record ID from the ContactSource picklist

category
integer <int64>

[Category] Record ID from the LeadCategory picklist

notice
string

[Note to lead]

leadPhase
integer <int64>

[Lead Status] Record ID from the LeadPhase picklist

tags
string

[Comma-separated list of tags]

territory
integer <int64>

[Territory] Record ID from the Territory picklist

object
object
object
object
notificationMessage
string

[Notification Text]

notificationEmailAddresses
Array of strings

Responses

Request samples

Content type
application/json
{
  • "topic": "Quote",
  • "priority": "DEFAULT",
  • "companyName": "No pain no rain LLC",
  • "firstName": "John",
  • "lastName": "Droplet",
  • "owner": 1,
  • "notice": "Imported xxxxfrom web",
  • "category": 91,
  • "contactSource": 61,
  • "regNumber": "regNumber",
  • "leadPhase": 122,
  • "contactInfo": {
    },
  • "address": {
    },
  • "socialNetworkContact": {
    },
  • "customFields": {
    },
  • "tags": "aaa,bbb",
  • "notificationMessage": "Inquiry from web form",
  • "notificationEmailAddresses": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

lead detail

Getting lead detail If the lead record contains custom fields, the fields that contain a blank value are not present in the output (for optimization reasons).

https://app.raynet.cz/api/v2/lead/3/
Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "data": {
    }
}

modifying lead

Modifying lead data

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Request Body schema: application/json
topic
string

[Subject]

priority
string
Enum: "MINOR" "DEFAULT" "CRITICAL"

[Priority]

leadPhase
integer <int64>

[Lead Status] Record ID from the LeadPhase picklist

companyName
string

[Company Name]

regNumber
string

[ID no.]

firstName
string

[Name]

lastName
string

[Last name]

titleBefore
string

[Title before]

titleAfter
string

[Title after]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

contactSource
integer <int64>

[Source] Record ID from the ContactSource picklist

category
integer <int64>

[Category] Record ID from the LeadCategory picklist

notice
string

[Note to lead]

tags
string

[Comma-separated list of tags]

territory
integer <int64>

[Territory] Record ID from the Territory picklist

object
object
object
object

Responses

Request samples

Content type
application/json
{
  • "topic": "Quote",
  • "priority": "DEFAULT",
  • "companyName": "No pain no rain LLC",
  • "firstName": "John",
  • "lastName": "Droplet",
  • "owner": 1,
  • "leadPhase": 105,
  • "notice": "Imported xxxxfrom web",
  • "category": 91,
  • "contactSource": 61,
  • "regNumber": "regNumber",
  • "contactInfo": {
    },
  • "address": {
    },
  • "socialNetworkContact": {
    },
  • "customFields": {
    },
  • "tags": "aaa,bbb"
}

Response samples

Content type
application/json
{
  • "success": true
}

deleting lead

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Responses

locking lead

Locking the lead record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Responses

unlocking lead

Unlocking the lead record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Responses

GDPR anonymize lead

The record data will be anonymized.

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

Lead ID

Responses

Merging duplicate leads

When merging, all data from the source lead is transferred to the target lead, followed by the deletion of the source lead. For details on merging, see this article.

Authorizations:
(basicAuthinstanceName)
path Parameters
leadId
required
integer <int64>
Example: 123

ID of the target lead, data will be transferred to this record

sourceLeadId
required
integer <int64>
Example: 123

ID of the source lead that will be merged with the target lead and then deleted

Responses

Deals

API for working with deals.

list of deals

Getting list of deals. This list can be filtered, sorted and paginated using the parameters below.

https://app.raynet.cz/api/v2/businessCase/?offset=0&limit=1&name[LIKE]=RAY%
Authorizations:
(basicAuthinstanceName)
query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned records is 1000

sortColumn
string
Enum: "id" "rowInfo.createdAt" "rowInfo.updatedAt" "rowInfo.lastModifiedAt" "name" "validFrom" "validTill" "scheduledEnd"
Example: sortColumn=name
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
fulltext
string
Example: fulltext=fulltext=myText

Full-text search in the list. Operator is not used in this case.

code
string
Example: code=BD-15-001

Filter deals by code. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

name
string
Example: name=name[LIKE]=RAY%

Filtering deals by name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

company
integer <int64>
Example: company=1

Filtering deals by account. Filtering by unique account identifier (id)

project
integer <int64>
Example: project=1

Filtering deals by project. Filtering by unique project identifier (id)

category
integer <int64>
Example: category=1

Filtering deals by category (BusinessCaseCategory). Filtering by unique category identifier (id)

owner
integer <int64>
Example: owner=1

Filtering deals by owner (Person). Filtering by unique owner identifier (id)

validFrom
string
Example: validFrom=validFrom[GT]=2022-06-01

Filtering deals by opening date. The EQ, NE, GT, GE, LT, LE operator can be used

validTill
string
Example: validTill=validTill[GT]=2022-06-01

Filtering deals by closing date. The EQ, NE, GT, GE, LT, LE operator can be used

scheduledEnd
string
Example: scheduledEnd=validTill[GT]=2022-06-01

Filtering deals by estimated closing date. The EQ, NE, GT, GE, LT, LE operator can be used

status
string
Enum: "B_ACTIVE" "E_WIN" "F_LOST" "G_STORNO"
Example: status=E_WIN

Filtering deals by status group. The EQ, NE operator can be used. B_ACTIVE --open deals E_WIN --won deals, F_LOST --lost deals, G_STORNO --canceled deals

businessCasePhase
integer <int64>
Example: businessCasePhase=21

Filtering deals by stage (BusinessCasePhase). The EQ, NE, IN, NOT_IN operator can be used

businessCaseType
integer <int64>
Example: businessCaseType=21

Filtering deals by deal type (BusinessCaseType). The EQ, NE, IN, NOT_IN operator can be used

containsProduct
integer <int64>
Example: containsProduct=21

Filtering deals by product. If the deal contains the selected product, it will be displayed. It is necessary to use the CUSTOM operator

productCategory
integer <int64>
Example: productCategory=21

Filtering deals by product category. If the deals contains a product in the selected category, it will be displayed. It is necessary to use the CUSTOM operator and use multiple values productCategory[CUSTOM]=1,2,3

productLine
integer <int64>
Example: productLine=21

Filtering deals by product line. If the deal contains a product in the selected product line, it will be displayed. It is necessary to use the CUSTOM operator and use multiple values productLine[CUSTOM]=1,2,3

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering deals by creation date. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering deals by last modified date. The GT, GE, LT, LE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering deals by last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

rowInfo.rowAccess
string
Example: rowInfo.rowAccess=INVALID

Filtering invalidated deals. The EQ, NE, EQ_OR_NULL, NE_OR_NULL operator can be used

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "totalCount": 1,
  • "data": [
    ]
}

new deal

Creating new deal.

Authorizations:
(basicAuthinstanceName)
Request Body schema: application/json
name
required
string

[Subject]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

company
required
integer <int64>

[Account] ID of the account for which the deal is created

person
integer <int64>

[Contact] ID of the contact responsible for the deal on the account side

project
integer <int64>

[Project] ID of the project to which the deal is to be connected

totalAmount
number

[Final price] final price of the deal

estimatedValue
number

[Estimated costs] estimated costs of the deal

probability
integer <int32>

[Probability] probability of success of the deal

validFrom
string <date>

[Open from] date open from

description
string

[Note]

currency
integer <int64>

[Currency] Record ID from the Currency picklist

exchangeRate
number

[Rate] rate for conversion to CRM system default currency

category
integer <int64>

[Category] Record ID from the BusinessCaseCategory picklist

source
integer <int64>

[Contact Source] Record ID from the ContactSource picklist

businessCaseClassification1
integer <int64>

[Classification 1]Record ID from the BusinessCaseClassification1 picklist

businessCaseClassification2
integer <int64>

[Classification 2] Record ID from the BusinessCaseClassification2 picklist

businessCaseClassification3
integer <int64>

[Classification 3]Record ID from the BusinessCaseClassification3 picklist

businessCasePhase
integer <int64>

[Status] Record ID from BusinessCasePhase. If it is not filled in, the deal will be set to the first stage.

tags
Array of strings
object

Responses

Request samples

Content type
application/json
{
  • "name": "test",
  • "company": 1,
  • "owner": 3,
  • "totalAmount": 123.5,
  • "estimatedValue": 11,
  • "probability": 80,
  • "validFrom": "2022-11-08",
  • "description": "test",
  • "businessCaseClassification1": 93,
  • "currency": 17,
  • "exchangeRate": 20,
  • "businessCasePhase": 3
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

new deal with products

Creating new deal along with items (at once). Items are entered as collections in the "items" attribute. Each item from the collection is then created in the system in two ways: without a link to a product (uncategorized product) or with a link to the selected product. If the item contains a "product" (product ID) or "productCode" (product code) attribute, the system will find the product and link it to the item. If the product cannot be found, it will try to newly create it. It is possible to limit the number of products to be searched to a specific price list by adding an extra attribute "priceList" (ID of the selected price list). For an uncategorized product, none of the above parameters are entered, but at least the name of the product ("name") must be entered.

Authorizations:
(basicAuthinstanceName)
Request Body schema: application/json
name
required
string

[Subject]

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

company
required
integer <int64>

[Account] ID of the account for which the deal is created

person
integer <int64>

[Contact] ID of the contact responsible for the deal on the account side

totalAmount
number

[Final price] final price of the deal

estimatedValue
number

[Estimated costs] estimated costs of the deal

probability
integer <int32>

[Probability] probability of success of the deal

validFrom
string <date>

[Open from] date open from

description
string

[Note]

currency
integer <int64>

[Currency] Record ID from the Currency picklist

exchangeRate
number

[Rate] rate for conversion to CRM system default currency

category
integer <int64>

[Category] Record ID from the BusinessCaseCategory picklist

source
integer <int64>

[Contact Source] Record ID from the ContactSource picklist

businessCaseClassification1
integer <int64>

[Classification 1]Record ID from the BusinessCaseClassification1 picklist

businessCaseClassification2
integer <int64>

[Classification 2] Record ID from the BusinessCaseClassification2 picklist

businessCaseClassification3
integer <int64>

[Classification 3]Record ID from the BusinessCaseClassification3 picklist

businessCasePhase
integer <int64>

[Status] Record ID from BusinessCasePhase. If it is not filled in, the deal will be set to the first stage.

tags
Array of strings
object
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "Deal with items",
  • "company": 2,
  • "owner": 3,
  • "totalAmount": 123.5,
  • "estimatedValue": 11,
  • "probability": 80,
  • "validFrom": "2022-11-04",
  • "description": "Description",
  • "currency": 19,
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Deal detail

Getting deal detail. If the deal record contains custom fields, the fields that contain a blank value are not present in the output (for optimization reasons).

https://app.raynet.cz/api/v2/businessCase/1/
Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "data": {
    }
}

modifying deal

Modifying deal data

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

Deal ID

Request Body schema: application/json
name
string

[Subject]

businessCasePhase
integer <int64>

[Stage] Record ID from the BusinessCasePhase picklist

securityLevel
integer <int64>

[Security Level] Security Level ID. If not filled in, the default security group is set.

owner
integer <int64>

[Owner] ID of the contact who is also a user

company
integer <int64>

[Account] ID of the account for which the deal is created

person
integer <int64>

[Contact] ID of the contact responsible for the deal on the account side

project
integer <int64>

[Project] ID of the project to which the deal is to be connected

totalAmount
number

[Final price] final price of the deal

estimatedValue
number

[Estimated costs] estimated costs of the deal

probability
integer <int32>

[Probability] probability of success of the deal

validFrom
string <date>

[Open from] date open from

validTill
string <date>

[Closed] date of deal closing

description
string

[Note]

currency
integer <int64>

[Currency] Record ID from the Currency picklist

exchangeRate
number

[Rate] rate for conversion to CRM system default currency

category
integer <int64>

[Category] Record ID from the BusinessCaseCategory picklist

source
integer <int64>

[Contact Source] Record ID from the ContactSource picklist

businessCaseClassification1
integer <int64>

[Classification 1]Record ID from the BusinessCaseClassification1 picklist

businessCaseClassification2
integer <int64>

[Classification 2] Record ID from the BusinessCaseClassification2 picklist

businessCaseClassification3
integer <int64>

[Classification 3]Record ID from the BusinessCaseClassification3 picklist

tags
Array of strings
object
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "test",
  • "company": 1,
  • "owner": 3,
  • "totalAmount": 123.5,
  • "estimatedValue": 11,
  • "probability": 80,
  • "validFrom": "2022-11-08",
  • "validTill": "2022-11-10",
  • "description": "test",
  • "businessCaseClassification1": 93,
  • "currency": 17,
  • "exchangeRate": 20,
  • "customFields": {
    }
}

deleting deal

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deals ID

Responses

locking deal

Locking the deal record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

unlocking deal

Unlocking the deal record for editing.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

invalidating deal

Deal record invalidation.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

renewing deal validity

Renewing deal record validity.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

exporting deal to PDF

Exporting a deal to PDF. Specifically, a temporary file will be created in the CRM store. The contents of this file can then be accessed via the /exportBody API (More in section: Files / Download export body).

https://app.raynet.cz/api/v2/businessCase/3/pdfExport
Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

query Parameters
locale
string
Example: locale=en

Language of the exported deal

Responses

Response samples

Content type
application/json
{
  • "uuid": "6775ac8cebd548e9b94a8ec99c30bab7",
  • "fileName": "BD-17-001.pdf",
  • "contentType": "application/octet-stream",
  • "accessToken": "d9b38352c39f4ca2b7d367cffe089d20",
  • "instanceName": "mycrm"
}

adding deal items

Adding items to the deal. An item can be created in two ways: without a link to a product (uncategorized product) or an item with a link to a selected product. If I want to create a linked item, I enter "product" (product ID) or "productCode" (product code) to the request body. The system then finds the product based on the entered value and links it to the item. If I want to restrict the set of products (for searching) to a specific price list, I have to specify the "priceList" parameter (ID of the selected price list). For an uncategorized product, none of the above parameters are entered, but at least the name of the product ("name") must be entered.

https://app.raynet.cz/api/v2/businessCase/1/item/
Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Request Body schema: application/json
productCode
string

[Product code] Based on the entered code, the product is searched for The deal item is then created with this product.

product
integer <int64>

[Product ID] Based on the entered ID, the product is searched for. The deal item is then created with this product.

priceList
integer <int64>

[Price list ID] Searching for a product using the above criteria will be limited to the specified price list only. If not specified, the default (not in price list) products are searched.

name
required
string

[Name] Required value for uncategorized product only

price
number

[Selling price]

taxRate
number

[Tax]

count
number

[Quantity]

discountPercent
number

[Discount]

cost
number

[Costs] Cost per piece

unit
string

[Unit]

description
string

[Note]

Responses

Request samples

Content type
application/json
{
  • "productCode": "A001",
  • "name": "Products",
  • "priceList": 2,
  • "count": 2,
  • "price": 123,
  • "taxRate": 21,
  • "discountPercent": 10.5,
  • "cost": 10,
  • "description": "note to product"
}

modifying deal item

Modifying an item of a deal

https://app.raynet.cz/api/v2/businessCase/1/item/2/
Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deals ID

businessCaseItemId
required
integer <int64>
Example: 123

deal item ID

Request Body schema: application/json
name
string

[Name]

price
number

[Selling price]

taxRate
number

[Tax]

count
number

[Quantity]

discountPercent
number

[Discount]

cost
number

[Costs] Cost per piece

unit
string

[Unit]

description
string

[Note]

Responses

Request samples

Content type
application/json
{
  • "name": "product 1",
  • "price": 123,
  • "taxRate": 21,
  • "count": 2,
  • "discountPercent": 10.5,
  • "cost": 10,
  • "unit": "pcs",
  • "description": "note to product"
}

deleting deal item

Deleting an item from a deal

https://app.raynet.cz/api/v2/businessCase/1/item/2/
Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deals ID

businessCaseItemId
required
integer <int64>
Example: 123

deal item ID

Responses

list of deal participants

Getting list of deal participants. This list can be filtered, sorted and paginated using the parameters below.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned records is 1000

sortColumn
string
Enum: "id" "company.id" "company.name" "person.id" "person.lastName" "businessCase.id" "businessCase.code" "note"
Example: sortColumn=id
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
note
string
Example: note=note[LIKE]=Attention%

Filtering deal participants by note. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

company
string
Example: company=3

Filtering deal participants by unique account identifier (id). The EQ, NE, GT, GE, LT, LE operator can be used

company-name (optional, number, `company_name[LIKE]
required
string
Default: "RAY%`)"

Filtering deal participants by account name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

person
string
Example: person=person[EQ]=3

Filtering deal participants by unique contact identifier (id). The EQ, NE, GT, GE, LT, LE operator can be used

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering deal participants by date of participant creation. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering deal participants by the participant last modified date. The GT, GE, LT, LE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering deals by last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "totalCount": 1,
  • "data": [
    ]
}

new deal participant

Adding a new participant to a deal with the identifier businessCaseId. It is possible to add either an account or a contact. The API request must contain one reference to account or contact.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Request Body schema: application/json
company
integer <int64>

[Account] account record ID

person
integer <int64>

[Contact] contact record ID

category
integer <int64>

[Participation category] participation category ID

note
string

[Note]

Responses

Request samples

Content type
application/json
{
  • "company": 1,
  • "category": 123,
  • "note": "Note to participant"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

deleting participant from deal

For deal with identifier businessCaseId, the participant with identifier participantId will be deleted.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

participantId
required
integer <int64>
Example: 321

Participant ID

Responses

changelog of deal stage changes

List of the history of changes to deal stages.

Authorizations:
(basicAuthinstanceName)
path Parameters
businessCaseId
required
integer <int64>
Example: 123

deal ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "totalCount": 1,
  • "data": [
    ]
}

Offers

API for working with quotes / offers.

list of offers

Getting list of offers. This list can be filtered, sorted and paginated using the parameters below.

https://app.raynet.cz/api/v2/offer/?offset=0&limit=1&name[LIKE]=RAY%
Authorizations:
(basicAuthinstanceName)
query Parameters
offset
integer <int64>

Viewing the record from the beginning

limit
integer <int64>
Example: limit=100

The maximum number of returned records is 1000

sortColumn
string
Enum: "id" "rowInfo.createdAt" "rowInfo.updatedAt" "rowInfo.lastModifiedAt" "name"
Example: sortColumn=name
sortDirection
string
Enum: "ASC" "DESC"
Example: sortDirection=ASC
fulltext
string
Example: fulltext=fulltext=myText

Full-text search in the list. Operator is not used in this case.

code
string
Example: code=OFF-15-001

Filtering offers by code. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

name
string
Example: name=name[LIKE]=RAY%

Filtering offers by name. The EQ, NE, LIKE, LIKE_NOCASE operator can be used

company
integer <int64>
Example: company=1

Filtering offers by account. Filtering by unique account identifier (id)

person
integer <int64>
Example: person=1

Filtering offers by contact. Filtering by unique contact identifier (id)

businessCase
integer <int64>
Example: businessCase=1

Filtering offers by offer deal. Filtering by unique deal identifier (id)

owner
integer <int64>
Example: owner=1

Filtering offers by owner (Person). Filtering by unique owner identifier (id)

expirationDate
string
Example: expirationDate=expirationDate[GT]=2022-06-01

Filtering offers by offer expiration date. The EQ, NE, GT, GE, LT, LE operator can be used

validFrom
string
Example: validFrom=validFrom[GT]=2022-06-01

Filtering offers by opening date. The EQ, NE, GT, GE, LT, LE operator can be used

validTill
string
Example: validTill=validTill[GT]=2022-06-01

Filtering offers by opening date. The EQ, NE, GT, GE, LT, LE operator can be used

status
string
Enum: "B_ACTIVE" "E_WIN" "F_LOST" "G_STORNO"
Example: status=E_WIN

Filtering offers by status group. The EQ, NE operator can be used.

  • B_ACTIVE --open offers,

  • E_WIN --won offers,

  • F_LOST --lost offers,

  • G_STORNO --canceled offers

offerStatus
integer <int64>
Example: offerStatus=21

Filtering offers by status (OfferStatus). The EQ, NE, IN, NOT_IN operator can be used

containsProduct
integer <int64>
Example: containsProduct=21

Filtering offers by product. If the record contains the selected product, it will be displayed. It is necessary to use the CUSTOM operator

productCategory
integer <int64>
Example: productCategory=21

Filtering offers by product category. If the record contains a product in the selected category, it will be displayed. It is necessary to use the CUSTOM operator, and it is possible to use multiple values productCategory[CUSTOM]=1,2,3

productLine
integer <int64>
Example: productLine=21

Filtering offers by product line. If the record contains a product in the selected product line, it will be displayed. It is necessary to use the CUSTOM operator, and it is possible to use multiple values productLine[CUSTOM]=1,2,3

rowInfo.createdAt
string
Example: rowInfo.createdAt=2022-06-01 10:00

Filtering offers by creation date. The GT, GE, LT, LE operator can be used

rowInfo.updatedAt
string
Example: rowInfo.updatedAt=2022-06-01 10:00

Filtering offers by last modified date. The GT, GE, LT, LE operator can be used

rowInfo.lastModifiedAt
string
Example: rowInfo.lastModifiedAt=2022-06-01 10:00

Filtering offers by the last modified date (created or modified). The GT, GE, LT, LE operator can be used. Suitable for periodic change detection.

rowInfo.rowAccess
string
Example: rowInfo.rowAccess=INVALID

Filtering invalidated offers. The EQ, NE, EQ_OR_NULL, NE_OR_NULL operator can be used

view
string
Example: view=rowInfo

If the value is equal to rowInfo, only status information about the record is returned (created, modified, version, ...). Suitable for periodic change detection.

tags
string
Example: tags=tags

Filtering by tag. It is possible to search by multiple tags separated by a comma. The record must then contain at least one (tag1,tag2).

Responses

Response samples

Content type
application/json
{
  • "success": "true",
  • "totalCount": 1,
  • "data": [
    ]
}