Make every payment traceable
Always store these values in your database:Use idempotency
Do not generate a newtransaction_uuid after a timeout. Replay the same intent with the same UUID, then call the status endpoint.
For subscriptions, also send X-Idempotency-Key or idempotency_key when your system may replay a creation request.
Do not block your checkout
Mobile money providers can take a few seconds or several minutes. Show a waiting state and let your backend followstatus.
Cache the catalogue carefully
You can cache countries, services, and providers for a few minutes. Do not cache them for too long, becauseis_active can change.
Interpret statuses correctly
Validate an order only onCOMPLETED or SUCCESS. Do not validate on SUBMITTED or PROCESSING.
Log useful errors
For each error, keep:- called endpoint;
- payload without sensitive data;
transaction_reference;invoice_reference;X-Request-Id;- Mysoleas response;
- call date.
