Recharge Card / e-Pin
LIVEQuick Summary
Purchase recharge card e-Pins for all major Nigerian networks. Get instant PIN delivery via webhook for automated reselling and distribution. Available denominations range from ₦100 to ₦1,000.
Endpoint
Send a GET request to fetch available e-Pin denominations for a specific provider.
https://pairgate.com/api/v1/epin/denominations?provider_id={slug}
https://pairgate.com/api/v1/test/epin/denominations?provider_id={slug}
Authentication
This request requires a valid Bearer token.
| Header | Value | Description |
|---|---|---|
Authorization |
Bearer {token}
|
Your unique API authorization token |
Query Parameters
The provider_id parameter is required and identifies the provider.
| Parameter | Type | Required | Description |
|---|---|---|---|
provider_id |
string | Yes | Provider slug (e.g. mtn, airtel, glo, 9mobile) |
Code Examples
Choose your preferred language below. Replace YOUR_API_KEY with your actual API key.
// Get Recharge Card Denominations
$response = Http::withHeaders([
'Authorization' => 'Bearer YOUR_API_KEY',
'Cache-Control' => 'no-cache',
])->get('https://pairgate.com/api/v1/epin/denominations?provider_id=mtn');
$result = $response->json();
dd($result);
curl -X GET "https://pairgate.com/api/v1/epin/denominations?provider_id=mtn" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Cache-Control: no-cache"
const axios = require('axios');
const getDenominations = async () => {
try {
const response = await axios.get(
'https://pairgate.com/api/v1/epin/denominations?provider_id=mtn',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Cache-Control': 'no-cache'
}
}
);
console.log(response.data);
} catch (error) {
console.error(error.response?.data || error.message);
}
};
getDenominations();
import requests
url = "https://pairgate.com/api/v1/epin/denominations?provider_id=mtn"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Cache-Control": "no-cache"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://pairgate.com/api/v1/epin/denominations?provider_id=mtn"))
.header("Authorization", "Bearer YOUR_API_KEY")
.header("Cache-Control", "no-cache")
.GET()
.build();
try {
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
Response Format
A successful request returns a 200 status with available e-Pin denominations for the requested provider.
Results are cached for 30 minutes.
Success Response (200)
{
"MTN": [
{
"denomination": "100",
"name": "MTN N100",
"price": 97.00
},
{
"denomination": "200",
"name": "MTN N200",
"price": 194.00
},
{
"denomination": "500",
"name": "MTN N500",
"price": 485.00
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
{Provider Name} |
array | Keyed by provider name (e.g. MTN). Contains an array of denomination objects. |
denomination |
string | e-Pin face value in Naira (as string) |
name |
string | Human-readable name combining provider name and denomination |
price |
float | Discounted price for resellers (after applying reseller_discount) |
Important
The price field reflects the reseller price after applying the provider's
reseller_discount percentage. If no discount is set, the price equals the denomination value.
Only active (status = 1) and unused (used = 0) e-Pins are returned.
Error Responses
The following errors may occur when calling this endpoint.
| Status | Code | Description |
|---|---|---|
| 401 | Missing API key |
No Bearer token provided |
| 401 | Invalid API key |
Token does not match any active key |
| 403 | Suspended |
API key or account has been suspended |
| 422 | Invalid provider. |
The provided provider_id does not match any active e-Pin provider |
| 429 | Rate limited |
Too many requests |