Session

The end point /identity-service/session provides 4 methods for creation, validation, removing a session and changing session's context

Create session

API to sign in. Takes JSON object with the following fields:

  • email — user's email address. May be used only for accounts registered with email (see reg_type in account creation API).
  • phone — used's phone number. May be used only for accounts registered with phone number.
  • participant, nickname — participant number and user nickname. May be used only for accounts registered by a participant with nickname.
  • username — alias for email parameter, kept for compatibility.
  • password — user's password. The parameter is required.
  • country — country code.
  • language — language code.

Either email or phone is required.

If session is requested for a merged user, session for the primary merged user account will be created and merged_user will be set to true in the response.

POST /identity-service/session
Example Request. Account has been activated
{
  "email": "punchyrat@mailinator.com",
  "password":"qwerty",
  "country": "028",
  "language":"ru",
  "timeout": 900
}
Example Response. Account has been activated
{
  "current_participant": "urn:authenticateit:participant:841535075581481",
  "id": "urn:authenticateit:user:email:punchyrat@mailinator.com",
  "merged_user": false,
  "modules": [
    "product360",
    "reviews",
    "livechat",
    "rewards",
    "retail_connect"
  ],
  "name": "Punch",
  "roles": [
    "retail_connect_admin",
    "retail_connect_operator",
    "contributors_moderator",
    "serialization_viewer",
    "security_admin",
    "supply_chain",
    "product_line",
    "newsline",
    "contributors_supervisor",
    "rewards_admin",
    "user"
  ],
  "ticket": "90fd184e-8a91-4a3b-abe5-106b7298e714"
}

If the user did not activate the account, he can resend activation email by token (for email registered accounts). Limit for resend activation email is 5.

Example Response. Account hasn't been activated
{
    "token": "65f5a461-111f-401c-8efc-2be0d305bb2d"
}

Validate session

GET /identity-service/session
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
timeout url Ticket timeout (sec)
Example Response
{
  "current_participant": "urn:authenticateit:participant:841535075581481",
  "id": "urn:authenticateit:user:email:punchyrat@mailinator.com",
  "modules": [
    "product360",
    "reviews",
    "livechat",
    "rewards",
    "retail_connect"
  ],
  "name": "Punch",
  "roles": [
    "retail_connect_admin",
    "retail_connect_operator",
    "contributors_moderator",
    "serialization_viewer",
    "security_admin",
    "supply_chain",
    "product_line",
    "newsline",
    "contributors_supervisor",
    "rewards_admin",
    "user"
  ],
  "ticket": "90fd184e-8a91-4a3b-abe5-106b7298e714"
}

Remove session

DELETE /identity-service/session
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket

Switch context

POST /identity-service/session/switch-context
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
new_participant string Required: Participant's id
timeout integer Ticket timeout (sec)
Example Response
{
  "current_participant": "urn:authenticateit:participant:896865553032438",
  "timeout": 900,
  "participants": [
    {
      "address": "Lenina Str.",
      "city": "Some City",
      "company_prefix": [
        "0000026"
      ],
      "contact": "ContactName",
      "country": "020",
      "email": "foo@bar.ru",
      "facebook_url": "facebook.com/12345",
      "id": "urn:authenticateit:participant:841535075581481",
      "last_access": "2017-09-03T12:49:08Z",
      "logo": "http://dev-cdn.shping.com.s3.amazonaws.com/file2.png",
      "modules": [
        "product360",
        "reviews",
        "livechat",
        "rewards"
      ],
      "name": "ZippityElf",
      "parent": "urn:authenticateit:participant:1",
      "participant_type": [
        "product360"
      ],
      "phone": "+7919000000121",
      "post_code": "1234",
      "roles": [
        "user",
        "rewards_admin",
        "contributors_supervisor",
        "user",
        "newsline",
        "product_line",
        "supply_chain",
        "security_admin",
        "serialization_viewer",
        "contributors_moderator"
      ]
    }
  ]
}

Account

The end point /identity-service/account provides methods for creation and activation of account. Also it handles requests to retrieve current account information, delete and update the account.

Get STS session token

GET /identity-service/account/sts/session_token
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
    "access_key_id": "ASIAVXJOLKOJGBG3IS7R",
    "events_stream": "shping-dev-events-stream",
    "expiration": "2020-07-17T23:23:14Z",
    "region": "ap-southeast-2",
    "secret_access_key": "dtPZlpslGYSWJy2bb1EVp1Vzr3Kc3W72rR8q/Eup",
    "session_token": "FwoGZXIvYXdzECUaDHz7va2L3S02EZcFdSKCAU+PyOJx8P16MqI8HApolTUtKiVjynhEo7PMEpBMApJp78Ml54IICP4pxPWMoKcpbTxCFEanW1FM1kIQOtUZqE6BJ4ZoD2ny2eN6rAB9d8caBW50XwW+J8qiEzR/RWbl7RCPXQLAhZjgoie3c89RQtAbsTK8ig4797nGuvJazOd3DYAoovHA+AUyKIOxCXunY94cKeQuRvDGLqreN4IvBrm0lJuX6zr51RXJwgaxiQRyako="
}

Read summary rewards

GET /identity-service/account/rewards
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
country string Country code (optional)

List of ids:

