RUS
  • ENG
  • RUS

Как изменить интеграцию с Partner API v1 на v2

Последние изменения: 06.02.2024

Документация по Partner API v2 

Часто задаваемые вопросы по API

Логическая схема запросов

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

Важно! в приведенных примерах ниже используется только схема изменений запросов и обработки ответов без учета добавления нового функицонала из Partner API v2.

1. Необходимо изменить url для интеграции

  • https://udsgame.com/v1/partner

изменяется на 

  • https://api.uds.app/partner/v2 

2. Изменить авторизацию запросов. 

Заголовок X-Api-Key заменяется на Basic auth.  Для этого требуется установить значение токена в http-заголовок Authorization. Значение токена - идентификатор вашей компании (company id) и секретный ключ (API Key), закодированные с помощью base64. Создать или получить имеющийся API Key можно на странице Интеграция.

  • "X-Api-Key: api_key"   

изменяется на  

  • "Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5"  

(где Y29tcGFueV9pZDphcGlfa2V5-- это закодированная в Base64 строка company_id:api_key)


3. Изменить запрос получения настроек компании

изменяется на 



Изменить обработку ответа запроса настроек компании 


  • "promoCode" -> остается "promoCode"

  • "baseDiscountPolicy" -> остается "baseDiscountPolicy"

  • "currency" -> остается "currency"

  • "id" ->  остается "id"

  • "purchaseByPhone" ->  остается  "purchaseByPhone"

  • "marketingSettings" -> изменяется на "loyaltyProgramSettings"

  • "marketingSettings"."discountBase -> изменяется на "baseMembershipTier"."rate"

  • "marketingSettings"."discountLevel1-> изменяется на "referralCashbackRates"[0]

  • "marketingSettings"."discountLevel2" -> изменяется на "referralCashbackRates"[1]

  • "marketingSettings"."discountLevel3" -> изменяется на "referralCashbackRates"[2]

  • "marketingSettings"."maxScoresDiscount" -> изменяется на "baseMembershipTier"."maxScoresDiscount"

  • "name->  остается "name"

4. Именить запрос поиска клиента 

изменяется на 


Параметр customerId не поддерживается в Partner API v2

Для возможности оплаты счета с разным процентом списания бонусов в зависимости от статуса клиента необходимо добавить параметр total - изначальная сумма счета за вычетом сторонних скидок (без учета скидок UDS и списанных бонусных баллов). 

Тогда в ответе поиска клиента в объекте purchase -> maxPoints вернется максимально допустимое количество баллов, которое может быть применено к этому чеку (зависит от параметра total)

Изменить обработку ответа запроса поиска клиента

  • "level" -> не поддерживается. Можно понять статус клиента по полю "user"."participant"."membershipTier"."name"

  • "discountRate" -> изменяется на "user"."participant"."membershipTier"."rate"

  • "scores" -> изменяется на "user"."participant"."points"

  • "dateCreated" -> не поддерживается. Можно использовать дату вступления в компаниюю (при условия вступления в компанию) "user"."participant"."dateCreated"

  • "id" -> не поддерживается

  • "skype" -> не поддерживается

  • "vip" -> не поддерживается. Можно понять статус клиента по полю "user"."participant"."membershipTier"."name"

  • "name": -> не поддерживается. Можно использовать объединенное поле  "user"."displayName"

  • "birthday"-> не поддерживается. Можно понять дату рождения (при наличии) по полю "user"."birthDate"

  • "gender"-> изменяется на "user"."gender"

  • "instagram" -> не поддерживается

  • "uid" -> изменяется на"user"."uid"

  • "birthDate" -> изменяется на "user"."birthDate"

  • "participantId" -> изменяется на "user"."participant"."id"

  • "surname" -> не поддерживается. Можно использовать объединенное поле "user"."displayName"

  • "email" -> изменяется на "user"."email"

  • "avatar" -> изменяется на "user"."avatar"

  • "participant" -> не поддерживается. Можно понять является ли клиент участником компани по не пустому полю "user"."participant"."id"

