VibeMobi 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://api.piq.vibemobi.com/api/login';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
],
'json' => [
'email' => 'cassie52@example.net',
'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://api.piq.vibemobi.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": "cassie@ca.com",
"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://api.piq.vibemobi.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://api.piq.vibemobi.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://api.piq.vibemobi.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://api.piq.vibemobi.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://api.piq.vibemobi.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,
'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://api.piq.vibemobi.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://api.piq.vibemobi.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://api.piq.vibemobi.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' => 'strickland@gmail.com',
'state' => 'CA',
'city' => 'miami',
'zip_code' => '33175',
'address' => '9702 NW 130th St',
'sim_type' => 'physical',
'sim_no' => '1234567890342156789',
'imei' => '123456789012345',
'month' => '01',
'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 fetch all portin plans details based on carrier id.
Enter The Carrier Id.
$client = new \GuzzleHttp\Client();
$url = 'https://api.piq.vibemobi.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://api.piq.vibemobi.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' => 'steave12@gmail.com',
'activation_type' => 'port-in',
'state' => 'AL',
'city' => 'miami',
'zip_code' => '33101',
'address_line_1' => '127,5th street',
'address_line_2' => '127,5th street',
'sim_type' => 'physical',
'imei' => '123456789012345',
'sim_no' => '1234567890123456789',
'account_pin' => '1234',
'account_number' => '123456789',
'account_password' => '123456',
'provider' => '123456789',
'phone' => '1234567890',
'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 fetch your transactions.
$client = new \GuzzleHttp\Client();
$url = 'https://api.piq.vibemobi.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://api.piq.vibemobi.com/api/transaction/vel';
$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
: application/json
access-control-allow-origin
: *
{
"message": "Unauthenticated."
}
This endpoint allows you void your transaction if its pending.
Enter The Transaction Id.
$client = new \GuzzleHttp\Client();
$url = 'https://api.piq.vibemobi.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://api.piq.vibemobi.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://api.piq.vibemobi.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": "xyz@gmail.com",
"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://api.piq.vibemobi.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://api.piq.vibemobi.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)); {
"message": "Unauthenticated."
}