This page is aimed at the engineering teams that will be busy with this integration. It helps them understand all the scenarios that they have to think about and cater for.
| Checklist Item | Comments |
|---|
| Understanding Product Types and Business Products | There are two Business Products typically handled by sales teams
- Retail Products - You resell these at a margin you desire
- Pay1st Products - You sell these at a rate agreed by the Flow1st team and the upstream supplier
In the integration, there exists three different Product Types for technical integration (see Product Types)
- Simple Products
- RecipientExtraInfo Products
- Geofenced Products
Do not assume that Business Products are the same as Product Types |
| Product Type: RecipientExtraInfo Products have dynamic fields | The team understands and integrates RecipientExtraInfo Products for the following scenarios
- The team understands that the RecipientExtraInfo products contain dynamic
ProductBundle->Fields
- The team also understands that each
Product -> Fields are not permanent and could be changed in the future
|
| RecipientExtraInfo Products: User Validation and Order Complete API | The team understands and integrates RecipientExtraInfo Products for the following scenarios
- If there are no fields, then only
recipientIdentifier should be populated
- If there is 1 field, then both
recipientIdentifier and recipientExtraInfo should be populated
- If there are N fields, then
recipientIdentifier is populated with the position=1 field (if there are conflicting position=1 fields, then the first one encountered is used)
|
| Geofenced Products: Different credentials will be used per country |
- The team builds with the understanding that each country of a geofenced product will use its own API credentials.
|
| Product API: Business Products and Pricing | For Retail Business Products
- RetailPrice is a suggested retail price. This should not be confused with the face value of a product (e.g. a $10 Playstation voucher will retail for $10, but the partner's system can charge anything for this or even apply a discount on their system)
- DistributorPrice is what you get charged on your account
For Pay1st Business Products
- RetailPrice is what you are obligated to charge to your customers
- DistributorPrice is what you get charged to your account
|
| Product API: Checking Availability |
- Check
Product.Status or ProductBundle.Status first, then check the InStock property
- Use
Product.Status=ACTIVE AND Product.InStock=true for full availability of a product. The availability of a Product cascades to all the ProductBundles
- Use
ProductBundle.Status=ACTIVE AND ProductBundle.InStock=true for full availability of a product.
|
| Product Catalog API: Currencies and FX Rates |
- The Product Catalog API returns the ProductBundle in the original ProductBundle's CurrencyCode
- The Flow1st Partner Account CurrencyCode used is typically the one used for making topups to the account
- If the ProductBundle CurrencyCode is different to the Account CurrencyCode, then there will be a FX Conversion in the OrderComplete API
|
| Order Complete API: Currencies and FX Rates | If a transaction is made for a ProductBundle that is in a different CurrencyCode than the Account CurrencyCode, a FX Rate conversion takes place at the time of OrderComplete. The rate used will be used in the Flow1st Console. |
| Webhooks are the preferred integration flow |
- The team understands that webhooks are the preferred API flow
- It is possible to use Query Order Status. However, this endpoint can lead to less optimal fulfilment times
|
| Operations: Logging references | In order to provide optimal support, these should be logged and provided for any support queries
- DistributorReference (e.g.
C-XXXXX-A)
- OrderReference (e.g.
C-XXXXX-P)
- ExternalReference in the partner format
- (optional) SKU information - Optional, but things go faster if it's provided
|