Corporate APIv1

Get started

Retries and idempotency

Every money endpoint is idempotent on your own reference — urid on recharge, request_id everywhere else. This is the single most important rule in this document.

  • If you do not receive a response, retry with the SAME reference. We return the original outcome instead of transacting again. Generating a new reference on a retry is how integrations double-charge their customers.
  • Reusing a reference for different details (a different number, operator or amount) is rejected with 2555 Duplicate urid. We will never answer you with a transaction that is not the one you asked about.
  • A reference must be unique across your account and at most 64 characters.

Pending is not failure

A PENDING / pending result means the transaction has been accepted and may still complete. Never resend it. Wait for the callback, or poll the status endpoint. Treating pending as a failure and retrying is the classic way to pay twice.