Skip to content

Orders

Get order lists from a Roistat project

POST /project/integration/order/list

This method is used to get order lists from a Roistat project.

Add "extend": ["visit"] to the request body in order to obtain detailed information about relevant visits.

Apply the standard filters in the request body by using the filters array. You cannot filter data by visit properties, additional order fields and the "source_type" field.

You can also filter data by the deal status funnel using the "status" parameter and the following values: "0" – the In work funnel statuses, "1" – the Paid funnel statuses, "2" – the Cancelled funnel statuses.

Request limitations:

When adding "extend":["visit"]:

  • If the limit is more than 1000: 1 request per 1 minute.
  • If the limit is more than 100: 5 requests per 1 minute.
  • If the limit is less than 100: 10 requests per 1 minute.

Without adding "extend":["visit"]:

  • 20 requests per 1 minute.
curl 'https://cloud.roistat.com/api/v1/project/integration/order/list?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}' \ 
    --data Request body - see below

Request Body:

{
    "filters": {
        "and": [
            [
                "creation_date",
                ">",
                "2016-05-21T21:00:00+0000"
            ],
            [
                "creation_date",
                "<",
                "2016-05-22T21:00:00+0000"
            ],
            [
                "status",
                "=",
                "2"
            ]
        ]
    },
    "extend": [
        "visit"
    ],
    "limit": 100,
    "offset": 0
}
{
    "data": [
        {
            "id": "95101",
            "url": "http://roistat.com/index.php?order/info&order_id=95101",
            "source_type": "standard",
            "creation_date": "2016-06-19T00:32:12+0000",
            "update_date": "2016-06-19T02:00:07+0000",
            "revenue": 0,
            "cost": 0,
            "client_id": "78173",
            "visit_id": "4336465",
            "custom_fields": {
                "Менеджер": "John Doe",
                "roistat": 4336465,
                "status_name": "0. Created"
            },
            "status": {
                "id": "1",
                "type": "progress",
                "name": "0. Created"
            },
            "visit": null
        }
    ],
    "total": 1,
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

Parameter Type Description Required
filters object no
and array[string] no
extend array[string] no
limit integer no
offset integer no
Parameter Type Description
data array[object]
id string Deal ID in a CRM system
url string Deal's URL in a CRM system
source_type string Type of created lead
creation_date string Date and time when the deal was created; in UTC0 format
update_date null or string Date and time of the last modification of the deal; in UTC0 format
revenue null or integer Revenue for the deal
cost null or integer First cost
visit_id null or string Client's visit ID
custom_fields object Custom fields
>> Manager null or string
>> roistat null or integer
>> status_name string
status object Deal's status data
>> id string A unique status number in Roistat
>> type string Status type in Roistat. It can be one of the groups that you use to classify your CRM statuses: - unused - the "Not registered" group; - in progress - the "Processing" group; - paid - the "Paid" group; - canceled - the "Rejected" group.
>> name string A human-readable status name from the CRM system
visit null or object Detailed information about relevant visit. Displayed only if the "extend": ["visit"] parameter was sent. Otherwise, you'll see null. Read more about visit data in the /project/site/visit/list method.
client_id null or string Client ID
total integer
status string

Upload data about deals to a project

POST /project/add-orders

A method to upload data about deals to a project.

curl 'https://cloud.roistat.com/api/v1/project/add-orders?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}' \ 
    --data Request body - see below

Request Body:

[
    {
        "id": "1",
        "name": "New order",
        "date_create": "1393673200",
        "status": "0",
        "roistat": "12345",
        "price": "222",
        "cost": "111",
        "fields": {
            "Manager": "John Doe"
        }
    },
    {
        "id": "2",
        "name": "New order",
        "date_create": "1393673200",
        "status": "0",
        "roistat": "67890",
        "price": "333",
        "cost": "222",
        "fields": {
            "Manager": "John Doe"
        }
    }
]
{
    "uploaded": 0,
    "processed": 0,
    "skipped_by_status": 0,
    "skipped_by_waiting_visit_info": 0,
    "skipped_by_internal_error": 0,
    "skipped_because_not_changed": 0,
    "skipped_fields_by_invalid_format": 0,
    "saved": 0,
    "comment": "",
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

Parameter Type Description Required
id string Deal ID in a CRM system no
name string A human-readable deal name in the CRM system no
date_create string Date when the deal was created; in UNIX-time or YYYY-MM-DD HH:MM format no
status string Status ID статуса from the statuses array no
roistat null or string Visit ID no
price null or string Deal value; used to calculate "Revenue" in Roistat no
cost null or string First cost of the deal no
fields object Custom fields. - maximum 1000 symbols for a field. no
Parameter Type Description
uploaded integer The number of imported deals
processed integer
skipped_by_status integer
skipped_by_waiting_visit_info integer
skipped_by_internal_error integer
skipped_because_not_changed integer
saved integer

Get all information about the deal

GET /project/orders/{orderId}/info

Use this method to get complete information about a deal, including products and all visits from the visit chain. orderId can be obtained using the following method: /project/integration/order/list.

curl 'https://cloud.roistat.com/api/v1/project/orders/order_12345/info?project=12345' \
    --request GET \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}'
{
    "order": {
        "id": "order_12345",
        "title": "order_12345",
        "url": "https://example.com/order/order_12345",
        "source": {
            "type": "phone",
            "icon_url": "https://cloud.roistat.com/img/order_source/calltracking.png",
            "title": "Call tracking"
        },
        "creation_date": "2022-04-12T04:34:02+0000",
        "update_date": null,
        "paid_date": null,
        "status": "canceled",
        "status_name": "Rejected",
        "status_original": "4",
        "price": 9989.7279999999992,
        "cost": 0,
        "visit_id": "12345",
        "visit": {
            "id": "12345",
            "date": "2022-04-12T03:53:31+0000",
            "city": "Berlin",
            "country": "Germany",
            "country_icon": "https://cloud.roistat.com/img/country/de.png",
            "is_first_visit": 0,
            "is_order_visit": 1,
            "marker": "VK → Products of the month - Kitchen → Product of the month - Decor set",
            "marker_info": [
                {
                    "marker": "vk4",
                    "alias": "VK"
                },
                {
                    "marker": "35",
                    "alias": "Products of the month - Kitchen"
                },
                {
                    "marker": "31902633",
                    "alias": "Product of the month - Decor set"
                }
            ],
            "marker_icon": "https://favicon.yandex.net/favicon/vk.com",
            "referrer": "http://avito.ru/some-adv",
            "landing_page": "http://cozy.home.ru/catalog/lights",
            "host": "cozy.home.ru",
            "os_name": "Windows 8.1",
            "os_icon": "https://cloud.roistat.com/img/os/win81.png",
            "browser_name": "Firefox",
            "browser_icon": "https://cloud.roistat.com/img/browsers/firefox.png"
        },
        "fields_data": {
            "status_name": "Rejected",
            "Rejection reason": "Chose competitors",
            "Manager": "Jack Smith",
            "roistat": 32446
        },
        "is_multichannel": 1,
        "visits_count": 2,
        "client_phones": [
            "+70005746130"
        ],
        "client_emails": [
            "John_Smith_19701028@example.com"
        ],
        "client_name": "John Smith",
        "client_id": "817",
        "client_external_id": "817",
        "is_first": true,
        "is_first_sale": false
    },
    "visits": [
        {
            "id": "6724",
            "date": "2022-03-24T14:52:28+0000",
            "city": "Berlin",
            "country": "Germany",
            "country_icon": "https://cloud.roistat.com/img/country/de.png",
            "is_first_visit": 1,
            "is_order_visit": 0,
            "marker": "SEO → Google",
            "marker_info": [
                {
                    "marker": "seo",
                    "alias": "SEO"
                },
                {
                    "marker": "google",
                    "alias": "Google"
                }
            ],
            "marker_icon": "https://cloud.roistat.com/img/MagnifyingGlass.png",
            "referrer": "http://fb.com",
            "landing_page": "http://cozy.kitchen.ru/catalog/techniques",
            "host": "cozy.kitchen.ru",
            "os_name": "Windows 8.1",
            "os_icon": "https://cloud.roistat.com/img/os/win81.png",
            "browser_name": "Chrome",
            "browser_icon": "https://cloud.roistat.com/img/browsers/chrome.png"
        },
        {
            "id": "12345",
            "date": "2022-04-12T03:53:31+0000",
            "city": "Berlin",
            "country": "Germany",
            "country_icon": "https://cloud.roistat.com/img/country/ru.png",
            "is_first_visit": 0,
            "is_order_visit": 1,
            "marker": "VK → Products of the month - Kitchen → Product of the month - Decor set",
            "marker_info": [
                {
                    "marker": "vk4",
                    "alias": "VK"
                },
                {
                    "marker": "35",
                    "alias": "Products of the month - Kitchen"
                },
                {
                    "marker": "31902633",
                    "alias": "Product of the month - Decor set"
                }
            ],
            "marker_icon": "https://favicon.yandex.net/favicon/vk.com",
            "referrer": "http://avito.ru/some-adv",
            "landing_page": "http://cozy.home.ru/catalog/lights",
            "host": "cozy.home.ru",
            "os_name": "Windows 8.1",
            "os_icon": "https://cloud.roistat.com/img/os/win81.png",
            "browser_name": "Firefox",
            "browser_icon": "https://cloud.roistat.com/img/browsers/firefox.png"
        }
    ],
    "products": [
        {
            "id": "product_0",
            "name": "W-1",
            "price": 3320.0999999999999,
            "cost": 2213.4000000000001,
            "brand": "Windows for Everyone",
            "variant": null,
            "categories": [
                {
                    "level": "1",
                    "value": "Economy"
                },
                {
                    "level": "2",
                    "value": "Plastic"
                }
            ],
            "quantity": 1,
            "fields": []
        },
        {
            "id": "product_15",
            "name": "W-2",
            "price": 5630.3999999999996,
            "cost": 3753.5999999999999,
            "brand": "Country House Windows",
            "variant": null,
            "categories": [
                {
                    "level": "1",
                    "value": "Standard"
                },
                {
                    "level": "2",
                    "value": "Wooden"
                }
            ],
            "quantity": 1,
            "fields": []
        }
    ],
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

No parameters.

Parameter Type Description
order object Order information
id string Order ID
title string Order title
url string Order external URL from CRM
source object Information about the deal source
>> type string Source type: proxyform – lead from the form, phone – Call Tracking, lead_hunter – Lead Hunter
>> icon_url string Source icon link
>> title string Source type title
creation_date string Date and time of the deal creation in UTC0 format
update_date null or string Date and time of the last change of the deal data in UTC0 format
paid_date null or string Date and time of the last change of the deal payment data in UTC0 format
status string Status group to which the current deal status belongs: progressIn work, paidPaid, canceledCanceled
status_name string Status name
status_original string Status ID
price number Deal price
cost number Deal cost
visit_id string The number of the visit on which the deal was created
visit object Information about the visit on which the deal was created
>> id string Visit number
>> date string Date and time of visit
>> city string Client city
>> country string Client country
>> country_icon string Country icon link
>> is_first_visit number Is this visit the first: 0 – no, 1 – yes
>> is_order_visit number Is the deal created on this visit: 0 – no, 1 – yes
>> marker string Visit source (all levels)
>> marker_info array[object] Information about each visit source level
>>> marker string Level marker
>>> alias string Human-readable level name
>> marker_icon string Channel icon link
>> referrer string The page the client came from
>> landing_page string The page the client visited
>> host string Domain
>> os_name string Client OS
>> os_icon string OS icon link
>> browser_name string Client browser
>> browser_icon string Browser icon link
fields_data object Additional fields data
>> [Название поля] string Additional field value
is_multichannel number Is this lead multi-channel: 0 – no, 1 – yes
visits_count number Number of visits in the chain
client_phones array[string] Client phone numbers
client_emails array[string] Client email addresses
client_name string Client name
client_id string Client ID
client_external_id string Client ID in CRM
is_first boolean Is this deal a first for the client
is_first_sale boolean Is this sale a first for the client
visits array[object] Information about each visit in the chain
id string Visit number
date string Date and time of visit
city string Client city
country string Client country
country_icon string Country icon link
is_first_visit number Is this visit the first: 0 – no, 1 – yes
is_order_visit number Is the deal created on this visit: 0 – no, 1 – yes
marker string Visit source (all levels)
marker_info array[object] Information about each visit source level
>> marker string Level marker
>> alias string Human-readable level name
marker_icon string Channel icon link
referrer string The page the client came from
landing_page string The page the client visited
host string Domain
os_name string Client OS
os_icon string OS icon link
browser_name string Client browser
browser_icon string Browser icon link
products array[object] Information about the products in the deal
id string Product ID
name string Product name
price number Product price
cost number Product cost
brand string Product brand
variant string Product variant
category array[object] Product category (nesting up to 5 levels)
>> level string Nesting level
>> value string Level title
quantity integer Products quantity
fields array Additional fields
status string Request status

Get the external URL of a deal (from your CRM system)

GET /project/orders/{orderId}/external-url

Use this method to get the external URL of a deal (from your CRM system).

curl 'https://cloud.roistat.com/api/v1/project/orders/123/external-url?project=12345' \
    --request GET \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}'
{
    "externalUrl": "http://new123qwerty.amocrm.ru/leads/detail/123",
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

No parameters.

Parameter Type Description
externalUrl string URL of the deal in the CRM system
status string

Get deal status IDs in integrated CRM

POST /project/integration/status/list

Using this method, you can find out the IDs of all deal statuses in the integrated CRM.

curl 'https://cloud.roistat.com/api/v1/project/integration/status/list?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}'
{
    "data": [
        {
            "id": "deal_WON",
            "name": "Successful deal (Main) (Deals)",
            "type": "paid"
        },
        {
            "id": "deal_PREPAYMENT_INVOICE",
            "name": "Prepayment invoice (Main) (Deals)",
            "type": "progress"
        },
        {
            "id": "deal_NEW",
            "name": "New (Main) (Deals)",
            "type": "progress"
        },
        {
            "id": "deal_PREPARATION",
            "name": "Preparing documents (Main) (Deals)",
            "type": "progress"
        },
        {
            "id": "deal_EXECUTING",
            "name": "In progress (Main) (Deals)",
            "type": "progress"
        },
        {
            "id": "lead_NEW",
            "name": "Unsorted (Leads)",
            "type": "progress"
        },
        {
            "id": "lead_IN_PROCESS",
            "name": "In progress (Leads)",
            "type": "progress"
        },
        {
            "id": "lead_PROCESSED",
            "name": "Processed (Leads)",
            "type": "progress"
        },
        {
            "id": "lead_CONVERTED",
            "name": "Quality lead (Leads)",
            "type": "progress"
        },
        {
            "id": "deal_1",
            "name": "Name (Main) (Deals)",
            "type": "progress"
        },
        {
            "id": "deal_FINAL_INVOICE",
            "name": "Final invoice (Main) (Deals)",
            "type": "paid"
        },
        {
            "id": "lead_JUNK",
            "name": "Poor quality lead (Leads)",
            "type": "canceled"
        },
        {
            "id": "deal_LOSE",
            "name": "Deal failed (Main) (Deals)",
            "type": "canceled"
        },
        {
            "id": "deal_APOLOGY",
            "name": "Failure Cause Analysis (Main) (Deals)",
            "type": "canceled"
        }
    ],
    "total": 14,
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

No parameters.

Parameter Type Description
data array[object]
id string A unique status identifier (ID) in Roistat
name string A human-readable status name in a CRM system
type string Status type in Roistat. It can be one of the groups that you use to classify your CRM statuses: unused - the "Not registered" group; in progress - the "Processing" group; paid - the "Paid" group; canceled - the "Rejected" group.
total string Total number of statuses
status string

Upload statuses

POST /project/set-statuses

This method is employed to upload statuses.

All statuses that you use must be sent in one array, not separately. If you wish to add new statuses, it is necessary to list both existing and new statuses in the request body.

If the ID of a new status coincides with the one already existing, a new status name will be uploaded.

curl 'https://cloud.roistat.com/api/v1/project/set-statuses?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}' \ 
    --data Request body - see below

Request Body:

[
    {
        "id": "1",
        "name": "New",
        "type": "progress"
    },
    {
        "id": "2",
        "name": "inProgress",
        "type": "progress"
    }
]
{
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

Parameter Type Description Required
id string A unique status identifier (ID) in Roistat no
name string A human-readable status name in a CRM system no
type string Status type in Roistat. It can be one of the groups that you use to classify your CRM statuses: unused - the "Not registered" group; in progress - the "Processing" group; paid - the "Paid" group; canceled - the "Rejected" group. no
Parameter Type Description
status string

Get a list of additional transaction fields from your CRM

POST /project/analytics/order-custom-fields

A method for obtaining a list of deal custom fields from your CRM.

curl 'https://cloud.roistat.com/api/v1/project/analytics/order-custom-fields?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}'
{
    "fields": [
        "City",
        "Cashier",
        "Manager"
    ],
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

No parameters.

Parameter Type Description
fields object Human-readable names of deal fields from a CRM system
field1 string
field2 string
field3 string
status string

Update the status of the deal

POST /project/integration/order/{orderId}/status/update

Method to update the status of the deal.

Available only when integrating with goals or integrating via API.

curl 'https://cloud.roistat.com/api/v1/project/integration/order/123/status/update?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}' \ 
    --data Request body - see below

Request Body:

{
    "status_id": "1"
}
{
    "status": "success"
}

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

Parameter Type Description Required
status_id string ID of status in Roistat no
Parameter Type Description
status string

Delete a deal

POST /project/integration/order/{orderId}/delete

Method to delete a deal.

Available only with integration via API.

curl 'https://cloud.roistat.com/api/v1/project/integration/order/{orderId}/delete?project=12345' \
    --request POST \
    --header 'Content-type: application/json' \ 
    --header 'Api-key: {KEY}'

No parameters.

Query String:

Parameter Type Description Required
project string Project number yes

Request Body:

No parameters.

Parameter Type Description
status string