PrepaidIQ API Docs

Postman collection →

Introduction

PrepaidIQ Refill And Activation API Documentation

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

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.

Endpoints

POST api/login

POST
https://apiv2.prepaidiq.com
/api/login

This endpoint allows you to fetch your access token..

Headers

Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:

GET api/user

GET
https://apiv2.prepaidiq.com
/api/user
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Example request:
$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));
Example response:
{
    "success": true,
    "message": "",
    "data": {
        "name": "cassie",
        "email": "[email protected]",
        "status": "active",
        "credit": "$2856.71",
        "account_type": "wallet"
    }
}
{
    "message": "Unauthenticated."
}

GET /api/carriers

GET
https://apiv2.prepaidiq.com
/api/carriers
requires authentication

This endpoint allows you fetch carriers which is provided by us.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Example request:
$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));
Example response:
{
    "success": true,
    "message": "",
    "data": [
        {
            "id": 2,
            "name": "AT&T Prepaid",
            "category": "cellular",
            "image": "https://d1uyfsnqaznpy7.cloudfront.net/uploads/8476e4dbbe50c835f6cf71dda57ba798.jpg"
        }
    ]
}
{
    "message": "Unauthenticated."
}

GET /api/carrier/{id}

GET
https://apiv2.prepaidiq.com
/api/carrier/{id}
requires authentication

This endpoint allows you to fetch carrier details based on carrier id

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The Carrier Id.

Example:
8
Example request:
$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));
Example response:
{
    "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
    }
}
{
    "success": false,
    "message": "Carrier is not available or has been disabled!",
    "data": ""
}
{
    "success": false,
    "message": "You don't have access for AT&T Prepaid carrier",
    "data": ""
}
{
    "message": "Unauthenticated."
}

GET /api/refill_plans/{carrier_id}

GET
https://apiv2.prepaidiq.com
/api/refill_plans/{carrier_id}
requires authentication

This endpoint allows you to fetch all refill plans details based on carrier id

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

carrier_id
string
required

Enter The Carrier Id.

Example:
8
Example request:
$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));
Example response:
{
    "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 %"
        }
    ]
}
{
    "success": false,
    "message": "You don't have access for AT&T Prepaid carrier",
    "data": []
}
{
    "message": "Unauthenticated."
}

GET /api/refill_plan/{id}

GET
https://apiv2.prepaidiq.com
/api/refill_plan/{id}
requires authentication

This endpoint allows you to fetch refill plan details based on refill id

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The refill plan ID.

Example:
8
Example request:
$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));
Example response:
{
    "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
    }
}
{
    "message": "Unauthenticated."
}

POST api/refill

POST
https://apiv2.prepaidiq.com
/api/refill
requires authentication

This endpoint allows you post your refill request

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example 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));
Example response:
{
 "success": true,
 "message": "",
 "data": {
	"id": "64871b31801182348b099d82",
     "price": "55.00",
     "reference_no": 1234abcd,
	"status": "pending"
}
}
{
    "success": false,
    "message": "Invalid Plan ID",
    "data": []
}
{
    "success": false,
    "message": "Plan not found! please check plan_id and re-try.",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/refill-with-card

POST
https://apiv2.prepaidiq.com
/api/refill-with-card
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
 "success": true,
 "message": "",
 "data": {
	"id": "64871b31801182348b099d82",
     "price": "55.00",
     "reference_no": 1234abcd,
	"status": "pending"
}
}
{
    "success": false,
    "message": "Invalid Plan ID",
    "data": []
}
{
    "success": false,
    "message": "Plan not found! please check plan_id and re-try.",
    "data": []
}
{
    "message": "Unauthenticated."
}
{
  "success": false,
  "message": "Payment amount mismatch.",
  "data": {
     "expected" : "100",
     "received" : "50",
  }
}

GET /api/activation_plans/{carrier_id}

GET
https://apiv2.prepaidiq.com
/api/activation_plans/{carrier_id}
requires authentication

This endpoint allows you to fetch all activations plans details based on carrier id

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

carrier_id
string
required

Enter The Carrier Id. (For Ex: Carrier Id of T-Mobile.)

Example:
8
Example request:
$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));
Example response:
{
    "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"
        }
    ]
}
{
    "message": "Unauthenticated."
}

GET api/activation_plan/{id}

GET
https://apiv2.prepaidiq.com
/api/activation_plan/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The activation plan ID.

