PrepaidIQ Refill And Activation API Documentation
This documentation aims to provide all the information you need to work with our API.
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_TOKEN}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by calling login method.
This endpoint allows you to fetch your access token..
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/login';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
],
'json' => [
'email' => '[email protected]',
'password' => 'password',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Login Successful",
"data": {
"token": "xyzAbc374672346",
"name": "Cassie",
"address": "Gujarat ",
"b_name": "Cassie",
"phone": "9193740211"
}
}
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/user';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"name": "cassie",
"email": "[email protected]",
"status": "active",
"credit": "$2856.71",
"account_type": "wallet"
}
}
This endpoint allows you fetch carriers which is provided by us.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/carriers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": 2,
"name": "AT&T Prepaid",
"category": "cellular",
"image": "https://d11ltlyjq6tzv3.cloudfront.net/uploads/8476e4dbbe50c835f6cf71dda57ba798.jpg"
}
]
}
This endpoint allows you to fetch carrier details based on carrier id
Enter The Carrier Id.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/carrier/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": 8,
"name": "Xyz-Abc",
"status": "enabled",
"category": "cellular",
"act_status": "enabled",
"ref_status": "enabled",
"slug": "Xyz-Abc",
"color": "#ed008c",
"title": "Xyz-Abc Wireless Prepaid Cell Phone Plans | Helloprepay",
"meta_desc": "Buy Xyz-Abc leads the pack, in terms of unlimited data, 4G download speeds and robust 5G network deployment.",
"es_title": "Planes de telefonía celular prepagos inalámbricos de Xyz-Abc | Holaprepago",
"es_meta_description": "Comprar Xyz-Abc lidera el grupo, en términos de datos ilimitados, velocidades de descarga 4G y sólida implementación de red 5G.",
"support_phone": null,
"description": null,
"created_at": "2021-09-22T22:19:05.000000Z",
"updated_at": "2025-04-01T07:51:02.000000Z",
"total_mobile_es_title": null,
"total_mobile_es_meta_description": null,
"total_mobile_title": null,
"total_meta_description": null,
"excluded_zipcodes": "3175",
"refill_daily_limit": null,
"activation_daily_limit": 100
}
}
This endpoint allows you to fetch all refill plans details based on carrier id
Enter The Carrier Id.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/refill_plans/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": 204,
"carrier_id": 183,
"sku": "0843788022303",
"name": "$25 Gift Card",
"description": "To redeem your Gift Card Claim\r\nCode visit Your Account in\r\nyour Amazon App, or go to\r\namazon.com/redeem.\r\nAmazon.com Gift Cards (GCs)\r\nmay be redeemed toward the\r\npurchase of eligible goods on\r\nAmazon.com or certain of its\r\naffiliated websites. Except to\r\nthe extent required by law, GCs\r\ncannot be transferred for value\r\nor redeemed for cash. Amazon.com\r\nis not responsible if a GC is\r\nlost, stolen, destroyed or if\r\nyour GC or Amazon.com balance is\r\nused without your permission.\r\nFor full terms and conditions,\r\nsee amazon.com/gc-legal. No\r\nexpiration date or service fees.",
"price": "25.00",
"price_from": "0.00",
"price_to": "0.00",
"provider": "Manual",
"image": null,
"processing_fees": "5.00 %",
"discount": "0.00 %"
}
]
}
This endpoint allows you to fetch refill plan details based on refill id
Enter The refill plan ID.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/refill_plan/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": 67,
"sku": "843788044244",
"name": "Red Pocket RTR - Monthly plan (40 USD)",
"description": null,
"price": "40.00",
"price_from": "0.00",
"price_to": "0.00",
"provider": "Prepay",
"image": null
}
}
This endpoint allows you post your refill request
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/refill';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 349.0,
'mdn' => 1234567890.0,
'price' => 50.0,
'sender_name' => 'Carlos',
'recipient_name' => 'steve',
'countrycode' => '+53',
'payment_details' => '{txn_id: 234u79287, timestamp: 2022-02-12 12:44:23 ...}',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "64871b31801182348b099d82",
"price": "55.00",
"reference_no": 1234abcd,
"status": "pending"
}
}
This endpoint allows you to post your refill request.
You can retrieve the status and details of the refill by using the transactions/{id} endpoint, where {id} is the ID returned in the response.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/refill-with-card';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 349.0,
'autopay' => 1.0,
'tax_amount' => 12.0,
'payment_intent_id' => '123',
'mdn' => 1234567890.0,
'price' => 50.0,
'sender_name' => 'Carlos',
'recipient_name' => 'steve',
'countrycode' => '+53',
'payment_details' => '{txn_id: 234u79287, timestamp: 2022-02-12 12:44:23 ...}',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "64871b31801182348b099d82",
"price": "55.00",
"reference_no": 1234abcd,
"status": "pending"
}
}
This endpoint allows you to fetch all activations plans details based on carrier id
Enter The Carrier Id. (For Ex: Carrier Id of T-Mobile.)
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/activation_plans/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": 30,
"type": "activation",
"plan_type": "standard",
"sku": "0843788050283",
"plan_name": "AT&T ($30) ",
"description": "AT&T ($30) 5GB (Unlimited Talk & Text)",
"price": "30.00"
}
]
}
Enter The activation plan ID.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/activation_plan/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Record Found",
"data": {
"_id": "66a342fd874ed021c90aa8f3",
"plan_id": 349,
"carrier": 8,
"carrier_name": "T-Mobile",
"carrier_id": 8,
"dealer_id": 1,
}
}
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/activate';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 349.0,
'activation_type' => 'activation',
'first_name' => 'Strickland',
'last_name' => 'Gilberto',
'email' => '[email protected]',
'state' => 'CA',
'city' => 'miami',
'zip_code' => '33175',
'address' => '9702 NW 130th St',
'street_number' => '9702',
'street_name' => 'NW 130th St',
'address_line_1' => 'Meadow Lane',
'address_line_2' => 'Forest View',
'sim_type' => 'physical',
'sim_no' => '1234567890342156789',
'imei' => '123456789012345',
'month' => '01',
'account_pin' => '123456',
'addon' => '91',
'account_password' => '123456',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "66a342fd874ed021c90aa8f3",
"subtotal": 46,
"status": "success",
"type": "activation",
"spiff": 5,
"processing_fee": 4.6
}
}
This endpoint allows you to post your activation request.
You can retrieve the status and details of the activation by using the transactions/{id} endpoint, where {id} is the ID returned in the response.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/activate-with-card';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 349.0,
'discount' => 2.0,
'tax_amount' => 12.0,
'activation_fee' => 12.0,
'payment_intent_id' => '123',
'activation_type' => 'activation',
'first_name' => 'Strickland',
'last_name' => 'Gilberto',
'email' => '[email protected]',
'state' => 'CA',
'city' => 'Miami',
'zip_code' => '33175',
'address' => '9702 NW 130th St',
'street_number' => '9702',
'street_name' => 'NW 130th St',
'address_line_1' => 'Meadow Lane',
'address_line_2' => 'Forest View',
'sim_type' => 'physical',
'sim_no' => '1234567890342156789',
'imei' => '123456789012345',
'month' => '01',
'autopay' => 1.0,
'account_pin' => '1234,123456',
'addon' => '91',
'account_password' => '123456',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "66a342fd874ed021c90aa8f3",
"subtotal": 46,
"status": "success",
"type": "activation",
"spiff": 5,
"processing_fee": 4.6
}
}
This endpoint allows you post your multiline activation request
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/multiline-activate-with-card';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'activation_type' => 'multiline',
'payment_intent_id' => 'pi_123456789',
'email' => '[email protected]',
'state' => 'NY',
'city' => 'New York',
'zip_code' => '10001',
'address' => '123 Main St',
'account_pin' => '1234',
'reference_no' => '1234abcd',
'lines' => '[ { "plan": "89", "month": "01", "first_name": "arpit", "last_name": "test", "imei": "265161651561611", "sim_no": "31610616165116161611", "addon": "89,91", "sim_type": "physical" }, { "plan": "89", "month": "01", "first_name": "arpit", "last_name": "test", "imei": "265161651561612", "sim_no": "31610616165116161613", "addon": null, "sim_type": "physical" } ]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "662b580802555032fe0bc94c,662b580802555032fe0bc94d",
"type": "activation",
"status": "pending",
"subTotal": "70.25,
"spiff": 154.75,
"processing_fee": 0.00
}
}
This endpoint allows you post your multiline activation request It is only available for T-mobile & JR mobile Only 4 or 5 lines are available for activation with JR Mobile.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/multiline-activate';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => '1',
'activation_type' => 'activation',
'email' => '[email protected]',
'state' => 'NY',
'city' => 'New York',
'address' => '123 Main St',
'month' => '01',
'account_pin' => '1234',
'reference_no' => '1234abcd',
'lines' => '[ { "first_name": "arpit", "last_name": "test", "zip_code": "33175", "imei": "265161651561611", "sim_no": "31610616165116161611", "addon": "89,91", "sim_type": "physical" }, { "first_name": "arpit", "last_name": "test", "zip_code": "33175", "imei": "265161651561612", "sim_no": "31610616165116161613", "addon": null, "sim_type": "physical" } ]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "662b580802555032fe0bc94c,662b580802555032fe0bc94d",
"type": "activation",
"status": "pending",
"subTotal": "70.25,
"spiff": 154.75,
"processing_fee": 0.00
}
}
This endpoint allows you to fetch all portin plans details based on carrier id.
Enter The Carrier Id.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/portin_plans/8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": 123,
"type": "activation",
"plan_type": "monthly",
"sku": "ABC123",
"plan_name": "T-Mobile 40 Plan",
"description": "Unlimited talk, text, and data",
"price": 40
}
]
}
This endpoint allows you to post your portin request.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/portin';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 123,
'first_name' => 'steave',
'last_name' => 'job',
'email' => '[email protected]',
'activation_type' => 'port-in',
'state' => 'AL',
'city' => 'miami',
'zip_code' => '33101',
'address' => '9702 NW 130th St',
'address_line_1' => '127,5th street',
'address_line_2' => '127,5th street',
'authorizer_first_name' => 'steave',
'authorizer_last_name' => 'job',
'authorizer_address' => '9702 NW 130th St',
'authorizer_city' => 'miami',
'authorizer_state' => 'AL',
'authorizer_zipcode' => '33101',
'sim_type' => 'physical',
'imei' => '123456789012345',
'sim_no' => '1234567890123456789',
'account_pin' => '1234',
'account_number' => '123456789',
'account_password' => '123456',
'provider' => '123456789',
'phone' => '1234567890',
'ex_carrier' => 'Verizon',
'addon' => '89,91',
'callback_number' => '230945048',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "66cf126ab59931768e020f55",
"subtotal": "35",
"status": "pending",
"type": "port-in",
"spiff": "15",
"processing_fee": "0"
}
}
This endpoint allows you to post your portin request.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/portin-with-card';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 123,
'autopay' => 1,
'tax_amount' => 12.0,
'payment_intent_id' => '123',
'first_name' => 'steave',
'last_name' => 'job',
'email' => '[email protected]',
'activation_type' => 'port-in',
'state' => 'AL',
'city' => 'miami',
'zip_code' => '33101',
'address' => '9702 NW 130th St',
'address_line_1' => '127,5th street',
'address_line_2' => '127,5th street',
'authorizer_first_name' => 'steave',
'authorizer_last_name' => 'job',
'authorizer_address' => '9702 NW 130th St',
'authorizer_city' => 'miami',
'authorizer_state' => 'AL',
'authorizer_zipcode' => '33101',
'sim_type' => 'physical',
'imei' => '123456789012345',
'sim_no' => '1234567890123456789',
'account_pin' => '1234',
'account_number' => '123456789',
'account_password' => '123456',
'provider' => '123456789',
'phone' => '1234567890',
'ex_carrier' => 'Verizon',
'addon' => '89,91',
'callback_number' => '230945048',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "66cf126ab59931768e020f55",
"subtotal": "35",
"status": "pending",
"type": "port-in",
"spiff": "15",
"processing_fee": "0"
}
}
This endpoint allows you to change your sim.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/sim-swap';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'sim_no' => '12345678901234567890',
'carrier_id' => '197',
'phone' => '1234567890',
'imei' => '123456789012345678',
'sim_type' => 'physical',
'old_sim_no' => 'iste',
'account_pin' => '1234',
'reference_no' => '1234abcd',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"id": "fto639f3b1659b80f84i5s92",
"subtotal": "$1"
"status": "Pending"
"type": "sim-swap"
}
}
This endpoint allows you to change your phone number. You can retrieve the status and details of the activation by using the Trans/{id} endpoint, where {id} is the ID returned in the response. (Available for Travel Mobile, Quetal-T, Mobilex and Travelx only)
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/number-change';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'carrier_id' => 197,
'mdn' => '1234567890',
'zip_code' => '1234',
'sim_no' => '12345678901234567890',
'account_pin' => '586397',
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Number Change Record Request has been submit.",
"data": {
"id": "fto639f3b1659b80f84i5s92",
"status": "pending"
"type": "number-change"
}
}
This endpoint allows you fetch your transactions.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'per_page' => 20,
'page' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": "67ecd3bf3b3c7fdb840dfe31",
"reference": null,
"price": 15,
"subtotal": 15,
"plan_name": "15 Dollar Plan",
"sim_no": "12345678901234567891",
"carrier_name": "",
"type": "activation",
"mdn": null,
"reason": "Failed to check sim SIM or new SIM not found",
"created_at": "2025-04-02T06:05:51.082000Z",
"updated_at": "2025-04-02T06:05:55.762000Z",
"receipt": {
"prefix": "",
"customer": ""
}
}
],
"pagination": {
"total": 100,
"per_page": 20,
"current_page": 2,
"last_page": 5,
"from": 21,
"to": 40
}
}
The ID of the transaction.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction/sint';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); cache-control
: no-cache, private
content-type
: text/html; charset=UTF-8
access-control-allow-origin
: *
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Server Error</title>
<style>
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}}
</style>
<style>
body {
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
</style>
</head>
<body class="antialiased">
<div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0">
<div class="max-w-xl mx-auto sm:px-6 lg:px-8">
<div class="flex items-center pt-8 sm:justify-start sm:pt-0">
<div class="px-4 text-lg text-gray-500 border-r border-gray-400 tracking-wider">
500 </div>
<div class="ml-4 text-lg text-gray-500 uppercase tracking-wider">
Server Error </div>
</div>
</div>
</div>
</body>
</html>
This endpoint allows you void your transaction if its pending.
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction/66a342fd874ed021c90aa8f3/void';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"transaction_id": "67ef99d168d78f12c409b1d1",
"reference": null,
"plan_id": null,
"carrier_id": 197,
"price": 0,
"subtotal": null,
"total_price": null,
"p_fee": null,
"plan_name": "",
"addon_plan": "",
"sim_no": null,
"carrier_name": "MobileX",
"status": "success",
"type": "number-change",
"mdn": "3129145049",
"email": "",
"account_pin": "373667",
"account_number": "",
"reason": null,
"created_at": "2025-04-04T08:35:29.771000Z",
"updated_at": "2025-04-04T08:35:42.343000Z",
"receipt": {
"prefix": "",
"customer": "",
"CarrierConfirmationID": "",
"ConfirmationID": ""
},
"charge_amount": ""
}
}
This endpoint allows you void your transaction if its pending by transaction reference.
Number of the refrence.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction/123456/void_by_ref';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"transaction_id": "67ef99d168d78f12c409b1d1",
"reference": 123456,
"plan_id": null,
"carrier_id": 197,
"price": 0,
"subtotal": null,
"total_price": null,
"p_fee": null,
"plan_name": "",
"addon_plan": "",
"sim_no": null,
"carrier_name": "MobileX",
"status": "success",
"type": "number-change",
"mdn": "3129145049",
"email": "",
"account_pin": "373667",
"account_number": "",
"reason": null,
"created_at": "2025-04-04T08:35:29.771000Z",
"updated_at": "2025-04-04T08:35:42.343000Z",
"receipt": {
"prefix": "",
"customer": "",
"CarrierConfirmationID": "",
"ConfirmationID": ""
},
"charge_amount": ""
}
}
This endpoint allows you fetch your transaction detail using reference number.
Enter refrence number upto 64 charactrers.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction/ref/1239865526985';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": {
"transaction_id": "66cf198d48d950e3025",
"plan_id": 394,
"carrier_id": 197,
"price": 50,
"subtotal": 46.25,
"total_price": 56.25,
"p_fee": 6.25,
"plan_name": "Mobile X Unlimited $50",
"addon_plan": "",
"sim_no": "888888888888888F",
"carrier_name": "MobileX",
"status": "pending",
"type": "port-in",
"mdn": null,
"email": "[email protected]",
"account_pin": "",
"account_number": "697878854",
"account_password": "76589",
"reference_no": "1239865526985",
"reason": null,
"created_at": "2024-08-28T12:35:25.660000Z",
"updated_at": "2024-08-28T12:35:25.660000Z"
}
}
This endpoint allows you to check the status of your transaction
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/status-check/676907ea853a2b71c405373f';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "",
"data": [
{
"id": "676907ea853a2b71c405373f",
"status": "pending"
}
]
}
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/travel_activations_plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Record Found",
"data": {
"id": "66a342fd874ed021c90aa8f3",
"plan_id": 123,
"sim_no": "123456789",
"amt": "15.00",
"phone": "null",
"carrier_id": 8,
"status": "available",
"imei": null,
"activation_date": "2022-04-07",
"travel_date": "2022-04-17",
"first_name": "abc",
"email": "[email protected]",
"note": "abc"
}
}
Enter The travel activation plan ID.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/travel_activations_plan/7';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Record Found",
"data": {
"id": "66a342fd874ed021c90aa8f3",
"plan_id": 123,
"sim_no": "123456789",
"amt": "15.00",
"phone": "null",
"carrier_id": 8,
"status": "available",
"imei": null,
"activation_date": "2022-04-07",
"travel_date": "2022-04-17",
"first_name": "abc",
"email": "[email protected]",
"note": "abc"
}
}
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/travel_activations';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'plan_id' => 8.0,
'sim_no' => '1234567890342156789',
'first_name' => 'Strickland',
'email' => '[email protected]',
'note' => 'Test',
'activation_date' => '2024-04-07',
'travel_date' => '2024-04-07',
'mdn' => '1234567890',
'imei' => '123456789012345',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Travel Activation Submited",
"data": {
"dealer_id": "1",
"plan_id": "7",
"sim_no": "123456789456123",
"first_name": "Test Travel Activation",
"amt": "15.00",
"phone": null,
"status": "Not Available",
"email": "[email protected]",
"imei": "",
"activation_date": "2024-04-07",
"travel_date": "2024-04-17",
"note": "Testing"
}
}
Reserve and activate a SIM card.
This endpoint reserves a SIM card and creates an activation transaction. The activation request is queued for processing. The returned transaction ID can be used to track the activation status.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/grab-and-go/sim-active';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'carrier_id' => 8,
'sim_no' => '89014103211118510720',
'zipcode' => 'FL',
'imei' => '123456789012345',
'addon' => '91,92',
'fname' => 'John',
'lname' => 'Doe',
'email' => '[email protected]',
'payment_details' => [],
'address' => 'et',
'city' => 'exercitationem',
'state' => 'voluptatem',
'c_zip_code' => 'et',
'source' => 'api',
'master_id' => 2,
'sub_agent_id' => 11,
'rep_id' => 19,
'call_back_url' => 'https://example.com/callback',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Your SIM card plan of $50, will be activated very soon.",
"data": {
"id": "66a342fd874ed021c90aa8f3"
}
}
This endpoint allows you to change your address. Only allowed for Mobilex and Travelx Carrier.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/mobilex/address-change';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'phone' => '9876543210',
'house_no' => '123B',
'street_name' => 'Elm Street',
'city' => 'Springfield',
'state' => 'NY',
'zip_code' => '10001',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Wifi Calling Address Updated Successfully.",
"data": {
"houseNo": "123B",
"streetName": "Elm Street",
"city": "Springfield",
"state": "NY",
"zipCode": "10001",
"country": "US",
"phone": "9876543210"
}
}
This endpoint retrieves details of a MobileX line by MDN.
The MDN of the line.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/mobilex/line-details/9876543210';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"status": true,
"data": {
"mdn": "9876543210",
"sim_no": "89014103211111111111",
"account_number": "1234567890",
"sim_type": "physical",
"line_status": "active",
"account_pin": "1234"
}
}
Check IMEI compatibility against one or more carriers.
This endpoint allows you to check if an IMEI is eligible under a specific carrier, multiple carriers, or all supported carriers if no carrier ID is provided.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/check-imei';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'carrier_id' => [
8,
11,
274,
2,
273,
279,
197,
251,
246,
4,
265,
],
'imei' => '353456789012345',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "IMEI check(s) completed.",
"results": {
{
"success": true,
"message": "IMEI check successful.",
"data": {
"carrier_id": 8,
"imei": "353456789012345",
"sim_support": {
"physical_sim": true,
"esim": false
"eid": "12345678901234567890", // if applicable for the T-mobile carrier
},
"compatibility_status": "Compatible" // if applicable for the T-mobile carrier
}
},
{
"success": false,
"message": "IMEI not eligible or not found.",
"data": []
}
}
}
This endpoint checks which refill plans are available for a given MDN under carrier Quetal (ID: 279). It fetches the last successful transaction (activation, refill, port-in, or number-change) to determine eligibility.
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/check-refill-plan-availability';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Content-Type' => 'application/json',
],
'json' => [
'mdn' => '9876543210',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Available plans retrieved successfully.",
"data": {
"current_plan_id": 302,
"available_plan_ids": [
302
],
"plans": [
{
"id": 302,
"name": "Unlimited Talk & Data",
"price": "40.00"
},
{
"id": 305,
"name": "Data Only",
"price": "25.00"
}
],
"prev_record_type": "activation",
"mdn": "9876543210"
}
}
This endpoint retrieves the expiry details of a given MDN for carrier Quetal (ID: 279).
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/quetal-mdn-expiry-info';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Content-Type' => 'application/json',
],
'json' => [
'mdn' => '9876543210',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body)); {
"success": true,
"message": "Expiry details found.",
"data": {
"expiry_date": "2025-09-30",
"status": "active",
"mdn": "9876543210"
}
}