JSON API

Версия

Программный интерфейс JSON API расположен по адресу https://xp.extrapost.ru/api/v1. Адрес интерфейса содержит номер версии. Каждая версия API будет доступна по своему адресу, с указанием своего номера версии.

Актуальной в настоящий момент является версия 1.

Аутентификация

Используется авторизация с помощью токена поверх HTTPS. Токен для доступа к API берётся на странице просмотра пользователя (Справочники -> Пользователи) и передаётся в поле заголовка HTTP-запроса Authorization:

curl --header 'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"' https://xp.extrapost.ru/api/v1/orders/135
 Создание заказа

curl -X POST --header 'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"' \
  --header "Content-Type: application/json" \
  -d '{"order":
         {"identifier":"1",
          "store_domain":"store.ru",
          "zip":"443099",
          "street":"ул. Ленина, д. 23, кв. 15",
          "name":"Сидоров Сергей Петрович",
          "email":"testslonmedia@gmail.com",
          "comment":"Отправляем.",
          "price":100.00,
          "prepaid": false,
          "line_items":{
                    "0":{ "product_title":"Часы мужские", "price":100.00, "quantity": 1}
       }}}' \
https://xp.extrapost.ru/api/v1/orders
Пример на PHP
$json = array('order' => array(
 'identifier' => 'ab234,
 'created_at' => '2016-05-12',
 'store_domain' => 'store.ru',
 'zip' => '443100',
 'region' => 'Самарская обл.',
 'town' => 'Самара',
 'street' => 'ул. Ленина, д. 23, кв. 15', 
 'name' => 'Сидоров Иван Петрович',
 'email' => 'sidorov@mail.com',
 'phone' => '+7 999 000 00 00',
 'comment' => 'Высылайте быстрее!',
 'price' => 1250.00,
 'prepaid' => false,
 'line_items' => array(
    '123' => array(
       'product_barcode' => '702234332434',
       'product_title' => 'Часы мужские A23',
       'price' => 1250.0,
       'quantity' => 1),
    '124' => array(
       'product_sku' => 'b23442',
       'price' => 1250.0,
       'quantity' => 1)
   )));
 
 $json_string = json_encode($json);
 
 $ch = curl_init('https://xp.extrapost.ru/api/v1/orders');
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
 curl_setopt($ch, CURLOPT_POSTFIELDS, $json_string);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER,
   array( 'Content-Type: application/json',
          'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"'));
 
 $result = curl_exec($ch);
 
 $extra_post_order = json_decode($result, true);
 $extra_post_order_id = $extra_post_order['id'];
 if ($extra_post_order_id) {
  // Успешно, помечаем заказ как выгруженный и сохраняем id.
 } else {
  // Ошибка. Записана в $result.
 }

Просмотр заказов, отправлений и товаров

Загружать списки заказов, отправлений и товаров можно запросами вида

GET https://xp.extrapost.ru/api/v1/orders?page=5&page_size=200
GET https://xp.extrapost.ru/api/v1/mailings?page=5
GET https://xp.extrapost.ru/api/v1/products?page_size=1000

Параметры page и page_size являются необязательными и служат для разбиения JSON-ответа на страницы. Размер страницы по-умолчнанию — 100.

Получить отдельный документ (Заказ, Отправлений или Товар) можно с помощью запроса типа:

GET https://xp.extrapost.ru/api/v1/orders/27
GET https://xp.extrapost.ru/api/v1/mailings/27
GET https://xp.extrapost.ru/api/v1/products/27

Где 27 — идентификатор документа.

Updating…
  • Корзина пуста.