Skip to main content

Test Data

Use these test values when testing your integration in the Zentra sandbox environment.
Test data only works in sandbox mode. Using test data in live mode will result in errors.
Use the values below with reviewed surfaces such as transfers, cards, virtual accounts, payments, and tenant-gated identity flows where your environment exposes them.

Test BVNs

Use these Bank Verification Numbers for testing KYC:
BVNFirst NameLast NameDOBResult
22222222222JohnDoe1990-01-15✅ Success
11111111111JaneSmith1985-05-20❌ Failed
33333333333BobJohnson1992-03-10⏱️ Pending

Test NINs

National Identification Numbers for testing:
NINResult
12345678901✅ Valid
00000000000❌ Invalid
99999999999⏱️ Pending

Test Cards

Successful Transactions

Card NumberBrandTypeCVVExpiry
5060990580000217499VerveDebit12312/26
4084080000000409VisaDebit12312/26
5399830000000062MastercardCredit12312/26
5531886652142950MastercardDebit56409/26

Failed Transactions

Card NumberBrandReason
4000000000000002Visa❌ Declined
4000000000000127Visa❌ Insufficient funds
4000000000000119Visa❌ Processing error
4000000000000341Visa❌ Expired card

3D Secure Cards

Card NumberBrand3DS Outcome
4000000000003220Visa✅ Authentication successful
4000000000003063Visa❌ Authentication failed
4000000000003196Visa⚠️ Authentication unavailable
Default PIN for test cards: 1234

Test Bank Accounts

Valid Accounts

Account NumberBank NameBank CodeAccount Name
0123456789GTBank058John Doe
9876543210Zenith Bank057Jane Smith
1234567890Access Bank044Bob Johnson
5555555555First Bank011Alice Williams
7777777777UBA033Charlie Brown
3333333333Wema Bank035David Miller

Invalid Accounts

Account NumberBehavior
0000000000❌ Invalid account
1111111111❌ Account not found
9999999999❌ Account closed

Test Phone Numbers

Phone NumberOTPResult
+2348012345678123456✅ Success
+2348087654321000000❌ Invalid OTP
+2348011111111Any⏱️ Timeout

Test Email Addresses

EmailBehavior
success@usezentra.com✅ All operations succeed
fail@usezentra.com❌ All operations fail
pending@usezentra.com⏱️ Operations stay pending

Test Amounts

Specific amounts trigger different behaviors:
Amount (Kobo)Amount (NGN)Behavior
10000₦100.00✅ Success
99999₦999.99❌ Transaction limit exceeded
12345₦123.45⏱️ Stays pending
50000₦500.00✅ Success (most common)

Test Transfer References

ReferenceBehavior
TRF_SUCCESS✅ Completes immediately
TRF_FAIL❌ Fails with error
TRF_PENDING⏱️ Stays pending
TRF_TIMEOUT⏱️ Times out

Test Webhooks

Virtual Account Credits

Simulate a credit by transferring from these accounts:
Sender AccountSender BankAmountDelay
0123456789GTBankAnyInstant
9876543210ZenithAny5 seconds
5555555555First BankAny30 seconds

Manual Webhook Trigger

Use the sandbox tooling available to your tenant to trigger or replay webhook events rather than relying on undocumented direct trigger endpoints.

Test API Keys

Example sandbox API keys (these are public and safe to share):
Secret Key: sk_sandbox_1234567890abcdefghijklmnopqrstuvwxyz
Public Key: pk_sandbox_1234567890abcdefghijklmnopqrstuvwxyz
Generate your own keys in the Developer Console

Test Scenarios

Successful Flow

// 1. Verify BVN
const verification = await client.identity.verifyBvn({
  bvn: '22222222222',
  firstName: 'John',
  lastName: 'Doe',
  dateOfBirth: '1990-01-15'
});

// 2. Make transfer (when your sandbox tenant is funded)
const transfer = await client.transfers.create({
  amountMinor: 50000,
  destinationBankCode: '058',
  destinationAccountNumber: '0123456789',
  destinationAccountName: 'Sandbox Beneficiary',
  narration: 'Test',
  reference: 'TRF_SUCCESS'
});

Error Handling Flow

try {
  // This will fail - invalid BVN
  await client.identity.verifyBvn({
    bvn: '11111111111',
    firstName: 'John',
    lastName: 'Doe',
    dateOfBirth: '1990-01-15'
  });
} catch (error) {
  console.log('Expected error:', error.code);
  // Output: 'invalid_bvn'
}

try {
  // This will fail - insufficient balance
  const transfer = await client.transfers.create({
    amountMinor: 999999999,
    destinationAccountNumber: '0123456789',
    destinationBankCode: '058',
    narration: 'Test'
  });
} catch (error) {
  console.log('Expected error:', error.code);
  // Output: 'insufficient_balance'
}

Testing Tips

Test both successful and failed scenarios to ensure proper error handling.
While values are fake, use realistic formats for better testing.
Test with minimum amounts, maximum amounts, and special characters.
Ensure webhooks are properly received and processed.
Try submitting the same request twice with the same reference.

Regional Test Data

Nigeria-Specific

Data TypeTest Value
Phone+2348012345678
BVN22222222222
NIN12345678901
Bank Code058 (GTBank)

Next Steps

Sandbox Guide

Learn about sandbox environment

API Reference

Explore all endpoints

Testing Guide

Best testing practices

Webhooks

Test webhook events