Testing Onramps

In the Test/Sandbox environment, use the following test accounts to simulate different onramp scenarios.

✅ Successful Transactions

Successful Virtual Account Onramp

Account Details:

Example:

{
  "method": "bank",
  "chargeDetails": {
    "email": "[email protected]"
  }
}

Successful Mobile Money Onramp

Account Details:

  • Phone Number: 254712345678
  • momoOperatorId: mpesa

Example:

{
  "method": "momo",
  "chargeDetails": {
    "phoneNumber": "254787654321",
    "momoOperatorId": "mpesa"
  }
}

❌ Failed Transactions

Failed Bank Account

Account Details:

Example:

{
  "method": "bank",
  "chargeDetails": {
    "email": "[email protected]"
  }
}

Failed Mobile Money

Account Details:

  • Phone Number: 254787654321
  • momoOperatorId: mpesa

Example:

{
  "method": "momo",
  "chargeDetails": {
    "phoneNumber": "254787654321",
    "momoOperatorId": "mpesa"
  }
}

↪️ OPay Redirect Scenarios

Sandbox OPay onramps are redirect-first. Every valid OPay initiation returns stepRequired: "redirect" and a redirectUrl; opening that URL completes the simulated payment.

AmountExpected result
111Becomes successful after the redirect is completed
999Becomes failed after the redirect is completed

Any amount other than 111 follows the failed redirect outcome. Use 999 as the documented failure fixture.

Use any valid customer email in chargeDetails.email, a unique externalReference, and the sandbox endpoint:

POST https://crypto.honeycoin.app/api/sandbox/minting/onramp

Example:

{
  "senderAmount": 111,
  "senderCurrency": "NGN",
  "receiverCurrency": "USDC",
  "chain": "BASE",
  "receiverAddress": "0xbac726e1df4dd58ca13bf6b9f23664df5d07d2fe",
  "method": "opay",
  "chargeDetails": {
    "email": "[email protected]"
  },
  "externalReference": "sandbox_onramp_opay_001",
  "successRedirectUrl": "https://yourapp.example/onramp/success",
  "failureRedirectUrl": "https://yourapp.example/onramp/failed"
}

Initial response:

{
  "success": true,
  "data": {
    "transactionId": "sandbox_transaction_id",
    "stepRequired": "redirect",
    "redirectUrl": "https://checkout.honeycoin.app/sdk/transaction/sandbox/sandbox_transaction_id/redirect"
  }
}

Open data.redirectUrl, then verify the final transaction state through a webhook or the get transaction endpoint. Only chargeStatus: "successful" is final proof of payment. The sandbox flow does not contact a live payment provider.