["barcode_scan",
"store_checkin",
"add_receipt",
"per_product_on_uploaded_receipt",
"per_partner_brand_product_on_the_receipt",
"per_product_mapping_on_uploaded_receipt",
"add_product",
"social_media_follow",
"watch_video",
"product_page_links_clicks",
"star_rating_review",
"adding_text_to_a_review",
"adding_an_image_to_a_review",
"adding_video_to_a_review",
"share_review_on_your_social_channel",
"friend_invite"]
Example Response
{
    "country": "036",
    "dscription_key": "description_2022_05",
    "language": "en",
    "summary_list": [
        {
            "level": "basic",
            "summary_rewards": [
                {
                    "coins": "400000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        },
        {
            "level": "bronze",
            "summary_rewards": [
                {
                    "coins": "480000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        },
        {
            "level": "silver",
            "summary_rewards": [
                {
                    "coins": "520000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        },
        {
            "level": "gold",
            "summary_rewards": [
                {
                    "coins": "560000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        },
        {
            "level": "platinum",
            "summary_rewards": [
                {
                    "coins": "600000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        },
        {
            "level": "ambassador",
            "summary_rewards": [
                {
                    "coins": "640000000000000000000",
                    "id": "barcode_scan"
                }
            ]
        }
    ]
}

Resend activation email

POST /identity-service/account/code/resend
Parameters
Name Type Description
token string Required: Activation token

Delete stripe token

DELETE /identity-service/account/customer/
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
  "address2": "",
  "city": "Izhevsk",
  "email": "some_email@gmail.com",
  "first_name": "First Name",
  "id": "urn:authenticateit:user:email:some_email@gmail.com",
  "language": "en",
  "last_name": "Last Name",
  "participants": [
    {
      "id": "urn:authenticateit:participant:841535075581481",
      "last_access": "2017-06-13T10:21:26Z",
      "name": "ZippityElf",
      "roles": [
        "rewards_admin",
        "contributors_supervisor",
        "user",
        "newsline",
        "product_line",
        "supply_chain",
        "security_admin",
        "serialization_viewer",
        "contributors_moderator"
      ]
    },
    {
      "id": "urn:authenticateit:participant:00000000000048",
      "last_access": "2017-05-23T08:05:09Z",
      "name": "Maria360",
      "roles": [
        "security_admin",
        "newsline",
        "user",
        "contributors_supervisor",
        "rewards_admin"
      ]
    }
  ],
  "phone": "+61400000000",
  "coins": 53
}

Send email to Shping support

POST /identity-service/support
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
text string Message text. Minimal length is 1
rating pos_integer Rating
Example Request.
{
    "rating":5,
    "text":"Hi! My new message"
}

Request for add or replace new device

POST /identity-service/set_device_id/
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
channel string Required for baidu
id string Device id
type string Device type (apns, apns_sandbox, gcm or baidu)
old_id string Old device ID (which must be replaced)
old_channel string Old channel (which must be replaced) (optional)
allow_custom_format boolean Allow JSON notifications

Request for remove device

POST /identity-service/remove_device_id/
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
channel string Optional
id string Device id

Nominate user to participant

POST /identity-service/nominate
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string User's id
current_participant string User's current participant
role array::string User's roles

Denominate user roles

POST /identity-service/nominate/delete
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string User's id
current_participant string User's current participant
role array::string User's roles
Example Response

The response contains an updated list of roles. If response is empty - then participant was success deleted from the user.

{
  "id": "urn:authenticateit:participant:1489226097599",
  "name": "Test Manufacturer 1489226097599",
  "roles": [
    "serialization_viewer",
    "supply_chain",
    "product_line"
  ]
}

Create new account

Creates new user account. Takes JSON object with account description, which consists of the following fields:

  • reg_type — allows to choose whether to use email as user identifier or phone number. Also nickname may be used if there is current participant. The parameter is optional and is email by default.
  • email — valid user email address. Required if reg_type is email.
  • phone — valid phone number. Required if reg_type is phone.
  • nickname — user nickname. Required if reg_type is nickname.
  • password — user's password. The parameter is required.
  • first_name, last_name — user name information.
  • gender — user's gender (male, female or other).
  • birthdate — user's birth date in ISO format.
  • photo — URL of the user's photo in Shping CDN.
  • country — user's country code.
  • language — user's language code (e.g., en, ru).
  • city, post_code, address1, address2 — user address information.
  • job_title — user's job title.
  • legal_accept - set legal_accept flag. Created account must be activated. When reg_type is email, email message with activation link will be sent to the user's email address. When reg_type is phone, phone number verification process will be started.

When reg_type is nickname, valid authenticateit_identity_ticket must be present in the request. Nickname users are always tied to a participant, and current participant will be used for nickname user account.

POST /identity-service/account
Example Request
{
  "email": "foo@bar.com",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "legal_accept": true,
  "gender": "male",
  "photo": "http://google.com/image.png",
  "job_title": "Manager"
}
Example Response
{
  "id": "urn:authenticateit:user:email:foo@bar.com",
  "email": "foo@bar.com",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png",
  "job_title": "Manager",
  "legal_accept_expired": false,
  "legal_accept_version": "urn:authenticateit:legal:users:1660612266",
  "legal_last_version": "urn:authenticateit:legal:users:1660612266"
}

Create OAuth Account

Create user account with third-party OAuth service API. Accepts JSON object with the following parameters:

  • service — service to retrieve user information from. Known services are apple, facebook, google, instagram, twitter, vk, wechat, coinbase, telegram.
  • service_paramstelegram service parameters. Required fields are service_params.id, service_params.auth_date, service_params.hash
  • access_token — OAuth 2.0 access token to request user information from the service, if available.
  • code — if access_token directly is unavailable, OAuth 2.0 authorization code must be provided. Server will exchange the provided code for access_token.
  • id_token — some services require JSON Web Token with user profile information (see below), overrides access_token and code.
  • user_id — service-specific user identifier related to the access_token. Required only by some services, normally shouldn't be specified.
  • oauth_token, oauth_token_secret — some services require OAuth 1.0 authentication (see below). For such services these parameters must be used instead of OAuth 2.0 access_token and code parameters.
  • country, language — country and language in the created account may be overridden with these parameters.
  • first_name, last_name — override name for the created account.

id_token, authorization code or access_token directly must be provided.

For facebook service valid access_token must be provided.

For apple and google services valid id_token must be provided. Server will validate the JSON Web Token by Apple or Google services and extract user profile information.

For instagram service access_token should be provided. If access token is unavailable, authorization code should be provided and will be exchanged for access_token by the server.

For twitter service oauth_token and oauth_token_secret must be provided, as Twitter uses OAuth 1.0 for authentication.

For wechat and vk services, code must be provided. Server will exchange the code for access_token internally.

In case of vk service, redirect URI parameter is required in VK OAuth API. Mobile client most probably would use VK's https://oauth.vk.com/blank.html as a redirect URI. URIs in client and server should match.

If user for the access_token is already present in the system, account wouldn't be created and new_user will be false in the response.

Session will be created for the user and response will contain session representation (see Create Session API). If OAuth user was merged earlier, session for the primary merged user account will be created and merged_user will be set to true in the response.

POST /identity-service/account/oauth
Example Request. Telegram
{
    "service": "telegram",
    "country": "036",
    "language": "en",
    "service_params": {
        "id": 292554234,
        "first_name": "Ivan",
        "last_name": "Vasilev",
        "username": "ikleeen",
        "auth_date": 1677627474,
        "hash": "51414accb1c9a73650d9a4ce068cb3b3e0fe1722e6b5589c607dc1f06f9e7f42"
    }
}
Example Request
{
    "service": "coinbase",
    "code": "9c35de561f44241a47307bb30721d6619db22b2e6e88cd013aff4ac61fb6aeed",
    "country": "036",
    "language": "en"
}
Example Request
{
    "service": "facebook",
    "access_token": "EAACZAnXC7MnABADtaNyYi",
    "country": "036",
    "language": "en"
}
Example Response
{
  "id": "urn:authenticateit:user:facebook:115317188939815",
  "new_user": true,
  "merged_user": false,
  "name": "John Doe",
  "roles": [
    "user"
  ],
  "ticket": "a93c4b00-53a8-4038-a455-d779942746eb"
}

Update coinbase tokens

POST /identity-service/account/coinbase/update
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
code string Required: Oauth code
id string Required: Coinbase account Id
Example Request
{
    "code": "c7f1d84048913384338376a4b7b2bd4a1d78acf02eb53201b5c6f8ed79ca768f",
    "id": "6000230e-11d7-5424-96f5-fb1e254391da" 
}
Example Response
{
    "avatar_url": "https://images.coinbase.com/avatar?h=629ef33ab961d61d31dc56mzJv1wD9ckgOADE2B4sY6WAInVtpFrDggkCbjG%0A3GoM&s=128",
    "email": "isurnamuser@gmail.com",
    "id": "6000230e-11d7-5424-96f5-fb1e254391da",
    "name": "user surnam",
    "profile_bio": null,
    "profile_location": null,
    "profile_url": null,
    "resource": "user",
    "resource_path": "/v2/users/6000230e-11d7-5424-96f5-fb1e254391da",
    "ts": "2022-06-07T06:46:37Z",
    "username": null
}

Merge User Accounts

API to initiate user accounts merge process. Accounts to be merged are the primary user account (the main account, destination of the merge) and the secondary user account (user account to be merged into the primary account and partially deactivated). Only accounts with different registration types may be merged. The merge is irreversible.

Primary user account is determinted from the authentication ticket of the request, it's the current user. Secondary user account is determinted from the secondary_ticket authentication ticket specified in the request body. Authentication ticket for the secondary account must be obtained as usual by means of password or OAuth sign in APIs.

Basic merge (user profile details) will be performed immediately and accounts will be fully merged (paricipants, buddies, timelines) in a few hours.

Session for the secondary user account will be deleted immediately and account will be partially deactivated: it may be used for sign in, but session for the primary account will be created.

There is no body in the response.

POST /identity-service/account/merge
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Request
{
  "secondary_ticket": "a88018f8-265b-4a95-9db6-8bb67dcb9473"
}

Read Merged User Accounts

Read list of merged user accounts for the current user. Response contains users list of entries. Each entry has id of the merged account and it's reg_type.

GET /identity-service/account/merge
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
  "users": [
    {
      "id": "urn:authenticateit:user:phonenum:+79280369254",
      "reg_type": "phone"
    },
    {
      "id": "urn:authenticateit:user:vk:264880478",
      "reg_type": "vk"
    }
  ]
}

Activate Phone Number Account

Activates user account registered with phone number. Takes JSON object containing phone number used during registration and verification code from SMS.

Also this API may be used to reset password for accounts registered with phone number. If reset_password parameter is true and activation code was generated to reset password (see API to request phone number account activation code), one time pseudo-authentication ticket will be generated and may be used to change account password (see API to reset phone number account password). Ticket will be in ticket field of the response.

In account activation mode (reset_password is missing or false) response will contain activated user account details. In password reset mode (reset_password is true) response will contain a one time ticket which may be used to change account password.

As soon as account is verified, user may log in with his phone and password.

POST /identity-service/account/phone/verify_code
Example Request (Activate Phone Number Account)
{
  "phone": "+79280369254",
  "code": "57829"
}
Example Response (Activate Phone Number Account)
{
  "id": "urn:authenticateit:user:phonenum:+79280359154",
  "language": "en",
  "country": "616",
  "phone": "+79280359154",
  "phone_verified": true
}
Example Request (Password Reset Ticket)
{
  "phone": "+79280369254",
  "code": "37606",
  "reset_password": true
}
Example Response (Password Reset Ticket)
{
  "ticket": "221fc962-d1cf-4d0c-8964-23c50a9c1e68"
}

Request Phone Number Account Activation Code

Send account activation code for account registered with a phone number (see reg_type in account creation API). Takes JSON object containing phone number used for account registration.

The number of available activation codes is limited. If the limit is reached, further requests will result in errors for some time.

Code to reset phone number account password may be requested using this API. Parameter reset_password must be set to true in this case.

POST /identity-service/account/phone/send_code
Example Request
{
  "phone": "+79280369254",
  "reset_password": false
}

Reset Password of Phone Number Account

API to reset password of account registered with phone number. Requires a one time pseudo-authentication ticket (see API to activate phone number account). Takes JSON object containing phone number to identify the account and new password. One time ticket may be specified either with authenticateit_identity_ticket header or as parameter ticket in JSON body.

POST /identity-service/account/phone/reset_password
Parameters
Name Type Description
authenticateit_identity_ticket header One time password reset ticket
Example Request
{
  "phone": "+79280369254",
  "password": "MyNewP4sswd"
}

Activate Email Account

GET /identity-service/account/activate/:activation_code
Example Response
{
  "email": "foo@bar.com",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png"
}

Send verification SMS

Send SMS message with verification code to user's phone number. Does nothing if there is no phone number in user profile.

POST /identity-service/account/verifications/phone
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket

Verify user's phone number

Verify user's phone number. If provided code matches code sent in SMS message, phone number status will be updated. Responds with updated user profile, if phone status updated.

GET /identity-service/account/verifications/phone/:code
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
  "email": "foo@bar.com",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png"
}

Read karma history

POST /identity-service/karma/history/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket.
id string Chunk id
user_id string User id (should be used by system)

System can specify user_id for read karma history feed.

Example Request
{
    "id": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca@karma_feed@d7796fd6-ed57-4904-abfe-d57e7438b7dd"
}
Example Response
{
    "id": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca@karma_feed@d7796fd6-ed57-4904-abfe-d57e7438b7dd",
    "list": [
        {
            "action": "manual_receipt_sharing",
            "action_inc": -56.17977528089887,
            "action_text": "Receipt sharing",
            "calculate_ts": "2022-09-24T09:49:40Z",
            "data": {
                "karma_value_from": 100.0,
                "karma_value_to": 40,
                "moderator_id": "urn:authenticateit:user:email:system@authenticateit.com"
            },
            "id": "ad54d128-ffb9-4e09-ab56-63ac270ae2b3",
            "karma_value": 40.0,
            "rule_karma_value": "lock",
            "status": "success",
            "ts": "2022-09-24T09:49:33Z",
            "user_id": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca"
        }
    ],
    "next": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca@karma_feed@2dbf4040-9f6a-4b53-b2b1-2601f374d385",
    "type": "karma_feed",
    "user_id": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca"
}

Accept new terms and conditions

POST /identity-service/account/legal/accept
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket.
Example Response
{
  "legal_accept_expired": false,
  "legal_accept_version": "urn:authenticateit:legal:users:1660612266",
  "legal_last_version": "urn:authenticateit:legal:users:1660612266",
  "shopping_lists_beta_tester": true,
  "disallow_ethereum_transactions": true,
  "email": "foo@bar.com",
  "reg_type": "email",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png",
  "job_title": "Manager",
  "reviews_karma": 0,
  "karma_value": 60.998,
  "level_info": {
        "current_percentages": 25,
        "level_icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
        "level_name": "Platinum",
        "level_type": "platinum",
        "max_percentages": 100,
        "short_description": "Your Shping Level will be updated in 30 days."
    },
   "dashboard_info": {
       "activities": [
           {
               "id": "unique_scans",
               "max_value": 60,
               "value": 1
           },
           {
               "id": "uploaded_receipts",
               "max_value": 20,
               "value": 0
           },
           {
               "id": "number_of_active_days",
               "max_value": 25,
               "value": 1
           },
           {
               "id": "write_review_photo",
               "max_value": 6,
               "value": 0
           },
           {
               "id": "used_storecards",
               "max_value": 4,
               "value": 0
           },
           {
               "id": "karma",
               "max_value": 90,
               "value": 99
           },
           {
               "id": "purchases_with_coin_booster_items",
               "max_value": 4,
               "value": 0
           },
           {
               "id": "fp_open_rate",
               "max_value": 90,
               "value": 100
           }
       ],
       "boost": null,
       "date_from": "2023-06-14T18:30:14Z",
       "date_to": "2023-07-14T18:30:14Z",
       "description_key": "description_2022_05",
       "level": "platinum",
       "level_next": "ambassador",
       "levels": [
           {
               "coin_rate": 1,
               "level_rate": 1,
               "type": "basic"
           },
           {
               "coin_rate": 2,
               "level_rate": 1.2,
               "type": "bronze"
           },
           {
               "coin_rate": 3,
               "level_rate": 1.3,
               "type": "silver"
           },
           {
               "coin_rate": 5,
               "level_rate": 1.4,
               "type": "gold"
           },
           {
               "coin_rate": 10,
               "level_rate": 1.5,
               "type": "platinum"
           },
           {
               "coin_rate": 10,
               "level_rate": 1.6,
               "type": "ambassador"
           }
       ],
       "percents": 25,
       "type": "earned"
   },
  "participants": [
        {
            "company_prefix": [
                "0498765432",
                "93"
            ],
            "context": [
                "test1",
                "test3"
            ],
            "country": "036",
            "id": "urn:authenticateit:participant:735879621218619",
            "last_access": "2020-05-22T13:25:41Z",
            "last_access_user": {
                "first_access": true,
                "ts": "2020-05-22T13:25:41Z"
            },
            "logo": "https://dev-cdn.shping.com/2019/3/28/5e1eb1a7-7d38-4d09-bace-a586cb0fc326.png",
            "modules": [
                "product360",
                "serialization"
            ],
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "roles": [
                "serialization_admin",
                "serialization_viewer"
                "user"
            ]
        }
    ]
}

Get information from my profile

NOTICE. Parameters "max_value" and "value" in the number_of_days_with_no_scans item (in "activities" list of "dashboard_info") are actually indicators of active days. For example, in the first sample user requires 25 active days and he already has earned 1. The "type" field in "dashboard_info" may contains one of values: "permanent", "coins_platinum", "coins_gold", "boosted", "earned" (the default is "earned").

User registration type is in reg_type field. Possible values for the reg_type are all the services from OAuth API (facebook, google, etc.) and values for reg_type from account creation API (email and phone).

GET /identity-service/account
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket.
rcc string New rewards flag (true or false)

rcc flag affects the dashboard_info.levels.coin_rate multiplier. If rcc=true client gets updated multipliers.

Example Response. permanent_platinum=true
{
    "birthdate": "1968-01-16",
    "buddies_count": 4,
    "buddy_extra_coins_percent": 4,
    "coins": "100000000000000000000",
    "country": "036",
    "dashboard_info": {
        "activities": [
            {
                "id": "unique_scans",
                "max_value": 60,
                "value": 60
            },
            {
                "id": "uploaded_receipts",
                "max_value": 20,
                "value": 20
            },
            {
                "id": "number_of_active_days",
                "max_value": 25,
                "value": 25
            },
            {
                "id": "write_review_photo",
                "max_value": 6,
                "value": 6
            },
            {
                "id": "used_storecards",
                "max_value": 4,
                "value": 4
            },
            {
                "id": "karma",
                "max_value": 90,
                "value": 90
            },
            {
                "id": "purchases_with_coin_booster_items",
                "max_value": 4,
                "value": 4
            },
            {
                "id": "fp_open_rate",
                "max_value": 90,
                "value": 90
            }
        ],
        "boost": null,
        "date_from": "2023-08-27T23:00:00Z",
        "date_to": "2023-09-27T23:00:00Z",
        "description_key": "description_2022_05",
        "level": "platinum",
        "level_next": "platinum",
        "levels": [
            {
                "coin_rate": 1,
                "level_rate": 1,
                "type": "basic"
            },
            {
                "coin_rate": 2,
                "level_rate": 1.2,
                "type": "bronze"
            },
            {
                "coin_rate": 3,
                "level_rate": 1.3,
                "type": "silver"
            },
            {
                "coin_rate": 5,
                "level_rate": 1.4,
                "type": "gold"
            },
            {
                "coin_rate": 10,
                "level_rate": 10,
                "type": "platinum"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.6,
                "type": "ambassador"
            }
        ],
        "percents": 100,
        "permanent_platinum": true,
        "type": "permanent"
    },
    "disallow_ethereum_transactions": true,
    "email": "foo@bar.com",
    "first_name": "First",
    "gender": "male",
    "id": "urn:authenticateit:user:google:102441601320866092003",
    "job_title": "Manager",
    "karma_value": 57.05,
    "language": "en",
    "last_name": "Last",
    "legal_accept_expired": false,
    "legal_accept_ts": "2023-03-01T03:05:54Z",
    "legal_accept_version": "urn:authenticateit:legal:users:1675108716",
    "legal_last_version": "urn:authenticateit:legal:users:1675108716",
    "level_info": {
        "current_percentages": 100,
        "level_icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
        "level_name": "Platinum",
        "level_type": "platinum",
        "max_percentages": 100,
        "short_description": "Your Shping Level will be updated in 30 days."
    },
    "negative_coins": 0,
    "phone": "+61400000000",
    "phone_verified": true,
    "photo": "https://dev-cdn.shping.com/2023/7/14/3a0158a5-a4af-4afb-a6ad-cf4bd3c92d76",
    "post_code": "3011",
    "reg_type": "google",
    "reviews_karma": 57,
    "service": "google"
}
Example Response
{
  "legal_accept_expired": false,
  "negative_coins": "119088159031979250176",
  "coins": 0,
  "legal_accept_version": "urn:authenticateit:legal:users:1660612266",
  "legal_last_version": "urn:authenticateit:legal:users:1660612266",
  "shopping_lists_beta_tester": true,
  "disallow_ethereum_transactions": true,
  "email": "foo@bar.com",
  "reg_type": "email",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png",
  "job_title": "Manager",
  "reviews_karma": 0,
  "karma_value": 60.998,
  "level_info": {
        "current_percentages": 25,
        "level_icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
        "level_name": "Platinum",
        "level_type": "platinum",
        "max_percentages": 100,
        "short_description": "Your Shping Level will be updated in 30 days."
   },
  "dashboard_info": {
        "activities": [
            {
                "id": "unique_scans",
                "max_value": 60,
                "value": 1
            },
            {
                "id": "uploaded_receipts",
                "max_value": 20,
                "value": 0
            },
            {
                "id": "number_of_active_days",
                "max_value": 25,
                "value": 1
            },
            {
                "id": "write_review_photo",
                "max_value": 6,
                "value": 0
            },
            {
                "id": "used_storecards",
                "max_value": 4,
                "value": 0
            },
            {
                "id": "karma",
                "max_value": 90,
                "value": 99
            },
            {
                "id": "purchases_with_coin_booster_items",
                "max_value": 4,
                "value": 0
            },
            {
                "id": "fp_open_rate",
                "max_value": 90,
                "value": 100
            }
        ],
        "boost": null,
        "date_from": "2023-06-14T18:30:14Z",
        "date_to": "2023-07-14T18:30:14Z",
        "description_key": "description_2022_05",
        "level": "platinum",
        "level_next": "ambassador",
        "levels": [
            {
                "coin_rate": 1,
                "level_rate": 1,
                "type": "basic"
            },
            {
                "coin_rate": 2,
                "level_rate": 1.2,
                "type": "bronze"
            },
            {
                "coin_rate": 3,
                "level_rate": 1.3,
                "type": "silver"
            },
            {
                "coin_rate": 5,
                "level_rate": 1.4,
                "type": "gold"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.5,
                "type": "platinum"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.6,
                "type": "ambassador"
            }
        ],
        "percents": 25,
        "type": "earned"
   },
  "participants": [
        {
            "company_prefix": [
                "*"
            ],
            "id": "urn:authenticateit:participant:1",
            "last_access": "2017-12-14T18:27:36Z",
            "last_access_user": {
                "first_access": false,
                "ts": "2017-12-14T18:27:36Z"
            },
            "modules": [
                "todo_cards",
                "product360",
                "reviews",
                "livechat",
                "rewards"
            ],
            "name": "Authenticateit Pty Ltd",
            "participant_type": [
                "system"
            ],
            "roles": [
                "contributors_moderator",
                "newsline",
                "product_line",
                "rewards_admin",
                "security_admin",
                "serialization_viewer",
                "supply_chain",
                "user"
            ]
        },
        {
            "company_prefix": [
                "0498765432",
                "93"
            ],
            "context": [
                "test1",
                "test3"
            ],
            "country": "036",
            "id": "urn:authenticateit:participant:735879621218619",
            "last_access": "2020-05-22T13:25:41Z",
            "last_access_user": {
                "first_access": true,
                "ts": "2020-05-22T13:25:41Z"
            },
            "logo": "https://dev-cdn.shping.com/2019/3/28/5e1eb1a7-7d38-4d09-bace-a586cb0fc326.png",
            "modules": [
                "product360",
                "serialization"
            ],
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "roles": [
                "serialization_admin",
                "serialization_viewer"
                "user"
            ]
        }
    ]
}
{
    "legal_accept_version": "urn:authenticateit:legal:users:1675108716",
    "negative_coins": 0,
    "disallow_ethereum_transactions": true,
    "first_name": "Ivan",
    "points": 0,
    "phone": "+61400000000",
    "job_title": "Manager",
    "pending_participant": null,
    "buddies_count": 3,
    "last_name": "Last 5",
    "level_info": {
        "current_percentages": 31,
        "level_icon": "https://cdn.shping.com/2017/11/22/8c5e8e63-ea4a-4c0c-b859-85fc4eac6850.png",
        "level_name": "Gold",
        "level_type": "gold",
        "max_percentages": 100,
        "short_description": "Your Shping Level will be updated in 12 days."
    },
    "dashboard_info": {
        "activities": [
            {
                "id": "unique_scans",
                "max_value": 30,
                "value": 12
            },
            {
                "id": "uploaded_receipts",
                "max_value": 6,
                "value": 0
            },
            {
                "id": "number_of_active_days",
                "max_value": 5,
                "value": 8
            },
            {
                "id": "write_review_photo",
                "max_value": 2,
                "value": 1
            },
            {
                "id": "used_storecards",
                "max_value": 1,
                "value": 0
            },
            {
                "id": "purchases_with_coin_booster_items",
                "max_value": 1,
                "value": 0
            }
        ],
        "boost": {
            "activities": [
                {
                    "id": "unique_scans",
                    "max_value": 50,
                    "value": 12
                },
                {
                    "id": "uploaded_receipts",
                    "max_value": 15,
                    "value": 0
                },
                {
                    "id": "number_of_active_days",
                    "max_value": 20,
                    "value": 8
                },
                {
                    "id": "write_review_photo",
                    "max_value": 5,
                    "value": 1
                },
                {
                    "id": "used_storecards",
                    "max_value": 3,
                    "value": 0
                },
                {
                    "id": "karma",
                    "max_value": 80,
                    "value": 99.57249274168643
                },
                {
                    "id": "purchases_with_coin_booster_items",
                    "max_value": 3,
                    "value": 0
                },
                {
                    "id": "fp_open_rate",
                    "max_value": 85,
                    "value": 0
                }
            ],
            "base_level": "bronze",
            "end_date": "2023-06-29T13:59:11Z"
        },
        "date_from": "2023-05-26T14:54:30Z",
        "date_to": "2023-06-26T14:54:30Z",
        "description_key": "description_2022_05",
        "level": "gold",
        "level_next": "silver",
        "levels": [
            {
                "coin_rate": 1,
                "level_rate": 1,
                "type": "basic"
            },
            {
                "coin_rate": 2,
                "level_rate": 1.2,
                "type": "bronze"
            },
            {
                "coin_rate": 3,
                "level_rate": 1.3,
                "type": "silver"
            },
            {
                "coin_rate": 5,
                "level_rate": 1.4,
                "type": "gold"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.5,
                "type": "platinum"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.6,
                "type": "ambassador"
            }
        ],
        "percents": 31,
        "type": "boosted"
    },
    "id": "urn:authenticateit:user:email:shping:9cf92a52-e708-4d45-a7f5-53ed475c1c3c",
    "phone_verified": true,
    "participants": [
        {
            "company_prefix": [
                "55665566556"
            ],
            "country": "036",
            "id": "urn:authenticateit:participant:624852246384658",
            "last_access_user": {
                "first_access": false,
                "ts": "2023-06-14T08:50:54Z"
            },
            "modules": [
                "livechat",
                "product360",
                "reviews",
                "rewards",
                "todo_cards"
            ],
            "name": "JustForNomination",
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "roles": [
                "payments_admin",
                "product_line",
                "report_viewer",
                "reviews_admin",
                "rewards_admin",
                "security_admin",
                "todo_cards_supervisor"
            ]
        },
        {
            "company_prefix": [
                "223456789111"
            ],
            "country": "036",
            "id": "urn:authenticateit:participant:32637638310736",
            "modules": [
                "product360"
            ],
            "name": "Test brand creation 1",
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "roles": [
                "payments_admin",
                "product_line",
                "security_admin"
            ]
        },
        {
            "address": "Address 123",
            "city": "City1",
            "company_prefix": [
                "9311112",
                "930000100139",
                "9311111",
                "9221111",
                "93"
            ],
            "contact": "+79199101840",
            "country": "036",
            "email": "ethertest3@gmail.com",
            "id": "urn:authenticateit:participant:735879621218609",
            "last_access_user": {
                "first_access": false,
                "ts": "2023-04-20T04:01:41Z"
            },
            "logo": "https://dev-cdn.shping.com/2019/3/28/5e1eb1a7-7d38-4d09-bace-a586cb0fc326.png",
            "modules": [
                "livechat",
                "product360",
                "retail_connect",
                "reviews",
                "rewards",
                "serialization",
                "supply_chain",
                "todo_cards"
            ],
            "name": "Main",
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "phone": "+79199101840",
            "post_code": "427069",
            "roles": [
                "payments_admin",
                "product_line",
                "report_viewer",
                "retail_connect_admin",
                "retail_connect_operator",
                "reviews_admin",
                "rewards_admin",
                "security_admin",
                "serialization_admin",
                "serialization_viewer",
                "supply_chain",
                "supply_chain_admin",
                "todo_cards_supervisor"
            ]
        },
        {
            "address": "",
            "city": "",
            "company_prefix": [
                "*"
            ],
            "contact": "",
            "country": "036",
            "email": "system@authenticateit.com",
            "id": "urn:authenticateit:participant:1",
            "logo": "https://dev-cdn.shping.com/2022/11/9/26775146-4028-426d-8874-f6f8d3e39e57.png",
            "modules": [
                "livechat",
                "product360",
                "reviews",
                "rewards",
                "todo_cards"
            ],
            "name": "Authenticateit Pty Ltd",
            "participant_type": [
                "system"
            ],
            "phone": "+61434428386",
            "post_code": "7891",
            "roles": [
                "product_line",
                "receipt_mapping_moderator",
                "report_viewer",
                "reviews_admin",
                "rewards_admin",
                "security_admin"
            ],
            "timezone_code": "Africa/Asmera"
        }
    ],
    "country": "036",
    "legal_accept_ts": "2023-02-01T08:05:39Z",
    "photo": "https://dev-cdn.shping.com/2022/11/9/0581b6f9-79a1-4096-9611-bb88ad31f6af",
    "karma_value": 99.57249274168643,
    "buddy_extra_coins_percent": 3,
    "birthdate": "1970-01-01",
    "service": "email",
    "post_code": "3004",
    "address1": "10 Queens Rd",
    "city": "Melbourne",
    "email": "ikleeen+811@gmail.com",
    "language": "en",
    "gender": "male",
    "legal_accept_expired": false,
    "service_id": "ikleeen+811@gmail.com",
    "coins": "100321127045055404726625",
    "reviews_karma": 99,
    "legal_last_version": "urn:authenticateit:legal:users:1675108716",
    "reg_type": "email"
}

Delete my account

Will delete user account and active session. User wouldn't be able to perform any requests to the API after this request.

DELETE /identity-service/account
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
secondary_ticket string Secondary session's ticket

Update my account

Update account information and return up to date representation of the account. Allows to modify name, password and language fields. All fields are optional in the request. To change password (password field present in the request), current password must be provided in old_password field.

PUT /identity-service/account
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
email string Correct email, maxlength 100
password string Password; minlength 5
old_password string Current password, required if changing password
first_name string First name; maxlength 100
last_name string Last name; maxlength 100
phone string Phone number in international format without any spaces
language string ISO 639-1 language code (en,ru...)
post_code string Post code; minlength 3, maxlength 10
city string City; maxlength 100
address1 string First address's line; maxlength 200
address2 string Second address's line; maxlength 200
birthdate string Birthdate in ISO 8601 format (1970-01-01)
gender string Gender (male or female)
photo string Photo in project's S3 bucket
Example Response
{
 "email": "foo@bar.com",
  "first_name": "First Name",
  "last_name": "Last Name",
  "phone": "+61400000000",
  "language": "en",
  "post_code": "3004",
  "city": "Melbourne",
  "address1": "10 Queens Rd",
  "birthdate": "1970-01-01",
  "gender": "male",
  "photo": "http://google.com/image.png"
}

Update account notification settings

PUT /identity-service/account/settings
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
notify_on_buddies boolean Notifications from buddies
notify_on_reviews boolean Notifications from reviews
notify_on_rewards boolean Notifications from rewards
remind_to_scan boolean Scan notifications
reminders_notifications boolean System notifications
Example Request
{
    "notify_on_buddies": true,
    "notify_on_reviews": true,
    "notify_on_rewards": true,
    "remind_to_scan": true,
    "reminders_notifications": true
}
Example Response
{
    "notify_on_buddies": true,
    "notify_on_reviews": true,
    "notify_on_rewards": true,
    "remind_to_scan": true,
    "reminders_notifications": true
}

Reset password

Send email with restore code
POST /identity-service/account/restore

As result user will receive a mail with the link. Source parameter value could be one of web/mobile/``

https://{{ site_host }}/reset-password/{{ code }}?source={{ source }}
Parameters
Name Type Description
email string Required: User's email
source string mobile or web
Example Response
"Mail has been send"
Check restore code
GET /identity-service/account/restore/:code/check
Parameters
Name Type Description
code string Required: Restore code
Example Response. Bad code. Status=500
{
    "error": "Unknown restore code.",
    "error_data": null,
    "error_id": "identity-no_restore_code",
    "error_object": null
}
Example Response. Good code. Status=200
{
    "source": "mobile",
    "user_id": "urn:authenticateit:user:email:email@gmail.com"
}
Reset password
POST /identity-service/account/restore/:code
Parameters
Name Type Description
password string Required: New password
Example Response
{
  "birthdate": "1990-02-02",
  "coins": "29763179040000004063232011",
  "country": "036",
  "disallow_ethereum_transactions": true,
  "email": "foo@bar.com",
  "first_name": "foo",
  "gender": "male",
  "id": "urn:authenticateit:user:email:foo@bar.com",
  "language": "en",
  "last_name": "bar",
  "pending_participant": null,
  "phone": "+61199101840",
  "phone_verified": true,
  "photo": "https://dev-cdn.shping.com/2019/3/6/c5809b6f-3b0d-4d7c-8b43-14ff20edbffa",
  "points": 0,
  "post_code": "00000",
  "shopping_lists_beta_tester": true,
  "ticket": "fac8230f-d13c-4fc8-a398-1d5353ee9584",
  "language": "en",
  "participants": [
    {
      "id": "urn:authenticateit:participant:9489226097599",
      "last_access": "2017-04-14T05:02:34Z",
      "name": "Test Partner 1491799727959",
      "roles": [
        "rewards_admin",
        "serialization_viewer",
        "security_admin",
        "supply_chain",
        "product_line",
        "newsline"
      ]
    },
    {
      "id": "urn:authenticateit:participant:1491850314517",
      "last_access": "2017-04-12T17:43:32Z",
      "name": "Test Manufacturer 1491850314517",
      "roles": [
        "rewards_admin",
        "serialization_viewer",
        "security_admin",
        "supply_chain",
        "product_line",
        "newsline"
      ]
    }
  ]
}

Check user by email or phone

POST /identity-service/account/check
Parameters
Name Type Description
email string User's email
phone string User's phone

email or phone field is required

Example Request. Check email
{
   "email":  "foo@mail.com"
}
Example Request. Check phone
{
   "phone":  "+6199999999"
}
Example Response. User exist. Code=200
```

##### Example Response. User not exist. Code=500
```json
{
    "error": "User not found.",
    "error_data": [
        "urn:authenticateit:user:email:foo@mail.com"
    ],
    "error_id": "common-no_user",
    "error_object": null
}

Set user's locale

POST /identity-service/account/locale
Parameters
Name Type Description
authenticateit_identity_ticket header Session's ticket
country body Country code
language body Language code
timezone_min body Timezone shift in min. From UTC+14 (840) to UTC-12 (-720) (-720 =< X =< +840)
Example Request
{
  "country": "036",
  "language": "ru",
  "timezone_min": 0
}

Get user level

GET /identity-service/account/level
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
[
    {
        "coin_rate": 1,
        "current": false,
        "footer": "Normal coins per any product scan",
        "footer_i18n_id": "user_levels-basic-footer",
        "header": "Base level",
        "header_i18n_id": "user_levels-basic-header",
        "icon": "https://cdn.shping.com/2017/11/22/2f98de94-73bf-4b40-9490-e4a8a714264c.png",
        "name": "Basic",
        "name_i18n_id": "user_levels-basic-name",
        "short_description": "Your Shping Level will be updated in 28 days.",
        "short_description_i18n_id": "user_levels-basic-short_description",
        "title": "Keep scanning new products to earn more coins to level up!",
        "title_i18n_id": "user_levels-basic-title",
        "type": "basic"
    },
    {
        "coin_rate": 2,
        "current": false,
        "footer": "Earn 2 times more coins per product scan",
        "footer_i18n_id": "user_levels-bronze-footer",
        "header": "20 scans per month <br/>Maximum 20 days with no scans per month",
        "header_i18n_id": "user_levels-bronze-header",
        "icon": "https://cdn.shping.com/2017/11/22/0612ecb0-1d92-4125-a8bc-17e1010ea74b.png",
        "name": "Bronze",
        "name_i18n_id": "user_levels-bronze-name",
        "short_description": "Your Shping Level will be updated in 28 days.",
        "short_description_i18n_id": "user_levels-bronze-short_description",
        "title": "Keep scanning new products to earn more coins to level up!",
        "title_i18n_id": "user_levels-bronze-title",
        "type": "bronze"
    },
    {
        "coin_rate": 3,
        "current": false,
        "footer": "Earn 3 times more coins per product scan",
        "footer_i18n_id": "user_levels-silver-footer",
        "header": "80 scans per month <br/>Maximum 15 days with no scans per month",
        "header_i18n_id": "user_levels-silver-header",
        "icon": "https://cdn.shping.com/2017/11/22/ea2f722f-27db-4728-9178-991a94b2886b.png",
        "name": "Silver",
        "name_i18n_id": "user_levels-silver-name",
        "short_description": "Your Shping Level will be updated in 28 days.",
        "short_description_i18n_id": "user_levels-silver-short_description",
        "title": "Keep scanning new products to earn more coins to level up!",
        "title_i18n_id": "user_levels-silver-title",
        "type": "silver"
    },
    {
        "coin_rate": 5,
        "current": true,
        "current_percentages": 20,
        "footer": "Earn 5 times more coins per product scan",
        "footer_i18n_id": "user_levels-gold-footer",
        "header": "200 scans per month <br/>Maximum 10 days with no scans per month <br/>5 reviews per month",
        "header_i18n_id": "user_levels-gold-header",
        "icon": "https://cdn.shping.com/2017/11/22/8c5e8e63-ea4a-4c0c-b859-85fc4eac6850.png",
        "max_percentages": 100,
        "name": "Gold",
        "name_i18n_id": "user_levels-gold-name",
        "scans_left": 150,
        "short_description": "Your Shping Level will be updated in 28 days.",
        "short_description_i18n_id": "user_levels-gold-short_description",
        "title": "Keep scanning new products to earn more coins to level up!",
        "title_i18n_id": "user_levels-gold-title",
        "todo": [
            "You need to scan 150 new products for the current month to level up!",
            "You need to write 3 reviews to level up!"
        ],
        "type": "gold"
    },
    {
        "coin_rate": 10,
        "current": false,
        "footer": "Earn 10 times more coins per product scan",
        "footer_i18n_id": "user_levels-platinum-footer",
        "header": "300 scans per month <br/>Maximum 5 days with no scans per month <br/>10 reviews per month",
        "header_i18n_id": "user_levels-platinum-header",
        "icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
        "name": "Platinum",
        "name_i18n_id": "user_levels-platinum-name",
        "short_description": "Your Shping Level will be updated in 28 days.",
        "short_description_i18n_id": "user_levels-platinum-short_description",
        "title": "Keep scanning new products to earn more platinum!",
        "title_i18n_id": "user_levels-platinum-title",
        "type": "platinum"
    }
]

Get earnings info

GET /identity-service/account/earnings
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
    "level_logo": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
    "level_name": "Platinum",
    "level_name_i18n_id": "user_levels-platinum-name",
    "level_type": "platinum",
    "list": [
        {
            "coins": "200000000000000000000",
            "description": "All Product Scanning",
            "description_i18n_id": "user_levels-platinum-earnings-scanning_products-description",
            "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
            "full_description_i18n_id": "user_levels-platinum-earnings-scanning_products-full_description",
            "type": "scanning_products"
        },
        {
            "coins": "50000000000000000000",
            "description": "Adding a new product",
            "description_i18n_id": "user_levels-platinum-earnings-adding_new-description",
            "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
            "full_description_i18n_id": "user_levels-platinum-earnings-adding_new-full_description",
            "type": "adding_new"
        },
        {
            "coins": "300000000000000000000",
            "description": "Writing Reviews",
            "description_i18n_id": "user_levels-platinum-earnings-writing_reviews-description",
            "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
            "full_description_i18n_id": "user_levels-platinum-earnings-writing_reviews-full_description",
            "type": "writing_reviews"
        },
        {
            "coins": "20000000000000000000",
            "description": "Editing Product Info",
            "description_i18n_id": "user_levels-platinum-earnings-editing_product-description",
            "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
            "full_description_i18n_id": "user_levels-platinum-earnings-editing_product-full_description",
            "type": "editing_product"
        },
        {
            "coins": "20000000000000000000",
            "description": "Submitting valuable life hack",
            "description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-description",
            "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
            "full_description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-full_description",
            "type": "submitting_lifehack"
        }
    ]
}

Preferred Registration Types

Returns list of preferred account registration methods. Responds with JSON object containing types list of methods. Methods in the list are in order of preferrence.

GET /identity-service/account/registration_types
Parameters
Name Type Description
include_coinbase boolean true or false. Default false
include_telegram boolean true or false. Default false
Example Response
{
    "types": [
        "email",
        "facebook",
        "google",
        "coinbase",
        "phone",
        "instagram",
        "twitter",
        "wechat",
        "vk",
        "telegram"
    ],
    "types_permissions": [
        {
            "id": "facebook",
            "scope": [
                "email",
                "public_profile",
                "user_birthday",
                "user_gender",
                "user_likes"
            ]
        }
    ]
}

Brand Unlock and Participant Registration

User account registration process may include participant registration and brand unlock. If the process is sucessfull, a participant will be created and registered user will be nominated to represent the participant. Unowned brand will be assigned to the participant.

Additional account field pending_participant may be provided in POST /account request. It must be an object with the following fields: company_prefix (GTIN prefix of a company user is representing), name (participant name), brand_name (identifier of unowned brand user is representing), participant_type (currently only product360 is allowed here). The response will include pending_participant object field.

If there is technical email address associated with the company prefix, account activation email will be sent to the technical email address. Field tech_email_used in pending_participant response field will be true in this case.

After activating the account, user should continue participant registration process and must provide all the missing fields in the body of PUT /account/pending_participant request. Field names are the same as in POST /account request. Also there is additional required field country (country of participant). Performing the PUT request will finish participant registration process and pending_participant field will be removed from the account.

If brand technical email was used for account activation, participant will be created right away, user will be nominated a product_line role (in case of product360 participant), created participant will be made owner of previously unowned brand identified with brand_name.

If there was no brand technical email address associated with the company prefix (this actually is the case for now), information on pending participant will be emailed to a moderator who will either approve or reject participant registration by clicking on approve/reject links. URLs to approve or reject pending participant registration are /pending_participant/:code/approve and /pending_participant/:code/reject.

System user may retrieve pending participant registration code by sending user account identifier as id field in POST /account/pending_participant/get_code. This API is mainly for automated testing purposes. Retrieved code may be used to approve/reject pending participant registration with the corresponding URLs.

Company registration flow

Participant also can set a credit card which will be coupled with account.

Set credit card through registration

PUT /identity-service/account/pending_participant
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Request
{
  "email": "email@mailinator.com",
  "password": "qwerty",
  "first_name": "first_name",
  "pending_plan": "complete",
  "pending_participant": {
    "company_prefix": "123456789",
    "name": "TEST1",
    "brand_name": "Test1",
    "participant_type": "product360"
  },
  "gs1_activation_code": "22777772231",
  "card": {
    "number": "5200828282828210",
    "exp_month": 12,
    "exp_year": 2019,
    "name": "JANE DOE",
    "cvc": 323
  }
}
Example Request
{
  "email": "email@mailinator.com",
  "password": "qwerty",
  "first_name": "first_name",
  "pending_plan": "complete",
  "pending_participant": {
    "company_prefix": "123456789",
    "name": "TEST1",
    "brand_name": "Test1",
    "participant_type": "product360"
  },
  "gs1_activation_code": "22777772231"
}

Rejecting pending participant

POST /identity-service/pending_participant/reject
Parameters
Name Type Description
code string Required: “708788a0-5b1b-46df-8279-2e6c18f58a0d”
reason string “Text Reason”

Account facebook

Settings

[{"facebook",
         {"https://graph.facebook.com/me",
            [
             {<<"id">>,<<"id">>},
             {<<"name">>,<<"name">>},
             {<<"email">>,<<"email">>},
             {<<"age">>,<<"age_range">>},
             {<<"birthday">>,<<"birthday">>},
             {<<"timezone">>,<<"timezone">>},
             {<<"languages">>,<<"languages">>},
             {<<"locale">>,<<"locale">>}
            ]
          }
  }
]
[{<name of service>,
         {<service uri>, (https://graph.facebook.com/me)
            [
             <map of profile field>, <service field>
            ]
          }
  }
]

The end point /identity-service/account/oauth provides 1 method:

New participant registration request

POST /identity-service/account/participant
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
name body Required: Participant name
country body Required: Country code
company_prefix body Company prefix (from 7 to 12). Required only if participant_type contains "retail_connect"
pending_plan body Tariff plan. "basic" default
participant_type body "product360","retail_connect"
brand_name body List of brand names. [] by default
gs1_activation_code body Special code
Example Request
{
  "country": "036",
  "company_prefix": "00000000",
  "participant_type":
    [
        "product360",
        "retail_connect"
    ],
  "name": "Participant Name",
  "brand_name": [
    "Brand_1",
    "Brand_2",
    "Brand_3"
  ],
  "pending_plan": "complete",
  "gs1_activation_code": "code"
}
Example Response
{
    "billing":
    {
        "trial":
        {
            "status": true,
            "ts": "2023-03-09T03:06:37Z"
        }
    },
    "brand_name": [
       "Brand_1",
       "Brand_2",
       "Brand_3"
    ],
    "company_prefix": "00000000",
    "country": "036",
    "gs1_activation_code": "code",
    "ip": "118.127.110.170",
    "name": "Participant Name",
    "participant_type":
    [
        "product360",
        "retail_connect"
    ],
    "pending_plan": "complete",
    "user_id": "urn:authenticateit:user:email:ethertest3@mailinator.com"
}

Check company prefix

POST /identity-service/prefix/check
Parameters
Name Type Description
prefix body Required: Company prefix (more or equal to 7)

Create account via facebook API

POST /identity-service/account/oauth
Parameters
Name Type Description
content-type:application/x-www-form-urlencoded header Required: Content type
service=facebook&token=:token url Required: service=facebook&token=EAACZAnXC7MnABADtaNyYitype
country body Country code
language body Language code

The token can be obtained at https://developers.facebook.com/tools/explorer/

Example Response
{
  "name": "user surnam",
  "roles": [
    "user"
  ],
  "ticket": "EAACZAnXC7MnABADtaNyYi"
}
Errors
{error: "<service> contains unavailable value"}
{error: "Can't read profile by token"}
{error: "Invalid json data from host"}
{error: "Token not found"}
{error: "Oauth server is not available"}
{error: "Internal server error"}
{error: "Cant read data for fill profile"}
Example of document in CuchDB
{
  "_id": "115317188939815",
  "_rev": "60-85eaa22ff5dd0124202452468d9b3eca",
  "age": {
    "min": 21
  },
  "birthday": "07/01/1990",
  "email": "foo@bar.com",
  "languages": "",
  "locale": "ru_RU",
  "name": "Some Name",
  "roles": [
    "user"
  ],
  "service": "facebook",
  "timezone": 4,
  "type": "user"
}

Get user's country from ip

GET /identity-service/current_country
Parameters
Name Type Description
content-type:application/x-www-form-urlencoded header Required: Content type
Example Response
{
    "alpha2": "RU",
    "alpha3": "RUS",
    "iso": "643",
    "name": "Russian Federation",
    "name_ru": "Российская Федерация",
    "name_zh": "俄罗斯联邦",
    "type": "matched"
}

Get geolocation info

GET /identity-service/geolocation
Parameters
Name Type Description
ip body IP address
Example Response
{
    "city": "Izhevsk",
    "continent_code": "EU",
    "continent_name": "Europe",
    "country_code": "RU",
    "country_name": "Russia",
    "ip": "91.185.64.113",
    "latitude": 56.8498,
    "location": {
        "calling_code": "7",
        "capital": "Moscow",
        "country_flag": "http://assets.ipapi.com/flags/ru.svg",
        "country_flag_emoji": "🇷🇺",
        "country_flag_emoji_unicode": "U+1F1F7 U+1F1FA",
        "geoname_id": 554840,
        "is_eu": false,
        "languages": [
            {
                "code": "ru",
                "name": "Russian",
                "native": "Русский"
            }
        ]
    },
    "longitude": 53.2045,
    "region_code": "UD",
    "region_name": "Udmurtiya Republic",
    "type": "ipv4",
    "zip": "426960"
}

Users management

Methods are available for users with role "security_admin"

Publish karma ajustment event

POST /identity-service/karma/publish
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
action string Required: Karma action id
user_id string Required: User id
karma_value number Required: Target karma value
karma_value_action string Required: Increment or decrement (inc or dec)
publish_to_timeline boolean Publish timeline notification
Example Request
{
    "action": "manual_receipt_sharing",
    "user_id": "urn:authenticateit:user:email:shping:3ddeafc1-0ddc-4cb3-8451-05b1c89918ca",
    "karma_value_action": "dec",
    "karma_value": 9.5,
    "publish_to_timeline": false
}

Read list of users or read user profile

POST /identity-service/users/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket

id - User id (read profile)
level - Filter by level (basic, bronze, silver, gold, platinum)
phone - Filter by phone (or part of phone) (will be converted to like query %PHONE%)
email - Filter by email (or part of email)
first_name - Filter by first_name (or part of first_name)
last_name - Filter by last_name (or part of last_name)
language - Filter by language
country - Filter by country code
city - Filter by city (or part of city)
gender - Filter by gender
created_from - Filter by created time (datetime format '2012-12-12T01-01-01Z')
created_to - Filter by created time (datetime format '2012-12-12T01-01-01Z')
last_access_from - Filter by last access (datetime format '2012-12-12T01-01-01Z')
last_access_to - Filter by last access (datetime format '2012-12-12T01-01-01Z')
total_balance_from - Filter by total balance
total_balance_to - Filter by total balance
account_balance_from - Filter by transition account balance
account_balance_to - Filter by transition account balance
device - Filter by coupled devices ("ios", "andriod", "baidu")
rewards_ban_status - Filter by rewards ban status ("active", "inactive")
permanent_ban_status - Filter by permanent ban status ("active", "inactive")
total_scans_from - Total user's scans (integer, total_scans_from >= 0)
total_scans_to - Total user's scans (integer, total_scans_to >= 0)
total_avearage_scans_per_active_day_from - Avearage scans per active days (float)
total_avearage_scans_per_active_day_to - Avearage scans per active days (float)
total_days_with_scans_from - Total days with scans (integer, total_days_with_scans_from >= 0)
total_days_without_scans_from - Total days without scans (integer, total_days_without_scans_from >= 0)
total_active_days_ratio_from - Active days ratio in percents (integer, total_active_days_ratio_from >= 0)
total_inactive_days_ratio_from - Inactive days ratio in percents (integer, total_inactive_days_ratio_from >= 0)
total_buddies_from - Total value of buddies (integer, total_buddies_from >= 0)
total_cashout_transactions_from - Count of cashouts (integer, total_cashout_transactions_from >= 0)
total_cashout_value_shping_from - Sum of cashout coins (integer, total_cashout_value_shping_from >= 0)
total_linked_bank_accounts_from - Count of linked bank accounts (integer, total_linked_bank_accounts_from >= 0)
total_cashout_value_usd_from - Sum of cashout usd (float)
total_cashout_value_aud_from - Sum of cashout aud (float)
total_cashout_value_sgd_from - Sum of cashout sgd (float)
total_cashout_value_rub_from - Sum of cashout rub (float)
total_erc20_accounts_from - Count of linked erc20 accounts (integer, total_erc20_accounts_from >= 0)
total_erc20_transactions_from - Count of erc20 transactions (integer, total_erc20_transactions_from >= 0)
total_erc20_value_shping_from - Sum of erc20 transfered coins (integer, total_erc20_value_shping_from >= 0)
total_days_with_scans_to - Total days with scans (integer, total_days_with_scans_to >= 0)
total_days_without_scans_to - Total days without scans (integer, total_days_without_scans_to >= 0)
total_active_days_ratio_to - Active days ratio in percents (integer, total_active_days_ratio_to >= 0)
total_inactive_days_ratio_to - Inactive days ratio in percents (integer, total_inactive_days_ratio_to >= 0)
total_buddies_to - Total value of buddies (integer, total_buddies_to >= 0)
total_cashout_transactions_to - Count of cashouts (integer, total_cashout_transactions_to >= 0)
total_cashout_value_shping_to - Sum of cashout coins (integer, total_cashout_value_shping_to >= 0)
total_linked_bank_accounts_to - Count of linked bank accounts (integer, total_linked_bank_accounts_to >= 0)
total_cashout_value_usd_to - Sum of cashout usd (float)
total_cashout_value_aud_to - Sum of cashout aud (float)
total_cashout_value_sgd_to - Sum of cashout sgd (float)
total_cashout_value_rub_to - Sum of cashout rub (float)
total_erc20_accounts_to - Count of linked erc20 accounts (integer, total_erc20_accounts_from >= 0)
total_erc20_transactions_to - Count of erc20 transactions (integer, total_erc20_transactions_from >= 0)
total_erc20_value_shping_to - Sum of erc20 transfered coins (integer, total_erc20_value_shping_from >= 0)
total_coinbase_transactions_to - Count of coinbase transactions (integer, total_coinbase_transactions_to >= 0)
total_coinbase_transactions_from - Count of coinbase transactions (integer, total_coinbase_transactions_from >= 0)
total_coinbase_value_shping_to - Sum of coinbase transfered coins (integer, total_coinbase_value_shping_to >= 0)
total_coinbase_value_shping_from - Sum of coinbase transfered coins (integer, total_coinbase_value_shping_from >= 0)
total_buddies_invitations_sent - Total sent buddies invitations (date_and_quantity filter)
total_buddies_received_invitations_accepted - Total received invitations (date_and_quantity filter)
total_buddies_invitations_accepted - Total accepted invitations (date_and_quantity filter)
total_reviews_accepted - Reviews accepted (date_and_quantity filter)
total_reviews_deleted - Reviews deleted (date_and_quantity filter)
total_reviews_rejected - Reviews rejected (date_and_quantity filter)
total_reviews_pending - Reviews pending (date_and_quantity filter)
total_scans_with_uncollected_coins_from - Scans with uncollected coins (integer, total_scans_with_uncollected_coins_from >= 0)
total_scans_with_uncollected_coins_to - Scans with uncollected coins (integer, total_scans_with_uncollected_coins_to >= 0)
total_uncollected_coins_from - Uncollected coins summary value (integer, total_uncollected_coins_from >= 0)
total_uncollected_coins_to - Uncollected coins summary value (integer, total_uncollected_coins_from >= 0)
total_days_from_last_access_from - Total days diff from last_access to now (integer, total_days_from_last_access_from >= 0)
total_days_from_last_access_to - Total days diff from last_access to now (integer, total_days_from_last_access_to >= 0)
linked_twitter_flag - Account has linked twitter account (boolean)
linked_instagram_flag - Account has linked instagram account (boolean)
linked_phone_flag - Account has linked phone account (boolean)
linked_fb_flag - Account has linked fb account (boolean)
linked_wechat_flag - Account has linked wechat account (boolean)
linked_google_flag - Account has linked google account (boolean)
linked_vk_flag - Account has linked vk account (boolean)
linked_email_flag - Account has linked email account (boolean)
total_timeline_widget_popup_from - Wathed widgets popup from timeline (integer, total_timeline_widget_popup_from >= 0)
total_timeline_widget_text_from - Wathed widgets text from timeline (integer, total_timeline_widget_text_from >= 0)
total_timeline_widget_image_from - Wathed widgets image from timeline (integer, total_timeline_widget_image_from >= 0)
total_timeline_widget_link_from - Wathed widgets link from timeline (integer, total_timeline_widget_link_from >= 0)
total_timeline_widget_video_from - Wathed widgets video from timeline (integer, total_timeline_widget_video_from >= 0)
total_timeline_widget_status_from - Wathed widgets status from timeline (integer, total_timeline_widget_status_from >= 0)
total_timeline_widget_nutrition_info_from - Wathed nutritions from timeline (integer, total_timeline_widget_nutrition_info_from >= 0) total_timeline_widget_certificates_from - Wathed certificates from timeline (integer, total_timeline_widget_certificates_from >= 0) total_timeline_widget_follow_fb_from - Folowed to FB from timeline (integer, total_timeline_widget_follow_fb_from >= 0) total_timeline_widget_social_networks_from - Folowed to link from timeline (integer, total_timeline_widget_social_networks_from >= 0) total_timeline_scans_from - Access to scan from timeline (integer, total_timeline_scans_from >= 0) total_timeline_reviews_from - Access to review from timeline (integer, total_timeline_reviews_from >= 0) total_timeline_minutes_from - Total time spended in timeline (integer, total_timeline_minutes_from >= 0)
total_timeline_widget_popup_to - Wathed widgets popup from timeline (integer, total_timeline_widget_popup_to >= 0)
total_timeline_widget_text_to - Wathed widgets text from timeline (integer, total_timeline_widget_text_to >= 0)
total_timeline_widget_image_to - Wathed widgets image from timeline (integer, total_timeline_widget_image_to >= 0)
total_timeline_widget_link_to - Wathed widgets link from timeline (integer, total_timeline_widget_link_to >= 0)
total_timeline_widget_video_to - Wathed widgets video from timeline (integer, total_timeline_widget_video_to >= 0)
total_timeline_widget_status_to - Wathed widgets status from timeline (integer, total_timeline_widget_status_to >= 0)
total_timeline_widget_nutrition_info_to - Wathed nutritions from timeline (integer, total_timeline_widget_nutrition_info_to >= 0)
total_timeline_widget_certificates_to - Wathed certificates from timeline (integer, total_timeline_widget_certificates_to >= 0)
total_timeline_widget_follow_fb_to - Folowed to FB from timeline (integer, total_timeline_widget_follow_fb_to >= 0)
total_timeline_widget_social_networks_to - Folowed to link from timeline (integer, total_timeline_widget_social_networks_to >= 0)
total_timeline_scans_to - Access to scan from timeline (integer, total_timeline_scans_to >= 0)
total_timeline_reviews_to - Access to review from timeline (integer, total_timeline_reviews_to >= 0)
total_timeline_minutes_to - Total time spended in timeline (integer, total_timeline_minutes_to >= 0)
system_rewarded_widget_popup - Popup rewarded per system campaign (quantity filter)
system_rewarded_widget_text - Text rewarded per system campaign (quantity filter)
system_rewarded_widget_image - Image rewarded per system campaign (quantity filter)
system_rewarded_widget_link - Link rewarded per system campaign (quantity filter)
system_rewarded_widget_video - Video rewarded per system campaign (quantity filter)
system_rewarded_widget_status - Status rewarded per system campaign (quantity filter)
system_rewarded_widget_nutrition_info - NI per system campaign (quantity filter)
system_rewarded_widget_certificates - Certificates per system campaign (quantity filter)
system_rewarded_widget_follow_fb - Follow FB per system campaign (quantity filter)
system_rewarded_widget_social_networks - Networks per system campaign (quantity filter)
brand_rewarded_widget_popup - Popup rewarded per brand campaign (quantity filter)
brand_rewarded_widget_text - Text rewarded per brand campaign (quantity filter)
brand_rewarded_widget_image - Image rewarded per brand campaign (quantity filter)
brand_rewarded_widget_link - Link rewarded per brand campaign (quantity filter)
brand_rewarded_widget_video - Video rewarded per brand campaign (quantity filter)
brand_rewarded_widget_status - Status rewarded per brand campaign (quantity filter)
brand_rewarded_widget_nutrition_info - NI rewarded per brand campaign (quantity filter)
brand_rewarded_widget_certificates - Certificates rewarded per brand campaign (quantity filter)
brand_rewarded_widget_follow_fb - Follow FB rewarded per brand campaign (quantity filter)
brand_rewarded_widget_social_networks - Networks rewarded per brand campaign (quantity filter)
rewarded_widgets_date - Total rewarded date filter (date filter)
transaction_hash - Transaction hash or part of hash (string, length must be more than 6)
cashout_account - Cashout account filter (string, length must be more than 2)
ethereum_address - Ethereum address filter (string, length must be more than 2)
offset - Offset
limit - Limit
order_by - Order column
order_type - Order type ("asc", "desc")

Order by types of columns: level,phone,email,first_name,last_name,language,country,language,city,gender,reg_type,created,last_access,total_balance,account_balance,rewards_ban_status,permanent_ban_status,device,id,total_days_with_scans,total_days_without_scans,total_active_days_ratio,total_inactive_days_ratio,total_buddies,total_cashout_transactions,total_cashout_value_shping,total_linked_bank_accounts,total_cashout_value_usd,total_cashout_value_aud,total_cashout_value_sgd,total_cashout_value_rub,total_erc20_accounts,total_erc20_transactions,total_erc20_value_shping,total_scans,total_avearage_scans_per_active_day, total_buddies_received_invitations_accepted,total_buddies_invitations_accepted,total_reviews_accepted,total_reviews_deleted,total_reviews_rejected,total_reviews_pending,total_scans_with_uncollected_coins,total_uncollected_coins,total_days_from_last_access,linked_twitter_flag,linked_instagram_flag,linked_phone_flag,linked_fb_flag,linked_wechat_flag,linked_google_flag,linked_vk_flag,linked_email_flag,total_timeline_widget_popup,total_timeline_widget_text,total_timeline_widget_image,total_timeline_widget_link,total_timeline_widget_video,total_timeline_widget_status,total_timeline_widget_nutrition_info,total_timeline_widget_certificates,total_timeline_widget_follow_fb,total_timeline_widget_social_networks,total_timeline_scans,total_timeline_reviews,total_timeline_minutes,system_rewarded_widget_popup,system_rewarded_widget_text,system_rewarded_widget_image,system_rewarded_widget_link,system_rewarded_widget_video,system_rewarded_widget_status,system_rewarded_widget_nutrition_info,system_rewarded_widget_certificates,system_rewarded_widget_follow_fb,system_rewarded_widget_social_networks,brand_rewarded_widget_popup,brand_rewarded_widget_text,brand_rewarded_widget_image,brand_rewarded_widget_link,brand_rewarded_widget_video,brand_rewarded_widget_status,brand_rewarded_widget_nutrition_info,brand_rewarded_widget_certificates,brand_rewarded_widget_follow_fb,brand_rewarded_widget_social_networks,total_coinbase_value_shping,total_coinbase_transactions

Example date_and_quantity filter
{
    "date_from":"2019-01-01",
    "date_to":"2019-12-01",
    "value_from":1,
    "value_to":44
}
Example Request (read list of users)
{
  "order_by": "first_name",
  "order_type": "desc",
  "limit": 2,
  "offset": 0,
  "total_reviews_accepted":
      {
          "date_from":"2019-01-01",
          "date_to":"2019-12-01",
          "value_from":1,
          "value_to":44
      }
}
Example Response
{
    "count": 1,
    "data": [
        {
            "total_reviews_rejected": 0,
            "brand_rewarded_widget_nutrition_info": 0,
            "brand_rewarded_widget_certificates": 0,
            "first_name": "user1",
            "total_timeline_widget_certificates": 0,
            "created": "2018-12-08T13:38:24Z",
            "total_cashout_value_sgd": 0,
            "phone": "+1234567811",
            "system_rewarded_widget_certificates": 0,
            "level": "gold",
            "total_cashout_value_rub": 0,
            "total_reviews_accepted": 0,
            "brand_rewarded_widget_text": 0,
            "total_timeline_widget_status": 0,
            "last_name": "surnam1",
            "total_scans": 13,
            "total_erc20_accounts": 0,
            "id": "urn:authenticateit:user:email:email+7@gmail.com",
            "timezone_min": 660,
            "total_days_with_scans": 4,
            "total_cashout_value_aud": 0,
            "total_reviews_deleted": 0,
            "country": "036",
            "total_timeline_widget_social_networks": 0,
            "linked_instagram_flag": 0,
            "total_inactive_days_ratio": 94,
            "merge_started_at": null,
            "total_cashout_value_usd": 0,
            "permanent_ban_status": "inactive",
            "total_balance": "2950000000000000000000",
            "total_erc20_value_shping": "0",
            "total_cashout_transactions": 0,
            "system_rewarded_widget_text": 0,
            "linked_vk_flag": 0,
            "total_buddies_received_invitations_accepted": 0,
            "device": [
                "android"
            ],
            "linked_email_flag": 0,
            "total_reviews_pending": 0,
            "last_access": "2019-02-11T06:55:57Z",
            "linked_twitter_flag": 0,
            "system_rewarded_widget_follow_fb": 0,
            "rewards_ban_to": null,
            "linked_phone_flag": 0,
            "rewards_ban_from": null,
            "total_timeline_minutes": 2880,
            "brand_rewarded_widget_social_networks": 1,
            "total_erc20_transactions": 0,
            "total_timeline_widget_video": 0,
            "birthdate": "2011-12-08",
            "total_timeline_widget_popup": 0,
            "system_rewarded_widget_image": 0,
            "system_rewarded_widget_popup": 0,
            "merge_into": null,
            "total_active_days_ratio": 6,
            "total_days_without_scans": 62,
            "total_timeline_scans": 2,
            "total_timeline_widget_follow_fb": 0,
            "system_rewarded_widget_link": 0,
            "system_rewarded_widget_status": 0,
            "total_cashout_value_shping": "0",
            "linked_fb_flag": 0,
            "total_buddies": 2,
            "city": null,
            "total_buddies_invitations_accepted": 1,
            "brand_rewarded_widget_link": 0,
            "email": "email+7@gmail.com",
            "total_timeline_widget_nutrition_info": 0,
            "language": "ru",
            "linked_wechat_flag": 0,
            "total_timeline_widget_text": 0,
            "gender": null,
            "account_balance": "2950000000000000000000",
            "brand_rewarded_widget_video": 0,
            "total_days_from_last_access": 1,
            "contributor_status": "newbie",
            "total_buddies_invitations_sent": 3,
            "system_rewarded_widget_social_networks": 0,
            "brand_rewarded_widget_image": 0,
            "total_avearage_scans_per_active_day": 3.25,
            "total_scans_with_uncollected_coins": 7,
            "total_timeline_reviews": 0,
            "total_timeline_widget_image": 2,
            "merge_ended_at": null,
            "system_rewarded_widget_video": 0,
            "total_timeline_widget_link": 0,
            "linked_google_flag": 0,
            "total_uncollected_coins": "280000000000000000000",
            "total_linked_bank_accounts": 0,
            "rewards_ban_status": "inactive",
            "brand_rewarded_widget_popup": 0,
            "brand_rewarded_widget_status": 0,
            "system_rewarded_widget_nutrition_info": 0,
            "reg_type": "email",
            "brand_rewarded_widget_follow_fb": 0,
            "total_coinbase_value_shping": "0",
            "total_coinbase_transactions": 0,
        }
    ]
}

Read user's profile

POST /identity-service/user/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: User Id
Example Request (read profile)
{
   "id": "urn:authenticateit:user:email:email@mailinator.com"
}

legal_accept_version could be null or valid version_id

{
    "legal_accept_version": "urn:authenticateit:legal:users:1661393320",
    "legal_accept_ts": "2022-09-09T07:03:06Z"
}
Example Response
{
    "block_review_steps": ["video"],
    "legal_accept_version": null,
    "disallow_ethereum_transactions": false,
    "first_name": "User",
    "pending_coins": "148082055000000000000",
    "created": "2017-08-01T12:16:48Z",
    "points": 0,
    "phone": "+619885974535",
    "buddies_chunk": "urn:authenticateit:user:buddies_chunk:818e5d05-42b8-46b6-9684-95f135a91ce2",
    "level": "basic",
    "settings": {
        "notify_on_buddies": true,
        "notify_on_reviews": true,
        "notify_on_rewards": true,
        "remind_to_scan": true,
        "reminders_notifications": true
    },
    "pending_participant": null,
    "moderator": {
        "supervisor_id": "urn:authenticateit:user:email:punchyrat@mailinator.com",
        "trusted_level": 3,
        "trusted_rating": 0,
        "ts": "2017-07-12T08:40:26Z"
    },
    "address2": "",
    "buddies_count": 34,
    "timeline": "85aeac5f-ca65-4283-a69d-949e5d89dd85",
    "last_name": "",
    "level_info": {
        "current_percentages": 55,
        "level_icon": "https://cdn.shping.com/2017/11/22/2f98de94-73bf-4b40-9490-e4a8a714264c.png",
        "level_name": "Basic",
        "level_type": "basic",
        "max_percentages": 100,
        "short_description": "Your Shping Level will be updated in 16 days."
    },
    "dashboard_info": {
        "activities": [
            {
                "id": "unique_scans",
                "max_value": 5,
                "value": 1
            },
            {
                "id": "uploaded_receipts",
                "max_value": 1,
                "value": 1
            },
            {
                "id": "number_of_active_days",
                "max_value": 1,
                "value": 9
            },
            {
                "id": "write_review_photo",
                "max_value": 1,
                "value": 0
            }
        ],
        "boost": null,
        "date_from": "2022-08-11T00:00:00Z",
        "date_to": "2022-09-11T00:00:00Z",
        "description_key": "description_2022_05",
        "level": "basic",
        "level_next": "bronze",
        "levels": [
            {
                "coin_rate": 1,
                "level_rate": 1,
                "type": "basic"
            },
            {
                "coin_rate": 2,
                "level_rate": 1.2,
                "type": "bronze"
            },
            {
                "coin_rate": 3,
                "level_rate": 1.3,
                "type": "silver"
            },
            {
                "coin_rate": 5,
                "level_rate": 1.4,
                "type": "gold"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.5,
                "type": "platinum"
            },
            {
                "coin_rate": 10,
                "level_rate": 1.6,
                "type": "ambassador"
            }
        ],
        "percents": 55,
        "type": "earned"
    },
    "id": "urn:authenticateit:user:email:email@mailinator.com",
    "timezone_min": 600,
    "phone_verified": true,
    "participants": [
        {
            "company_prefix": [
                "5798655827369"
            ],
            "country": "036",
            "id": "urn:authenticateit:participant:657061637498479",
            "last_access": "2018-06-05T23:54:05Z",
            "last_access_user": {
                "first_access": false,
                "ts": "2018-06-05T23:54:05Z"
            },
            "modules": [
                "product360"
            ],
            "name": "TMT",
            "parent": "urn:authenticateit:participant:1",
            "participant_type": [
                "product360"
            ],
            "roles": [
                "permanent_locale",
                "user"
            ]
        }
    ],
    "country": "036",
    "shopping_lists_beta_tester": true,
    "health_star_tester": true,
    "photo": "https://dev-cdn.shping.com/2018/8/1/9ee10d3a-ee36-43e3-8692-8df003629bb4",
    "roles": [
        "user",
        "permanent_locale"
    ],
    "last_access": "2017-10-18T06:19:50Z",
    "karma_value": 79.41981551510442,
    "permanent_locale": true,
    "buddy_extra_coins_percent": 30,
    "birthdate": "1987-10-20",
    "post_code": "1234",
    "address1": "",
    "password": "b1b3773a05c0ed0176787a4f1574ff0075f7521e",
    "countries_of_scans": {
        "datetime_from": "2022-05-25T08:30:40Z",
        "datetime_to": "2022-08-23T08:30:40Z",
        "list": [
            {
                "country": "643",
                "percentages": 21
            },
            {
                "country": "051",
                "percentages": 50
            },
            {
                "country": "036",
                "percentages": 28
            }
        ]
    },
    "city": "",
    "pending_points": 0,
    "email": "email@mailinator.com",
    "language": "en",
    "gender": "other",
    "legal_accept_expired": true,
    "coins": "20969601160239999994700777",
    "reviews_karma": -1,
    "legal_last_version": "urn:authenticateit:legal:users:1661393320",
    "reg_type": "email"
}

Update user's options

POST /identity-service/user/options
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: User Id
shopping_lists_beta_tester boolean shopping_lists_beta_tester option
block_review_steps list List of blocked steps for review

block_review_steps list should contain valid step values:
text,textbox,rating,question,image,video

If block_review_steps is empty list ([]) that means that all fields are unlocked

Example Request
{
   "id": "urn:authenticateit:user:email:email@mailinator.com", 
   "shopping_lists_beta_tester": true,
   "block_review_steps": ["video"]
}
Example Response
{
    "block_review_steps": ["video"],
    "disallow_ethereum_transactions": false,
    "first_name": "Test Name",
    "pending_coins": "45857055000000000000",
    "created": "2017-08-01T12:16:48Z",
    "points": 0,
    "phone": "+0423988254",
    "buddies_chunk": "urn:authenticateit:user:buddies_chunk:02f4efc1-6f73-439c-9ea6-672e69f57abb",
    "level": "basic",
    "settings": {
        "notify_on_buddies": true,
        "notify_on_reviews": false,
        "notify_on_rewards": false,
        "remind_to_scan": true,
        "reminders_notifications": false
    },
    "pending_participant": null,
    "moderator": {
        "supervisor_id": "urn:authenticateit:user:email:punchyrat@mailinator.com",
        "trusted_level": 3,
        "trusted_rating": 0,
        "ts": "2017-07-12T08:40:26Z"
    },
    "address2": "Test",
    "timeline": "85aeac5f-ca65-4283-a69d-949e5d89dd85",
    "last_name": "",
    "id": "urn:authenticateit:user:email:email@mailinator.com",
    "timezone_min": 240,
    "phone_verified": false,
    "participants": [
        {
            "id": "urn:authenticateit:participant:278049837579021",
            "last_access": "2021-06-15T07:34:20Z",
            "name": "SimpleMcGee",
            "roles": [
                "rewards_admin",
                "newsline",
                "product_line",
                "security_admin"
            ]
        },
        {
            "id": "urn:authenticateit:participant:841535075581481",
            "last_access": "2017-10-26T11:16:34Z",
            "name": "ZippityElf",
            "roles": [
                "payments_admin",
                "product_line",
                "report_viewer",
                "reviews_admin",
                "rewards_admin",
                "security_admin",
                "todo_cards_supervisor"
            ]
        },
        {
            "id": "urn:authenticateit:participant:657061637498479",
            "last_access": "2018-06-05T23:54:05Z",
            "name": "TMT",
            "roles": []
        }
    ],
    "country": "840",
    "shopping_lists_beta_tester": true,
    "health_star_tester": true,
    "photo": "https://dev-cdn.shping.com/2018/8/1/9ee10d3a-ee36-43e3-8692-8df003629bb4",
    "roles": [
        "user"
    ],
    "last_access": "2017-10-18T06:19:50Z",
    "birthdate": "1965-09-01",
    "post_code": "F1452ร",
    "address1": "Test",
    "password": "b1b3773a05c0ed0176787a4f1574ff0075f7521e",
    "countries_of_scans": {
        "datetime_from": "2021-03-06T05:48:01Z",
        "datetime_to": "2021-06-04T05:48:01Z",
        "list": [
            {
                "country": "840",
                "percentages": 6
            },
            {
                "country": "643",
                "percentages": 90
            },
            {
                "country": "036",
                "percentages": 3
            }
        ]
    },
    "city": "Test",
    "pending_points": 0,
    "email": "email@mailinator.com",
    "language": "en",
    "gender": "other",
    "coins": "21115993725239999994700777"
}

Read user scans

POST /identity-service/user/scans
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User id
scan_id body Scan id
from body From TS (datetime format '2012-12-12T01-01-01Z')
to body To TS (datetime format '2012-12-12T01-01-01Z')
offset body Offset
limit body Limit
order body Order type ("asc", "desc")
Example Request (read list of scans)
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com", "limit": 2
}
Example Response
{
    "count": 152,
    "data": [
        {
            "accept": "*/*",
            "accept-encoding": "gzip, deflate",
            "accept-language": "en-us",
            "accuracy": "65",
            "action_id": "a723b22d-9ec6-4946-99bd-4604b140b49a",
            "authenticateit_identity_ticket": "b4b28dac-909a-409f-afd7-38d606e9c263",
            "city": "Izhevsk",
            "code": "4602676004991",
            "connection": "upgrade",
            "content-length": "129",
            "content-type": "application/json; charset=utf-8",
            "country": "643",
            "delay": "0",
            "event_ts": "2018-03-20T07:34:04Z",
            "handler": "ait_authentication_service_gtin",
            "host": "dev-api.shping.com",
            "id": "fcf47fe4-bdea-4e76-997d-c5474d478877",
            "language": "en",
            "latitude": "56838747",
            "longitude": "53245708",
            "old_scan_id": 1429163,
            "product_id": "04602676004991",
            "product_name": "капли глазные \"тауфон\" 4%",
            "result": [
                {
                    "id": "64e0f25c-97f0-4ef7-8e9c-6842580da8a3",
                    "image": [
                        {
                            "url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png"
                        }
                    ],
                    "type": "default"
                },
                {
                    "coins": "5000000000000000000",
                    "id": "1748ef25-05e9-4118-ba9c-46ada81189c9",
                    "rewards_summary": {
                        "coins": "5000000000000000000"
                    }
                },
                {
                    "id": "a9cd7c31-17fa-420b-99d3-5feedc7d1d2a",
                    "title": {
                        "text": "капли глазные \"тауфон\" 4%"
                    }
                },
                {
                    "id": "c93d9cae-b073-4a8c-a6c2-4370a93c7eb8",
                    "status": {
                        "description": "According to Shping database",
                        "icon": "not_recalled",
                        "info": "",
                        "title": "This product is not recalled"
                    }
                },
                {
                    "details": {
                        "has_reviews": false
                    },
                    "id": "e5e70364-7311-457c-8649-b7686b0e73b7"
                },
                {
                    "id": "4909a388-13b2-4db6-9f44-2016fa63742b",
                    "text": {
                        "markdown": true,
                        "text": "капли глазные \"тауфон\" 4%",
                        "title": "Description"
                    }
                },
                {
                    "id": "daa6a305-a28a-4701-8c4c-7ae6b598d090",
                    "text": {
                        "markdown": true,
                        "text": "ФГУП \"Московский эндокринный завод\"",
                        "title": "Company"
                    }
                },
                {
                    "id": "7b8d8b2d-e316-4021-af4b-1581d27d050a",
                    "text": {
                        "markdown": true,
                        "text": "GS1 Russia",
                        "title": "Source"
                    }
                },
                {
                    "id": "99ba3216-7763-4929-b3ce-a844f5de8bd2",
                    "text": {
                        "markdown": true,
                        "text": "The product is not recalled",
                        "title": "Recall Status"
                    }
                }
            ],
            "result_type": "normal",
            "rewards_actions": [
                {
                    "1748ef25-05e9-4118-ba9c-46ada81189c9": {
                        "campaign": [
                            "urn:authenticateit:campaign:1"
                        ],
                        "coins": "5000000000000000000",
                        "event": "scan"
                    }
                }
            ],
            "ticket": "b4b28dac-909a-409f-afd7-38d606e9c263",
            "user-agent": "Shping/0.1.0.424 CFNetwork/811.5.4 Darwin/16.7.0",
            "user_id": "urn:authenticateit:user:email:mkv@mailinator.com",
            "x-forwared-for": "46.147.132.179",
            "x-real-ip": "46.147.132.179"
        },
        {
            "accept": "*/*",
            "accept-encoding": "gzip, deflate",
            "accept-language": "en-us",
            "accuracy": "65",
            "city": "Izhevsk",
            "code": "5000347078217",
            "connection": "upgrade",
            "content-length": "129",
            "content-type": "application/json; charset=utf-8",
            "country": "643",
            "delay": "0",
            "event_ts": "2018-03-20T07:15:59Z",
            "handler": "ait_authentication_service_gtin",
            "host": "dev-api.shping.com",
            "id": "5643d6ce-7485-4723-9b42-abe47c8fdefb",
            "language": "en",
            "latitude": "56838743",
            "longitude": "53245701",
            "old_scan_id": 1428888,
            "product_id": "05000347078217",
            "product_name": "Niquitin 21mg Clear 24 Hour 7 Patches Step 1",
            "result": [
                {
                    "id": "5b4c7e9e-d563-454c-80a6-0327cbdad8e2",
                    "image": [
                        {
                            "url": "https://services.authenticateit.com/upload/eandata/500/034/707/5000347078217.jpg"
                        }
                    ]
                },
                {
                    "id": "e48fd362-9a17-4f13-b05f-f2a3f0838657",
                    "title": {
                        "text": "Niquitin 21mg Clear 24 Hour 7 Patches Step 1"
                    }
                },
                {
                    "id": "5e6c28cf-7cc4-4d9c-b371-2adb337b5379",
                    "status": {
                        "description": "According to Shping database",
                        "icon": "not_recalled",
                        "info": "",
                        "title": "This product is not recalled"
                    }
                },
                {
                    "details": {
                        "has_reviews": false
                    },
                    "id": "f48350fc-4ea6-4d59-87fa-3a353fadf219"
                },
                {
                    "id": "94ac6722-c621-44e1-aad7-e189fc4d787a",
                    "text": {
                        "markdown": true,
                        "text": "Bath / Beauty / Hygiene",
                        "title": "Brick"
                    }
                },
                {
                    "id": "42d65b92-eed6-4484-8c70-aa4986b3d8c6",
                    "text": {
                        "markdown": true,
                        "text": "Niquitin",
                        "title": "Company"
                    }
                },
                {
                    "id": "16d6662c-92eb-483f-8984-e1cc99a6076b",
                    "text": {
                        "markdown": true,
                        "text": "2727998",
                        "title": "SKU"
                    }
                },
                {
                    "id": "7833d805-8f80-4e57-99a0-c19559316fdd",
                    "text": {
                        "markdown": true,
                        "text": "The product is not recalled",
                        "title": "Recall Status"
                    }
                }
            ],
            "result_type": "normal",
            "user-agent": "Shping/0.1.0.424 CFNetwork/811.5.4 Darwin/16.7.0",
            "user_id": "urn:authenticateit:user:email:mkv@mailinator.com",
            "x-forwared-for": "46.147.132.179",
            "x-real-ip": "46.147.132.179"
        }
    ]
}
Example Request (read one scan)
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com",
   "scan_id":"fcf47fe4-bdea-4e76-997d-c5474d478877"
}
Example Response
{
    "accept": "*/*",
    "accept-encoding": "gzip, deflate",
    "accept-language": "en-us",
    "accuracy": "65",
    "action_id": "a723b22d-9ec6-4946-99bd-4604b140b49a",
    "authenticateit_identity_ticket": "b4b28dac-909a-409f-afd7-38d606e9c263",
    "city": "Izhevsk",
    "code": "4602676004991",
    "connection": "upgrade",
    "content-length": "129",
    "content-type": "application/json; charset=utf-8",
    "country": "643",
    "delay": "0",
    "event_ts": "2018-03-20T07:34:04Z",
    "handler": "ait_authentication_service_gtin",
    "host": "dev-api.shping.com",
    "id": "fcf47fe4-bdea-4e76-997d-c5474d478877",
    "language": "en",
    "latitude": "56838747",
    "longitude": "53245708",
    "old_scan_id": 1429163,
    "product_id": "04602676004991",
    "product_name": "капли глазные \"тауфон\" 4%",
    "result": [
        {
            "id": "64e0f25c-97f0-4ef7-8e9c-6842580da8a3",
            "image": [
                {
                    "url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png"
                }
            ],
            "type": "default"
        },
        {
            "coins": "5000000000000000000",
            "id": "1748ef25-05e9-4118-ba9c-46ada81189c9",
            "rewards_summary": {
                "coins": "5000000000000000000"
            }
        },
        {
            "id": "a9cd7c31-17fa-420b-99d3-5feedc7d1d2a",
            "title": {
                "text": "капли глазные \"тауфон\" 4%"
            }
        },
        {
            "id": "c93d9cae-b073-4a8c-a6c2-4370a93c7eb8",
            "status": {
                "description": "According to Shping database",
                "icon": "not_recalled",
                "info": "",
                "title": "This product is not recalled"
            }
        },
        {
            "details": {
                "has_reviews": false
            },
            "id": "e5e70364-7311-457c-8649-b7686b0e73b7"
        },
        {
            "id": "4909a388-13b2-4db6-9f44-2016fa63742b",
            "text": {
                "markdown": true,
                "text": "капли глазные \"тауфон\" 4%",
                "title": "Description"
            }
        },
        {
            "id": "daa6a305-a28a-4701-8c4c-7ae6b598d090",
            "text": {
                "markdown": true,
                "text": "ФГУП \"Московский эндокринный завод\"",
                "title": "Company"
            }
        },
        {
            "id": "7b8d8b2d-e316-4021-af4b-1581d27d050a",
            "text": {
                "markdown": true,
                "text": "GS1 Russia",
                "title": "Source"
            }
        },
        {
            "id": "99ba3216-7763-4929-b3ce-a844f5de8bd2",
            "text": {
                "markdown": true,
                "text": "The product is not recalled",
                "title": "Recall Status"
            }
        }
    ],
    "result_type": "normal",
    "rewards_actions": [
        {
            "1748ef25-05e9-4118-ba9c-46ada81189c9": {
                "campaign": [
                    "urn:authenticateit:campaign:1"
                ],
                "coins": "5000000000000000000",
                "event": "scan"
            }
        }
    ],
    "ticket": "b4b28dac-909a-409f-afd7-38d606e9c263",
    "user-agent": "Shping/0.1.0.424 CFNetwork/811.5.4 Darwin/16.7.0",
    "user_id": "urn:authenticateit:user:email:mkv@mailinator.com",
    "x-forwared-for": "46.147.132.179",
    "x-real-ip": "46.147.132.179"
}

Read user's notification settings

POST /identity-service/user/notification_settings
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body User Id
Example Request
{
   "id": "urn:authenticateit:user:email:email@mailinator.com"
}
Example Response
{
    "brands": [
        {
            "allow_shoutouts": true,
            "brand": "Gigi"
        },
        {
            "allow_shoutouts": true,
            "brand": "Ethertest3"
        },
        {
            "allow_shoutouts": true,
            "brand": "ZippityElfBrand"
        }
    ],
    "settings": {
        "notify_on_buddies": true,
        "notify_on_reviews": false,
        "notify_on_rewards": false,
        "remind_to_scan": true,
        "reminders_notifications": false
    }
}

Read user's earnings history

POST /identity-service/user/rewards/earnings/events/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User id
from body From TS (datetime format '2012-12-12T01-01-01Z')
to body To TS (datetime format '2012-12-12T01-01-01Z')
chunk_id body Chunk Id

When using {from, to} filtering, only the first 1000 items will be returned

If the request vontains chunk_id - data from chunk will be returned.
If the request contains {from, to} filters - filtered data will be returned.
If the request contains user_id - head chunk data will be returned.

Example Request
{
    "id": "urn:authenticateit:user:email:shping:ed7393a4-0d8c-469e-8fe2-bfb98320ea8e",
    "from": "2021-12-12T12:00:00Z",
    "to": "2022-10-12T12:00:00Z" 
}
Example Response
{
    "list": [
        {
            "buddy_id": "urn:authenticateit:user:email:shping:ed7393a4-0d8c-469e-8fe2-bfb98320ea8e",
            "calculate_ts": "2022-09-30T08:40:43Z",
            "coins": "15500000000000000000",
            "id": "97e645dc-79fc-47fe-bf29-2feec1544bcd",
            "level": "basic",
            "profile_coins": "30271500000000000000000",
            "timezone_min": 240,
            "ts": "2022-09-03T12:00:00Z",
            "type": "buddy_invite"
        }
    ],
    "next": null
}

Read user's rewards claims

POST /identity-service/user/rewards
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User id
type body Required: Claim types ("approved", "rejected", "pending")
from body From TS (datetime format '2012-12-12T01-01-01Z')
to body To TS (datetime format '2012-12-12T01-01-01Z')
offset body Offset
limit body Limit
order body Order type ("asc", "desc")
Example Request (read list of rewards)
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com",
   "type":"approved",
   "limit":2
}
Example Response
{
    "count": 67,
    "data": [
        {
            "approved_coins": "5000000000000000000",
            "approved_events": [
                "scan"
            ],
            "campaign_id": "urn:authenticateit:campaign:1",
            "closed_coins": 0,
            "closed_events": [],
            "coin_rate": 1,
            "events": [
                "scan"
            ],
            "id": "cc8a340d-93f6-40c1-bc09-467c1509886f",
            "level": "basic",
            "num_impressions": 1,
            "pending_coins": "5000000000000000000",
            "scan_id": "5e6affb7-5eb1-4bc8-8b2b-26dc415e268c",
            "ts": "2018-03-20T07:39:06Z",
            "user_coin_rate": 1,
            "user_id": "urn:authenticateit:user:email:mkv@mailinator.com"
        },
        {
            "approved_coins": "5000000000000000000",
            "approved_events": [
                "scan"
            ],
            "campaign_id": "urn:authenticateit:campaign:1",
            "closed_coins": 0,
            "closed_events": [],
            "coin_rate": 1,
            "events": [
                "scan"
            ],
            "id": "6a307ec4-f8cf-4f0b-a9fc-2709d95848b0",
            "level": "basic",
            "num_impressions": 1,
            "pending_coins": "5000000000000000000",
            "scan_id": "fcf47fe4-bdea-4e76-997d-c5474d478877",
            "ts": "2018-03-20T07:34:16Z",
            "user_coin_rate": 1,
            "user_id": "urn:authenticateit:user:email:mkv@mailinator.com"
        }
    ]
}

Read user buddies list

POST /identity-service/user/buddies
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body User Id (Read main chunk)
chunk body Chunk Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
{
    "data": [
        {
            "coins": "13557722920000000000000",
            "first_name": "Кокрок",
            "id": "urn:authenticateit:user:email:kokrok@mailinator.com",
            "last_name": "",
            "level_name": "Basic",
            "level_type": "basic",
            "photo": "https://dev-cdn.shping.com/2018/3/21/d96cdac5-8c65-4dd7-9fd7-8fcc97ace2c1",
            "status": "family_separately",
            "ts": "2018-03-20T16:49:32Z",
            "type": "buddy"
        },
        {
            "coins": "198000000000000000000",
            "first_name": "Masha ",
            "id": "urn:authenticateit:user:email:devtuk@mailinator.com",
            "last_name": "",
            "level_name": "Bronze",
            "level_type": "bronze",
            "photo": "",
            "ts": "2018-03-24T06:12:17Z",
            "type": "buddy"
        }
    ],
    "id": "urn:authenticateit:user:buddies_chunk:8fc985a4-2f2a-4731-aa1d-cd33f793debd",
    "next": null,
    "owner": "urn:authenticateit:user:email:mkv@mailinator.com",
    "previous": null
}

Read list of sended reminders

POST /identity-service/user/reminders
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:reminder2@pay-mon.com"
}
Example Response
{
    "id": "urn:authenticateit:user:email:reminder2@pay-mon.com@users_reminders",
    "reminders": [
        {
            "reminder": "half_way_to_next_level",
            "ts": "2018-07-31T12:10:48Z"
        },
        {
            "reminder": "half_way_to_next_level",
            "ts": "2018-07-20T12:09:54Z"
        },
        {
            "reminder": "welcome_message",
            "ts": "2018-07-31T12:09:25Z"
        }
    ]
}

Read user timeline

POST /identity-service/user/timeline
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body User Id (Read main chunk)
chunk body Chunk Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
{
    "id": "d82cecd5-6a1c-4efc-921e-220272412890",
    "next": "f9014313-2054-453e-88fb-43a2e019a42f",
    "records": [
        {
            "coins": "1000000000000000000",
            "status": "approved",
            "text": "Earned 1 Shping coins from <b>1000000000000000000</b> ToDo card.",
            "ts": "2018-05-07T11:12:25Z",
            "type": "coins"
        },
        {
            "coins": "1000000000000000000",
            "status": "approved",
            "text": "Earned 1 Shping coins from <b>System Review</b> ToDo card.",
            "ts": "2018-05-07T11:12:10Z",
            "type": "coins"
        },
        {
            "coins": "1000000000000000000",
            "status": "approved",
            "text": "Earned 1 Shping coins from <b>System Review</b> ToDo card.",
            "ts": "2018-05-07T10:58:50Z",
            "type": "coins"
        },
        {
            "claim_id": "ef1da36a-6cbe-41bc-8674-4e714d5059f6",
            "coins": "10000000000000000000",
            "scan_id": "b77e87e1-7600-4aa3-8eb4-453a57d5c9b0",
            "status": "approved",
            "text": "Earned from <b>System campaign</b> per scan and view info of <b>Phone</b>.",
            "ts": "2018-05-07T10:55:05Z",
            "type": "coins"
        },
        {
            "coins": "10000000000000000000",
            "earned_coins": "10000000000000000000",
            "image_url": "https://dev-cdn.shping.com/2018/5/7/037361d4-b7c3-41fc-a3b7-e059c5ea6ab0.jpg",
            "max_coins": "10000000000000000000",
            "product_name": "Phone",
            "scan_id": "b77e87e1-7600-4aa3-8eb4-453a57d5c9b0",
            "text": "Phone",
            "ts": "2018-05-07T10:53:56Z",
            "type": "scan"
        },
        {
            "coins": 0,
            "earned_coins": 0,
            "image_url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png",
            "max_coins": "10000000000000000000",
            "product_name": "сыр творожный \"альметте\" сливочный",
            "scan_id": "467d3c24-cf7f-452b-a6ce-7d36a422509e",
            "text": "сыр творожный \"альметте\" сливочный",
            "ts": "2018-04-19T05:27:58Z",
            "type": "scan"
        },
        {
            "coins": 0,
            "earned_coins": 0,
            "image_url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png",
            "max_coins": "10000000000000000000",
            "product_name": "сыр творожный \"альметте\" сливочный",
            "scan_id": "8a485100-00ca-48e0-985d-3778b8a513bd",
            "text": "сыр творожный \"альметте\" сливочный",
            "ts": "2018-04-19T05:27:54Z",
            "type": "scan"
        },
        {
            "coins": 0,
            "earned_coins": 0,
            "image_url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png",
            "max_coins": "10000000000000000000",
            "product_name": "сыр творожный \"альметте\" сливочный",
            "scan_id": "cdbd37c4-26fe-4269-af5b-d1c63f5a8459",
            "text": "сыр творожный \"альметте\" сливочный",
            "ts": "2018-04-19T05:24:02Z",
            "type": "scan"
        },
        {
            "coins": 0,
            "earned_coins": 0,
            "image_url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png",
            "max_coins": "10000000000000000000",
            "product_name": "сыр творожный \"альметте\" сливочный",
            "scan_id": "807d1a7c-651a-4408-bd1e-8aeb5444de39",
            "text": "сыр творожный \"альметте\" сливочный",
            "ts": "2018-04-19T05:23:56Z",
            "type": "scan"
        },
        {
            "coins": 0,
            "earned_coins": 0,
            "image_url": "https://cdn.shping.com/2018/1/28/a759926f-0826-4d90-9d62-61aa4d202d56.png",
            "max_coins": "10000000000000000000",
            "product_name": "сыр творожный \"альметте\" сливочный",
            "scan_id": "6175e37e-7f09-480b-8b40-687c9828c34f",
            "text": "сыр творожный \"альметте\" сливочный",
            "ts": "2018-04-19T05:23:52Z",
            "type": "scan"
        }
    ]
}

Read user level info

POST /identity-service/user/level
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
{
    "all_matched": false,
    "current_description": {
        "activity": [],
        "activity_2021_02": [
            {
                "description": "Scans of unique numbered barcodes per month",
                "description_i18n_id": "user_levels-ambassador-activity-unique_scans-description",
                "id": "unique_scans",
                "levelup_text": "You need to scan {} new products for the current month to level up!",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-unique_scans-lvlup",
                "name": "Unique scans",
                "name_i18n_id": "user_levels-ambassador-activity-unique_scans-name",
                "value": 60
            },
            {
                "description": "Uploaded receipts",
                "description_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-description",
                "id": "uploaded_receipts",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-lvlup",
                "name": "Uploaded receipts",
                "name_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-name",
                "value": 20
            },
            {
                "description": "Cumulative number of Active Days per month",
                "description_i18n_id": "user_levels-ambassador-activity-number_of_active_days-description",
                "id": "number_of_active_days",
                "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-number_of_active_days-lvlup",
                "name": "Active days",
                "name_i18n_id": "user_levels-ambassador-activity-number_of_active_days-name",
                "value": 25
            },
            {
                "description": "Required number of Reviews with photo",
                "description_i18n_id": "user_levels-ambassador-activity-write_review_photo-description",
                "id": "write_review_photo",
                "levelup_text": "You need to write {} reviews with photo to level up!",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-write_review_photo-lvlup",
                "name": "Reviews with photo",
                "name_i18n_id": "user_levels-ambassador-activity-write_review_photo-name",
                "value": 6
            },
            {
                "description": "Loyaltee cards used",
                "description_i18n_id": "user_levels-ambassador-activity-used_storecards-description",
                "id": "used_storecards",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-used_storecards-lvlup",
                "name": "Loyaltee cards used",
                "name_i18n_id": "user_levels-ambassador-activity-used_storecards-name",
                "value": 4
            },
            {
                "description": "Karma value",
                "description_i18n_id": "user_levels-ambassador-activity-karma-description",
                "id": "karma",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-karma-lvlup",
                "name": "Karma value",
                "name_i18n_id": "user_levels-ambassador-activity-karma-name",
                "value": 90
            },
            {
                "description": "Purchases with Coin Booster items",
                "description_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-description",
                "id": "purchases_with_coin_booster_items",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-lvlup",
                "name": "Purchases with Coin Booster items",
                "name_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-name",
                "value": 4
            },
            {
                "description": "Featured products open rate",
                "description_i18n_id": "user_levels-ambassador-activity-fp_open_rate-description",
                "id": "fp_open_rate",
                "levelup_text_i18n_id": "user_levels-ambassador-activity-fp_open_rate-lvlup",
                "name": "Featured products open rate",
                "name_i18n_id": "user_levels-ambassador-activity-fp_open_rate-name",
                "value": 90
            }
        ],
        "coin_rate": 10,
        "earnings": [
            {
                "coins": "200000000000000000000",
                "description": "All Product Scanning",
                "description_i18n_id": "user_levels-platinum-earnings-scanning_products-description",
                "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                "full_description_i18n_id": "user_levels-platinum-earnings-scanning_products-full_description",
                "type": "scanning_products"
            },
            {
                "coins": "50000000000000000000",
                "description": "Adding a new product",
                "description_i18n_id": "user_levels-platinum-earnings-adding_new-description",
                "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                "full_description_i18n_id": "user_levels-platinum-earnings-adding_new-full_description",
                "type": "adding_new"
            },
            {
                "coins": "300000000000000000000",
                "description": "Writing Reviews",
                "description_i18n_id": "user_levels-platinum-earnings-writing_reviews-description",
                "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                "full_description_i18n_id": "user_levels-platinum-earnings-writing_reviews-full_description",
                "type": "writing_reviews"
            },
            {
                "coins": "20000000000000000000",
                "description": "Editing Product Info",
                "description_i18n_id": "user_levels-platinum-earnings-editing_product-description",
                "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                "full_description_i18n_id": "user_levels-platinum-earnings-editing_product-full_description",
                "type": "editing_product"
            },
            {
                "coins": "20000000000000000000",
                "description": "Submitting valuable life hack",
                "description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-description",
                "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                "full_description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-full_description",
                "type": "submitting_lifehack"
            }
        ],
        "footer": "Earn 10 times more coins per product scan",
        "footer_i18n_id": "user_levels-platinum-footer",
        "header": "300 scans per month <br/>Maximum 5 days with no scans per month <br/>10 reviews per month",
        "header_i18n_id": "user_levels-platinum-header",
        "icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
        "level_rate": 1.5,
        "name": "Platinum",
        "name_i18n_id": "user_levels-platinum-name",
        "short_description": "Your Shping Level will be updated in 30 days.",
        "short_description_i18n_id": "user_levels-platinum-short_description",
        "title": "Keep scanning new products to earn more platinum!",
        "title_i18n_id": "user_levels-platinum-title",
        "type": "platinum"
    },
    "current_percentages": 25,
    "dashboard_info": {
        "activities": [
            {
                "id": "unique_scans",
                "max_value": 60,
                "value": 1
            },
            {
                "id": "uploaded_receipts",
                "max_value": 20,
                "value": 0
            },
            {
                "id": "number_of_active_days",
                "max_value": 25,
                "value": 1
            },
            {
                "id": "write_review_photo",
                "max_value": 6,
                "value": 0
            },
            {
                "id": "used_storecards",
                "max_value": 4,
                "value": 0
            },
            {
                "id": "karma",
                "max_value": 90,
                "value": 99
            },
            {
                "id": "purchases_with_coin_booster_items",
                "max_value": 4,
                "value": 0
            },
            {
                "id": "fp_open_rate",
                "max_value": 90,
                "value": 100
            }
        ],
        "boost": null,
        "date_from": "2023-06-14T08:30:14Z",
        "date_to": "2023-07-14T08:30:14Z",
        "description_key": "description_2022_05",
        "level": "platinum",
        "level_next": "ambassador",
        "percents": 25,
        "type": "earned"
    },
    "description": [
        {
            "activity": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-bronze-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-bronze-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-bronze-activity-unique_scans-name",
                    "value": 20
                }
            ],
            "activity_2021_02": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-bronze-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-bronze-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-bronze-activity-unique_scans-name",
                    "value": 5
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-bronze-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-bronze-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-bronze-activity-uploaded_receipts-name",
                    "value": 1
                },
                {
                    "description": "Cumulative number of Active Days per month",
                    "description_i18n_id": "user_levels-bronze-activity-number_of_active_days-description",
                    "id": "number_of_active_days",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-bronze-activity-number_of_active_days-lvlup",
                    "name": "Active days",
                    "name_i18n_id": "user_levels-bronze-activity-number_of_active_days-name",
                    "value": 1
                },
                {
                    "description": "Required number of Reviews with photo",
                    "description_i18n_id": "user_levels-bronze-activity-write_review_photo-description",
                    "id": "write_review_photo",
                    "levelup_text": "You need to write {} reviews with photo to level up!",
                    "levelup_text_i18n_id": "user_levels-bronze-activity-write_review_photo-lvlup",
                    "name": "Reviews with photo",
                    "name_i18n_id": "user_levels-bronze-activity-write_review_photo-name",
                    "value": 1
                }
            ],
            "coin_rate": 1,
            "earnings": [
                {
                    "coins": "20000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-basic-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-basic-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-basic-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-basic-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "30000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-basic-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-basic-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-basic-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-basic-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-basic-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-basic-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Normal coins per any product scan",
            "footer_i18n_id": "user_levels-basic-footer",
            "header": "Base level",
            "header_i18n_id": "user_levels-basic-header",
            "icon": "https://cdn.shping.com/2017/11/22/2f98de94-73bf-4b40-9490-e4a8a714264c.png",
            "level_rate": 1,
            "name": "Basic",
            "name_i18n_id": "user_levels-basic-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-basic-short_description",
            "title": "Keep scanning new products to earn more coins to level up!",
            "title_i18n_id": "user_levels-basic-title",
            "type": "basic"
        },
        {
            "activity": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-silver-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-silver-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-silver-activity-unique_scans-name",
                    "value": 50
                },
                {
                    "description": "Cumulative number of Days with Scans per calendar month",
                    "description_i18n_id": "user_levels-silver-activity-days_with_scans-description",
                    "id": "number_of_days_with_scans",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-silver-activity-days_with_scans-lvlup",
                    "name": "Days with scans",
                    "name_i18n_id": "user_levels-silver-activity-days_with_scans-name",
                    "value": 10
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-silver-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-silver-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-silver-activity-uploaded_receipts-name",
                    "value": 2
                }
            ],
            "activity_2021_02": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-silver-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-silver-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-silver-activity-unique_scans-name",
                    "value": 30
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-silver-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-silver-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-silver-activity-uploaded_receipts-name",
                    "value": 6
                },
                {
                    "description": "Cumulative number of Active Days per month",
                    "description_i18n_id": "user_levels-silver-activity-number_of_active_days-description",
                    "id": "number_of_active_days",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-silver-activity-number_of_active_days-lvlup",
                    "name": "Active days",
                    "name_i18n_id": "user_levels-silver-activity-number_of_active_days-name",
                    "value": 5
                },
                {
                    "description": "Required number of Reviews with photo",
                    "description_i18n_id": "user_levels-silver-activity-write_review_photo-description",
                    "id": "write_review_photo",
                    "levelup_text": "You need to write {} reviews with photo to level up!",
                    "levelup_text_i18n_id": "user_levels-silver-activity-write_review_photo-lvlup",
                    "name": "Reviews with photo",
                    "name_i18n_id": "user_levels-silver-activity-write_review_photo-name",
                    "value": 2
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-silver-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-silver-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-silver-activity-used_storecards-name",
                    "value": 1
                },
                {
                    "description": "Purchases with Coin Booster items",
                    "description_i18n_id": "user_levels-silver-activity-purchases_with_coin_booster_items-description",
                    "id": "purchases_with_coin_booster_items",
                    "levelup_text_i18n_id": "user_levels-silver-activity-purchases_with_coin_booster_items-lvlup",
                    "name": "Purchases with Coin Booster items",
                    "name_i18n_id": "user_levels-silver-activity-purchases_with_coin_booster_items-name",
                    "value": 1
                }
            ],
            "coin_rate": 2,
            "earnings": [
                {
                    "coins": "40000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-bronze-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-bronze-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-bronze-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-bronze-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "60000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-bronze-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-bronze-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-bronze-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-bronze-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-bronze-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-bronze-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Earn 2 times more coins per product scan",
            "footer_i18n_id": "user_levels-bronze-footer",
            "header": "20 scans per month <br/>Maximum 20 days with no scans per month",
            "header_i18n_id": "user_levels-bronze-header",
            "icon": "https://cdn.shping.com/2017/11/22/0612ecb0-1d92-4125-a8bc-17e1010ea74b.png",
            "level_rate": 1.2,
            "name": "Bronze",
            "name_i18n_id": "user_levels-bronze-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-bronze-short_description",
            "title": "Keep scanning new products to earn more coins to level up!",
            "title_i18n_id": "user_levels-bronze-title",
            "type": "bronze"
        },
        {
            "activity": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-gold-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-gold-activity-unique_scans-name",
                    "value": 100
                },
                {
                    "description": "Required number of Reviews",
                    "description_i18n_id": "user_levels-gold-activity-write_review-description",
                    "id": "write_review",
                    "levelup_text": "You need to write {} reviews to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-write_review-lvlup",
                    "name": "Reviews documents",
                    "name_i18n_id": "user_levels-gold-activity-write_review-name",
                    "value": 2
                },
                {
                    "description": "Cumulative number of Days with Scans per calendar month",
                    "description_i18n_id": "user_levels-gold-activity-days_with_scans-description",
                    "id": "number_of_days_with_scans",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-days_with_scans-lvlup",
                    "name": "Days with scans",
                    "name_i18n_id": "user_levels-gold-activity-days_with_scans-name",
                    "value": 20
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-gold-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-gold-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-gold-activity-uploaded_receipts-name",
                    "value": 3
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-gold-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-gold-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-gold-activity-used_storecards-name",
                    "value": 2
                }
            ],
            "activity_2021_02": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-gold-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-gold-activity-unique_scans-name",
                    "value": 40
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-gold-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-gold-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-gold-activity-uploaded_receipts-name",
                    "value": 10
                },
                {
                    "description": "Cumulative number of Active Days per month",
                    "description_i18n_id": "user_levels-gold-activity-number_of_active_days-description",
                    "id": "number_of_active_days",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-number_of_active_days-lvlup",
                    "name": "Active days",
                    "name_i18n_id": "user_levels-gold-activity-number_of_active_days-name",
                    "value": 10
                },
                {
                    "description": "Required number of Reviews with photo",
                    "description_i18n_id": "user_levels-gold-activity-write_review_photo-description",
                    "id": "write_review_photo",
                    "levelup_text": "You need to write {} reviews with photo to level up!",
                    "levelup_text_i18n_id": "user_levels-gold-activity-write_review_photo-lvlup",
                    "name": "Reviews with photo",
                    "name_i18n_id": "user_levels-gold-activity-write_review_photo-name",
                    "value": 4
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-gold-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-gold-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-gold-activity-used_storecards-name",
                    "value": 2
                },
                {
                    "description": "Karma value",
                    "description_i18n_id": "user_levels-gold-activity-karma-description",
                    "id": "karma",
                    "levelup_text_i18n_id": "user_levels-gold-activity-karma-lvlup",
                    "name": "Karma value",
                    "name_i18n_id": "user_levels-gold-activity-karma-name",
                    "value": 70
                },
                {
                    "description": "Purchases with Coin Booster items",
                    "description_i18n_id": "user_levels-gold-activity-purchases_with_coin_booster_items-description",
                    "id": "purchases_with_coin_booster_items",
                    "levelup_text_i18n_id": "user_levels-gold-activity-purchases_with_coin_booster_items-lvlup",
                    "name": "Purchases with Coin Booster items",
                    "name_i18n_id": "user_levels-gold-activity-purchases_with_coin_booster_items-name",
                    "value": 2
                },
                {
                    "description": "Featured products open rate",
                    "description_i18n_id": "user_levels-gold-activity-fp_open_rate-description",
                    "id": "fp_open_rate",
                    "levelup_text_i18n_id": "user_levels-gold-activity-fp_open_rate-lvlup",
                    "name": "Featured products open rate",
                    "name_i18n_id": "user_levels-gold-activity-fp_open_rate-name",
                    "value": 75
                }
            ],
            "coin_rate": 3,
            "earnings": [
                {
                    "coins": "60000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-silver-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-silver-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-silver-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-silver-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "90000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-silver-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-silver-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-silver-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-silver-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-silver-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-silver-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Earn 3 times more coins per product scan",
            "footer_i18n_id": "user_levels-silver-footer",
            "header": "80 scans per month <br/>Maximum 15 days with no scans per month",
            "header_i18n_id": "user_levels-silver-header",
            "icon": "https://cdn.shping.com/2017/11/22/ea2f722f-27db-4728-9178-991a94b2886b.png",
            "level_rate": 1.3,
            "name": "Silver",
            "name_i18n_id": "user_levels-silver-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-silver-short_description",
            "title": "Keep scanning new products to earn more coins to level up!",
            "title_i18n_id": "user_levels-silver-title",
            "type": "silver"
        },
        {
            "activity": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-platinum-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-platinum-activity-unique_scans-name",
                    "value": 150
                },
                {
                    "description": "Required number of Reviews",
                    "description_i18n_id": "user_levels-platinum-activity-write_review-description",
                    "id": "write_review",
                    "levelup_text": "You need to write {} reviews to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-write_review-lvlup",
                    "name": "Reviews documents",
                    "name_i18n_id": "user_levels-platinum-activity-write_review-name",
                    "value": 3
                },
                {
                    "description": "Cumulative number of Days with Scans per calendar month",
                    "description_i18n_id": "user_levels-platinum-activity-days_with_scans-description",
                    "id": "number_of_days_with_scans",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-days_with_scans-lvlup",
                    "name": "Days with scans",
                    "name_i18n_id": "user_levels-platinum-activity-days_with_scans-name",
                    "value": 25
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-platinum-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-platinum-activity-used_storecards-name",
                    "value": 3
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-platinum-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-platinum-activity-uploaded_receipts-name",
                    "value": 4
                }
            ],
            "activity_2021_02": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-platinum-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-platinum-activity-unique_scans-name",
                    "value": 50
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-platinum-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-platinum-activity-uploaded_receipts-name",
                    "value": 15
                },
                {
                    "description": "Cumulative number of Active Days per month",
                    "description_i18n_id": "user_levels-platinum-activity-number_of_active_days-description",
                    "id": "number_of_active_days",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-number_of_active_days-lvlup",
                    "name": "Active days",
                    "name_i18n_id": "user_levels-platinum-activity-number_of_active_days-name",
                    "value": 20
                },
                {
                    "description": "Required number of Reviews with photo",
                    "description_i18n_id": "user_levels-platinum-activity-write_review_photo-description",
                    "id": "write_review_photo",
                    "levelup_text": "You need to write {} reviews with photo to level up!",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-write_review_photo-lvlup",
                    "name": "Reviews with photo",
                    "name_i18n_id": "user_levels-platinum-activity-write_review_photo-name",
                    "value": 5
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-platinum-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-platinum-activity-used_storecards-name",
                    "value": 3
                },
                {
                    "description": "Karma value",
                    "description_i18n_id": "user_levels-platinum-activity-karma-description",
                    "id": "karma",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-karma-lvlup",
                    "name": "Karma value",
                    "name_i18n_id": "user_levels-platinum-activity-karma-name",
                    "value": 80
                },
                {
                    "description": "Purchases with Coin Booster items",
                    "description_i18n_id": "user_levels-platinum-activity-purchases_with_coin_booster_items-description",
                    "id": "purchases_with_coin_booster_items",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-purchases_with_coin_booster_items-lvlup",
                    "name": "Purchases with Coin Booster items",
                    "name_i18n_id": "user_levels-platinum-activity-purchases_with_coin_booster_items-name",
                    "value": 3
                },
                {
                    "description": "Featured products open rate",
                    "description_i18n_id": "user_levels-platinum-activity-fp_open_rate-description",
                    "id": "fp_open_rate",
                    "levelup_text_i18n_id": "user_levels-platinum-activity-fp_open_rate-lvlup",
                    "name": "Featured products open rate",
                    "name_i18n_id": "user_levels-platinum-activity-fp_open_rate-name",
                    "value": 85
                }
            ],
            "coin_rate": 5,
            "earnings": [
                {
                    "coins": "100000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-gold-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-gold-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-gold-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-gold-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "150000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-gold-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-gold-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-gold-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-gold-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-gold-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-gold-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Earn 5 times more coins per product scan",
            "footer_i18n_id": "user_levels-gold-footer",
            "header": "200 scans per month <br/>Maximum 10 days with no scans per month <br/>5 reviews per month",
            "header_i18n_id": "user_levels-gold-header",
            "icon": "https://cdn.shping.com/2017/11/22/8c5e8e63-ea4a-4c0c-b859-85fc4eac6850.png",
            "level_rate": 1.4,
            "name": "Gold",
            "name_i18n_id": "user_levels-gold-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-gold-short_description",
            "title": "Keep scanning new products to earn more coins to level up!",
            "title_i18n_id": "user_levels-gold-title",
            "type": "gold"
        },
        {
            "activity": [],
            "activity_2021_02": [
                {
                    "description": "Scans of unique numbered barcodes per month",
                    "description_i18n_id": "user_levels-ambassador-activity-unique_scans-description",
                    "id": "unique_scans",
                    "levelup_text": "You need to scan {} new products for the current month to level up!",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-unique_scans-lvlup",
                    "name": "Unique scans",
                    "name_i18n_id": "user_levels-ambassador-activity-unique_scans-name",
                    "value": 60
                },
                {
                    "description": "Uploaded receipts",
                    "description_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-description",
                    "id": "uploaded_receipts",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-lvlup",
                    "name": "Uploaded receipts",
                    "name_i18n_id": "user_levels-ambassador-activity-uploaded_receipts-name",
                    "value": 20
                },
                {
                    "description": "Cumulative number of Active Days per month",
                    "description_i18n_id": "user_levels-ambassador-activity-number_of_active_days-description",
                    "id": "number_of_active_days",
                    "levelup_text": "You haven't leveled up yet because as per Terms and Conditions, you did not meet the required number of days of scanning to move up to the next level. Keep scanning new products to earn more coins to level up!",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-number_of_active_days-lvlup",
                    "name": "Active days",
                    "name_i18n_id": "user_levels-ambassador-activity-number_of_active_days-name",
                    "value": 25
                },
                {
                    "description": "Required number of Reviews with photo",
                    "description_i18n_id": "user_levels-ambassador-activity-write_review_photo-description",
                    "id": "write_review_photo",
                    "levelup_text": "You need to write {} reviews with photo to level up!",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-write_review_photo-lvlup",
                    "name": "Reviews with photo",
                    "name_i18n_id": "user_levels-ambassador-activity-write_review_photo-name",
                    "value": 6
                },
                {
                    "description": "Loyaltee cards used",
                    "description_i18n_id": "user_levels-ambassador-activity-used_storecards-description",
                    "id": "used_storecards",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-used_storecards-lvlup",
                    "name": "Loyaltee cards used",
                    "name_i18n_id": "user_levels-ambassador-activity-used_storecards-name",
                    "value": 4
                },
                {
                    "description": "Karma value",
                    "description_i18n_id": "user_levels-ambassador-activity-karma-description",
                    "id": "karma",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-karma-lvlup",
                    "name": "Karma value",
                    "name_i18n_id": "user_levels-ambassador-activity-karma-name",
                    "value": 90
                },
                {
                    "description": "Purchases with Coin Booster items",
                    "description_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-description",
                    "id": "purchases_with_coin_booster_items",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-lvlup",
                    "name": "Purchases with Coin Booster items",
                    "name_i18n_id": "user_levels-ambassador-activity-purchases_with_coin_booster_items-name",
                    "value": 4
                },
                {
                    "description": "Featured products open rate",
                    "description_i18n_id": "user_levels-ambassador-activity-fp_open_rate-description",
                    "id": "fp_open_rate",
                    "levelup_text_i18n_id": "user_levels-ambassador-activity-fp_open_rate-lvlup",
                    "name": "Featured products open rate",
                    "name_i18n_id": "user_levels-ambassador-activity-fp_open_rate-name",
                    "value": 90
                }
            ],
            "coin_rate": 10,
            "earnings": [
                {
                    "coins": "200000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-platinum-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-platinum-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-platinum-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-platinum-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "300000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-platinum-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-platinum-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-platinum-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-platinum-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-platinum-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Earn 10 times more coins per product scan",
            "footer_i18n_id": "user_levels-platinum-footer",
            "header": "300 scans per month <br/>Maximum 5 days with no scans per month <br/>10 reviews per month",
            "header_i18n_id": "user_levels-platinum-header",
            "icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
            "level_rate": 1.5,
            "name": "Platinum",
            "name_i18n_id": "user_levels-platinum-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-platinum-short_description",
            "title": "Keep scanning new products to earn more platinum!",
            "title_i18n_id": "user_levels-platinum-title",
            "type": "platinum"
        },
        {
            "activity": [],
            "activity_2021_02": [],
            "coin_rate": 10,
            "earnings": [
                {
                    "coins": "200000000000000000000",
                    "description": "All Product Scanning",
                    "description_i18n_id": "user_levels-ambassador-earnings-scanning_products-description",
                    "full_description": "For scanning any products barcode you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-ambassador-earnings-scanning_products-full_description",
                    "type": "scanning_products"
                },
                {
                    "coins": "50000000000000000000",
                    "description": "Adding a new product",
                    "description_i18n_id": "user_levels-ambassador-earnings-adding_new-description",
                    "full_description": "For adding a new product you will get Shping rewards. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-ambassador-earnings-adding_new-full_description",
                    "type": "adding_new"
                },
                {
                    "coins": "300000000000000000000",
                    "description": "Writing Reviews",
                    "description_i18n_id": "user_levels-ambassador-earnings-writing_reviews-description",
                    "full_description": "For write a review you will also be rewarded from time to time. Subject to the current terms and condition.",
                    "full_description_i18n_id": "user_levels-ambassador-earnings-writing_reviews-full_description",
                    "type": "writing_reviews"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Editing Product Info",
                    "description_i18n_id": "user_levels-ambassador-earnings-editing_product-description",
                    "full_description": " When you see discrepancy between product label and what's recorded in our system, you will also be rewarded. Subject to the terms and condition.",
                    "full_description_i18n_id": "user_levels-ambassador-earnings-editing_product-full_description",
                    "type": "editing_product"
                },
                {
                    "coins": "20000000000000000000",
                    "description": "Submitting valuable life hack",
                    "description_i18n_id": "user_levels-ambassador-earnings-submitting_lifehack-description",
                    "full_description": "If you know a valuable life hack that our panel of reviews would accept to be shown to other users, you will also be rewarded.",
                    "full_description_i18n_id": "user_levels-ambassador-earnings-submitting_lifehack-full_description",
                    "type": "submitting_lifehack"
                }
            ],
            "footer": "Earn 10 times more coins per product scan",
            "footer_i18n_id": "user_levels-ambassador-footer",
            "header": "300 scans per month <br/>Maximum 5 days with no scans per month <br/>10 reviews per month",
            "header_i18n_id": "user_levels-ambassador-header",
            "icon": "https://cdn.shping.com/2017/11/22/d19659ca-2fe0-41c4-bafe-f4b54a67cf61.png",
            "level_rate": 1.6,
            "name": "Ambassador",
            "name_i18n_id": "user_levels-ambassador-name",
            "short_description": "Your Shping Level will be updated in 30 days.",
            "short_description_i18n_id": "user_levels-ambassador-short_description",
            "title": "Keep scanning new products to earn more Ambassador!",
            "title_i18n_id": "user_levels-ambassador-title",
            "type": "ambassador"
        }
    ],
    "max_percentages": 100,
    "name": "Platinum",
    "scans_left": 0,
    "todo": [
        "Your Shping Level will be updated in 30 days."
    ],
    "type": "platinum"
}

Read contributor info

POST /identity-service/user/contributor_level
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
{
    "contributor_levels": [
        {
            "accuracy": 95,
            "coin_rate": 2000000000000000000,
            "current": true,
            "current_percentages": 50,
            "days_left": 12,
            "descriptions": "Add new products to Shping regularly to maintain your contributor status!",
            "descriptions_i18n_id": "contributor_levels-newbie-descriptions",
            "full_description": "While at the Newbie level, you will receive 2 Shping coins for every product added and verified by Shping verification team.",
            "full_description_i18n_id": "contributor_levels-newbie-full_description",
            "max_percentages": 100,
            "name": "Newbie",
            "name_i18n_id": "contributor_levels-newbie-name",
            "products": 5,
            "todo_description": "<b>0</b> new products",
            "todo_description_i18n_id": "contributor_levels-newbie-todo_description",
            "type": "newbie"
        },
        {
            "accuracy_rating": 90,
            "coin_rate": 3000000000000000000,
            "contributions": 10,
            "current": false,
            "descriptions": "Add new products to Shping regularly to maintain your contributor status!",
            "descriptions_i18n_id": "contributor_levels-expert-descriptions",
            "full_description": "While at the Expert level, you will receive 3 Shping coins for every product added and verified by Shping verification team. Being an expert contributor your contribution get recognized even further, all you contributions are linked to your profile and whenever someone new scans that product you earn One Shping coint. Its very important to ensure that information is complete and correct, as if anyone else will correct the error and find information you have forgotten to enter which exists on the product packaging This person would become the new source for this product while you would loose your entitlements.",
            "full_description_i18n_id": "contributor_levels-expert-full_description",
            "interval": "month",
            "name": "Expert",
            "name_i18n_id": "contributor_levels-expert-name",
            "todo_description": "<b>10</b> new products",
            "todo_description_i18n_id": "contributor_levels-expert-todo_description",
            "type": "expert"
        },
        {
            "accuracy_rating": 97,
            "coin_rate": 4000000000000000000,
            "contributions": 30,
            "current": false,
            "descriptions": "Add new products to Shping regularly to maintain your contributor status!",
            "full_description": "While at the Guru level, you will receive 4 Shping coins for every product added and verified by Shping verification team. Being an expert contributor your contribution get recognized even further, all you contributions are linked to your profile and whenever someone new scans that product you earn Two Shping coins. Its very important to ensure that information is complete and correct, as if anyone else will correct the error and find information you have forgotten to enter which exists on the product packaging This person would become the new source for this product while you would loose your entitlements.",
            "interval": "month",
            "name": "Guru",
            "name_i18n_id": "contributor_levels-guru-todo_description",
            "todo_description": "<b>30</b> new products",
            "type": "guru"
        }
    ],
    "current_level": {
        "accuracy": 95,
        "current_percentages": 50,
        "days_left": 12,
        "max_percentages": 100,
        "products": 5,
        "type": "newbie"
    }
}

Read transactions list

POST /user/transactions
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body User Id
chunk_id body Chunk Id

id or chunk_id parameter is required
If next field in response is null, then it is last chunk

Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Request
{
   "chunk_id": "urn:authenticateit:transactions_history_chunk:b5bdd04d-4785-4bf9-b55d-30d4f1d86c7b"
}
Example Response
{
    "history": [
            {
            "account": {
                "avatar_url": "https://images.coinbase.com/avatar?h=61f710805a65551207c9d7byjafcxQzYPjMprN0R71t%2BVpkJP2t60hwR92vM%0Ah7X%2F&s=128",
                "email": "email@gmail.com",
                "id": "80bc50eb-246a-5f8c-91f1-33dd27d6e519",
                "name": "user surnam",
                "profile_bio": null,
                "profile_location": null,
                "profile_url": null,
                "resource": "user",
                "resource_path": "/v2/users/80bc50eb-246a-5f8c-91f1-33dd27d6e519",
                "username": null
            },
            "coins": "1000000000000000000",
            "coins_prices": {
                "aud": 2.280501710376283e-22,
                "sgd": 2.2086659064994296e-22,
                "usd": 1.5906499429874572e-22
            },
            "fee": {
                "coins": "1000000000000000000",
                "coins_with_fee": "1000000000000000000",
                "coins_without_fee": "1000000000000000000",
                "fee_coins": 0,
                "fee_value": 0.0,
                "gas_coins": "51000000000000000000",
                "gas_fee_coins": 0,
                "gas_fee_precent": 0,
                "gas_fee_value": 0.0,
                "pay_fee_with_coins": false,
                "transaction_fee": 0,
                "transaction_fee_coins": 0,
                "transaction_fee_value": 0.0,
                "value": 0.0,
                "value_with_fee": 0.0,
                "value_without_fee": 0.0
            },
            "hash": null,
            "id": "urn:authenticateit:transaction_request:a15e7461-374c-4cab-93a4-d8aa4b83b2e2",
            "manual_code": "urn:authenticateit:transaction_request:a15e7461-374c-4cab-93a4-d8aa4b83b2e2:manual",
            "owner": "urn:authenticateit:user:email:email@gmail.com",
            "profile_coins": "466694263600000000000000",
            "status": "pending",
            "ts": "2022-05-11T05:26:05Z",
            "type": "coinbase"
        },
        {
            "account": {
                "account": "677742225595",
                "bank": "SomeBank",
                "bsb": "355896",
                "country": "036",
                "description": "My account",
                "name": "User's account",
                "postcode": "6646"
            },
            "coins": "10000000000000000000000",
            "coins_prices": {
                "aud": 2.2522522522522525e-22,
                "sgd": 2.1813063063063063e-22,
                "usd": 1.570945945945946e-22
            },
            "converted_aud_value": 0.7,
            "converted_usd_value": 0.02,
            "converted_value": 0.7,
            "currency": "aud",
            "fee": {
                "coins": "10000000000000000000000",
                "coins_with_fee": "17000610000000000000000",
                "coins_without_fee": "2999390000000000000000",
                "fee_coins": "7000610000000000000000",
                "fee_value": 1.57,
                "gas_coins": "579000000000000000000",
                "gas_fee_coins": "341610000000000000000",
                "gas_fee_precent": 59,
                "gas_fee_value": 0.07,
                "pay_fee_with_coins": false,
                "transaction_fee": 1.5,
                "transaction_fee_coins": "6659000000000000000000",
                "transaction_fee_value": 1.5,
                "value": 0.68,
                "value_with_fee": 2.25,
                "value_without_fee": 0.68
            },
            "hash": "de873d2451523b745d6b14a4e610ab1e",
            "id": "urn:authenticateit:transaction_request:9b0bb5c6-6158-40e1-a17c-15ce17ed7709",
            "profile_coins": "516695263600000000000000",
            "status": "success",
            "ts": "2022-05-11T00:48:00Z",
            "type": "cashout"
        },
        {
            "coins": "100000000000000000000",
            "hash": "0x09acbc55a8945966a514c59c6495a8451f6cc4a9cf9e3a77d9c013c682ce5383",
            "id": "e9c340aa-dacf-49bd-a5e0-8a938c477d54",
            "status": "success",
            "ts": "2018-09-17T16:44:37Z",
            "type": "deposit"
        },
        {
            "account": {
                "account": "658663884",
                "bank": "Test4",
                "bsb": "856658",
                "city": "Test4",
                "country": "036",
                "description": "Test4",
                "id": "60cd7ce5-1913-4a55-b047-4ce09dfbe593",
                "name": "Test4"
            },
            "coins": "100000000000000000000",
            "converted_usd_value": 0.03,
            "converted_value": 0.06,
            "currency": "aud",
            "hash": "f2844305f06bc7918114622f96002e8b",
            "id": "urn:authenticateit:transaction_request:2519981f-46a9-4656-b5f2-9dcdce12b5b4",
            "profile_coins": "299123456789012345678",
            "status": "success",
            "ts": "2018-10-29T14:53:00Z",
            "type": "cashout"
        },
        {
            "address": "0x1b0b278dDEAe29c4502f3888E6B58367643f9308",
            "coins": "500000000000000000000",
            "coins_wei_rate": 1.7e-10,
            "fee": "400000000000000000000",
            "hash": null,
            "id": "urn:authenticateit:transaction_request:171c2272-dc0a-48b5-87df-4b685b443338",
            "profile_coins": "9000000000000000000000",
            "status": "failure",
            "ts": "2018-07-05T11:20:00Z",
            "wei": 68000000000
        },
        {
            "address": "0x1b0b278dDEAe29c4502f3888E6B58367643f9308",
            "coins": "500000000000000000000",
            "coins_wei_rate": 3.333333334e-10,
            "fee": "50000000000000000000",
            "hash": "0xa2e12a7a050efeaa9d38a7329bb110852ac8a1fef8f87241f2b67e1510e885c0",
            "id": "urn:authenticateit:transaction_request:2ce24341-3b9f-4e25-8fe2-3ad1018f301a",
            "profile_coins": "3025117869999999999999",
            "status": "success",
            "ts": "2018-05-04T12:29:00Z",
            "wei": 16666666670
        }
    ],
    "next": "urn:authenticateit:transactions_history_chunk:b5bdd04d-4785-4bf9-b55d-30d4f1d86c7b"
}

Change cashout record status

PUT /identity-service/user/transactions/cashouts/:cashout_id/:status
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
cashout_id body Required: Cashout record Id
status body Required: Only failure status is supported for success records
Example Request

In this example we will change successed cashout record with ID urn:authenticateit:transaction_request:4f30f8d4-3b04-428b-b18f-33de4c1b4634 to failure status.

curl -X PUT \
  https://dev-api.shping.com/identity-service/user/transactions/cashouts/urn:authenticateit:transaction_request:4f30f8d4-3b04-428b-b18f-33de4c1b4634/failure \
  -H 'authenticateit_identity_ticket: 000ba8dd-4f31-4915-93e4-b81051bdaf10' \
  -H 'content-type: application/json' \
  -d '{"id":"urn:authenticateit:user:email:foo@bar.com" }'

Read parmanent block status

POST /user/permanently_block/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
 {
    "id": "urn:authenticateit:user:email:mkv@mailinator.com@permanently_block_status",
    "status": false
}

Set parmanent block status

POST /user/permanently_block/set
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}

Unset parmanent block status

POST /user/permanently_block/unset
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}

