The Flow1st product catalog has different requirements per product. We go through different product types so that Flow1st Partner Development teams can understand what is required of them.
Overview
The Flow1st Product Catalog has different requirements, these are the different types of products that are encountered
- Simple Products - The easiest to implement
- RecipientExtraInfo Products - These are products that require multiple fields
- Geofenced Products - Requires API credentials per country to implement
Simple and RecipientExtraInfo Products can be determined when using the List Product Catalog API. Geofenced Products will be known to Flow1st Partners before development is started.
Simple Products
A Simple Product only requires a Recipient Identifier. In the Products -> Bundles response object in List Product Catalog API, these are distinguished by having an empty fields array.
{
"id": 59,
"productId": 143,
"productBundleId": 10336,
"distributorId": 8,
"name": "30 CP",
"sku": "codm30cp",
"price": 30,
"currencyCode": "USD",
"fields": [],
"createdDate": "2025-09-17 19:42:42",
"lastModifiedDate": "2025-09-17 19:42:42"
},
RecipientExtraInfo Products
A RecipientExtraInfo Product requires between 1 to N fields. These fields are required in order to successfully process a User Validation API request and a Order Completion API request.
In the Products -> Bundles response object in List Product Catalog API, RecipientExtraInfo Products will have fields populated.
Partners need to assume that "Field" objects will be different per product. Fields are considered to be dynamic content and can be updated based on the context of the Product (e.g. A direct topup product could migrate from playerID to playerID + serverOption).
"bundles": [
{
"name": "300+30 Genesis Crystals",
"sku": "3GenesisCrystals300",
"retailPrice": 4.42,
"distributorPrice": 4.42,
"currencyCode": "USD",
"imageLocation": "https://d13ms5efar3wc5.cloudfront.net/eyJidWNrZXQiOiJpbWFnZXMtY2Fycnkxc3QtcHJvZHVjdHMiLCJrZXkiOiJiMWRjZWFiMS0xNDdmLTQyNWEtYTNhNy0xN2U2ZmM4OGU5NjUucG5nLndlYnAiLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjk2fX0sIndlYnAiOnt9fQ==",
"fields": [
{
"id": 14569,
"productBundleId": 5343,
"name": "userName",
"type": "input",
"label": "User ID",
"multiline": false,
"placeholder": "Please enter User ID",
"prefix": "",
"position": 1
},
{
"id": 14570,
"productBundleId": 5343,
"name": "serverId",
"type": "select",
"label": "Server",
"multiline": false,
"placeholder": "",
"prefix": "",
"position": 1,
"options": [
{
"label": "America",
"value": "os_usa"
},
{
"label": "Europe",
"value": "os_euro"
},
{
"label": "Asia",
"value": "os_asia"
},
{
"label": "Taiwan,Hong Kong,Macau",
"value": "os_cht"
}
]
}
],
"status": "SUSPENDED",
"createdDate": "2025-12-04 03:08:45",
"lastModifiedDate": "2025-12-04 18:56:28"
},
Geofenced Products
For Flow1st, Geofencing Products are used when a customer/player of a product strictly requires the user to be from a specific country before processing an Order.
We use the following data to determine Geofencing requirements
- In the Flow1st Console, the Flow1st Partner's Country is used as one input
- Then the RecipientIdentifier in User Validation API and Order Completion API is also used
- This needs to satisfy the formula
Flow1st Partner Country + RecipientIdentifier = RecipientIdentifier's Country. If this is not true, then the User Validation API and Order Completion API will return an error
Currently, a Geofenced Product only requires a Recipient Identifier. In the Products -> Bundles response object in List Product Catalog API, these are distinguished by having an empty fields array.
{
"id": 59,
"productId": 143,
"productBundleId": 10336,
"distributorId": 8,
"name": "30 CP",
"sku": "codm30cp",
"price": 30,
"currencyCode": "USD",
"fields": [],
"createdDate": "2025-09-17 19:42:42",
"lastModifiedDate": "2025-09-17 19:42:42"
},
Recommended Implementation
Currently, the recommended implementation approach for GeoFenced Products is
- Have a Flow1st Partner Account per country, and configure SKUs
- Use the SKU associated with the country to programatically route to the correct Flow1st Partner Account.