Example:
8
Example request:
$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));
Example response:
{
 "success": true,
 "message": "Record Found",
 "data": {
      "_id": "66a342fd874ed021c90aa8f3",
      "plan_id": 349,
      "carrier": 8,
      "carrier_name": "T-Mobile",
      "carrier_id": 8,
      "dealer_id": 1,
 }
}
{
    "success": false,
    "message": "Transaction Not Found, Please check your Order ID",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/activate

POST
https://apiv2.prepaidiq.com
/api/activate
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "success": true,
    "message": "",
    "data": {
        "id": "66a342fd874ed021c90aa8f3",
        "subtotal": 46,
        "status": "success",
        "type": "activation",
        "spiff": 5,
        "processing_fee": 4.6
    }
}
{
    "success": false,
    "message": "First pls check your addon plans",
    "data": []
}
{
    "success": false,
    "message": "You can not use the Multiple Addons with the same price",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/activate-with-card

POST
https://apiv2.prepaidiq.com
/api/activate-with-card
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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,1234',
            'addon' => '91',
            'account_password' => '123456',
            'reference_no' => '1234abcd',
            'call_back_url' => 'https://example.com/callback',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
    "success": true,
    "message": "",
    "data": {
        "id": "66a342fd874ed021c90aa8f3",
        "subtotal": 46,
        "status": "success",
        "type": "activation",
        "spiff": 5,
        "processing_fee": 4.6
    }
}
{
    "success": false,
    "message": "First pls check your addon plans",
    "data": []
}
{
    "success": false,
    "message": "Invalid activation plan",
    "data": []
}
{
    "success": false,
    "message": "One or more add-on plans are disabled.",
    "data": []
}
{
    "success": false,
    "message": "Multiple add-ons with the same price are not allowed.",
    "data": []
}
{
    "success": false,
    "message": "You can not use the Multiple Addons with the same price",
    "data": []
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Payment not completed.",
    "data": {
        "status": "failed"
    }
}
{
    "success": false,
    "message": "This payment has already been processed.",
    "data": []
}
{
  "success": false,
  "message": "Payment amount mismatch.",
  "data": {
     "expected" : "100",
     "received" : "50",
  }
}
{
 "success": false,
 "message": "Validation Error",
 "data": {
     "plan_id": [
         "The selected plan id is invalid."
     ],
     "payment_intent_id": [
         "The payment intent id field is required."
     ],
     "activation_type": [
         "The activation type field is required."
     ],
     "first_name": [
         "The first name field is required."
     ],
     "sim_no": [
         "The sim no field is required.",
         "The sim no must be at least 19 characters.",
     ]
 }
}

POST api/multiline-activate-with-card

POST
https://apiv2.prepaidiq.com
/api/multiline-activate-with-card
requires authentication

This endpoint allows you post your multiline activation request

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example 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));
Example response:
{
  "success": true,
  "message": "",
  "data": {
          "id": "662b580802555032fe0bc94c,662b580802555032fe0bc94d",
          "type": "activation",
          "status": "pending",
          "subTotal": "70.25,
          "spiff": 154.75,
          "processing_fee": 0.00
   }
}
{
    "success": false,
    "message": "Only 4 lines are available for activation with JR Mobile.",
    "data": []
}
{
    "success": false,
    "message": "Multiline Activation is not allowed for this JR Mobile Plan.",
    "data": []
}
{
    "success": false,
    "message": "Only 5 lines are available for activation with JR Mobile.",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/multiline-activate

POST
https://apiv2.prepaidiq.com
/api/multiline-activate
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
  "success": true,
  "message": "",
  "data": {
          "id": "662b580802555032fe0bc94c,662b580802555032fe0bc94d",
          "type": "activation",
          "status": "pending",
          "subTotal": "70.25,
          "spiff": 154.75,
          "processing_fee": 0.00
   }
}
{
    "success": false,
    "message": "Only 4 lines are available for activation with JR Mobile.",
    "data": []
}
{
    "success": false,
    "message": "Multiline Activation is not allowed for this JR Mobile Plan.",
    "data": []
}
{
    "success": false,
    "message": "Only 5 lines are available for activation with JR Mobile.",
    "data": []
}
{
    "message": "Unauthenticated."
}

GET api/portin_plans/{carrier_id}

GET
https://apiv2.prepaidiq.com
/api/portin_plans/{id}
requires authentication

This endpoint allows you to fetch all portin plans details based on carrier id.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
integer
required

Enter The Carrier Id.

Example:
8
Example request:
$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));
Example response:
{
    "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
        }
    ]
}
{
    "message": "Unauthenticated."
}

POST api/portin

POST
https://apiv2.prepaidiq.com
/api/portin
requires authentication

