В запросах не может быть указано более одной карты/номера телефона.

При запросе карты по номеру карты/телефона в ответ будет передаваться карта с клиентом, у которого заполнено поле personaloffer с актуальными на время запроса индивидуальными предложениями. Если для клиента не найдено ни одно актуальное индивидуальное предложение, то вернется пустое значение.


swagger: '2.0'
host: lcoalhost:8096
basePath: /
tags:
  - name: Сервис artixcs-online-card для получения карт клиентов
    description: Показать/скрыть методы
paths:
  /v1/cards/list/by/phonenumber/{phoneNumber}:
    get:
      tags:
        - Сервис artixcs-online-card для получения карт клиентов
      summary: Получить карты по номеру телефона
      operationId: getCardsByPhoneNumberUsingGET
      produces:
        - '*/*'
      parameters:
        - name: phoneNumber
          in: path
          description: Номер телефона
          required: false
          type: string
      responses:
        '200':
          description: OK
          schema:
            type: array
            items:
              $ref: '#/definitions/Упрощенная модель карты'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      deprecated: false
  /v1/cards/number/{cardNumber}:
    get:
      tags:
        - Сервис artixcs-online-card для получения карт клиентов
      summary: Получить карту по номеру карты
      operationId: getCardByNumberUsingGET
      produces:
        - '*/*'
      parameters:
        - name: cardNumber
          in: path
          description: Номер карты
          required: false
          type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/Карта'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      deprecated: false
  /v1/cards/phonenumber/{phoneNumber}:
    get:
      tags:
        - Сервис artixcs-online-card для получения карт клиентов
      summary: Получить карту по номеру телефона
      operationId: getCardByPhonenumberUsingGET
      produces:
        - '*/*'
      parameters:
        - name: phoneNumber
          in: path
          description: Номер телефона
          required: false
          type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/Карта'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      deprecated: false
  /version:
    get:
      tags:
        - Сервис artixcs-online-card для получения карт клиентов
      summary: Получить информацию о версии сервиса
      operationId: getVersionUsingGET
      produces:
        - '*/*'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/Version'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      deprecated: false
