Skip to main content

Error Code Reference

This page provides a complete reference of all error codes you may encounter when integrating with the Pagamio VAS API.

Error Response Format

All errors follow this standard format:

{
"success": false,
"error": {
"code": 1103,
"message": "Insufficient balance to proceed with the transaction"
}
}

Error Code Categories

General Errors (0-999)

CodeMessageAction
0Purchase successfulN/A
999Purchase failedCheck specific error details

Validation Errors (1000-1099)

CodeMessageAction
1000Product not supportedVerify product code
1001Required fields missingCheck request payload
1002Product inactiveProduct temporarily unavailable
1003Product not available on channelCheck channel configuration
1004Invalid purchase amountVerify amount limits
1005Invalid phone number formatCheck number format (+27...)
1006Duplicate transaction foundCheck if already processed
1007Invalid tender amountVerify amount and limits
1008Invalid fields formatCheck meter, phone number, or other fields
1010Invalid productEnsure product is valid and supported

Account Errors (1100-1199)

CodeMessageAction
1100Invalid account detailsVerify account information
1101Account not foundCheck account number
1102Customer not foundVerify customer details
1103Insufficient balanceTop up account
1104Invalid meter numberVerify meter number
1105Customer blockedContact support
1106Customer has arrearsClear arrears or contact support
1107Meter request not allowedCheck if meter supports requested operation

Provider Errors (1200-1299)

CodeMessageAction
1200Provider processing errorRetry transaction
1201Provider system errorWait and retry
1202Provider unavailableTry again later
1203Transaction failed at providerContact support
1204Transaction timeoutCheck status before retry
1205Already processedVerify transaction history
1206Out of stockVerify product availability

Common Error Scenarios

Error 1005: Invalid Phone Number Format

Problem: Mobile number is not in the correct format.

Solution:

// ❌ Wrong
mobileNumber: "0821234567"
mobileNumber: "27821234567"

// ✅ Correct
mobileNumber: "+27821234567"

Error 1103: Insufficient Balance

Problem: Merchant account doesn't have enough balance.

Solution:

  • Top up your merchant account
  • Contact your account manager
  • Check your account balance via the portal

Error 1204: Transaction Timeout

Problem: Provider took too long to respond.

Solution:

// Check transaction status before retrying
const status = await checkTransactionStatus(transactionId);
if (status !== 'COMPLETED') {
// Retry or handle accordingly
}

Error 1006: Duplicate Transaction

Problem: Same transaction was submitted multiple times.

Solution:

  • Use unique transaction references
  • Implement idempotency keys
  • Check transaction history before retrying

Error Handling Best Practices

  1. Always Check Error Codes - Don't rely solely on HTTP status
  2. Implement Retry Logic - For 1200-1299 errors (provider issues)
  3. Log All Errors - Include error code, message, and request details
  4. Display User-Friendly Messages - Don't expose raw error messages to users
  5. Monitor Error Rates - Track which errors occur most frequently

Last updated: October 2025