Test users¶
Let colleagues open your app in Gerege App and pay in test mode while it is a draft or in review. Time: 5 minutes. You need: an app in the console, and the person must be an active member of your organisation.
Who can be a test user¶
- Only an active member of the organisation that owns the app. You cannot add an outsider by name — an unapproved app must not appear in a stranger's launcher, and the platform has no safe way to look strangers up.
- To invite a friend, first make them a member of your organisation (the organisation's invitation or join link), then add them as a test user.
- At most 50 test users per app. A wider beta is what review and publication are for.
- A suspended app takes no new test users (
409 suspended).
What a test user can do¶
- See and open a draft or in-review app in their launcher, like its owner.
- Their launch code is a «tester» code — the app's test credential exchanges it for tokens, and only that one:
the live credential gets
400 invalid_grant(1.13.0; the owner's own launch too). So a test user's launch reaches your test backend with test-mode tokens, and their payments arelivemode: false. - The app's owner and its test users are the only people who may claim a test claimless intent (
qr,redirect,terminal) — to everybody else it does not exist (404). At a terminal a test user is offered the test basket first. They scan a/pay/…link with Gerege App's (iOS build 122+) QR button, "Scan NFC" or the camera and confirm the test payment with Face ID — no money moves (Sandbox). - The console's simulation (
test_user_id) plays only a test user or the owner —409 not_a_test_user.
API (console)¶
With a console session (organisation permissions miniapp.read / miniapp.manage):
| Method | Path | Body / answer |
|---|---|---|
| GET | /api/v1/miniapp/dev/apps/{id}/test-users |
the list |
| POST | /api/v1/miniapp/dev/apps/{id}/test-users |
{"user_id": "<uuid>"} or {"email": "…"} (exactly one), "note" ≤ 120 → 201 new, 200 already added |
| DELETE | /api/v1/miniapp/dev/apps/{id}/test-users/{user_id} |
removes |
| HTTP | code |
When |
|---|---|---|
| 400 | validation_error |
both or neither of user_id and email; user_id is not a UUID; note longer than 120 |
| 404 | user_not_found |
the person is not an active member of your organisation |
| 409 | too_many_test_users |
the app already has 50 test users |
| 409 | suspended |
the app is suspended |
| 503 | directory_unavailable |
the member list could not be read just now — try again |
Adding and removing are written to the organisation's audit log.