Skip to Content
Version 1.1 · A Coming soon badge is a backward-compatible change still rolling out.
Player KYC

Player KYC

JPY deposits require the player to be registered once. A deposit for an unregistered player fails with 502 and {"code": "KYC_NOT_REGISTERED"}.

Registration can take up to 30 minutes. Deposits are accepted when the status is REGISTERED.

Register

POST /kyc-register

The path uses a hyphen, not a slash.

FieldRequiredNotes
gatewayyes todayThe KYC channel value from InsPay onboarding. Coming soongateway becomes optional. InsPay routes by currency and your account setup. Values you already send stay accepted.
playerIdyesYour player id
userNameyesPlayer name in full-width katakana
currencyyesJPY
callbackUrlnoReceives the final KYC status
timestamp, nonceyesSee signing
kyc-register.json
{ "gateway": "YOUR_KYC_CHANNEL", "playerId": "player_abc123", "userName": "ヤマダ タロウ", "currency": "JPY", "callbackUrl": "https://merchant.example.com/callbacks/kyc", "timestamp": 1791729147, "nonce": "d4e5f6a7" }
kyc-register.sh
API_KEY="YOUR_API_KEY" SECRET_KEY="YOUR_SECRET_KEY" BASE_URL="https://api-sandbox.inspay.dev/merchant" CANONICAL='{"callbackUrl":"https://merchant.example.com/callbacks/kyc","currency":"JPY","gateway":"YOUR_KYC_CHANNEL","nonce":"d4e5f6a7","playerId":"player_abc123","timestamp":"1791729147","userName":"\u30e4\u30de\u30c0 \u30bf\u30ed\u30a6"}' SIG=$(printf '%s' "$CANONICAL" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}') curl -sS -X POST "$BASE_URL/kyc-register" \ -H "Content-Type: application/json" \ -H "x-api-key: $API_KEY" \ -H "x-signature: $SIG" \ --data-binary "$CANONICAL"

Response fields: playerId, gateway, status (PENDING), and message. message is informational text. The status starts at PENDING.

Status

POST /kyc/status

This path uses a slash. Body: gateway (same rules as registration), playerId, timestamp, nonce.

kyc-status.sh
API_KEY="YOUR_API_KEY" SECRET_KEY="YOUR_SECRET_KEY" BASE_URL="https://api-sandbox.inspay.dev/merchant" CANONICAL='{"gateway":"YOUR_KYC_CHANNEL","nonce":"d4e5f6a7","playerId":"player_abc123","timestamp":"1791729147"}' SIG=$(printf '%s' "$CANONICAL" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}') curl -sS -X POST "$BASE_URL/kyc/status" \ -H "Content-Type: application/json" \ -H "x-api-key: $API_KEY" \ -H "x-signature: $SIG" \ --data-binary "$CANONICAL"

Response fields: playerId, gateway, status, providerStatus, updatedAt.

Coming soonproviderStatus becomes an InsPay-defined value. Do not branch on today’s providerStatus text.

Never registered:

kyc-missing.json
{"message": "No KYC registration found for this player."}

HTTP status 404.

KYC statuses

StatusWhat to do
PENDINGStill processing. Registration can take up to 30 minutes.
REGISTEREDDeposits are accepted for this player.
FAILEDCheck the name and register again.
EXPIREDRegister again.

The final status is also posted to the registration callbackUrl. See callbacks.

Last updated on