This endpoint allows you to post your portin request.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example 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));
Example response:
{
    "success": true,
    "message": "",
    "data": {
        "id": "66cf126ab59931768e020f55",
        "subtotal": "35",
        "status": "pending",
        "type": "port-in",
        "spiff": "15",
        "processing_fee": "0"
    }
}
{
    "success": false,
    "message": "Invalid Plan ID",
    "data": []
}
{
    "success": false,
    "message": "Plan not found! please check plan_id and re-try.",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/portin-with-card

POST
https://apiv2.prepaidiq.com
/api/portin-with-card
requires authentication

This endpoint allows you to post your portin request.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example 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));
Example response:
{
    "success": true,
    "message": "",
    "data": {
        "id": "66cf126ab59931768e020f55",
        "subtotal": "35",
        "status": "pending",
        "type": "port-in",
        "spiff": "15",
        "processing_fee": "0"
    }
}
{
    "success": false,
    "message": "Invalid Plan ID",
    "data": []
}
{
    "success": false,
    "message": "Plan not found! please check plan_id and re-try.",
    "data": []
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Payment not completed.",
    "data": {
        "status": "failed"
    }
}
{
    "success": false,
    "message": "This payment has already been processed.",
    "data": []
}
{
  "success": false,
  "message": "Payment amount mismatch.",
  "data": {
     "expected" : "100",
     "received" : "50",
  }
}

POST api/sim-swap

POST
https://apiv2.prepaidiq.com
/api/sim-swap
requires authentication

This endpoint allows you to change your sim.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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',
            'account_pin' => '1234',
            'reference_no' => '1234abcd',
            'call_back_url' => 'https://example.com/callback',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
  "success": true,
  "message": "",
  "data": {
       "id": "fto639f3b1659b80f84i5s92",
       "subtotal": "$1"
       "status": "Pending"
       "type": "sim-swap"
   }
}
{
    "message": "Unauthenticated."
}

POST api/number-change

POST
https://apiv2.prepaidiq.com
/api/number-change
requires authentication

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)

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
  "success": true,
  "message": "Number Change Record Request has been submit.",
  "data": {
       "id": "fto639f3b1659b80f84i5s92",
       "status": "pending"
       "type": "sim-swap"
   }
}
{
    "message": "Unauthenticated."
}
{
  "success": false,
  "message": "Validation Error",
  "data": {
    "carrier_id": [
      "The selected carrier id is invalid."
    ],
    "mdn": [
      "The mdn field is required."
    ],
   }
}

GET api/transaction

GET
https://apiv2.prepaidiq.com
/api/transaction
requires authentication

This endpoint allows you fetch your transactions.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "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
    }
}

GET api/transaction/{id}

GET
https://apiv2.prepaidiq.com
/api/transaction/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}

URL Parameters

id
string
required

The ID of the transaction.

Example:
illo
Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/transaction/illo';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    access-control-allow-origin
                                                            : *
                                                         
{
    "message": "Unauthenticated."
}

GET api/transaction/{id}/void

GET
https://apiv2.prepaidiq.com
/api/transaction/{id}/void
requires authentication

This endpoint allows you void your transaction if its pending.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The Transaction Id.

Example:
66a342fd874ed021c90aa8f3
Example request:
$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));
Example response:
{
    "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": ""
    }
}
{
    "success": false,
    "message": "Transaction Not Found",
    "data": []
}
{
    "success": false,
    "message": "Transaction is processing..",
    "data": []
}
{
    "message": "Unauthenticated."
}

GET api/transaction/{reference_no}/void_by_ref

GET
https://apiv2.prepaidiq.com
/api/transaction/{reference_no}/void_by_ref
requires authentication

This endpoint allows you void your transaction if its pending by transaction reference.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

reference_no
string
required

Number of the refrence.

Example:
123456
Example request:
$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));
Example response:
{
    "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": ""
    }
}
{
    "success": false,
    "message": "Transaction Not Found",
    "data": []
}
{
    "success": false,
    "message": "Transaction is processing..",
    "data": []
}

GET api/transaction/ref/{reference_no}

GET
https://apiv2.prepaidiq.com
/api/transaction/ref/{reference_no}
requires authentication

This endpoint allows you fetch your transaction detail using reference number.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

reference_no
string
required

Enter refrence number upto 64 charactrers.

Example:
1239865526985
Example request:
$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));
Example response:
{
    "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"
    }
}
{
    "success": false,
    "message": "Transaction Not Found",
    "data": []
}
{
    "message": "Unauthenticated."
}

GET api/status-check/{id}

GET
https://apiv2.prepaidiq.com
/api/status-check/{id}
requires authentication

This endpoint allows you to check the status of your transaction

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The Transaction Id.

