Present the six-digit code the guest received. On a match the account becomes ACTIVE, gets its wallet, and can hold rewards.

POSThttps://kicbak.co/api/third-party/v1/kicbak/signup/verify

Authentication

Every request needs a bearer token in the Authorization header — the same credential that made the signup.

Headers

FieldTypeRequiredDescription
AuthorizationstringrequiredBearer token obtained from POST /api/third-party/v1/auth/token, e.g. "Bearer eyJhbGci...".
Content-Typestringrequiredapplication/json

Request body

FieldTypeRequiredDescription
emailstringrequiredThe email you signed up.
codestringrequiredThe six-digit code the guest received (or, with a sandbox credential, the verificationCode from the signup response).

Code examples

bash
curl -X POST "https://kicbak.co/api/third-party/v1/kicbak/signup/verify" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "email": "ada@example.com", "code": "482913" }'

Responses

Every response is JSON with a status field (1 success, 0 failure). Failures also carry a code your error handler can branch on — it never changes if we reword message.

json
{
  "status": 1,
  "message": "Account activated.",
  "data": { "email": "ada@example.com", "username": "ada", "status": "ACTIVE" }
}

Error reference

StatusCodeMeaning
400INVALID_CODEThe code does not match. Each code allows five attempts; after that it is discarded.
400CODE_EXPIREDNo live code for this email — it expired (15 minutes) or was used up. Call the signup endpoint again.
400TOO_MANY_ATTEMPTSFive wrong codes in a row. The code is discarded; issue a new one via the signup endpoint.
409NOT_PENDINGThe account exists but is not waiting on a code (for example, it was blocked). Nothing you send will activate it.
401UNAUTHORIZEDNo readable credential, or a token that doesn't decode/validate.
401TOKEN_EXPIREDToken aged out. Re-exchange the same client_key/client_secret and retry.
401CREDENTIAL_ROTATEDThis token was minted under a secret that has since been rotated. Exchange your new secret.
401CREDENTIAL_EXPIREDThe credential itself is past its own expiry — re-exchanging will not help; request a new credential.
401CLIENT_INACTIVEThe client has been deactivated.
503SANDBOX_UNAVAILABLEYou are using a sandbox credential and the sandbox environment is temporarily unavailable on our side. Retry shortly; production credentials are unaffected.
429More than 300 verifications in an hour from this client.
500INTERNAL_ERRORUnexpected server error. Safe to retry.