Read user's rewards ban history

POST /user/rewards_ban/get
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}
Example Response
{
    "history": [
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-21T08:16:03Z"
        },
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-21T08:16:03Z"
        },
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-20T08:16:03Z"
        }
    ],
    "id": "urn:authenticateit:user:email:mkv@mailinator.com@rewards_ban",
    "status": "inactive",
    "user": "urn:authenticateit:user:email:mkv@mailinator.com"
}

Set rewards ban

POST /user/rewards_ban/set
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
reason body Required: Ban reason
to body Required: Ban to TS (datetime)
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com",
   "to":"2019-12-12T12:12:12Z",
   "reason":"I can"
}
Example Response
 {
    "from": "2018-05-08T11:47:21Z",
    "history": [
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-21T08:16:03Z"
        },
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-21T08:16:03Z"
        },
        {
            "data": {
                "scans": [
                    "50c716a1-4659-404f-b0fc-d5ab5f279fef",
                    "b25c2628-eb57-46a8-9ff6-0364781171e3"
                ]
            },
            "from": "2018-03-20T08:16:02Z",
            "reason": "Too frequent scans.",
            "rule_id": "scan_interval",
            "to": "2018-03-20T08:16:03Z"
        }
    ],
    "id": "urn:authenticateit:user:email:mkv@mailinator.com@rewards_ban",
    "reason": "I can",
    "rule_id": "manual",
    "status": "active",
    "to": "2019-12-12T12:12:12Z",
    "user": "urn:authenticateit:user:email:mkv@mailinator.com"
}

