Developer Console
Hosted Pages
Use hosted pages to integrate user enrollment and receipt scanning without building custom UI.
Overview
Hosted pages are pre-built, secure interfaces that handle:
- User Enrollment — Capture user consent and enroll users
- Receipt Upload — Allow users to upload receipt images
These pages display your application logo (configured in application settings) and redirect users back to your specified redirect URI upon completion.
Integration Flow
User Enrollment Session
Initialize an enrollment session to get user consent via hosted page.
Initialize Session
POST /issuers/users/enroll/session?api-version=1.0Request Headers:
| Header | Description |
|---|---|
content-type | application/json |
x-client-id | Your application's Client ID |
x-client-secret | Your application's Client Secret |
Request Body:
{
"email": "user@example.com",
"firstName": "John",
"lastName": "Doe",
"redirectUri": "https://yourapp.com/enrollment-complete",
"imageUrl": "https://example.com/avatar.png",
"country": "GB",
"city": "London",
"postalCode": "SW1A 1AA"
}| Field | Required | Description |
|---|---|---|
email | Yes | User's email address |
firstName | Yes | User's first name |
lastName | Yes | User's last name |
redirectUri | No | URL to redirect after completion |
imageUrl | No | User's profile image URL |
country | No | User's country |
city | No | User's city |
postalCode | No | User's postal code |
Response:
{
"redirectUrl": "https://hosted.planetpoints.com?sessionId=xxx"
}User Experience
- Redirect user to the
redirectUrl - User sees their details and your application logo
- User provides consent
- User is redirected to your
redirectUrivia deepLink
Receipt Upload Session
Initialize a receipt upload session for an existing user.
Initialize Session
POST /issuers/track/receipts/session?api-version=1.0Request Headers:
| Header | Description |
|---|---|
x-client-id | Your application's Client ID |
x-client-secret | Your application's Client Secret |
Request Body:
{
"userId": "user_xxxxx",
"transactionId": "txn_12345",
"amount": 45.99,
"merchantName": "Tesco",
"redirectUri": "https://yourapp.com/upload-complete",
"transactionTimestamp": "2024-12-05T10:30:00Z"
}| Field | Required | Description |
|---|---|---|
userId | Yes | The enrolled user's ID |
transactionId | No | Your transaction reference |
amount | No | Transaction amount |
merchantName | No | Merchant/store name |
redirectUri | No | URL to redirect after completion |
transactionTimestamp | No | When the transaction occurred |
Response:
{
"redirectUrl": "https://hosted.planetpoints.com/receipt-upload?sessionId=xxx"
}User Experience
- Redirect user to the
redirectUrl - User uploads their receipt image
- Receipt is processed for PlanetPoints
- User is redirected to your
redirectUrivia deepLink
Customization
Hosted pages display your application logo configured in your application settings:
| Setting | Description |
|---|---|
| Logo URL | Public URL to your logo image |
| Redirect URI | Default redirect destination |
Error Handling
Sessions can fail or expire. Handle these scenarios in your integration:
| HTTP Status | Description |
|---|---|
400 | Invalid request parameters |
401 | Unauthorized - invalid credentials |
404 | Session not found or expired |
500 | Server error |