# User Validation

Verifies whether the game ID and server information entered by the user are valid and whether the item can be purchased.

* Game ID is the value used to identify the final recipient (user or character) who will receive the item.In the Webshop, it is transmitted as `serviceUserId`.\
  \&#xNAN;*<mark style="color:$info;">(Depending on the game structure, it may be used as a UID or a Character ID.)</mark>*

#### **Request URI**

{% hint style="warning" %}
**Notice**\
According to the ONE webshop security policy, only the **HTTPS protocol and port 443** are supported.\
Using any other configuration may result in improper operation.
{% endhint %}

<table data-header-hidden><thead><tr><th width="184.9678955078125"></th><th></th></tr></thead><tbody><tr><td><strong>HTTP Type</strong></td><td>HTTPS</td></tr><tr><td><strong>HTTP Method</strong></td><td><mark style="color:$primary;"><code>POST</code></mark></td></tr><tr><td><strong>URL</strong></td><td>You can register the server URL in <code>Developer Center > Webshop > Integration Mgmt.</code><br>For setup instructions, refer to the <a href="../../webshop/integration">Integration Management</a> Guide.</td></tr><tr><td><strong>Header</strong></td><td><p>Content-Type: application/json; charset=UTF-8</p><p>Accept: application/json</p></td></tr></tbody></table>

#### **Request**

<table><thead><tr><th width="203.33251953125">Name</th><th width="133.9879150390625">Type</th><th width="127.109375">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><code>param.clientId</code></td><td>String</td><td>M</td><td>ONE webshop Title ID(Product ID)</td></tr><tr><td><code>param.prodId</code></td><td>String</td><td>M</td><td>ONE webshop Item ID(In-App Product ID)</td></tr><tr><td><code>param.serviceUserId</code></td><td>String</td><td>M</td><td>User’s Game ID</td></tr><tr><td><code>param.serviceServerId</code></td><td>String</td><td>Optional</td><td>User’s Server ID<br><mark style="color:$danger;">※ This is required when <code>Purchase Input Information</code> = <code>Purchase Identifier + Server</code></mark></td></tr><tr><td><code>signature</code></td><td>String</td><td>M</td><td><p>Signature Verification (License Key)</p><ul><li>The signature key can be found in <code>Developer Center > Integration Mgmt. > Settings for Licensing</code> </li><li>Guide : <a href="https://onestore-dev.gitbook.io/dev/tools/webshop/billing#id-07.pns-pushnotificationservice-signature">How to review the signature</a> </li></ul></td></tr></tbody></table>

**Example**

```
curl -X POST \
  'https://example.com/gameuser/check' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "param": {
      "clientId": "WS00000001",
      "prodId": "item1000",
      "serviceUserId": "USR1234567890",
      "serviceServerId": "asia01"
    },
    "signature": "ajkfl;askfjkladfjksl"
  }'
```

#### **Response**

<table><thead><tr><th width="203.33251953125">Name</th><th width="133.9879150390625">Type</th><th width="127.109375">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><code>result.code</code></td><td>String</td><td>M</td><td>"0000": Success<br>"1000": Non-member<br>"1001": Not allowed to purchase</td></tr><tr><td><code>result.message</code></td><td>String</td><td>M</td><td><ul><li>When <code>result.code</code> is <code>1001</code>, this message is displayed to the user.</li><li>It is recommended to provide the message in a language appropriate for the target users.</li><li><p><strong>Example messages</strong></p><ul><li>"구매 가능한 횟수를 초과하였습니다."(You have exceeded the maximum number of purchases allowed.)</li><li>"이미 구매한 상품입니다."(This product has already been purchased.)</li><li>"이벤트 기간이 종료된 상품입니다."(This product is no longer available as the event period has ended.)</li></ul></li></ul></td></tr><tr><td><code>developerPayload</code></td><td>String</td><td>Optional</td><td><p>An identifier for a purchase provided by the developer in the validation response.</p><ul><li>It is also included in the PNS after payment completion and used for purchase verification.</li></ul></td></tr></tbody></table>

**Example**

```
// Success
{
  "result": {
    "code": "0000",
    "message": "User found"
  },
  "developerPayload": "OS_000211234" //Optional
}

// Non-member
{
  "result": {
    "code": "1000",
    "message": "User not found"
  }
}

//Not allowed to purchase
{
  "result": {
    "code": "1001",
    "message": "구매 가능한 횟수를 초과하였습니다." //You have exceeded the maximum number of purchases allowed.
  }
}
```
