Skip to content

Testing Your Integration

Checklist

  • Ensure that your webhook URL and webhook verification key has been set on the Merchant Dashboard for the sandbox environment. See Guide
  • Ensure that your IP address(es) has been whitelisted on the Merchant Dashboard for the sandbox environment.
  • Ensure there's sufficient balance in your wallet before initiating a payout.
  • If you get a wallet not found error when making payout in a specific currency, kindly login to the Merchant Dashboard, switch Test Mode to ON and navigate to Account -> Wallet -> (Select Business) -> Select the currency from the Currency dropdown to enable the wallet.

To ensure your integration is working correctly before going live, use the following test cases and simulation endpoints in the sandbox environment.

NGN Payin (Bank Transfer)

In the sandbox environment, you can manually trigger a successful payment notification to your webhook URL by calling the simulation endpoints below.

Simulate Dynamic Account Payment

Use this to simulate a payment made to a temporary, transaction-specific virtual account.

POST http://core-sandbox.payonus.com/api/v1/fund-ngn-account

Headers: - Accept: application/json - Content-Type: application/json - Authorization: Bearer {token}

Body:

{
  "onusReference": "{{onus_reference}}",
  "accountNumber": "{{dynamic_account_number}}",
  "amount": 10000,
  "paymentStatus": "SUCCESSFUL",
  "forDynamicAccount": true
}

Notes:

  • The onusReference, accountNumber and amount should match the details of the dynamic account payment.
  • The paymentStatus could either be SUCCESSFUL or FAILED.

Simulate Fixed Account Payment

Use this to simulate a payment made to a permanent virtual account assigned to a customer.

POST http://core-sandbox.payonus.com/api/v1/fund-ngn-account

Headers: - Accept: application/json - Content-Type: application/json - Authorization: Bearer {token}

Body:

{
  "onusReference": "ONUS-NUB-{{random_string}}",
  "accountNumber": "{{fixed_account_number}}",
  "amount": 10000,
  "paymentStatus": "SUCCESSFUL",
  "forDynamicAccount": false
}

Notes:

  • The accountNumber should match the account number of the generated fixed account.
  • The paymentStatus can only be SUCCESSFUL and forDynamicAccount must be set to false.

NGN Payout (Transfer Simulations)

To test various transaction outcomes, use the specific account numbers listed below. These numbers will return a valid Name Enquiry response and trigger the corresponding transfer status.

Sender Account Number Expected Transfer Status
9999991111 PROCESSING
9999991112 SUCCESSFUL
9999991113 UNKNOWN_ERROR
9999991114 INVALID_ACCOUNT
9999991115 DUPLICATE_TRANSACTION
9999991116 UNKNOWN_ERROR
9999991117 INSUFFICIENT_FUNDS
9999991118 ACCOUNT_NAME_MISMATCH
9999991119 TRANSACTION_NOT_PERMITTED_TO_SENDER
9999991120 INVALID_AMOUNT
9999991121 INVALID_BANK_CODE
9999991122 INVALID_REQUEST

Mobile Money

For other African regions, use the following test data to simulate transaction flows.

GHS (Ghana)

  • Network: MTN
  • Test Phone Number: 0240000003

KES (Kenya)

  • Network: M-Pesa
  • Test Phone Number: 234700000000

ZAR (South Africa)

  • Requirement: No specific test number required.
  • Behavior: A successful notification will be sent automatically upon an attempted transaction.

Card Testing

For card payment testing, please check here