Unset rewards ban

POST /user/rewards_ban/unset
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com",
}

Publish message to timeline

POST /user/timeline/message
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
message body Required: Message
type body Required: Message type ("coins", "notification")
push_message body Optional push message
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com",
   "message":"hello",
   "type":"notification"
}

Add/subtract coins from user

POST /users/coins
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
list list Required: List with users
pin string Required: Pin
Example Request
{
    "list": [
        {
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "coins": "92980000000000000000",
            "coins_type": "positive",
            "message": "Some positive coins for you +92.98"
        },
        {
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "coins": "92980000000000000000",
            "coins_type": "positive",
            "message": null
        },
        {
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "coins": "92980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for you -92.98"
        },
        {
            "user_id": "urn:authenticateit:user:phonenum:shping:c5db45fb-57e4-4502-a34e-1826e59c4b2b",
            "coins": "192980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for merged user -192.98"
        },
        {
            "user_id": "urn:authenticateit:user:phonenum:shping:unknown_user",
            "coins": "192980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for unknown user -192.98"
        }
    ],
    "pin": "XXXXXXX"
}
Example Response
 {
    "from_participant": "urn:authenticateit:participant:1",
    "from_user": "urn:authenticateit:user:email:system@authenticateit.com",
    "id": "urn:authenticateit:add_coins_request:c3767693-b477-46bf-8985-a66e1a6e20f2",
    "list": [
        {
            "coins": "92980000000000000000",
            "coins_type": "positive",
            "message": "Some positive coins for you +92.98",
            "result": "0ab4dcbd-0045-4237-8330-89cf83051548",
            "result_message": {
                "coins": "92980000000000000000",
                "id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
                "replace": false,
                "text": "Some positive coins for you +92.98",
                "type": "coins"
            },
            "status": "success",
            "top_user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278"
        },
        {
            "coins": "92980000000000000000",
            "coins_type": "positive",
            "message": null,
            "result": "8f204bdf-c505-4ede-a405-e3fc6e3e2e4b",
            "result_message": null,
            "status": "success",
            "top_user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278"
        },
        {
            "coins": "92980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for you -92.98",
            "result": "1631a77f-ab8f-49f6-8926-6092b9a5054c",
            "result_message": {
                "id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
                "replace": false,
                "text": "Some negative coins for you -92.98",
                "type": "notification"
            },
            "status": "success",
            "top_user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278",
            "user_id": "urn:authenticateit:user:facebook:shping:2c971dff-67aa-47c3-8c2b-ee8e052e3278"
        },
        {
            "coins": "192980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for merged user -192.98",
            "result": "f5c38a28-31d4-4860-abdc-438ca28a0022",
            "result_message": {
                "id": "urn:authenticateit:user:google:102441601320866092003",
                "replace": false,
                "text": "Some negative coins for merged user -192.98",
                "type": "notification"
            },
            "status": "success",
            "top_user_id": "urn:authenticateit:user:google:102441601320866092003",
            "user_id": "urn:authenticateit:user:phonenum:shping:c5db45fb-57e4-4502-a34e-1826e59c4b2b"
        },
        {
            "coins": "192980000000000000000",
            "coins_type": "negative",
            "message": "Some negative coins for unknown user -192.98",
            "status": "failure-no_user",
            "user_id": "urn:authenticateit:user:phonenum:shping:unknown_user"
        }
    ],
    "ts": "2023-11-02T02:41:29Z",
    "type": "add_coins_request"
}

