Keep bill payment catalogues and partner prices current
Build product selectors from RizPay's catalogue, handle pagination and price changes, and distinguish partner cost from the retail price your customer pays.
Already registered? Open API settings and follow the business-access steps. Sandbox purchases do not deliver real services.
Reviewed
A data plan selected last month may no longer be available at the same cost. A good integration treats the catalogue as current operating data and keeps the customer's confirmed order as a historical record.
How API margins differ from commissions
Your application collects the customer's agreed retail price. Production API purchases use your funded partner account; the customer's payment to your application and the RizPay transaction debit are separate records to reconcile. Sandbox balances and purchases are simulated, not revenue or production funding.
Your resale markup is not an automatic commission credit to your RizPay wallet. Treat any separately agreed incentive as a different entry, using its actual eligibility and settlement terms. Do not assume one commission or discount rate across products. A markup is not net profit after payment costs, refunds and other direct costs.
Start with the API pricing overview, then use the pricing documentation for the response fields. This guide covers keeping those costs and your product selector current; it does not publish a live rate card.
Keep three numbers separate
| Value | Meaning | Where it belongs |
|---|---|---|
| Product cost | What RizPay bills the partner for a fixed-price product | Your server-side catalogue and cost calculation |
| Retail price | What your customer agrees to pay you | Your checkout and order record |
| Transaction debit | The purchase's returned total debit and fees | Your reconciliation record |
For fixed-price data and cable products, price.amount is the catalogue cost. price.reference_price is optional guidance; it is not an enforced retail price. For variable-amount airtime and electricity products, read the accepted range and show your own service fee explicitly.
Your own markup is collected through your application. Do not describe it as an automatic credit to the RizPay wallet. If a separate partner incentive applies, account for it separately according to your agreed terms.
Build the full selector
Product endpoints are paginated. Read pagination.total_pages rather than assuming the first response is the entire list. Keep network, provider or distributor filters consistent on every page. The cable catalogue filter is named provider; service is a returned attribute, not a query parameter. Deduplicate products by their returned IDs if you combine results.
For data, display bundle_size and duration separately. A free-form bundle_type can be null; do not invent a category when it is absent. Filter only using behaviours supported by the current API. A label that exists in the response does not automatically mean the server supports it as a query filter.
Recheck at confirmation
Use a bounded cache on your server for browsing. Before submitting an old cart, retrieve or refresh the chosen product and check availability and cost. If the retail total changes, show the new total and obtain confirmation. Do not change a confirmed amount without the customer's agreement.
Keep a snapshot of the selected label, cost basis, retail total and external reference on the order. Later catalogue updates must not rewrite a historical receipt.
Handle an unavailable product
If the chosen product disappears, explain that it is unavailable and let the customer select a current alternative. Do not substitute a different bundle, shorten its validity or buy airtime in place of data. An empty response is not a reason to manufacture a product ID.
A marketing page can describe the integration without publishing an exact price. If you choose to publish prices, use an approved public-rate source and a real checked-at timestamp. Never expose an individual partner's negotiated terms through a public catalogue page.
Check the business result
Calculate contribution after product costs, customer payment costs, applicable partner incentives, refunds and variable support costs. A retail markup is not the same as net profit. Use transaction records to validate the margin before scaling acquisition.