5. Именить запрос проведения операции

изменяется на

  • POST 'https://api.uds.app/partner/v2/operations' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5' \
    --data '{
        "code": 123456, (указать код клиента из приложения UDS App). В v1 параметр "code"
        "participant": {
            "uid": null, (указать uid клиента). В v1 параметр "uid"
            "phone": null (указать номер телефона клиента в международном формате +79123456789). В v1 параметр "phone"
        },
        "cashier": {
            "externalId": "11112" (указать внешний идентификатор кассира). В v1 параметр "cashierExternalId"
        },
        "receipt": { 
            "total": "11", (указать сумму чека). В v1 параметр "total"
            "cash": "11", (указать сумму деньгами). В v1 параметр "cash"
            "points": "00", (указать сумму оплаты бонусами). В v1 параметр "scores"
            "number": "123" (указать номер чека). В v1 параметр "invoiceNumber"
        }
    }'


Изменить обработку ответа запроса проведения операции

  • "operation"-> не поддерживается. В v2 в ответе на уровень вложенности меньше возвращается в ответе

  • "operation"."cash" -> изменяется на "cash"

  • "operation"."cashier -> изменяется на "cashier"

  • "operation"."cashier"."email" -> не поддерживается

  • "operation"."cashier". "externalId" -> не поддерживается

  • "operation"."cashier"."name" -> изменяется на  "cashier"."displayName"

  • "operation"."customer" -> изменяется на "customer"

  • "operation"."customer"."id" -> не поддерживается

  • "operation"."customer"."surname" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"

  • "operation"."customer"."name" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"

  • "operation"."dateCreated" -> изменяется на "dateCreated"

  • "operation"."id" -> изменяется на "id"

  • "operation"."marketingSettings" -> изменяется на "customer"."membershipTier". Важно! Возвращается только значение базового статуса

  • "operation"."marketingSettings"."discountBase" -> изменяется на "customer"."membershipTier"."rate". Важно! Возвращается только значение базового статуса

  • "operation"."marketingSettings"."discountLevel1" -> не поддерживается

  • "operation"."marketingSettings"."discountLevel2"-> не поддерживается

  • "operation"."marketingSettings"."discountLevel3" -> не поддерживается

  • "operation"."marketingSettings"."maxScoresDiscount" -> изменяется на "customer"."membershipTier"."maxScoresDiscount". Важно! Возвращается только значение базового статуса

  • "operation"."participantId" -> изменяется на "customer"."id"

  • "operation"."scoresDelta" -> изменяется на "points"

  • "operation". "total" -> изменяется на "total"

6. Именить запрос проведения возврата по операции

изменяется на


Изменить обработку ответа запроса проведения возврата по операции

  • "cash" -> остается "cash"

  • "cashier" -> остается "cashier"

  • "cashier"."email" -> не поддерживается

  • "cashier"."externalId"  -> не поддерживается

  • "cashier"."name" -> изменяется на "cashier"."displayName"

  • "customer-> остается "customer"

  • "customer"."id" -> не поддерживается

  • "customer"."surname" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"

  • "customer"."name" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"

  • "dateCreated"-> остается "dateCreated"

  • "id" -> остается "id"

  • "marketingSettings" -> изменяется на "customer"."membershipTier". Важно! Возвращается только значение базового статуса

  • "marketingSettings"."discountBase" -> изменяется на "customer"."membershipTier"."rate". Важно! Возвращается только значение базового статуса

  • "marketingSettings"."discountLevel1-> не поддерживается

  • "marketingSettings"."discountLevel2" -> не поддерживается

  • "marketingSettings"."discountLevel3" -> не поддерживается

  • "marketingSettings"."maxScoresDiscount" -> изменяется на "customer"."membershipTier"."maxScoresDiscount". Важно! Возвращается только значение базового статуса

  • "participantId" -> изменяется на "customer"."id"

  • "scoresDelta" -> изменяется на "points"

  • "total" -> остается "total"

    Помогла ли вам статья?