Reset user's phone verification blocking

POST /user/verifications/phone/reset
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id body Required: User Id
Example Request
{
   "id": "urn:authenticateit:user:email:mkv@mailinator.com"
}

Read list of users by transaction hash/part of hash

GET /identity-service/user/transactions/hashes/:hash
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
hash url Required: Hash (part of hash). Minimum length is 6
Example Response
[
    {
        "birthdate": "2007-01-13",
        "buddies_chunk": "urn:authenticateit:user:buddies_chunk:d9473593-49ed-490d-8d92-59c505648aa3",
        "coins": "265000000000000000000000",
        "country": "643",
        "created": "2018-12-04T12:01:52Z",
        "email": "dev04121@mailinator.com",
        "first_name": "Пушкин",
        "gender": "female",
        "id": "urn:authenticateit:user:email:dev04121@mailinator.com",
        "language": "ru",
        "level": "gold",
        "password": "b1b3773a05c0ed0176787a4f1574ff0075f7521e",
        "pending_coins": "1000000000000000000",
        "pending_participant": null,
        "phone": "+12345678901",
        "phone_verified": true,
        "photo": "https://dev-cdn.shping.com/2018/12/4/a3e411f6-1785-4e82-8b32-8848b982930c",
        "points": 0,
        "roles": [
            "user"
        ],
        "settings": {
            "notify_on_buddies": true,
            "notify_on_reviews": true,
            "notify_on_rewards": true,
            "remind_to_scan": true,
            "reminders_notifications": true
        },
        "timezone_min": 240,
        "type": "user"
    },
    {
        "address1": "Lenin 17",
        "address2": "",
        "birthdate": "2000-03-01",
        "buddies_chunk": "urn:authenticateit:user:buddies_chunk:e5177835-a21e-4daa-a586-5e376fdd955a",
        "city": "Izhevsk",
        "coins": "19768000000000000000000",
        "country": "643",
        "created": "2018-11-12T13:29:55Z",
        "email": "maria.arshava@gmail.com",
        "first_name": "Very",
        "gender": "female",
        "id": "urn:authenticateit:user:google:112222072136943430726",
        "job_title": "CEO",
        "language": "ru",
        "last_name": "Merged",
        "level": "bronze",
        "merge": {
            "users": [
                "urn:authenticateit:user:twitter:1090462607167897601",
                "urn:authenticateit:user:phonenum:+79128541354",
                "urn:authenticateit:user:facebook:1987076478185892",
                "urn:authenticateit:user:email:barboskin@mailinator.com"
            ]
        },
        "pending_coins": "18000000000000000000",
        "phone": "+1234567890",
        "phone_verified": true,
        "photo": "https://dev-cdn.shping.com/2018/2/11/0c0aa837-70f1-407a-a484-e246730bcf76",
        "post_code": "426063",
        "roles": [
            "user"
        ],
        "service": "google",
        "timezone_min": 240,
        "type": "user"
    }
]

