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 (seereg_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 withnickname
.username
— alias foremail
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 useemail
as user identifier orphone
number. Alsonickname
may be used if there is current participant. The parameter is optional and isemail
by default.email
— valid user email address. Required ifreg_type
isemail
.phone
— valid phone number. Required ifreg_type
isphone
.nickname
— user nickname. Required ifreg_type
isnickname
.password
— user's password. The parameter is required.first_name
,last_name
— user name information.gender
— user's gender (male
,female
orother
).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. Whenreg_type
isemail
, email message with activation link will be sent to the user's email address. Whenreg_type
isphone
, 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 areapple
,facebook
,google
,instagram
,twitter
,vk
,wechat
,coinbase
,telegram
.service_params
—telegram
service parameters. Required fields areservice_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
— ifaccess_token
directly is unavailable, OAuth 2.0 authorization code must be provided. Server will exchange the providedcode
foraccess_token
.id_token
— some services require JSON Web Token with user profile information (see below), overridesaccess_token
andcode
.user_id
— service-specific user identifier related to theaccess_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.0access_token
andcode
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 |
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 |
---|---|---|
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 |
---|---|---|
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.
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 languagecountry
- Filter by country codecity
- Filter by city (or part of city)gender
- Filter by gendercreated_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 balancetotal_balance_to
- Filter by total balanceaccount_balance_from
- Filter by transition account balanceaccount_balance_to
- Filter by transition account balancedevice
- 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
- Offsetlimit
- Limitorder_by
- Order columnorder_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
Example Response. Legal accepted part
{
"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 setbasic
- Essentialslight
- Professionalcomplete
- Professional+complete+
- Enterprisecorporate
- 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"
}