Документация GraphQL API сервиса ТоргТранс

Вступление

API интерфейс используется для того, чтобы интегрировать возможности сервиса ТоргТранс в личный проект клиента. API предназначен для разработчиков и сопровождается детальной документацией.
О GraphQL можно почитать здесь:

Основной URL

Все ссылки на запросы к API в данной документации включают обязательный основной URL: https://api.torgtrans.com/graphql/схема (customer, claim, tender)

Авторизация

Процесс авторизации возможен при наличии персонального ключа (api-key), которым в дальнейшем должен быть подписан каждый запрос к API.
Ключ (api-key) передается в заголовке любого запроса (в "headers") X-API-KEY.
Пример ключа:

X-API-KEY: tfTAPyHXUgjig72jlrd5HpIJ4Si1LydYpL5oigmc

Получение api-key

Для получения ключа необходимо

  1. Создать пользователя в вашей компании с помощью нашего интерфейса на сайте: https://torgtrans.com. Этот пользователь будет использоваться исключительно для взаимодействия с API.
  2. Выслать email созданного пользователя на: info@torgtrans.com.
  3. В ближайшее время api-key будет выслан на email пользователя.

Не верный ключ

Схемы

Название схемы Описание Документация
Сustomer Работа с заказами, формами и партнерами Документация
Tender Работа с тендерами Документация

Примеры запросов

Список шаблонов заказов

Запрос:

                    
                        {
                          "operationName": "FetchOrderTemplates",
                          "variables": {},
                          "query": "query FetchOrderTemplates {  order_templates {    id    name    __typename  }}"
                        }
                    
                

Ответ:

                    
                        {
                          "operationName": "FetchOrderTemplates",
                          "variables": {},
                          "query": "query FetchOrderTemplates {  order_templates {    id    name    __typename  }}"
                        }
                        {
                          "data":{
                            "order_templates":[
                              {
                                "id":72,
                                "name":"Желдор - Спб, 10 тент",
                                "__typename":"order_template"
                              },
                              {
                                "id":73,
                                "name":"МО (2 точки) - Петропавловск 20 изотерм",
                                "__typename":"order_template"
                              }
                            ]
                          }
                        }
                    
                

Удаление шаблона заказа

Запрос:

                    
                        {
                          "operationName": "FetchDeleteForm",
                          "variables": {
                            "id": 48
                          },
                          "query": "mutation FetchDeleteForm($id: Int!) {  delete_form(id: $id) {    status    message    __typename  }}"
                        }
                    
                

Ответ:

                    
                        {
                          "data": {
                            "delete_form": {
                              "status": true,
                              "message": "OK",
                              "__typename": "submit"
                            }
                          }
                        }
                    
                

Создание заказа

Запрос:

                    
                       {
                          "operationName":"FetchSaveOrder",
                          "variables":{
                            "loading_depots":[{
                              "location":{
                                "lat":55.745656,
                                "lng":37.688306,
                                "postal_code":null,
                                "region":"г Москва",
                                "country":"RU",
                                "country_name":"Россия",
                                "city":"Москва",
                                "street":"Москва-Товарная",
                                "number":null,
                                "formatted":"г Москва, Москва-Товарная МЦД"
                              },
                              "date":"2020-03-23",
                              "time_slot":"01:00-02:00",
                              "title":"склад 1",
                              "contact_company":"компания 1",
                              "contact_name":"Иванов Иван Иванович",
                              "contact_phone":"89107777777"
                            }],
                            "unloading_depots":[{
                              "location":{
                                "lat":59.9391313,
                                "lng":30.3159004,
                                "postal_code":"198515",
                                "region":"г Санкт-Петербург",
                                "country":"RU",
                                "country_name":"Россия",
                                "city":"Санкт-Петербург",
                                "street":"Санкт-Петербургское",
                                "number":null,
                                "formatted":"198515, г Санкт-Петербург, Красносельский р-н, Санкт-Петербургское шоссе"
                              },
                              "date":"2020-03-24",
                              "time_slot":"02:00-03:00",
                              "title":"склад 2",
                              "contact_company":"компания 2",
                              "contact_name":"Петров Петр Петрович",
                              "contact_phone":"89204444444"
                            }],
                            "truck":"1",
                            "cargo_name":"печенье",
                            "cargo_temperature":"20",
                            "cargo_package":"коробки",
                            "cargo_items_count":"33",
                            "weight":"800",
                            "capacity":"10",
                            "comment":"текст комментария",
                            "expeditor_client":{
                                "name":"АО МОСТООТРЯД №34","address":"670042, РЕСПУБЛИКА БУРЯТИЯ, ГОРОД УЛАН-УДЭ, УЛИЦА ЖЕРДЕВА, 56 \"А\", 1",
                                "inn":"0323039647"
                            },
                            "internal_id":"333",
                            "edit_after_auction":true,
                            "filled":true,
                            "form_id":56
                          },
                          "query":"mutation FetchSaveOrder($loading_depots: [depot_input], $unloading_depots: [depot_input], $truck: Int, $cargo_name: String, $cargo_temperature: String, $cargo_package: String, $cargo_items_count: Int, $weight: Float, $capacity: Float, $comment: String, $expeditor_client: expeditor_company_input, $internal_id: String, $edit_after_auction: Boolean, $filled: Boolean, $form_id: Int) {  save_order(loading_depots: $loading_depots, unloading_depots: $unloading_depots, truck: $truck, cargo_name: $cargo_name, cargo_temperature: $cargo_temperature, cargo_package: $cargo_package, cargo_items_count: $cargo_items_count, weight: $weight, capacity: $capacity, comment: $comment, expeditor_client: $expeditor_client, internal_id: $internal_id, edit_after_auction: $edit_after_auction, filled: $filled, form_id: $form_id) {    status    message    __typename  }}"
                        }
                    
                