Read list of users by coupled ethereum address/part of address

GET /identity-service/user/ethereum/address/:value
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
value url Required: Address (part of address). Minimum length is 2
Example Response
[
    {
        "birthdate": "2007-01-13",
        "buddies_chunk": "urn:authenticateit:user:buddies_chunk:d9473593-49ed-490d-8d92-59c505648aa3",
        "coins": "265000000000000000000000",
        "country": "643",
        "created": "2018-12-04T12:01:52Z",
        "email": "dev04121@mailinator.com",
        "first_name": "Пушкин",
        "gender": "female",
        "id": "urn:authenticateit:user:email:dev04121@mailinator.com",
        "language": "ru",
        "level": "gold",
        "password": "b1b3773a05c0ed0176787a4f1574ff0075f7521e",
        "pending_coins": "1000000000000000000",
        "pending_participant": null,
        "phone": "+12345678901",
        "phone_verified": true,
        "photo": "https://dev-cdn.shping.com/2018/12/4/a3e411f6-1785-4e82-8b32-8848b982930c",
        "points": 0,
        "roles": [
            "user"
        ],
        "settings": {
            "notify_on_buddies": true,
            "notify_on_reviews": true,
            "notify_on_rewards": true,
            "remind_to_scan": true,
            "reminders_notifications": true
        },
        "timezone_min": 240,
        "type": "user"
    }
]

