Status Overview
Creating a Character
Send aPOST request to /v1/users/{userId}/characters to create a new character in draft status. You must be authenticated as the user specified in the path — you cannot create characters on behalf of another user.
Endpoint: POST /v1/users/{userId}/characters
Request body
201 Created with the full character object, including the newly assigned characterId and an idStatus of "draft".
Error responses
Each user account has a maximum character limit. If you hit a
409, you must delete an existing character before creating a new one.Editing the Draft
While a character is indraft (or rejected) status, you can update any of its fields with a PATCH request. All fields are optional — include only the ones you want to change.
Endpoint: PATCH /v1/users/{userId}/characters/{characterId}
Submitting for Review
When you are ready for staff to review the character, submit it with aPOST to the submit endpoint. The character’s status changes from draft to submitted.
Endpoint: POST /v1/users/{userId}/characters/{characterId}/submit
No request body is required. A successful submission returns 201 with the updated character object.
You can also append ?signature=true to include the character’s signature data in the response.
Error responses
Cancelling a Submission
If a character is insubmitted status and you need to make further changes, cancel the submission to move it back to draft.
Endpoint: POST /v1/users/{userId}/characters/{characterId}/cancel
No request body is required. On success, the server returns 201 with the character in draft status.
Behaviour by status
After Approval
When staff approve a character, the character’sidStatus transitions to "approved". The character is now active in the game.
A wallet is automatically created and linked to the character the first time the character’s data is fetched after approval. If wallet is null in the response, make a GET request to the character endpoint to trigger wallet creation.
Approved characters are active in the game and cannot be re-submitted or edited through the lifecycle endpoints. To query the character’s linked bank accounts, use GET /v1/users/{userId}/characters/{characterId}/bankAccounts.