definitions:
  Группа карт:
    type: object
    properties:
      additionalregistration:
        type: integer
        format: int32
        example: 0 или NULL - нет, другое значение - да
        description: Запрашивать дополнительную регистрацию карты
      bonususecase:
        type: integer
        format: int32
        example: 0 - скидка, 1 - оплата
        description: Способ применения бонусов
      cardmode:
        type: integer
        format: int32
        example: 0 - Дисконтная, 1 - Бонусная, 2 - Артикс:Дисконт, 3 - Карта Динект, 5 - Карта Террасофт, 6 - Социальная карта, 7 - RS.Loyalty, 8 - CardLab, 9 - Золотая корона, 10 - EPS, 11 - Loymax, 12 - ABMLoyalty, 14 - Manzana Loyalty, 15 - Loya, 17 - UDS, 18 - Plazius, 19 - Manzana2019
        description: Тип карты
      discounttype:
        type: integer
        format: int32
        example: 0 - процентная, 1 - абсолютная, 2 - индексная
        description: Тип скидки
      discountvalue:
        type: number
        description: Значение скидки
      idcardgroup:
        type: integer
        format: int32
        description: Идентификационный номер группы карт
      inputmask:
        type: integer
        format: int32
        example: 0 - не определено, 1 - вручную, 2 - сканер штрих-кода, 4 - ридер карт, 8 - банковский терминал, 16 - получение данных удаленно с сервера
        description: Способ ввода карт из группы
      lenbeg:
        type: integer
        format: int32
        description: Начало диапазона длин номеров карт
      lenend:
        type: integer
        format: int32
        description: Конец диапазона длин номеров карт
      name:
        type: string
        description: Наименование группы карт
      notaddemptycard:
        type: integer
        format: int32
        example: 0 - нет, 1 - да
        description: Не добавлять в чек карты из данной группы карт, если они не найдены в БД
      prefixbeg:
        type: string
        description: Начало диапазона префикса номеров карт
      prefixend:
        type: string
        description: Конец диапазона префикса номеров карт
      printinfo:
        type: boolean
        example: false
        description: Печать квитанции с информацией о бонусах
      regexpattern:
        type: string
        description: Маска номеров карт (регулярное выражение)
      regexrule:
        type: string
        description: Правило преобразования номера карты (регулярное выражение)
      searchrule:
        type: integer
        format: int32
        example: 0 или NULL - поиск карт происходит локально в БД кассы в справочнике карт, 1 - поиск карт происходит локально в БД кассы по номеру телефона, 2 - поиск карт происходит удаленно в БД кассового сервера, 3 - поиск карт по хэшу номера карты
        description: Правило поиска карт
      showinfo:
        type: boolean
        example: false
        description: Показывать информацию по карте после ввода
      text:
        type: string
        description: Описание группы карты
      userawdata:
        type: boolean
        example: false
        description: Правило обработки номера карты перед отправкой на сервер
      valutcode:
        type: integer
        format: int32
        description: Код валюты
    title: Группа карт
  Карта:
    type: object
    properties:
      blocked:
        type: integer
        format: int32
        example: 1 - заблокирована, 0 - доступна
        description: Признак блокировки
      cardSum:
        type: number
        description: Баланс карты
      cardgroup:
        description: Идентификационный номер группы карт
        $ref: '#/definitions/Группа карт'
      cardstatus:
        type: integer
        format: int32
        example: 0 - Анонимная, доступно только начисление, 1 - Активная, доступно начисление и списание, 2 - Заблокирована, выполнение любых операций запрещено, 3 - возможна только оплата
        description: Статус карты
      client:
        description: Идентификационный номер клиента
        $ref: '#/definitions/Клиент'
      discountpercent:
        type: number
        description: Процент скидки
      idcard:
        type: string
        description: Идентификационный номер карты
      lastKnownBonusBalance:
        type: number
        description: Баланс бонусов по последнему запросу (последнее использование карты)
      lastKnownBonusBalanceDate:
        type: string
        format: date-time
        description: Дата последнего запроса баланса бонусов (последнее использование карты)
      multiplicator:
        type: number
        description: Мультипликатор карты
      multiplicatorbeg:
        type: string
        description: Дата начала действия мультипликатора
      multiplicatorcurrent:
        type: number
        description: Текущий мультипликатор (по умолчанию)
      multiplicatorend:
        type: string
        description: Дата окончания действия мультипликатора
      number:
        type: string
        description: Номер карты
      pincode:
        type: string
        description: Пинкод карты
      purchases:
        type: integer
        format: int32
        description: Количество покупок
      shopcode:
        type: string
        description: Код домашнего магазина
      validitydatebeg:
        type: string
        format: date-time
        description: Дата начала действия карты
      validitydateend:
        type: string
        format: date-time
        description: Дата окончания действия карты
    title: Карта
  Клиент:
    type: object
    properties:
      address:
        type: string
        description: Адрес клиента
      birthday:
        type: string
        format: date-time
        description: День рождения
      childrencount:
        type: integer
        format: int32
        description: Количество детей клиента
      codeword:
        type: string
        description: Кодовое слово
      document:
        type: string
        description: Данные документа клиента (паспорт, водительское удостоверение и т.д.)
      email:
        type: string
        description: Электронный адрес (E-mail)
      extendedoptions:
        type: string
        description: Дополнительные параметры
      idclient:
        type: string
        description: Идентификационный номер клиента
      inn:
        type: string
        description: ИНН
      name:
        type: string
        description: ФИО клиента
      occupation:
        type: string
        description: Род занятий
      okpd:
        type: string
        description: ОКПД
      okpo:
        type: string
        description: ОКПО
      options:
        type: integer
        format: int32
        example: 0 – нет установленных опций, 1 – отправлять чек на e-mail, 2 – e-mail подтвержден
        description: Дополнительные опции
      organizationcode:
        type: string
        description: Уникальный код организации
      personaloffer:
        type: object
        description: Индивидуальные предложения клиенту. Map<String, String>, где ключ - название индивидуального предложения, значение - содержимое индивидуального предложения
        additionalProperties:
          type: object
      phonenumber:
        type: string
        description: Телефонный номер клиента
      segments:
        type: object
        description: Клиентские сегменты. Map<String, String>, где ключ - название сегмента, значение - значение
        additionalProperties:
          type: object
      sex:
        type: integer
        format: int32
        example: 0 - мужской, 1 - женский
        description: Пол клиента
      specialdate1:
        type: string
        format: date-time
        description: Первая особая дата клиента
      specialdate1name:
        type: string
        description: Название первой особой(специальной) даты
      specialdate2:
        type: string
        format: date-time
        description: Вторая особая дата клиента
      specialdate2name:
        type: string
        description: Название второй особой(специальной) даты
      specialdate3:
        type: string
        format: date-time
        description: Третья особая дата клиента
      specialdate3name:
        type: string
        description: Название третьей особой(специальной) даты
      subscriptionadj:
        type: integer
        format: int32
        example: 0 или NULL – не согласен на рассылку, 1 – согласен на рассылку
        description: Согласие на рассылку
      text:
        type: string
        description: Дополнительная информация
      userid:
        type: string
        description: Идентификатор пользователя
      webpage:
        type: string
        description: Web-страница
      zipcode:
        type: string
        description: Почтовый индекс клиента
    title: Клиент
  Упрощенная модель карты:
    type: object
    properties:
      number:
        type: string
        description: Номер карты
    title: Упрощенная модель карты
  Version:
    type: object
    properties:
      version:
        type: string
        description: Версия
    title: Version

Если не найден клиент по телефону, то будет выдана ошибка:

Client with phonenumber <номер_телефона> not found.

Если найдено больше одного клиента, то будет выдана ошибка:

Found more than one client with phonenumber <номер_телефона>.

Если не найдена карта для клиента, то будет выдана ошибка:

No card found by phonenumber <номер_телефона>.

Если у клиента более одной активной карты, то будет выдана ошибка:

Found more than one card by phonenumber <номер_телефона>.

При получении карты по номеру телефона проверяется блокировка карты и ее статус.