Read list of users by coupled cashout account/part of account

Method for searching data in any account field: account, bank, bsb, country, name or postcode

GET /identity-service/user/cashout/:value
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
value url Required: Part of any account field
Example Response
[
    {
        "birthdate": "2007-01-13",
        "buddies_chunk": "urn:authenticateit:user:buddies_chunk:d9473593-49ed-490d-8d92-59c505648aa3",
        "coins": "265000000000000000000000",
        "country": "643",
        "created": "2018-12-04T12:01:52Z",
        "email": "dev04121@mailinator.com",
        "first_name": "Пушкин",
        "gender": "female",
        "id": "urn:authenticateit:user:email:dev04121@mailinator.com",
        "language": "ru",
        "level": "gold",
        "password": "b1b3773a05c0ed0176787a4f1574ff0075f7521e",
        "pending_coins": "1000000000000000000",
        "pending_participant": null,
        "phone": "+12345678901",
        "phone_verified": true,
        "photo": "https://dev-cdn.shping.com/2018/12/4/a3e411f6-1785-4e82-8b32-8848b982930c",
        "points": 0,
        "roles": [
            "user"
        ],
        "settings": {
            "notify_on_buddies": true,
            "notify_on_reviews": true,
            "notify_on_rewards": true,
            "remind_to_scan": true,
            "reminders_notifications": true
        },
        "timezone_min": 240,
        "type": "user"
    }
]

