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"`
|
||
}
|