Ответ:

                    
                        {
                          "data":	{
                            "save_order":{
                              "status":true,
                              "message":"749",
                              "__typename":"submit"
                            }
                          }
                        }
                    
                

Создание аукциона

Запрос:

                    
                        {
                          "operationName":"FetchStartAuction",
                          "variables":{
                            "order":749,
                            "members":[
                              {
                                "carrier_company_id":2,
                                "start_price":"3000",
                                "start_nds":true
                              },
                              {
                                "carrier_company_id":1,
                                "start_price":"3000",
                                "start_nds":true
                              }
                            ],
                            "timeLimit":8,
                            "step":1000,
                            "showMinBet":false,
                            "biddingDisabled":true,
                            "minPriceIsMax":true
                          },
                          "query":"mutation FetchStartAuction($order: Int\u0021, $members: [member_input], $start_price: Float, $timeLimit: Float, $step: Int, $showMinBet: Boolean, $biddingDisabled: Boolean, $minPriceIsMax: Boolean) {  start_auction(order: $order, members: $members, start_price: $start_price, time_limit: $timeLimit, step: $step, show_min_bet: $showMinBet, bidding_disabled: $biddingDisabled, min_price_is_max: $minPriceIsMax) {    status    message    __typename}}"
                        }

                    
                

Ответ:

                    
                        {
                          "data":{
                            "start_auction":{
                              "status":true,
                              "message":"OK",
                              "__typename":"submit"
                            }
                          }
                        }

                    
                

Получение списка заказов с данными

Запрос:

                    
                        {
                          "operationName": "FetchOrderList",
                          "variables": {
                            "category": "active",
                            "page": 1,
                            "per_page": 15,
                            "created_at_from": null,
                            "created_at_to": null,
                            "user_id": null,
                            "order_ids": null
                          },
                          "query": "query FetchOrderList($category: String, $per_page: Int, $page: Int, $created_at_from: String, $created_at_to: String, $user_id: [Int], $order_ids: [Int]) {  order_list(category: $category, per_page: $per_page, page: $page, created_at_from: $created_at_from, created_at_to: $created_at_to, user_id: $user_id, order_ids: $order_ids) {    total    per_page    current_page    last_page    data {      id      loading_depots {        location {          lat          lng          country          city          formatted          __typename        }        contact_name        contact_company        date_start        date_end        contact_phone        title        type        main        __typename      }      unloading_depots {        location {          lat          lng          country          city          formatted          __typename        }        contact_name        contact_company        date_start        date_end        contact_phone        title        type        main        __typename      }      truck {        id        name        __typename      }      cargo_name      cargo_temperature      cargo_package      cargo_items_count      internal_id      comment      status      status_name      created_at      deleted_at      auction {        bets {          id          carrier_company {            id            name            inn            address            __typename          }          carrier_user {            email            name            surname            __typename          }          created_at          gross_price          net_price          nds          __typename        }        company_winner {          id          name          inn          address          __typename        }        start_gross_price        start_net_price        step        end_date        created_at        completed_at        __typename      }      gross_price      net_price      nds      filled      transport {        driver {          name          surname          patronymic          phone          date_of_birth          passport_serial          passport_number          passport_issue_date          passport_registration_department          driver_licence_number          driver_licence_issue_year          carrier_company {            name            inn            address            __typename          }          __typename        }        car {          brand {            name            __typename          }          truck {            name            __typename          }          production_year          licence          __typename        }        tractor {          brand {            name            __typename          }          production_year          licence          __typename        }        trailer {          brand {            name            __typename          }          truck {            name            __typename          }          production_year          licence          __typename        }        __typename      }      claim {        id        created_at        updated_at        client_sign_date        client_sign_type        carrier_sign_date        carrier_sign_type        link        __typename      }      weight      capacity      custom_fields_info      files {        entity_id        __typename      }      edit_after_auction      transporter_refusual {        comment        __typename      }      client_user {        email        phone        name        surname        __typename      }      deleted_user {        email        name        surname        __typename      }      __typename    }    __typename  }}"
                        }
                    
                

