> For the complete documentation index, see [llms.txt](https://onestore-dev.gitbook.io/dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://onestore-dev.gitbook.io/dev/eng/tools/webshop/validation.md).

# 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="/pages/l0J9fnNnqeXxDzKDywwd">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.
  }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://onestore-dev.gitbook.io/dev/eng/tools/webshop/validation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