User's reminders settings

Settings are stored in the document with id urn:authenticateit:users_reminders

{
  "id": "urn:authenticateit:users_reminders",
  "type": "users_reminders",
  "reminders_list": [
    {
      "template": "users_reminders/welcome_message",
      "id": "welcome_message",
      "status": "active",
      "conditions": [
        {
          "type": "new_user"
        }
      ],
      "periodically": "once"
    },
    {
      "template": "users_reminders/do_you_need_help",
      "id": "do_you_need_help",
      "conditions": [
        {
          "type": "no_scans_from_reg_date",
          "period": 7
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/we_missed_you",
      "id": "we_missed_you",
      "conditions": [
        {
          "type": "no_scans_from_current_date",
          "period": 21
        },
        {
          "type": "have_coins"
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/invite_your_friends",
      "id": "invite_your_friends",
      "conditions": [
        {
          "type": "no_buddies_from_reg_date",
          "period": 14
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/how_to_earn_coin",
      "id": "how_to_earn_coin",
      "conditions": [
        {
          "type": "no_scans_from_current_date",
          "period": 21
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/buddy_reminder_a",
      "id": "buddy_reminder_a",
      "conditions": [
        {
          "type": "no_buddies_from_reg_date",
          "period": 45
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/buddy_reminder_b",
      "id": "buddy_reminder_b",
      "conditions": [
        {
          "type": "no_buddies_from_reg_date",
          "period": 90
        }
      ],
      "status": "active",
      "periodically": "once"
    },
    {
      "template": "users_reminders/close_to_next_level",
      "id": "close_to_next_level",
      "conditions": [
        {
          "type": "current_percentages",
          "value_from": 90,
          "value_to": 99
        },
        {
          "type": "days_from_reg_date",
          "period": 2
        }
      ],
      "status": "active",
      "periodically": 10
    },
    {
      "template": "users_reminders/half_way_to_next_level",
      "id": "half_way_to_next_level",
      "conditions": [
        {
          "type": "current_percentages",
          "value_from": 40,
          "value_to": 60
        },
        {
          "type": "days_from_reg_date",
          "period": 2
        }
      ],
      "status": "active",
      "periodically": 10
    },
    {
      "template": "users_reminders/you_dropped_level",
      "id": "you_dropped_level",
      "conditions": [
        {
          "type": "drop_level"
        },
        {
          "type": "days_from_reg_date",
          "period": 5
        }
      ],
      "status": "active",
      "periodically": 10
    },
    {
      "template": "users_reminders/you_reached_level",
      "id": "you_reached_level",
      "conditions": [
        {
          "type": "reach_level"
        },
        {
          "type": "days_from_reg_date",
          "period": 5
        }
      ],
      "status": "active",
      "periodically": 10
    },
    {
      "template": "users_reminders/level_incentives_for_heavy_users",
      "id": "level_incentives_for_heavy_users",
      "conditions": [
        {
          "type": "level_incentives"
        }
      ],
      "status": "active",
      "periodically": 10
    },
    {
      "template": "users_reminders/level_incentives_for_long-term_platinum_user",
      "id": "level_incentives_for_long-term_platinum_user",
      "conditions": [
        {
          "type": "level_incentives_platinum"
        }
      ],
      "status": "active",
      "periodically": 10
    }
  ]
}

Participants management

Methods are available only for system

Read list of participants

POST /identity-service/participants
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Id filter
name string Name filter
billing_plan string or array Billing plan filter
billing_country string or array Billing country filter
billing_paid_from_filter_from date Billing paid_from date filter
billing_paid_from_filter_to date Billing paid_from date filter
billing_paid_to_filter_from date Billing paid_to date filter
billing_paid_to_filter_to date Billing paid_to date filter
billing_trial_to_filter_from datetime Billing trial_to datetime filter
billing_trial_to_filter_to datetime Billing trial_to datetime filter
partner_brand boolean partner_brand filter
origins_trace boolean origins_trace filter
paying_customer boolean paying_customer filter
retail_connect boolean retail_connect filter
order_by string Order by field condition
order_type string asc or desc
limit int Limit value
offset int Offset value

order_by - possible values id, name, billing_plan, billing_country, billing_paid_from, billing_paid_to, billing_trial_to

billing_plan - filter may be set as value or as list of values. Values and names:
custom - plan had not been set
basic - Essentials
light - Professional
complete - Professional+
complete+ - Enterprise
corporate - Unlimited
Values may be extended or changed in future

Example Request
{
  "billing_plan": "complete",
  "country": [
    "036",
    "643"
  ],
  "billing_paid_from_filter_from": "2019-03-01",
  "billing_paid_from_filter_to": "2019-03-30",
  "billing_paid_to_filter_from": "2019-04-01",
  "billing_paid_to_filter_to": "2019-04-30",
  "billing_trial_to_filter_from": "2019-01-01T00:00:00Z",
  "billing_trial_to_filter_to": "2019-12-01T00:00:00Z",
  "partner_brand": true,
  "paying_customer": true,
  "origins_trace": true,
  "retail_connect": true,
  "order_by": "id",
  "order_type": "asc"
}
Example Response
{
  "count": 1,
  "data": [
    {
      "billing_country": "036",
      "billing_paid_from": "2022-01-30",
      "billing_paid_to": "2022-02-28",
      "billing_plan": "complete+",
      "billing_trial_to": "2019-05-20T12:02:28Z",
      "due_date": "WEEK",
      "fee": {
        "source": "invoice",
        "status": "inactive",
        "ts": "2021-02-01T11:59:55Z",
        "type": "coins",
        "value": "20000000000000000000"
      },
      "frequency": "ANNUALLY",
      "has_brand_segmentation": true,
      "has_budget_adjustment": true,
      "id": "urn:authenticateit:participant:708023102856412",
      "invoice_time": "14:00",
      "name": "Wild Co",
      "participant_type": [
        "product360"
      ],
      "partner_brand": "true",
      "origins_trace": "true",
      "paying_customer": "true",
      "retail_connect": "true",
      "ref_prefix": "Wild Co",
      "xero_contact_id": "8f6eb941-476d-4da8-b498-8d864347b2d6"
    }
  ]
}

Read participant profile

GET /identity-service/participants/participant/:id
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID
Example Response
{
  "balance": {
    "address": "0x68e15afA2cc12e852b0BC348677CEA233DC7f08f",
    "coins": "997651407999999999999997437",
    "fee": {
      "source": "invoice",
      "status": "inactive",
      "ts": "2021-02-01T11:59:55Z",
      "type": "coins",
      "value": "20000000000000000000"
    },
    "participant_id": "urn:authenticateit:participant:708023102856412",
    "unlimited_coins": false
  },
  "tga_notification_settings": {
        "emails": [
            "foo@bar.com",
            "lol@bar.com"
        ],
        "status": "inactive"
    },
   "ibm_food_trust_module": {
        "api_key": "xxxxxxxxxxgd0MkL3Dysi0mhEqY0zlpGdA30qx",
        "service_id": "xxxx-xxxx-4575-a866-f4964568b0e1",
        "status": "inactive"
    },
    "retail_connect_bank_account": {
        "account": "123",
        "bsb": "123",
        "name": "1111123",
        "status": "inactive"
    },
  "billing": {
    "country": "036",
    "due_date": "WEEK",
    "frequency": "ANNUALLY",
    "has_brand_segmentation": true,
    "has_budget_adjustment": true,
    "invoice_time": "14:00",
    "paid_from": "2022-01-30",
    "paid_to": "2022-02-28",
    "plan": "complete+",
    "ref_prefix": "Wild Co",
    "stripe_customer": null,
    "trial": {
      "status": false,
      "ts": "2019-05-20T12:02:28Z"
    },
    "updated_at": "2019-06-06T05:50:16Z",
    "user_email": [
      "maria.arshava+122@gmail.com",
      "maria.arshava+127@gmail.com",
      "system@authenticateit.com"
    ],
    "xero_contact_id": "8f6eb941-476d-4da8-b498-8d864347b2d6"
  },
  "budget": 10500,
  "city": "Ижевск",
  "company_prefix": [
    "8383451",
    "008068736",
    "9353774"
  ],
  "country": "036",
  "gs1_activation_code": null,
  "id": "urn:authenticateit:participant:708023102856412",
  "name": "Wild Co",
  "partner_brand": true,
  "origins_trace": true,
  "paying_customer": true,
  "retail_connect": true,
  "team": [
    {
      "access_type": "Admin",
      "email": "some_email@mail.com",
      "first_name": "",
      "id": "urn:authenticateit:user:email:some_email@mail.com",
      "last_name": "",
      "ts": "2020-11-25T12:44:58Z"
    }
  ],
  "timezone_code": "Australia/Victoria"
}

Set paid period for participant

PUT /identity-service/participants/participant/:id/payment
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID
from_date string Required: Paid from date
to_date string Required: Paid to date
Example Request
{
    "from_date": "2019-02-01",
    "to_date": "2019-09-01" 
}
Example Response
{
    "amount": 0,
    "id": "null",
    "invoice_id": "460050219",
    "paid_from": "2019-02-01",
    "paid_to": "2019-09-01",
    "plan": "complete+"
}

Set trial period for participant

PUT /identity-service/participants/participant/:id/payment/trial
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID
to_date string Required: Trial to date
Example Request
{
    "to_date": "2019-09-01" 
}

Remove customer card data from profile

DELETE /identity-service/participants/participant/:id/payment/customer
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID

Set participant's transactions fee

PUT /identity-service/participants/participant/:id/deposit/fee
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID (URL segment)
type string Required: Fee type. percentages or coins
value coins Required: Fee value
source string Required: Fee source. invoice or customer's balance
status string Required: active or inactive

value parameter depends of type. If type = percentages, valid value is 0 <value≤ 100. If type = coins, value must be set as coins ("1000000000000000000" as 1 ShpingCoin).

Example Request

That means that on each transaction from participant balance will be charged an additional 50 percent of coins.

{
  "type": "percentages",
  "value": 50,
  "status": "active",
  "source": "balance"
}
Example Request

That means that on each transaction from participant balance will be charged an additional 20 ShpingCoin.

{
  "type": "coins",
  "value": "20000000000000000000",
  "status": "active",
  "source": "balance"
}
Example Request

That means that on each transaction an additional 20 ShpingCoin will be added to the invoice.

{
  "type": "coins",
  "value": "20000000000000000000",
  "status": "active",
  "source": "invoice"
}
Example Response
{
    "result": {
        "source": "invoice",
        "status": "active",
        "ts": "2019-04-05T02:34:35Z",
        "type": "coins",
        "value": "20000000000000000000"
    },
    "status": "ok"
}

Get participant's balance and balance settings

GET /identity-service/participants/participant/:id/deposit
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID

fee is customer's fee settings, topup is customer's configured topup

Example Response
{
    "address": "0x2980fBEc0b5Fc83177e2794ddf38BE177a3B0aF8",
    "coins": "10011240999999999999737856",
    "fee": {
        "source": "balance",
        "status": "active",
        "ts": "2019-04-05T00:33:28Z",
        "type": "percentages",
        "value": 50
    },
    "topup": {
        "amount": 20000,
        "coins_threshold": "20000000000000000000000",
        "currency": "aud",
        "frequency": "weekly",
        "minimal_amount": false,
        "status": "active"
    }
}

Delete participant and coupled data

DELETE /identity-service/participants/participant/:id
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Participant ID

Get import participants

GET /identity-service/participants/import
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
[
    {
        "id": "urn:authenticateit:participant:111111111111111",
        "name": "Import participant Wooly",
        "price_pick_frequency": "RRULE:FREQ=WEEKLY;BYDAY=TU"
    },
    {
        "id": "urn:authenticateit:participant:111111111111114",
        "name": "Import participant JB Hi-Fi"
    },
    {
        "id": "urn:authenticateit:participant:111111111111115",
        "name": "Import participant Coles",
        "price_pick_frequency": "RRULE:FREQ=WEEKLY;BYDAY=TU"
    }
]

Get history of import participant

GET /identity-service/participants/import/:id/history
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Import participant ID
Example Response
[
    {
        "bad_images": 0,
        "end_ts": "2019-07-23T17:44:05Z",
        "file": "wool_js_example.json",
        "file_size": 5731134,
        "missed_products": 7,
        "participant_id": "urn:authenticateit:participant:111111111111111",
        "start_ts": "2019-07-23T17:43:51Z",
        "stored_prices": 164,
        "total_objects": 492,
        "total_products": 485,
        "uploaded_images": 1098
    },
    {
        "bad_images": 0,
        "end_ts": "2019-07-23T14:36:39Z",
        "file": "20190503012550_woolworths_product_final.json",
        "file_size": 540587,
        "missed_products": 237,
        "participant_id": "urn:authenticateit:participant:111111111111111",
        "start_ts": "2019-07-23T14:36:33Z",
        "stored_prices": 0,
        "total_objects": 237,
        "total_products": 0,
        "uploaded_images": 0
    }
]

Update ibm_food_trust_module

PUT /identity-service/participants/participant/:id/ibm_food_trust_module
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID
action string Required: set ot unset
ibm_food_trust_module object Settings

ibm_food_trust_module.temperature_aggregation can be one of values: years, months, days, hours, minutes

Example Request. Set
{
    "action": "set",
    "ibm_food_trust_module": {
        "api_key": "XXXXXXXXXCJvZADrgd0MkL3Dysi0mhEqY0zlpGdA30qx",
        "service_id": "XXXXXXX-2e32-4575-XXXX-f4964568b0e1",
        "temperature_aggregation": "months",
        "status": "active"
    }
}
Example Response. Set
{
        "api_key": "XXXXXXXXXCJvZADrgd0MkL3Dysi0mhEqY0zlpGdA30qx",
        "service_id": "XXXXXXX-2e32-4575-XXXX-f4964568b0e1",
        "temperature_aggregation": "months",
        "status": "active"
}
Example Request. Unet
{
    "action": "unset"
}
Example Response. Unet
{
}

Update retail_connect_bank_account

PUT /identity-service/participants/participant/:id/retail_connect_bank_account
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID
action string Required: set ot unset
retail_connect_bank_account object Settings
Example Request. Set
{
  "action": "set",
  "retail_connect_bank_account": {
    "status": "active",
    "bsb": "123",
    "name": "1111123",
    "account": "123"
  }
}
Example Response. Set
{
    "account": "123",
    "bsb": "123",
    "name": "1111123",
    "status": "active"
}
Example Request. Unet
{
    "action": "unset"
}
Example Response. Unet
{
}

Update tga_notification_settings

PUT /identity-service/participants/participant/:id/tga_notification_settings
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID
action string Required: set ot unset
tga_notification_settings object Settings
Example Request. Set
{
    "action": "set",
    "tga_notification_settings": {
        "emails": ["foo@bar.com", "lol@bar.com"],
        "status": "active"
    }
}
Example Response. Set
{
    "emails": [
        "foo@bar.com",
        "lol@bar.com"
    ],
    "status": "active"
}
Example Request. Unet
{
    "action": "unset"
}
Example Response. Unet
{
}

Update import participant

PUT /identity-service/participants/import/:id
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Import participant ID
name string Import participant name
price_pick_frequency null or string Rule of price pick frequency
Example Request
{
  "name": "Import participant Coles",
  "price_pick_frequency":"RRULE:FREQ=WEEKLY;BYDAY=TU"
}
Example Response
{
    "id": "urn:authenticateit:participant:111111111111115",
    "name": "Import participant Coles",
    "price_pick_frequency": "RRULE:FREQ=WEEKLY;BYDAY=TU"
}

Set partner_brand/paying_customer/retail_connect/budget options

PUT /identity-service/participants/participant/:id/options
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID
partner_brand boolean partner_brand flag value
paying_customer boolean paying_customer flag value
origins_trace boolean origins_trace flag value
retail_connect boolean retail_connect flag value
trial_to_date string trial date option
budget nullable non_neg_int budget value
Example Request
{
   "partner_brand" :true,
   "paying_customer":true,
   "origins_trace": true,
   "retail_connect": true,
   "trial_to_date": "2022-10-11",
   "budget":1000
}
Example Response
{
    "balance": {
        "address": "0x2980fBEc0b5Fc83177e2794ddf38BE177a3B0aF8",
        "coins": "1696363191166749999999998336",
        "fee": {
            "source": "invoice",
            "status": "active",
            "ts": "2019-04-09T06:12:47Z",
            "type": "coins",
            "value": "20000000000000000000"
        },
        "last_topup_attempt": "2019-05-03T05:16:00Z",
        "participant_id": "urn:authenticateit:participant:735879621218609",
        "topup": {
            "amount": 2200,
            "coins_threshold": "20000000000000000000000",
            "currency": "aud",
            "frequency": "weekly",
            "minimal_amount": false,
            "status": "active"
        }
    },
    "billing": {
        "country": "036",
        "paid_from": "2020-12-28",
        "paid_to": "2021-01-28",
        "plan": "complete+",
        "stripe_customer": "cus_EpM9QDa7vsyeNU",
        "trial": {
            "status": true,
            "ts": "2022-10-11T23:59:59Z"
        },
        "updated_at": "2019-06-01T02:00:03Z",
        "user_email": [
            "ethertest3@mailinator.com"
        ]
    },
    "company_prefix": [
        "0498765432",
        "93"
    ],
    "country": "036",
    "gs1_activation_code": "promo90",
    "id": "urn:authenticateit:participant:735879621218609",
    "name": "Test",
    "budget":1000,
    "partner_brand": true,
    "paying_customer": true,
    "origins_trace": true,
    "retail_connect": true,
    "team": [
        {
            "access_type": "Admin",
            "email": "team_inv@mailinator.com",
            "first_name": "",
            "id": "urn:authenticateit:user:email:team_inv@mailinator.com",
            "last_name": "",
            "ts": "2018-10-12T12:08:48Z"
        }
    ]
}

Set timezone code for participant

PUT /identity-service/participants/participant/:id/timezone
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID
code code Required: Timezone code
Example Request
{
    "code": "Australia/Darwin" 
}

Remove timezone code from participant

DELETE /identity-service/participants/participant/:id/timezone
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id url Required: Participant ID

Terminal

Set device_id

POST /identity-service/terminal/device
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Device Id
Example Request
{
  "id": "45e812cc-1a23-4d94-aaf4-83bc239f6fab"
}

Video tutorials

Get video tutorials

GET /identity-service/video_tutorials
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
Example Response
{
    "data": [
        {
            "coins": "100000000000000000000",
            "id": "3669db0f-c0a1-47bb-a4e7-44f16eadbfb3",
            "is_skipped": false,
            "is_viewed": false,
            "skipped_ts": "1970-01-01T00:00:00Z",
            "trigger": "receipt_upload",
            "trigger_active": true,
            "type": "trigger",
            "use_level_multiplier": true,
            "video": {
                "description": "Sample video description",
                "main_video": {
                    "height": 1080,
                    "type": "VIDEO",
                    "url": "https://dev-cdn.shping.com/2023/5/16/dbd4cf0f-bad2-4d14-89b4-c539a7658ad3.mp4",
                    "width": 1920
                },
                "preview_image": {
                    "height": 1080,
                    "type": "IMAGE",
                    "url": "https://dev-cdn.shping.com/2023/5/16/492072b3-83ed-43b3-a4bb-6f4b0598c990.png",
                    "width": 1920
                },
                "title": "Sample video"
            },
            "viewed_ts": "1970-01-01T00:00:00Z"
        },
        {
            "coins": "36810000000000000000",
            "id": "967a611e-3e54-49c2-aa7d-02228a21b491",
            "is_skipped": false,
            "is_viewed": false,
            "skipped_ts": "1970-01-01T00:00:00Z",
            "trigger_active": false,
            "type": "initial_timeline",
            "use_level_multiplier": true,
            "video": {
                "description": "Phone description",
                "main_video": {
                    "height": 1080,
                    "type": "VIDEO",
                    "url": "https://dev-cdn.shping.com/2023/5/16/5961f7b2-258e-4d87-a550-f03914496c1f.mp4",
                    "width": 1920
                },
                "preview_image": {
                    "height": 1080,
                    "type": "IMAGE",
                    "url": "https://dev-cdn.shping.com/2023/5/16/86580078-bc4c-4a95-a752-8a82dc3ff79b.png",
                    "width": 1920
                },
                "title": "Phone"
            },
            "viewed_ts": "1970-01-01T00:00:00Z"
        }
    ]
}

Set video tutorial as viewed

POST /identity-service/video_tutorials/viewed
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Tutorial id
source string Source
Example Request
{
    "id": "3669db0f-c0a1-47bb-a4e7-44f16eadbfb3",
    "source": "timeline" 
}
Example Response. Without coins
{
    "coins": 0,
    "id": "3669db0f-c0a1-47bb-a4e7-44f16eadbfb3"
}
Example Response. With coins
{
    "coins": "33800000000000000000",
    "id": "967a611e-3e54-49c2-aa7d-02228a21b491"
}

Set video tutorial as skipped

POST /identity-service/video_tutorials/skipped
Parameters
Name Type Description
authenticateit_identity_ticket header Required: Session's ticket
id string Required: Tutorial id
Example Request
{
    "id": "3669db0f-c0a1-47bb-a4e7-44f16eadbfb3"
}
Example Response
{
    "id": "3669db0f-c0a1-47bb-a4e7-44f16eadbfb3"
}

results matching ""

    No results matching ""