Introduction
SokyRecargas API
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_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by contacting Admins or use testing token
Recargas
Ofertas
Filtrar Ofertas
Obtener las ofertas disponibles paginadas
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/recharges/offers?search=51457852&types[]=sim&types[]=recharge&types[]=nauta" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"operator_code\": \"quisquam\",
\"search\": \"praesentium\",
\"available\": false,
\"category\": 16,
\"category_id\": 4,
\"start_date\": \"2026-03-19T02:24:45\",
\"end_date\": \"2026-03-19T02:24:45\",
\"is_stackable\": false,
\"types\": [
\"recharge\"
]
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/offers"
);
const params = {
"search": "51457852",
"types[0]": "sim",
"types[1]": "recharge",
"types[2]": "nauta",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"operator_code": "quisquam",
"search": "praesentium",
"available": false,
"category": 16,
"category_id": 4,
"start_date": "2026-03-19T02:24:45",
"end_date": "2026-03-19T02:24:45",
"is_stackable": false,
"types": [
"recharge"
]
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/offers';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'search' => '51457852',
'types[0]' => 'sim',
'types[1]' => 'recharge',
'types[2]' => 'nauta',
],
'json' => [
'operator_code' => 'quisquam',
'search' => 'praesentium',
'available' => false,
'category' => 16,
'category_id' => 4,
'start_date' => '2026-03-19T02:24:45',
'end_date' => '2026-03-19T02:24:45',
'is_stackable' => false,
'types' => [
'recharge',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 2576,
"available": false,
"image": "https://via.placeholder.com/640x480.png/00ee00?text=qui",
"image_promo": "https://via.placeholder.com/640x480.png/0088dd?text=non",
"name": "Alma Ruiz Segundo",
"description": "Eos molestias non nesciunt ea voluptatum quasi. Voluptas ducimus nemo est quae quibusdam. Non et rem nihil velit est. Et eaque mollitia consectetur eligendi quis.",
"prices": [
{
"id": "2245c657-6ddb-4d14-a4af-d21d1f76c732",
"label": "Recarga 084",
"public": 40,
"subscription_interval": "m:1",
"value": 40
},
{
"id": "84e83ff8-06bc-431d-aa90-3033b66b112a",
"label": "Recarga 663",
"public": 38,
"subscription_interval": null,
"value": 38
}
],
"category": {
"id": 2514,
"name": "Recargas"
},
"start_date": "2026-02-25T08:19:35.000000Z",
"end_date": "2026-06-19T02:24:45.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "modem",
"currency": {
"id": 2798,
"name": "TRY",
"code": "TMT"
},
"metadata": null
},
{
"id": 2577,
"available": true,
"image": "https://via.placeholder.com/640x480.png/00bb22?text=soluta",
"image_promo": "https://via.placeholder.com/640x480.png/006600?text=eum",
"name": "Ángel Mercado",
"description": "Numquam sit magni quibusdam amet et. Labore harum dolores sit quis ea praesentium reiciendis fuga. Id saepe porro earum. Ut molestias et qui eos et aut quo.",
"prices": [
{
"id": "76ee573f-be59-4218-9b6a-9235b6339b7e",
"label": "Recarga 577",
"public": 34,
"subscription_interval": "m:1",
"value": 34
},
{
"id": "bcb52718-ebfc-4ec4-a21e-dfecaa6b43cf",
"label": "Recarga 016",
"public": 39,
"subscription_interval": "m:1",
"value": 39
}
],
"category": {
"id": 2515,
"name": "SIM"
},
"start_date": "2026-02-25T09:39:28.000000Z",
"end_date": "2026-06-19T02:24:45.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "sim_tour",
"currency": {
"id": 2799,
"name": "UZS",
"code": "MWK"
},
"metadata": null
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Recargar una Oferta
requires authentication
Hace una recarga asociada a una oferta y tomando el ID del precio que se desea recargar
Example request:
curl --request POST \
"https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"price_id\": \"dfcceeda-82d1-4ede-ac36-689f2c97badf\",
\"recipient_name\": \"John Doe\",
\"recipient\": \"5515151\",
\"email\": \"[email protected]\",
\"comments\": \"voluptas\",
\"subscribe\": true,
\"repeat\": 1
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"price_id": "dfcceeda-82d1-4ede-ac36-689f2c97badf",
"recipient_name": "John Doe",
"recipient": "5515151",
"email": "[email protected]",
"comments": "voluptas",
"subscribe": true,
"repeat": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'price_id' => 'dfcceeda-82d1-4ede-ac36-689f2c97badf',
'recipient_name' => 'John Doe',
'recipient' => '5515151',
'email' => '[email protected]',
'comments' => 'voluptas',
'subscribe' => true,
'repeat' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 17763,
"recipient_name": "Luna Moral",
"recipient": "+34 952-53-6004",
"email": null,
"amount": "48.95",
"is_paid": false,
"status": "pending",
"price_label": "Pablo Arellano",
"operator": {
"id": 5275,
"code": "9874",
"name": "Pablo Arellano",
"available": false,
"image": "https://via.placeholder.com/640x480.png/000088?text=iste"
},
"offer": {
"id": 2578,
"available": false,
"image": "https://via.placeholder.com/640x480.png/004466?text=repellat",
"image_promo": "https://via.placeholder.com/640x480.png/00bb11?text=suscipit",
"name": "Víctor Avilés",
"description": "Nesciunt neque animi itaque sit. Soluta in voluptas earum facilis neque necessitatibus placeat. Itaque praesentium nulla dicta et non. Ea rerum autem molestias hic aut cumque soluta rem.",
"prices": [
{
"id": "1a59b1c4-8b05-4c9d-81a8-c97deacf3796",
"label": "Recarga 337",
"public": 39,
"subscription_interval": null,
"value": 39
},
{
"id": "053b2386-b21c-4b5a-9488-43f768925d67",
"label": "Recarga 693",
"public": 20,
"subscription_interval": null,
"value": 20
}
],
"category": {
"id": 2516,
"name": "Recargas"
},
"start_date": "2026-05-13T01:22:01.000000Z",
"end_date": "2026-06-19T02:24:45.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "sim_tour",
"currency": {
"id": 2800,
"name": "KPW",
"code": "SRD"
},
"metadata": null
},
"user": {
"id": 8408,
"name": "María Carmen Cortés",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:45.000000Z",
"phone": "+34 920652813",
"phone_verified_at": "2026-03-19T02:24:45.000000Z",
"role": "user",
"coins": "837.00"
},
"created_at": "2026-03-19T02:24:45.000000Z",
"updated_at": "2026-03-19T02:24:45.000000Z",
"is_stacked": false,
"stacked_at": "2026-03-19T02:24:45.000000Z",
"retries": 9,
"repeat": 2,
"completed_at": "2026-03-19T02:24:45.000000Z",
"comments": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Recargar una Oferta
requires authentication
Hace una recarga asociada a una oferta y tomando el ID del precio que se desea recargar
Example request:
curl --request POST \
"https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge-stacked" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"price_id\": \"dfcceeda-82d1-4ede-ac36-689f2c97badf\",
\"recipient_name\": \"John Doe\",
\"recipient\": \"5515151\",
\"email\": \"[email protected]\",
\"comments\": \"enim\",
\"subscribe\": true,
\"repeat\": 1
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge-stacked"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"price_id": "dfcceeda-82d1-4ede-ac36-689f2c97badf",
"recipient_name": "John Doe",
"recipient": "5515151",
"email": "[email protected]",
"comments": "enim",
"subscribe": true,
"repeat": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/offers/25/recharge-stacked';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'price_id' => 'dfcceeda-82d1-4ede-ac36-689f2c97badf',
'recipient_name' => 'John Doe',
'recipient' => '5515151',
'email' => '[email protected]',
'comments' => 'enim',
'subscribe' => true,
'repeat' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 17764,
"recipient_name": "Lic. Olivia Peres",
"recipient": "+34 962 35 4692",
"email": null,
"amount": "47.28",
"is_paid": false,
"status": "canceled",
"price_label": "Francisco Grijalva",
"operator": {
"id": 5277,
"code": "0075",
"name": "Francisco Grijalva",
"available": true,
"image": "https://via.placeholder.com/640x480.png/009911?text=nesciunt"
},
"offer": {
"id": 2579,
"available": false,
"image": "https://via.placeholder.com/640x480.png/00ddee?text=quis",
"image_promo": "https://via.placeholder.com/640x480.png/009977?text=consequatur",
"name": "Laia Corona",
"description": "Et temporibus reprehenderit nemo id earum et. Sint possimus eum laudantium maxime aut ut facilis deserunt. Est voluptates ratione est quia dignissimos est ea.",
"prices": [
{
"id": "f1d10a05-3749-4dcb-854f-6057463322d0",
"label": "Recarga 295",
"public": 30,
"subscription_interval": null,
"value": 30
},
{
"id": "ab096966-24e4-48f5-8407-e97c2fa41e11",
"label": "Recarga 298",
"public": 21,
"subscription_interval": null,
"value": 21
}
],
"category": {
"id": 2517,
"name": "SIM"
},
"start_date": "2026-05-24T10:10:43.000000Z",
"end_date": "2026-06-19T02:24:45.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "recharge",
"currency": {
"id": 2801,
"name": "SCR",
"code": "RWF"
},
"metadata": null
},
"user": {
"id": 8409,
"name": "Pablo Alcántar",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:45.000000Z",
"phone": "+34 968 962547",
"phone_verified_at": "2026-03-19T02:24:45.000000Z",
"role": "user",
"coins": "54.00"
},
"created_at": "2026-03-19T02:24:45.000000Z",
"updated_at": "2026-03-19T02:24:45.000000Z",
"is_stacked": true,
"stacked_at": "2026-03-19T02:24:45.000000Z",
"retries": 4,
"repeat": 4,
"completed_at": "2026-03-19T02:24:45.000000Z",
"comments": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscriptions
Subscriptions del Usuario
requires authentication
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/recharges/subscriptions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/subscriptions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/subscriptions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 55,
"offer_name": "Sra. Nadia Izquierdo Segundo ",
"recipient": "930 68 2265",
"recipient_name": "Sofía Gámez Hijo",
"recipient_email": "[email protected]",
"amount": "74.76",
"status": "enabled",
"interval": "d:15",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z"
},
{
"id": 56,
"offer_name": "Naiara Rendón ",
"recipient": "977 35 9707",
"recipient_name": "Paola Sedillo",
"recipient_email": "[email protected]",
"amount": "56.25",
"status": "enabled",
"interval": "d:30",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscribe to Offer
requires authentication
Example request:
curl --request POST \
"https://api.sokyrecargas.com/api/v1/recharges/subscriptions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"price_id\": \"molestiae\",
\"recipient_name\": \"jssofsonj\",
\"recipient\": \"fugit\",
\"email\": \"[email protected]\",
\"comments\": \"perferendis\"
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/subscriptions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"price_id": "molestiae",
"recipient_name": "jssofsonj",
"recipient": "fugit",
"email": "[email protected]",
"comments": "perferendis"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/subscriptions';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'price_id' => 'molestiae',
'recipient_name' => 'jssofsonj',
'recipient' => 'fugit',
'email' => '[email protected]',
'comments' => 'perferendis',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 57,
"offer_name": "Ing. Ander Olivo ",
"recipient": "910-369753",
"recipient_name": "Srta. Nayara Ibáñez Hijo",
"recipient_email": "[email protected]",
"amount": "65.96",
"status": "disabled",
"interval": "d:15",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z",
"offer": {
"id": 2582,
"available": true,
"image": "https://via.placeholder.com/640x480.png/003366?text=nisi",
"image_promo": "https://via.placeholder.com/640x480.png/0011ee?text=quia",
"name": "Ing. Ander Olivo",
"description": "Et aliquid vero qui aliquid in. Quis voluptates tempora dolor facere sit quae libero nulla. Distinctio consequatur impedit explicabo est neque.",
"prices": [
{
"id": "c8bd7112-9386-47db-8f5d-064975e667d9",
"label": "Recarga 424",
"public": 19,
"subscription_interval": "d:15",
"value": 19
},
{
"id": "52c480bc-65fb-4b90-a0f8-a3fb92acfef9",
"label": "Recarga 149",
"public": 16,
"subscription_interval": null,
"value": 16
}
],
"category": {
"id": 2520,
"name": "SIM"
},
"start_date": "2026-02-03T06:13:55.000000Z",
"end_date": "2026-06-19T02:24:46.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "sim_tour",
"currency": {
"id": 2804,
"name": "GBP",
"code": "LSL"
},
"metadata": null
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Subscription
requires authentication
Example request:
curl --request PATCH \
"https://api.sokyrecargas.com/api/v1/recharges/subscriptions/5" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"disabled\",
\"recipient\": \"vero\",
\"recipient_name\": \"dolores\",
\"email\": \"[email protected]\"
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/subscriptions/5"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "disabled",
"recipient": "vero",
"recipient_name": "dolores",
"email": "[email protected]"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/subscriptions/5';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => 'disabled',
'recipient' => 'vero',
'recipient_name' => 'dolores',
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 58,
"offer_name": "Francisca Pastor Tercero ",
"recipient": "972 157363",
"recipient_name": "Oriol Alonzo",
"recipient_email": "[email protected]",
"amount": "72.67",
"status": "enabled",
"interval": "d:15",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List My Recargas
requires authentication
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/recharges/mine?user_id=dignissimos&operator_code=ut&recipient=ad&status=eveniet" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"user_id\": 17,
\"operator_code\": \"fugiat\",
\"operator_id\": 3,
\"recipient_name\": \"magni\",
\"recipient\": \"suscipit\",
\"status\": \"pending\",
\"is_stacked\": true
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/mine"
);
const params = {
"user_id": "dignissimos",
"operator_code": "ut",
"recipient": "ad",
"status": "eveniet",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": 17,
"operator_code": "fugiat",
"operator_id": 3,
"recipient_name": "magni",
"recipient": "suscipit",
"status": "pending",
"is_stacked": true
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/mine';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'user_id' => 'dignissimos',
'operator_code' => 'ut',
'recipient' => 'ad',
'status' => 'eveniet',
],
'json' => [
'user_id' => 17,
'operator_code' => 'fugiat',
'operator_id' => 3,
'recipient_name' => 'magni',
'recipient' => 'suscipit',
'status' => 'pending',
'is_stacked' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 17765,
"recipient_name": "Dr. Laia De la Cruz Tercero",
"recipient": "999-305109",
"email": null,
"amount": "71.49",
"is_paid": false,
"status": "canceled",
"price_label": "Celia Guerra",
"operator": {
"id": 5283,
"code": "7888",
"name": "Celia Guerra",
"available": false,
"image": "https://via.placeholder.com/640x480.png/00ddaa?text=omnis"
},
"offer": {
"id": 2584,
"available": true,
"image": "https://via.placeholder.com/640x480.png/009911?text=eius",
"image_promo": "https://via.placeholder.com/640x480.png/00ffcc?text=harum",
"name": "Alba Colón",
"description": "Consectetur omnis nihil atque eum accusamus in. Et et laboriosam aut pariatur odio. Itaque ea dicta nobis. Repellat et voluptas tenetur.",
"prices": [
{
"id": "331d490a-b61d-4789-bf4f-c1f5d62306e3",
"label": "Recarga 078",
"public": 13,
"subscription_interval": "d:15",
"value": 13
},
{
"id": "fd3d8fec-7b84-4ae7-a33e-09609bc6a6f5",
"label": "Recarga 365",
"public": 28,
"subscription_interval": "d:15",
"value": 28
}
],
"category": {
"id": 2522,
"name": "Recargas"
},
"start_date": "2026-02-17T05:13:21.000000Z",
"end_date": "2026-06-19T02:24:46.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "sim_tour",
"currency": {
"id": 2806,
"name": "ILS",
"code": "EGP"
},
"metadata": null
},
"user": {
"id": 8414,
"name": "Sra. Eva Barajas Segundo",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:46.000000Z",
"phone": "953-257487",
"phone_verified_at": "2026-03-19T02:24:46.000000Z",
"role": "user",
"coins": "256.00"
},
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z",
"is_stacked": false,
"stacked_at": "2026-03-19T02:24:46.000000Z",
"retries": 2,
"repeat": 1,
"completed_at": "2026-03-19T02:24:46.000000Z",
"comments": null
},
{
"id": 17766,
"recipient_name": "Jorge Díez",
"recipient": "+34 971-06-8920",
"email": null,
"amount": "48.61",
"is_paid": false,
"status": "pending",
"price_label": "María Castillo",
"operator": {
"id": 5285,
"code": "9498",
"name": "María Castillo",
"available": true,
"image": "https://via.placeholder.com/640x480.png/002255?text=facere"
},
"offer": {
"id": 2585,
"available": true,
"image": "https://via.placeholder.com/640x480.png/00bbcc?text=laborum",
"image_promo": "https://via.placeholder.com/640x480.png/005555?text=esse",
"name": "Jesús Sandoval Segundo",
"description": "Rerum harum est qui adipisci. Adipisci hic maxime nemo quia aliquid totam. Explicabo tempora illo dolorem sit expedita delectus veniam. Dignissimos nulla enim et.",
"prices": [
{
"id": "40a13d9b-64c7-49ee-a3cd-fdda4ac8ac32",
"label": "Recarga 075",
"public": 11,
"subscription_interval": "m:1",
"value": 11
},
{
"id": "ef4a10f0-b54b-46f2-9915-66a33dc8131d",
"label": "Recarga 900",
"public": 15,
"subscription_interval": "m:1",
"value": 15
}
],
"category": {
"id": 2523,
"name": "Recargas"
},
"start_date": "2025-12-24T07:26:12.000000Z",
"end_date": "2026-06-19T02:24:46.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "recharge",
"currency": {
"id": 2807,
"name": "GEL",
"code": "KYD"
},
"metadata": null
},
"user": {
"id": 8415,
"name": "Ángel Velasco",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:46.000000Z",
"phone": "+34 916 38 4661",
"phone_verified_at": "2026-03-19T02:24:46.000000Z",
"role": "user",
"coins": "184.00"
},
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z",
"is_stacked": false,
"stacked_at": "2026-03-19T02:24:46.000000Z",
"retries": 8,
"repeat": 4,
"completed_at": "2026-03-19T02:24:46.000000Z",
"comments": null
}
],
"links": {
"first": "/?page=1",
"last": null,
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"path": "/",
"per_page": 15,
"to": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Recarga Details
requires authentication
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/recharges/19" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/19"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/19';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 17767,
"recipient_name": "César Ybarra",
"recipient": "968160267",
"email": null,
"amount": "19.58",
"is_paid": false,
"status": "completed",
"price_label": "Miriam Ojeda",
"operator": {
"id": 5287,
"code": "8032",
"name": "Miriam Ojeda",
"available": false,
"image": "https://via.placeholder.com/640x480.png/006633?text=dolor"
},
"offer": {
"id": 2586,
"available": false,
"image": "https://via.placeholder.com/640x480.png/00eecc?text=itaque",
"image_promo": "https://via.placeholder.com/640x480.png/0000ee?text=molestiae",
"name": "Sra. Alexia Collazo",
"description": "Voluptas qui id esse maiores iste sapiente. Velit accusantium non doloremque consequatur voluptas et. Et temporibus eos aut facere.",
"prices": [
{
"id": "789ad7cd-69d8-42c5-8559-f579a58c6f05",
"label": "Recarga 206",
"public": 10,
"subscription_interval": "m:1",
"value": 10
},
{
"id": "79572110-9294-4112-820a-95eb4a3fb541",
"label": "Recarga 176",
"public": 25,
"subscription_interval": "d:15",
"value": 25
}
],
"category": {
"id": 2524,
"name": "Recargas"
},
"start_date": "2026-05-03T12:05:27.000000Z",
"end_date": "2026-06-19T02:24:46.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "recharge",
"currency": {
"id": 2808,
"name": "SBD",
"code": "HKD"
},
"metadata": null
},
"user": {
"id": 8416,
"name": "Teresa Olivárez",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:46.000000Z",
"phone": "928086118",
"phone_verified_at": "2026-03-19T02:24:46.000000Z",
"role": "user",
"coins": "938.00"
},
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z",
"is_stacked": true,
"stacked_at": "2026-03-19T02:24:46.000000Z",
"retries": 5,
"repeat": 4,
"completed_at": "2026-03-19T02:24:46.000000Z",
"comments": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Cancelar una Recarga
requires authentication
Example request:
curl --request POST \
"https://api.sokyrecargas.com/api/v1/recharges/9310/cancel" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/recharges/9310/cancel"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/recharges/9310/cancel';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 17768,
"recipient_name": "Samuel Martí",
"recipient": "+34 948 32 8572",
"email": null,
"amount": "72.80",
"is_paid": false,
"status": "pending",
"price_label": "D. Jesús Raya Hijo",
"operator": {
"id": 5289,
"code": "7235",
"name": "D. Jesús Raya Hijo",
"available": true,
"image": "https://via.placeholder.com/640x480.png/00bbbb?text=ut"
},
"offer": {
"id": 2587,
"available": true,
"image": "https://via.placeholder.com/640x480.png/00ccdd?text=iure",
"image_promo": "https://via.placeholder.com/640x480.png/00aaee?text=sint",
"name": "Dr. Óscar Carrillo Hijo",
"description": "In est voluptatem quam libero laboriosam. Saepe dolore a ipsum eum. Deleniti laborum perferendis dolores eos. Rerum odio consequatur aperiam animi laboriosam est sint.",
"prices": [
{
"id": "48b8862e-7186-4cea-8a11-92f7aed7ff91",
"label": "Recarga 023",
"public": 21,
"subscription_interval": null,
"value": 21
},
{
"id": "61305f9f-8a9b-4b84-b000-4c614ade4761",
"label": "Recarga 024",
"public": 24,
"subscription_interval": null,
"value": 24
}
],
"category": {
"id": 2525,
"name": "SIM"
},
"start_date": "2026-02-16T20:09:11.000000Z",
"end_date": "2026-06-19T02:24:47.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "nauta",
"currency": {
"id": 2809,
"name": "JOD",
"code": "TOP"
},
"metadata": null
},
"user": {
"id": 8417,
"name": "Pau Valles",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:46.000000Z",
"phone": "+34 986193743",
"phone_verified_at": "2026-03-19T02:24:46.000000Z",
"role": "user",
"coins": "405.00"
},
"created_at": "2026-03-19T02:24:46.000000Z",
"updated_at": "2026-03-19T02:24:46.000000Z",
"is_stacked": false,
"stacked_at": "2026-03-19T02:24:46.000000Z",
"retries": 4,
"repeat": 4,
"completed_at": "2026-03-19T02:24:46.000000Z",
"comments": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
SimCard
SimCard
Obtener los países
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/countries" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/countries"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/countries';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"name": null,
"code": null,
"flag": null
},
{
"name": null,
"code": null,
"flag": null
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Obtener los puntos de venta
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/physical-offices" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/physical-offices"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/physical-offices';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 1,
"name": "CENTRO MULTISERVICIOS MARTI",
"address": "Calle Martí No.33 e/ Gerardo de Medina e Isabel Rubio Pinar del Río",
"city": null,
"province": "Pinar del Río",
"phone": null,
"email": null,
"schedule": null
},
{
"id": 1,
"name": "CENTRO MULTISERVICIOS MARTI",
"address": "Calle Martí No.33 e/ Gerardo de Medina e Isabel Rubio Pinar del Río",
"city": null,
"province": "Pinar del Río",
"phone": null,
"email": null,
"schedule": null
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Users
Authentication
Get Current user
requires authentication
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/users/auth/current" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/users/auth/current"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/users/auth/current';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 8418,
"name": "Marc Paz",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:47.000000Z",
"phone": "+34 930233690",
"phone_verified_at": "2026-03-19T02:24:47.000000Z",
"role": "user",
"coins": "94.00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Wallets
Currencies
Get Available Currencies
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/coins/currencies" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/coins/currencies"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/coins/currencies';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 2797,
"name": "TRY",
"code": "MDL"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Transactions
List My Transactions
requires authentication
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/coins/transactions/mine" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"from_user_id\": 1,
\"to_user_id\": 18,
\"type\": \"deposit\",
\"types\": [
\"transfer\"
],
\"status\": \"voluptatibus\"
}"
const url = new URL(
"https://api.sokyrecargas.com/api/v1/coins/transactions/mine"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"from_user_id": 1,
"to_user_id": 18,
"type": "deposit",
"types": [
"transfer"
],
"status": "voluptatibus"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/coins/transactions/mine';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'from_user_id' => 1,
'to_user_id' => 18,
'type' => 'deposit',
'types' => [
'transfer',
],
'status' => 'voluptatibus',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 27935,
"amount": "46.48",
"status": "pending",
"type": "refund",
"fromUser": {
"id": 8402,
"name": "Ing. Pedro Cardona Segundo",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:44.000000Z",
"phone": "969 22 2490",
"phone_verified_at": "2026-03-19T02:24:44.000000Z",
"role": "user",
"coins": "622.00"
},
"toUser": {
"id": 8403,
"name": "Sofía Jaime",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:44.000000Z",
"phone": "989 289795",
"phone_verified_at": "2026-03-19T02:24:44.000000Z",
"role": "user",
"coins": "551.00"
},
"comments": "Los pedazos de playa al profundo abismo, y es que... más vale callar... quiera Dios...! Ya les he dicho nada de mi señorita, de su enojo, apostrofó a todas las cabezas. Por lo que ya conté y el mar.",
"payment": null,
"created_at": "2026-03-19T02:24:44.000000Z",
"updated_at": "2026-03-19T02:24:44.000000Z",
"metadata": null
},
{
"id": 27936,
"amount": "63.92",
"status": "failed",
"type": "refund",
"fromUser": {
"id": 8404,
"name": "Leo Costa",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:44.000000Z",
"phone": "969 545354",
"phone_verified_at": "2026-03-19T02:24:44.000000Z",
"role": "user",
"coins": "77.00"
},
"toUser": {
"id": 8405,
"name": "Alonso Vega",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:45.000000Z",
"phone": "+34 938-45-3817",
"phone_verified_at": "2026-03-19T02:24:45.000000Z",
"role": "user",
"coins": "875.00"
},
"comments": "Sin embargo, la imaginación, que entonces no tenía miedo a los periódicos que no llegaremos?- pregunté con mucho trabajo la pierna derecha, con tal acierto, que casi se la desprendió del modo de.",
"payment": null,
"created_at": "2026-03-19T02:24:45.000000Z",
"updated_at": "2026-03-19T02:24:45.000000Z",
"metadata": null
}
],
"links": {
"first": "/?page=1",
"last": null,
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"path": "/",
"per_page": 15,
"to": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Transaction Details
requires authentication
- Requires Admin permissions
Example request:
curl --request GET \
--get "https://api.sokyrecargas.com/api/v1/coins/transactions/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.sokyrecargas.com/api/v1/coins/transactions/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.sokyrecargas.com/api/v1/coins/transactions/1';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 27937,
"amount": "59.13",
"status": "pending",
"type": "set",
"fromUser": {
"id": 8406,
"name": "Amparo Lozano",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:45.000000Z",
"phone": "947890613",
"phone_verified_at": "2026-03-19T02:24:45.000000Z",
"role": "user",
"coins": "303.00"
},
"toUser": {
"id": 8407,
"name": "Lic. Teresa Sanabria",
"email": "[email protected]",
"email_verified_at": "2026-03-19T02:24:45.000000Z",
"phone": "966-52-1784",
"phone_verified_at": "2026-03-19T02:24:45.000000Z",
"role": "user",
"coins": "295.00"
},
"comments": "Los buques se fabricarían con el \"Victory\". El \"Trinidad\" 140 cañones: 32 de a 30, y 10 obuses de a 24, 36 de a 36, 34 de a los lamentos de dolor, y la verdad es que el enemigo estaba ya encima.",
"payment": null,
"created_at": "2026-03-19T02:24:45.000000Z",
"updated_at": "2026-03-19T02:24:45.000000Z",
"metadata": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.