234 lines
15 KiB
Go
234 lines
15 KiB
Go
|
package v2
|
|||
|
|
|||
|
// ResponseEntity Информация о заказе
|
|||
|
type ResponseEntity struct {
|
|||
|
// Uuid Идентификатор заказа в ИС СДЭК
|
|||
|
Uuid string `json:"uuid,omitempty"`
|
|||
|
// Comment комментарий
|
|||
|
Comment string `json:"comment,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type ResponseErr struct {
|
|||
|
// Message Описание ошибки
|
|||
|
Message string `json:"message"`
|
|||
|
// Code string Код ошибки
|
|||
|
Code string `json:"code"`
|
|||
|
}
|
|||
|
|
|||
|
// ResponseRequests Информация о запросе над заказом
|
|||
|
type ResponseRequests struct {
|
|||
|
// RequestUuid Идентификатор запроса в ИС СДЭК
|
|||
|
RequestUuid string `json:"request_uuid,omitempty"`
|
|||
|
// Type Тип запроса. Может принимать значения: CREATE, UPDATE, DELETE, AUTH, GET
|
|||
|
Type string `json:"type"`
|
|||
|
// State Текущее состояние запроса. Может принимать значения:
|
|||
|
// ACCEPTED - пройдена предварительная валидация и запрос принят
|
|||
|
// WAITING - запрос ожидает обработки (зависит от выполнения другого запроса)
|
|||
|
// SUCCESSFUL - запрос обработан успешно
|
|||
|
// INVALID - запрос обработался с ошибкой
|
|||
|
State string `json:"state"`
|
|||
|
// DateTime Дата и время установки текущего состояния запроса (формат yyyy-MM-dd'T'HH:mm:ssZ)
|
|||
|
DateTime string `json:"date_time"`
|
|||
|
// Errors Ошибки, возникшие в ходе выполнения запроса
|
|||
|
Errors []ResponseErr `json:"errors,omitempty"`
|
|||
|
// Warnings Предупреждения, возникшие в ходе выполнения запроса
|
|||
|
Warnings []ResponseErr `json:"warnings,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
// ResponseRelatedEntities Связанные сущности (если в запросе был передан корректный print)
|
|||
|
type ResponseRelatedEntities struct {
|
|||
|
// Type Тип связанной сущности. Может принимать значения: waybill - квитанция к заказу, barcode - ШК места к заказу
|
|||
|
Type string `json:"type"`
|
|||
|
// Uuid Идентификатор сущности, связанной с заказом
|
|||
|
Uuid string `json:"uuid"`
|
|||
|
// Url Ссылка на скачивание печатной формы в статусе "Сформирован", только для type = waybill, barcode
|
|||
|
Url string `json:"url,omitempty"`
|
|||
|
// CdekNumber Номер заказа СДЭК. Может возвращаться для return_order, direct_order, reverse_order
|
|||
|
CdekNumber string `json:"cdek_number,omitempty"`
|
|||
|
// Date Дата доставки, согласованная с получателем. Только для типа delivery
|
|||
|
Date string `json:"date,omitempty"`
|
|||
|
// TimeFrom Время начала ожидания курьера (согласованное с получателем). Только для типа delivery
|
|||
|
TimeFrom string `json:"time_from,omitempty"`
|
|||
|
// Date Время окончания ожидания курьера (согласованное с получателем). Только для типа delivery
|
|||
|
TimeTo string `json:"time_to,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Response struct {
|
|||
|
Entity ResponseEntity `json:"entity,omitempty"`
|
|||
|
Requests []ResponseRequests `json:"requests"`
|
|||
|
RelatedEntities *ResponseRelatedEntities `json:"related_entities,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Location struct {
|
|||
|
// Code Код населенного пункта СДЭК (метод "Список населенных пунктов")
|
|||
|
Code int `json:"code,omitempty"`
|
|||
|
// FiasGuid Уникальный идентификатор ФИАС UUID
|
|||
|
FiasGuid string `json:"fias_guid,omitempty"`
|
|||
|
// PostalCode Почтовый индекс
|
|||
|
PostalCode string `json:"postal_code,omitempty"`
|
|||
|
// Longitude Долгота
|
|||
|
Longitude float64 `json:"longitude,omitempty"`
|
|||
|
// Latitude Широта
|
|||
|
Latitude float64 `json:"latitude,omitempty"`
|
|||
|
// CountryCode
|
|||
|
CountryCode string `json:"country_code,omitempty"`
|
|||
|
// Region Название региона
|
|||
|
Region string `json:"region,omitempty"`
|
|||
|
// RegionCode Код региона СДЭК
|
|||
|
RegionCode int `json:"region_code,omitempty"`
|
|||
|
// SubRegion Название района региона
|
|||
|
SubRegion string `json:"sub_region,omitempty"`
|
|||
|
// City Название города
|
|||
|
City string `json:"city,omitempty"`
|
|||
|
// Address Строка адреса
|
|||
|
Address string `json:"address"`
|
|||
|
}
|
|||
|
|
|||
|
type Package struct {
|
|||
|
// Number Номер упаковки (можно использовать порядковый номер упаковки заказа или номер заказа), уникален в пределах заказа. Идентификатор заказа в ИС Клиента
|
|||
|
Number string `json:"number"`
|
|||
|
// Weight Общий вес (в граммах)
|
|||
|
Weight int `json:"weight"`
|
|||
|
// Comment Комментарий к упаковке. Обязательно и только для заказа типа "доставка"
|
|||
|
Comment string `json:"comment,omitempty"`
|
|||
|
// Height Габариты упаковки. Высота (в сантиметрах). Поле обязательно если:
|
|||
|
// если указаны остальные габариты
|
|||
|
// если заказ до постамата
|
|||
|
// если общий вес >=100 гр
|
|||
|
Height int `json:"height,omitempty"`
|
|||
|
// Length Габариты упаковки. Длина (в сантиметрах). Поле обязательно если:
|
|||
|
// если указаны остальные габариты
|
|||
|
// если заказ до постамата
|
|||
|
// если общий вес >=100 гр
|
|||
|
Length int `json:"length,omitempty"`
|
|||
|
// Width Габариты упаковки. Ширина (в сантиметрах). Поле обязательно если:
|
|||
|
// если указаны остальные габариты
|
|||
|
// если заказ до постамата
|
|||
|
// если общий вес >=100 гр
|
|||
|
Width int `json:"width,omitempty"`
|
|||
|
// Items Позиции товаров в упаковке. Только для заказов "интернет-магазин". Максимум 126 уникальных позиций в заказе. Общее количество товаров в заказе может быть от 1 до 10000
|
|||
|
Items []PackageItem `json:"items,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type PackageItem struct {
|
|||
|
// Name Наименование товара (может также содержать описание товара: размер, цвет)
|
|||
|
Name string `json:"name"`
|
|||
|
// WareKey Идентификатор/артикул товара. Артикул товара может содержать только символы: [A-z А-я 0-9 ! @ " # № $ ; % ^ : & ? * () _ - + = ? < > , .{ } [ ] \ / , пробел]
|
|||
|
WareKey string `json:"ware_key"`
|
|||
|
// Marking Маркировка товара. Если для товара/вложения указана маркировка, Amount не может быть больше 1.
|
|||
|
// Для корректного отображения маркировки товара в чеке требуется передавать НЕ РАЗОБРАННЫЙ тип маркировки, который может выглядеть следующим образом:
|
|||
|
// 1) Код товара в формате GS1. Пример: 010468008549838921AAA0005255832GS91EE06GS92VTwGVc7wKCc2tqRncUZ1RU5LeUKSXjWbfNQOpQjKK+A
|
|||
|
// 2) Последовательность допустимых символов общей длиной в 29 символов. Пример: 00000046198488X?io+qCABm8wAYa
|
|||
|
// 3) Меховые изделия. Имеют собственный формат. Пример: RU-430302-AAA7582720
|
|||
|
Marking string `json:"marking,omitempty"`
|
|||
|
// Payment Оплата за товар при получении (за единицу товара в валюте страны получателя, значение >=0) — наложенный платеж, в случае предоплаты значение = 0
|
|||
|
Payment Payment `json:"payment"`
|
|||
|
// Cost Объявленная стоимость товара (за единицу товара в валюте взаиморасчетов, значение >=0). С данного значения рассчитывается страховка
|
|||
|
Cost float64 `json:"cost"`
|
|||
|
// Amount Количество единиц товара (в штуках). Количество одного товара в заказе может быть от 1 до 999
|
|||
|
Amount int `json:"amount"`
|
|||
|
// NameI18N Наименование на иностранном языке. Только для международных заказов
|
|||
|
NameI18N string `json:"name_i18n,omitempty"`
|
|||
|
// Brand Бренд на иностранном языке. Только для международных заказов
|
|||
|
Brand string `json:"brand,omitempty"`
|
|||
|
// CountryCode Бренд на иностранном языке. Только для международных заказов
|
|||
|
CountryCode string `json:"country_code,omitempty"`
|
|||
|
// Weight Вес (за единицу товара, в граммах)
|
|||
|
Weight int `json:"weight"`
|
|||
|
// WeightGross Вес брутто. Только для международных заказов
|
|||
|
WeightGross int `json:"weight_gross,omitempty"`
|
|||
|
// Material Код материала (подробнее см. приложение 4). Только для международных заказов
|
|||
|
Material string `json:"material,omitempty"`
|
|||
|
// WifiGsm Содержит wifi/gsm. Только для международных заказов
|
|||
|
WifiGsm bool `json:"wifi_gsm,omitempty"`
|
|||
|
// Url Ссылка на сайт интернет-магазина с описанием товара. Только для международных заказов
|
|||
|
Url string `json:"url,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Payment struct {
|
|||
|
// Value Сумма наложенного платежа (в случае предоплаты = 0)
|
|||
|
Value int `json:"value"`
|
|||
|
// VatSum Сумма НДС
|
|||
|
VatSum int `json:"vat_sum,omitempty"`
|
|||
|
// VatRate Ставка НДС (значение - 0, 10, 20, null - нет НДС)
|
|||
|
VatRate int `json:"vat_rate,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Cost struct {
|
|||
|
// Sum Доп. сбор за доставку товаров, общая стоимость которых попадает в интервал
|
|||
|
Sum int `json:"sum"`
|
|||
|
// Threshold Порог стоимости товара (действует по условию меньше или равно) в целых единицах валюты
|
|||
|
Threshold int `json:"threshold"`
|
|||
|
// VatSum Сумма НДС
|
|||
|
VatSum int `json:"vat_sum,omitempty"`
|
|||
|
// VatRate Ставка НДС (значение - 0, 10, 20, null - нет НДС)
|
|||
|
VatRate int `json:"vat_rate,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Phone struct {
|
|||
|
// Number Номер телефона. Должен передаваться в международном формате: код страны (для России +7) и сам номер (10 и более цифр)
|
|||
|
// Обязателен если: нет, если заказ типа "интернет-магазин". да, если заказ типа "доставка"
|
|||
|
Number string `json:"number,omitempty"`
|
|||
|
// Additional Дополнительная информация (добавочный номер)
|
|||
|
Additional string `json:"additional,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type RecipientSender struct {
|
|||
|
// Name нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
|
|||
|
Name string `json:"name,omitempty"`
|
|||
|
// Company Название компании. нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
|
|||
|
Company string `json:"company,omitempty"`
|
|||
|
// Email Эл. адрес. нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
|
|||
|
Email string `json:"email,omitempty"`
|
|||
|
// PassportSeries Серия паспорта
|
|||
|
PassportSeries string `json:"passport_series,omitempty"`
|
|||
|
// PassportNumber Номер паспорта
|
|||
|
PassportNumber string `json:"passport_number,omitempty"`
|
|||
|
// PassportDateOfIssue Дата выдачи паспорта
|
|||
|
PassportDateOfIssue string `json:"passport_date_of_issue,omitempty"`
|
|||
|
// PassportOrganization Орган выдачи паспорта
|
|||
|
PassportOrganization string `json:"passport_organization,omitempty"`
|
|||
|
// Tin ИНН Может содержать 10, либо 12 символов
|
|||
|
Tin string `json:"tin,omitempty"`
|
|||
|
// PassportDateOfBirth Дата рождения (yyyy-MM-dd)
|
|||
|
PassportDateOfBirth string `json:"passport_date_of_birth,omitempty"`
|
|||
|
// PassportRequirementsSatisfied Требования по паспортным данным удовлетворены (актуально для
|
|||
|
// международных заказов):
|
|||
|
// true - паспортные данные собраны или не требуются
|
|||
|
// false - паспортные данные требуются и не собраны
|
|||
|
PassportRequirementsSatisfied bool `json:"passport_requirements_satisfied,omitempty"`
|
|||
|
// Phones Список телефонов, Не более 10 номеров
|
|||
|
Phones []Phone `json:"phones,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Seller struct {
|
|||
|
// Name Наименование истинного продавца. Обязателен если заполнен inn
|
|||
|
Name string `json:"name,omitempty"`
|
|||
|
// INN ИНН истинного продавца. Может содержать 10, либо 12 символов
|
|||
|
INN string `json:"inn,omitempty"`
|
|||
|
// Phone Телефон истинного продавца. Обязателен если заполнен inn
|
|||
|
Phone string `json:"phone,omitempty"`
|
|||
|
// OwnershipForm Код формы собственности (подробнее см. приложение 2). Обязателен если заполнен inn
|
|||
|
OwnershipForm int `json:"ownership_form,omitempty"`
|
|||
|
// Address Адрес истинного продавца. Используется при печати инвойсов для отображения адреса настоящего
|
|||
|
// продавца товара, либо торгового названия. Только для международных заказов "интернет-магазин".
|
|||
|
// Обязателен если заказ - международный
|
|||
|
Address string `json:"address,omitempty"`
|
|||
|
}
|
|||
|
|
|||
|
type Service struct {
|
|||
|
// Code Тип дополнительной услуги (подробнее см. приложение 3)
|
|||
|
Code string `json:"code"`
|
|||
|
// Parameter Параметр дополнительной услуги:
|
|||
|
// количество для услуг
|
|||
|
// PACKAGE_1, COURIER_PACKAGE_A2, SECURE_PACKAGE_A2, SECURE_PACKAGE_A3, SECURE_PACKAGE_A4,
|
|||
|
// SECURE_PACKAGE_A5, CARTON_BOX_XS, CARTON_BOX_S, CARTON_BOX_M, CARTON_BOX_L, CARTON_BOX_500GR,
|
|||
|
// CARTON_BOX_1KG, CARTON_BOX_2KG, CARTON_BOX_3KG, CARTON_BOX_5KG, CARTON_BOX_10KG, CARTON_BOX_15KG,
|
|||
|
// CARTON_BOX_20KG, CARTON_BOX_30KG, CARTON_FILLER (для всех типов заказа)
|
|||
|
// объявленная стоимость заказа для услуги INSURANCE (только для заказов с типом "доставка")
|
|||
|
// длина для услуг BUBBLE_WRAP, WASTE_PAPER (для всех типов заказа)
|
|||
|
// номер телефона для услуги SMS
|
|||
|
// код фотопроекта для услуги PHOTO_DOCUMENT
|
|||
|
Parameter string `json:"parameter,omitempty"`
|
|||
|
}
|