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..
Enter the password.
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/login',
[
'headers' => [
'Accept' => 'application/json',
],
'query' => [
'email' => '[email protected]',
'password' => 'password',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/user',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
cache-control
: no-cache, private
content-type
: application/json
access-control-allow-origin
: *
{
"message": "Unauthenticated."
}
This endpoint allows you fetch carriers which is provided by us.
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/carriers',
[
'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://d1uyfsnqaznpy7.cloudfront.net/uploads/8476e4dbbe50c835f6cf71dda57ba798.jpg"
}
]
}
This endpoint allows you fetch your transactions.
This parameter allows you to specify the page number for paginated results. Set the page value to any integer starting from 1 up to the total number of available pages (N).
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/transaction',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [{
"id": "6719ed2c5976254c000aa462",
"reference":"null",
"price":"50",
"subtotal":"25",
"plan_name":"AT&T $50",
"sim_no":"888888888888888888F",
"carrier_name":"",
"status":"fail",
"type":"activation",
"mdn":null,
"reason":"BadRequest",
}],
"pagination": {
"total": 1572,
"per_page":30,
"current_page":1,
"last_page":53,
"from":1,
"to":30,
}
}
This endpoint allows you fetch your transaction details.
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/transaction/66a342fd874ed021c90aa8f3',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [{
"transaction_id": "682ca30fe745b273a80da99e",
"reference":null,
"plan_id":394,
"carrier_id":197,
"price":50,
"subtotal":7.5,
"total_price":0,
"p_fee":null,
"plan_name":"Mobile X Unlimited 50",
"addon_plan":"",
"sim_no":89049032007008882600196423784513,
"carrier_name":"MobileX",
"status":"success",
"type":"activation",
"mdn":"3479116794",
"email":"[email protected]",
"account_pin":"844980",
"account_number":"00301100061957",
"reason":"",
"created_at":"2025-05-20T15:43:11.680000Z",
"updated_at":"2025-05-20T15:43:44.387000Z",
"receipt":{
"prefix":"",
"customer":"",
"CarrierConfirmationID":"",
"ConfirmationID":"",
}
"charge_amount":"7.5",
"discount":"42.5",
"qr_code":"https://api.prepaidiq.com/api/qrcode/682ca30fe745b273a80da99e",
"activationCode":"1$mbx.vzw.otgeuicc.com$3479186794-0670476947",
}]
}
This endpoint allows you void your transaction if its pending.
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/transaction/66a342fd874ed021c90aa8f3/void',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [{
"transaction_id": "66a342fd874ed021c90aa8f3",
"reference": 0,
"plan_id": 123,
"carrier_id": 177,
"price": 46,
"subtotal": null,
"total_price": 50.6,
"p_fee": 4.6,
"plan_name": "Metropcs (3 - 200 USD)",
"addon_plan": "",
"sim_no": null,
"carrier_name": "Metro Pcs",
"status": "fail",
"type":"refill",
"mdn":"5592966847",
"email":"[email protected]",
"account_pin":"",
"account_number":"",
"reason":"Void by api call",
}]
}
This endpoint allows you void your transaction if its pending by transaction reference.
Enter The Transacation Id.
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/transaction/12345678903456/void_by_ref',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [{
"transaction_id": "64871b31801182348b099d82",
"status":"fail",
}]
}
This endpoint allows you to fetch all refill plans details based on carrier id
Enter The Carrier Id.
(for ex : Carrier Id of the simple mobile.)
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/refill_plans/5',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [
{
"id": 82,
"carrier_id": 16,
"sku": "0843788026264",
"name": "Ultra Wallet $10.10 to $100.00",
"description": "null",
"price": "0.00",
"price_from": "10.10",
"price_to": "100.00",
"provider": "Epay"
"image": "null"
"image": "null"
"processing_fees": "10%"
"discount": "3.00 %"
}
]
}
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();
$response = $client->get(
'https://api.prepaidiq.com/api/activation_plans/8',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [
{
"id": 48,
"type": "activation",
"plan_type": "standard",
"sku": "SO_SP_10GB_TM1_PRE_V2",
"plan_name": "T-Mobile $40.00",
"description": "\r\n\t- Unlimited talk and text
\r\n\t- Up to 10GB of 5G data
\r\n\t- Share your 5G data as a mobile hotspot
\r\n
\r\n",
"price": "40.00"
"image": "https://d1uyfsnqaznpy7.cloudfront.net/uploads/activations/fb7494ce6ce901ff04f45285b21452f6.png"
"processing_fees": "6.00"
"discount": "25.00"
}
]
}
This endpoint allows you post your activation request
The plan id of the activation.
Enter activation type.
(for ex : Add Activation type is either port-in or activation.)
Enter first name.
Enter last name.
Enter state name.
(only allow 2 letters i.e : AL,FL,CA)
Enter City name.
Enter Zip Code.
Enter The Address.
It is not required for Light mobile, Travel mobile and Que Tal Mobile-T.
Enter The Street number.
It is only required for Light mobile and Travel mobile.
Enter The Street Name.
It is only required for Light mobile and Travel mobile.
Enter The first address.
It is only required for Que Tal Mobile-T.
Enter The second address.
It is only required for Que Tal Mobile-T.
Enter sim type i.e physical or esim.
Enter The Sim number.
(Enter valid sim card number between 19 to 21 chracters if it is physical sim and if it is esim than either 32 characters or optional.)
Enter Valid IMEI number of 15 digits.it is not required for Xtream carrier
Enter the number of month.(Enter in digit formate i.e : 01,02,03)
(It's only required for AT&T, Verzion,Mobilex,T-mobile carrier)
Enter Account pin.
(Repetitive and sequential account PINs are not allowed for the T-Mobile carrier.) (It is only required for T-Mobile,Verzion.)
Enter addon plan Id.
(Enter The addon plan Id for the carrier that offers an addon plan)
Enter Account password.
(account password is only required for Xtream Carrier.)
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/activate',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'plan_id' => '349',
'activation_type' => 'activation',
'first_name' => 'Strickland',
'last_name' => 'Gilberto',
'email' => '[email protected]',
'state' => 'AL',
'city' => 'miami',
'zip_code' => '33175',
'address' => '9702 NW 130th St',
'sim_type' => 'physical',
'imei' => '123456789009876',
'sim_no' => '1234567890342156789',
'month' => '01',
'account_pin' => '123456',
'account_password' => '123456',
'addon' => '91',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [{
"id": 64871b31801182348b099d82,
"type": "activation",
"subtotal": 29,
"status": "pending",
"spiff": 0,
"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.
The plan id of the activation.
Enter Activation type.
Enter state name.
Enter City name.
Enter The Address
eg.. 01 , 02 ,03.
Enter Account pin
(Repetitive and sequential account PINs are not allowed for the T-Mobile carrier.)
line by line
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/multiline-activate',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'plan_id' => '349',
'activation_type' => 'activation',
'email' => '[email protected]',
'state' => 'AL',
'city' => 'miami',
'address' => '9702 NW 130th St',
'month' => '01',
'account_pin' => '123456',
'lines' => '[
{
"first_name": "john",
"last_name": "smith",
"zip_code": "33175",
"imei": "265161651561611",
"sim_no": "31610616165116161611",
"addon": "89,91",
"sim_type": "physical"
},
{
"first_name": "nick",
"last_name": "john",
"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();
$response = $client->get(
'https://api.prepaidiq.com/api/portin_plans/8',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [
{
"id": "48",
"type": "activation",
"plan_type": "standard"
"sku": "SO_SP_10GB_TM1_PRE_V2"
"plan_name": "T-Mobile $40.00"
"description": "\r\n\t- Unlimited talk and text
\r\n\t- Up to 10GB of 5G data
\r\n\t- Share your 5G data as a mobile hotspot
\r\n
\r\n"
"price": "40.00"
}
]
}
This endpoint allows you to fetch all portin plans details based on carrier id.
Enter The plan id.
Enter the first name.
Enter the last name.
Enter activation type.
Enter The state name.
Enter The city.
Enter The zip code.
Enter The address.
It is not required for Que Tal Mobile-T.
Enter The first address.
It is only required for Que Tal Mobile-T.
Enter The second address.
It is only for Que Tal Mobile-T and optional.
Enter The sim type. i.e physical or e-sim.it is not applicable in mobilex and xtream.(If sim type is esim than sim number field is optional.)
Enter The imei number.(it is not applciable for xtream)
Enter The sim no.(if sim is physical then 19 to 21 required or if there is a e-sim then 32 characters or optional)
Enter The account pin.(only for Xtream)
Enter The account number.(it is not applicable for xtream)
Enter 6 digit account password if the carrier company is verizon ,enter 4 digit account password instead.it is not applicable in xtream
Enter The provider name.(only required for mobilex)
Enter phone number.
Enter The Existing Carrier name.
It is only required for At&t,T-mobile,Verizon
This field is optional.enter addon IDs from the activation plan list. if user wants to add.
This field is optional.Enter refrence number upto 64 charactrers.
This field is optional.enter the callback number
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/portin',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'plan_id' => '50',
'activation_type' => 'port-in',
'first_name' => 'steave',
'last_name' => 'job',
'email' => '[email protected]',
'state' => 'florida',
'city' => 'miami',
'zip_code' => '33175',
'address' => '127,5th street',
'sim_type' => 'physical',
'imei' => '353684126461555',
'sim_no' => '888888888888888888F',
'account_pin' => '123456',
'account_number' => '2245678912',
'account_password' => '123456',
'provider' => 'Mobilex',
'phone' => '1234567890',
'addon' => '91',
],
]
);
$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 post your refill request.
Enter The plan Id.
Enter phone number.
Enter the price.
Enter The sender name.
It is only required for Cubacel
Enter The reciptent name.
It is only required for Cubacel
Enter The Country Code.
It is only required for international carrier.(Digicel,Claro,Cubacel)
json data for storing payment details (not required).
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/refill',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'plan_id' => '349',
'mdn' => '1234567890',
'price' => '50',
'sender_name' => 'carlos',
'recipient_name' => 'steve',
'countrycode' => '+53',
'payment_details' => '{txn_id: 234u79287, timestamp: 2022-02-12 12:44:23 ...}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [
{
"id": "64871b31801182348b099d82",
"price": "55.00",
"status": "pending"
}
]
}
This endpoint allows you fetch your transaction detail using reference number
Enter refrence number upto 64 charactrers. .
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/transaction/ref/123456abcd',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "",
"data": [
{
"transaction_id": "66b350eb08de7alcme35so6wm",
"plan_id": "228",
"carrier_id": "197"
"price": "20"
"subtotal": "null"
"total_price": "20"
"p_fee": "0"
"plan_name": "Mobile X Unlimited $20"
"addon_plan": ""
"sim_no": "null"
"carrier_name": "MobileX"
"status": "Pending"
"type": "refill"
"mdn": "8888888888"
"email": ""
"account_pin": ""
"account_number": ""
"ref_no": "123456abcd"
"reason": "null"
}
]
}
This endpoint allows you cancel your transaction using reference number
Enter refrence number upto 64 charactrers. .
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/cancel-trans/ref/123456abcd',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "Success! Transaction Cancelled.",
}
This endpoint allows you to check the status of your transaction
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.prepaidiq.com/api/status-check/676907ea853a2b71c405373f',
[
'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",
}
]
}
This endpoint allows you to change your sim.
Enter the sim no. .
Enter your carrier id. .
Enter your phone no. .
Enter the imei no.
It is only required for Mobilex and Travelx.
Enter your sim type.It is either physical or e-sim.
It is only required for Mobilex and Travelx.
Enter account pin.
It is only required for Mobilex and Travelx
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/sim-swap',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'sim_no' => '12345678901234567890',
'carrier_id' => '250',
'phone' => '8888888888',
'imei' => '1234567890123456',
'sim_type' => 'physical',
'account_pin' => '123456',
],
]);
$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 address. Only allowed for Mobilex and Travelx Carrier.
Enter The Phone Number.
Enter house Number.
Enter street name.
Enter city name.
Enter state name.
Enter zip code.
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.prepaidiq.com/api/mobilex/address-change',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
[
'phone' => '1234567890',
'house_no' => 123,
'street_name' => 'E 25th st',
'city' => 'New York',
'state' => 'NY',
'zip_code' => '10010',
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
{
"success": true,
"message": "Wifi Calling Address Updated Successfully",
"data": [
{
"houseNo": "123",
"streetName":"E 25th st",
"city":"New York",
"state":"NY",
"zipCode":"10010",
"country":US,
"phone":1234567890,
}]
}