Example:
676907ea853a2b71c405373f
Example request:
$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));
Example response:
{
    "success": true,
    "message": "",
    "data": [
        {
            "id": "676907ea853a2b71c405373f",
            "status": "pending"
        }
    ]
}
{
    "success": false,
    "message": "Transaction Not Found",
    "data": ""
}
{
    "message": "Unauthenticated."
}

GET api/travel_activations_plans

GET
https://apiv2.prepaidiq.com
/api/travel_activations_plans
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Example request:
$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));
Example response:
{
    "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"
    }
}
{
    "success": false,
    "message": "Travel Activation Not Found",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/travel_activations_plan/{id}

POST
https://apiv2.prepaidiq.com
/api/travel_activations_plan/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

id
string
required

Enter The travel activation plan ID.

Example:
7
Example request:
$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));
Example response:
{
    "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"
    }
}
{
    "success": false,
    "message": "Travel Activation Plan Not Found",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/travel_activations

POST
https://apiv2.prepaidiq.com
/api/travel_activations
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "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"
    }
}
{
    "success": false,
    "message": "Activation Plan Not Found",
    "data": []
}
{
    "success": false,
    "message": "Travel Activation Fail",
    "data": []
}
{
    "message": "Unauthenticated."
}

POST api/mobilex/address-change

POST
https://apiv2.prepaidiq.com
/api/mobilex/address-change
requires authentication

This endpoint allows you to change your address. Only allowed for Mobilex and Travelx Carrier.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "success": true,
    "message": "Wifi Calling Address Updated Successfully.",
    "data": {
        "houseNo": "123B",
        "streetName": "Elm Street",
        "city": "Springfield",
        "state": "NY",
        "zipCode": "10001",
        "country": "US",
        "phone": "9876543210"
    }
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "errors": {
        "phone": [
            "The phone field is required."
        ],
        "zip_code": [
            "The zip code must be between 5 and 6 digits."
        ]
    }
}

GET api/mobilex/line-details/{mdn}

GET
https://apiv2.prepaidiq.com
/api/mobilex/line-details/{mdn}
requires authentication

This endpoint retrieves details of a MobileX line by MDN.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json

URL Parameters

mdn
string
required

The MDN of the line.

Example:
9876543210
Example request:
$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));
Example response:
{
    "status": true,
    "data": {
        "mdn": "9876543210",
        "sim_no": "89014103211111111111",
        "account_number": "1234567890",
        "sim_type": "physical",
        "line_status": "active",
        "account_pin": "1234"
    }
}
{
    "message": "Unauthenticated."
}
{
    "status": false,
    "message": "Invalid Line - Line not found."
}

POST api/get-tax

POST
https://apiv2.prepaidiq.com
/api/get-tax
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://apiv2.prepaidiq.com/api/get-tax';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Accept' => 'application/json',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'revenue' => '100.00',
            'postalCode' => '33175',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
    "message": "Unauthenticated."
}
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    access-control-allow-origin
                                                            : *
                                                         
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "Validation failed",
    "errors": {
        "revenue": [
            "The revenue field is required."
        ],
        "postalCode": [
            "The postal code field is required."
        ]
    },
    "data": []
}

POST api/check-imei

POST
https://apiv2.prepaidiq.com
/api/check-imei
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Accept
Example:
application/json
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
  "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": []
    }
  }
}
{
      "success": true,
      "message": "IMEI check(s) completed.",
      "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": "Carrier not supported for IMEI check.",
    "data": []
}
{
    "message": "Unauthenticated."
}
{
    "success": false,
    "message": "IMEI Compatibility Check service is currently unavailable. Please try again.",
    "data": []
}
{
    "success": false,
    "message": "IMEI not eligible or not found.",
    "data": []
}
{
    "success": false,
    "message": "Validation errors",
    "data": {
        "imei": [
            "The imei field is required."
        ]
    }
}

Check Refill Plan Availability

POST
https://apiv2.prepaidiq.com
/api/check-refill-plan-availability
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "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"
    }
}
{
    "success": false,
    "message": "No records found.",
    "data": null
}

Get Quetal MDN Expiry Info

POST
https://apiv2.prepaidiq.com
/api/quetal-mdn-expiry-info
requires authentication

This endpoint retrieves the expiry details of a given MDN for carrier Quetal (ID: 279).

Headers

Authorization
Example:
Bearer {YOUR_API_TOKEN}
Content-Type
Example:
application/json

Body Parameters

Example request:
$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));
Example response:
{
    "success": true,
    "message": "Expiry details found.",
    "data": {
        "expiry_date": "2025-09-30",
        "status": "active",
        "mdn": "9876543210"
    }
}
{
    "success": false,
    "message": "No expiry details found for given MDN",
    "data": null
}