Environments

One integration, two keys. The key you send decides whether money actually moves.

A single URL

The API has one address, identical in test and production. You never change a URL between your trials and your launch.

Base URL
https://test.admin.kpay.site

Nothing to reconfigure

Going live means swapping one key. The rest of your code stays put.

The two keys

Each application gets one key pair per environment. The prefix tells you which one you are using.

Test

kpay_test_…

Simulated payments, test wallet, no real money. Verification caps do not apply.

Production

kpay_live_…

Real payments with the operators: the customer is charged and funds land in your wallet.

Never mix your keys

A production key charges for real from the very first call. Check the prefix before every test run.

What separates the two worlds

The two environments never touch. In practice:

  • Each application has a test wallet and a production wallet, with separate balances.
  • Money earned in test can never be withdrawn.
  • Caps tied to your verification level apply in production only.
  • Every transaction carries an `isTest` field, all the way through to webhooks.

How the outcome is decided

In test, no operator is called: the data you supply determines the outcome.

  • Mobile Money: the phone number decides (success, failure, or a transaction left in progress).
  • Card: the customer lands on our test payment page, where the card number entered decides.

Where to find this data

Test numbers and cards are gathered on the Test data page.

Going live

Once your tests pass:

  1. Get your verification file approved from your dashboard.
  2. Swap your test keys for production keys.
  3. Check that your webhook and return URLs point to your real domain.
  4. Take one small real payment before opening up traffic.

Related resources

Was this page helpful?

K-PAY — Mobile Money and card payments across Central Africa.