Logo GenukaGenuka Pay
Guides

Test Mode

Validate your payment, payout, webhook, and reconciliation flows safely before enabling production traffic.

Introduction

Test mode should validate more than request syntax. It should prove that your backend, event handling, retries, and reconciliation logic behave correctly before any real funds are involved.

Sandbox Validation

Exercise payment and payout creation with controlled low-risk inputs.

Webhook Readiness

Confirm that webhook deliveries match your expected asynchronous lifecycle handling.

Reconciliation Confidence

Compare status polling, event delivery, and internal ledger references before launch.

Required Headers

Authenticated Sandbox Request
X-Public-Key: YOUR_PUBLIC_KEY
X-Timestamp: UNIX_TIMESTAMP
X-Signature: HMAC_SHA256_SIGNATURE

What to Validate in Test

  • payment initiation
  • payout initiation
  • webhook reception
  • retry handling
  • transaction status reconciliation
  • internal ledger correlation through external_id

Suggested Checklist

  1. initiate a payment with a small amount
  2. store the returned track_id
  3. verify webhook delivery
  4. compare webhook state with GET /payments/status/{track_id}
  5. test failure handling and retry behavior
  6. confirm KYC status before enabling live usage

Example Sandbox Payment

Create a Test Payment
curl -X POST "{{BASE_URL}}/api/v1/payments" \
  -H "X-Public-Key: YOUR_PUBLIC_KEY" \
  -H "X-Timestamp: UNIX_TIMESTAMP" \
  -H "X-Signature: HMAC_SHA256_SIGNATURE" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100,
    "currency": "XAF",
    "payer_phone": "677001122",
    "external_id": "test_payment_001"
  }'

Before Going Live

  1. complete KYC verification
  2. confirm current limits through GET /kyc/limits
  3. configure production webhook endpoints
  4. rotate credentials if required by your deployment workflow
  5. start with low-risk amounts and monitor closely

Launch principle

Sandbox readiness is about operational confidence, not just successful HTTP responses. If your webhook, retry, or reconciliation logic is still ambiguous, you are not done testing.

How is this guide?