Ответ:

                    
                        {
                          "data": {
                            "order_list": {
                              "total": 1,
                              "per_page": 15,
                              "current_page": 1,
                              "last_page": 1,
                              "data": [
                                {
                                  "id": 583,
                                  "loading_depots": [
                                    {
                                      "location": {
                                        "lat": 54.773128,
                                        "lng": 20.611485,
                                        "country": "RU",
                                        "city": "Калининградская область",
                                        "formatted": "Россия, Калининградская область, Гурьевск, улица Ленина, 1",
                                        "__typename": "location"
                                      },
                                      "contact_name": "Нереприй Александр Македонович",
                                      "contact_company": "ООО \"К+\"",
                                      "date_start": "1555981200",
                                      "date_end": "1555988400",
                                      "contact_phone": "+7(912) 949-1241",
                                      "title": "РЦ Калининградский",
                                      "type": "loading",
                                      "main": true,
                                      "__typename": "depot"
                                    }
                                  ],
                                  "unloading_depots": [
                                    {
                                      "location": {
                                        "lat": 43.109152,
                                        "lng": 131.950352,
                                        "country": "RU",
                                        "city": "Владивосток",
                                        "formatted": "Россия, Приморский край, Владивосток, улица Мира, 1А",
                                        "__typename": "location"
                                      },
                                      "contact_name": "Ли Наталья Цзиевна",
                                      "contact_company": "ООО \"КитайПром 1995\"",
                                      "date_start": "1556542800",
                                      "date_end": "1556557200",
                                      "contact_phone": "+7(966) 124-8719",
                                      "title": "РЦ Владивосток",
                                      "type": "unloading",
                                      "main": true,
                                      "__typename": "depot"
                                    }
                                  ],
                                  "truck": {
                                    "id": 2,
                                    "name": "20-ка реф",
                                    "__typename": "truck"
                                  },
                                  "cargo_name": "Тунец",
                                  "cargo_temperature": "4",
                                  "cargo_package": "Коробки",
                                  "cargo_items_count": "160",
                                  "internal_id": "561823-12",
                                  "comment": "Рыбу не есть",
                                  "status": 100,
                                  "status_name": "Заказ создан",
                                  "created_at": "1555963384",
                                  "deleted_at": null,
                                  "auction": null,
                                  "gross_price": null,
                                  "net_price": null,
                                  "nds": true,
                                  "filled": true,
                                  "transport": null,
                                  "claim": null,
                                  "weight": 19000,
                                  "capacity": 60,
                                  "custom_fields_info": "{\"Имя чекбокса\": true, \"Имя поля даты\": \"2019-04-30\", \"Имя поля времени\": \"14:00-15:00\", \"Имя числового поля\": \"100\", \"Имя текстового поля\": \"Значение текстового поля\"}",
                                  "files": {
                                  },
                                  "edit_after_auction": true,
                                  "transporter_refusual": null,
                                  "client_user": {
                                    "email": "customer@test.ag",
                                    "phone": "+79199191919",
                                    "name": "Иоанн",
                                    "surname": "Первий",
                                    "__typename": "user"
                                  },
                                  "deleted_user": null,
                                  "__typename": "order"
                                }
                              ],
                              "__typename": "orders_pagination"
                            }
                          }
                        }
                    
                

Остались вопросы? Напишите нам:

Денис d@torgtrans.com

Схемы

Название схемы Документация
transporter Документация

Примеры запросов

Список водителей

Запрос:

                    
                        {
                          "operationName": "FetchDrivers",
                          "variables": {"per_page": 15, "page": 1}
                          "query": "query FetchDrivers($per_page: Int, $page: Int) {  drivers(per_page: $per_page, page: $page) {    total    per_page    current_page    last_page    data {      id      name      surname      patronymic      phone      __typename    }    __typename  }}"
                        }
                    
                

Ответ:

                    
                        "data":{
                            "drivers":{
                            "total":2,
                            "per_page":15,
                            "current_page":1,
                            "last_page":1,
                            "data":[
                                    {
                                        "id":4,
                                        "name":"Кирилл",
                                        "surname":"Кириллов",
                                        "patronymic":"Кириллович",
                                        "phone":"+79169999999",
                                        "__typename":"driver"
                                    },
                                    {
                                        "id":3,
                                        "name":"Николай",
                                        "surname":"Николаев",
                                        "patronymic":"Николаевич",
                                        "phone":"+79164444444",
                                        "__typename":"driver"
                                    }
                                    ],
                                    "__typename":"drivers_pagination"
                                }
                            }
                        }
                    
                

Остались вопросы? Напишите нам:

Денис d@torgtrans.com