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 5771|wZiwTDnB9TvEtytEcWB1vbPGFRNOmliryISUalVVdba37ea4
Recargas
Ofertas
Filtrar Ofertas
Obtener las ofertas disponibles paginadas
Example request:
curl --request GET \
--get "https://stg-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\": \"culpa\",
\"search\": \"earum\",
\"available\": true,
\"category\": 11,
\"category_id\": 6,
\"start_date\": \"2026-01-16T19:09:50\",
\"end_date\": \"2026-01-16T19:09:50\",
\"is_stackable\": false,
\"types\": [
\"modem\"
]
}"
const url = new URL(
"https://stg-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": "culpa",
"search": "earum",
"available": true,
"category": 11,
"category_id": 6,
"start_date": "2026-01-16T19:09:50",
"end_date": "2026-01-16T19:09:50",
"is_stackable": false,
"types": [
"modem"
]
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 'culpa',
'search' => 'earum',
'available' => true,
'category' => 11,
'category_id' => 6,
'start_date' => '2026-01-16T19:09:50',
'end_date' => '2026-01-16T19:09:50',
'is_stackable' => false,
'types' => [
'modem',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 2593,
"available": false,
"image": "https://via.placeholder.com/640x480.png/00ff22?text=corporis",
"image_promo": "https://via.placeholder.com/640x480.png/00aa33?text=vel",
"name": "Bud Kihn",
"description": "Repudiandae nihil delectus ut et vero. Fugiat debitis aliquam a asperiores recusandae accusantium. Consectetur quasi facilis ab. Rerum natus eius ipsam nihil eum quae reiciendis nesciunt.",
"prices": [
{
"id": "a73e0685-263b-4ca4-ac44-f84b4fc447bf",
"label": "Recarga 813",
"public": 27,
"subscription_interval": "d:15",
"value": 27
},
{
"id": "9f025700-8832-4e7d-8c72-f3829be75f66",
"label": "Recarga 181",
"public": 35,
"subscription_interval": "m:1",
"value": 35
}
],
"category": {
"id": 2539,
"name": "Recargas"
},
"start_date": "2026-04-10T04:25:51.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "recharge",
"currency": {
"id": 2833,
"name": "ANG",
"code": "MOP"
},
"metadata": null
},
{
"id": 2594,
"available": false,
"image": "https://via.placeholder.com/640x480.png/00aa22?text=minus",
"image_promo": "https://via.placeholder.com/640x480.png/00bb00?text=id",
"name": "Dr. Abby Zboncak",
"description": "Voluptates et omnis odit reiciendis fugit quae. Adipisci et consequatur alias optio rerum labore id. Optio et numquam magni nesciunt ut suscipit quaerat.",
"prices": [
{
"id": "8b600cbe-a907-425c-bfc2-d6c81df392ed",
"label": "Recarga 057",
"public": 17,
"subscription_interval": null,
"value": 17
},
{
"id": "69ad427f-d005-47aa-96c3-7a51801febd9",
"label": "Recarga 091",
"public": 30,
"subscription_interval": "m:1",
"value": 30
}
],
"category": {
"id": 2540,
"name": "Recargas"
},
"start_date": "2025-10-19T08:00:43.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "nauta",
"currency": {
"id": 2834,
"name": "BGN",
"code": "RSD"
},
"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://stg-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\": \"et\",
\"subscribe\": true,
\"repeat\": 1
}"
const url = new URL(
"https://stg-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": "et",
"subscribe": true,
"repeat": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 'et',
'subscribe' => true,
'repeat' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 14906,
"recipient_name": "Margot Kuhlman",
"recipient": "1-484-887-2819",
"email": null,
"amount": "82.82",
"is_paid": false,
"status": "pending",
"price_label": "Ms. Etha Wilkinson PhD",
"operator": {
"id": 5295,
"code": "9240",
"name": "Ms. Etha Wilkinson PhD",
"available": false,
"image": "https://via.placeholder.com/640x480.png/00bb44?text=voluptatem"
},
"offer": {
"id": 2595,
"available": true,
"image": "https://via.placeholder.com/640x480.png/00bb00?text=facere",
"image_promo": "https://via.placeholder.com/640x480.png/00cc88?text=qui",
"name": "Mr. Jaiden Pfannerstill",
"description": "Eligendi voluptate aut et maxime reiciendis asperiores voluptas. Esse velit similique fugit et distinctio. Quisquam repellendus et ipsam consequatur quia voluptas.",
"prices": [
{
"id": "25c6a5ea-111c-43e4-ad4f-5edf98f4dafa",
"label": "Recarga 351",
"public": 12,
"subscription_interval": "d:15",
"value": 12
},
{
"id": "6b2aba8f-e394-43b4-a4ce-8a78bcc0c9a6",
"label": "Recarga 226",
"public": 37,
"subscription_interval": null,
"value": 37
}
],
"category": {
"id": 2541,
"name": "SIM"
},
"start_date": "2025-12-02T06:59:56.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "nauta",
"currency": {
"id": 2835,
"name": "KWD",
"code": "MRU"
},
"metadata": null
},
"user": {
"id": 7999,
"name": "Eve Mante II",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "440-735-1265",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "744.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"is_stacked": false,
"stacked_at": "2026-01-17T00:09:50.000000Z",
"retries": 9,
"repeat": 2,
"completed_at": "2026-01-17T00:09:50.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://stg-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\": \"nesciunt\",
\"subscribe\": true,
\"repeat\": 1
}"
const url = new URL(
"https://stg-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": "nesciunt",
"subscribe": true,
"repeat": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 'nesciunt',
'subscribe' => true,
'repeat' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 14907,
"recipient_name": "Lincoln Larkin",
"recipient": "351-576-0228",
"email": null,
"amount": "73.58",
"is_paid": false,
"status": "pending",
"price_label": "Dr. Ezekiel Considine",
"operator": {
"id": 5297,
"code": "9830",
"name": "Dr. Ezekiel Considine",
"available": true,
"image": "https://via.placeholder.com/640x480.png/002277?text=vel"
},
"offer": {
"id": 2596,
"available": false,
"image": "https://via.placeholder.com/640x480.png/0088aa?text=quia",
"image_promo": "https://via.placeholder.com/640x480.png/00ddee?text=incidunt",
"name": "Opal D'Amore",
"description": "Dolores quis autem praesentium fuga tenetur. Nostrum doloribus voluptates sint ex maxime. Reprehenderit voluptates occaecati maxime nulla.",
"prices": [
{
"id": "109c520c-4fd8-441a-8a06-5c771b628465",
"label": "Recarga 705",
"public": 40,
"subscription_interval": null,
"value": 40
},
{
"id": "0f3fe600-101b-48fa-81e0-3e084c0bcb4c",
"label": "Recarga 819",
"public": 39,
"subscription_interval": "m:1",
"value": 39
}
],
"category": {
"id": 2542,
"name": "Recargas"
},
"start_date": "2025-11-05T19:38:51.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "nauta",
"currency": {
"id": 2836,
"name": "HUF",
"code": "AZN"
},
"metadata": null
},
"user": {
"id": 8000,
"name": "Jeremy Bauch",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "920.369.0574",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "218.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"is_stacked": false,
"stacked_at": "2026-01-17T00:09:50.000000Z",
"retries": 10,
"repeat": 2,
"completed_at": "2026-01-17T00:09:50.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://stg-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://stg-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://stg-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": 115,
"offer_name": "Ophelia Kunde ",
"recipient": "+1-814-875-9835",
"recipient_name": "Larue Wolff",
"recipient_email": "[email protected]",
"amount": "92.31",
"status": "disabled",
"interval": "d:30",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z"
},
{
"id": 116,
"offer_name": "Dwight Hermann V ",
"recipient": "740-413-7090",
"recipient_name": "Dennis Abernathy",
"recipient_email": "[email protected]",
"amount": "44.03",
"status": "disabled",
"interval": "d:30",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.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://stg-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\": \"consequatur\",
\"recipient_name\": \"ikdawljskwx\",
\"recipient\": \"culpa\",
\"email\": \"[email protected]\",
\"comments\": \"id\"
}"
const url = new URL(
"https://stg-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": "consequatur",
"recipient_name": "ikdawljskwx",
"recipient": "culpa",
"email": "[email protected]",
"comments": "id"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 'consequatur',
'recipient_name' => 'ikdawljskwx',
'recipient' => 'culpa',
'email' => '[email protected]',
'comments' => 'id',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 117,
"offer_name": "Myrtie Bayer ",
"recipient": "(347) 893-2605",
"recipient_name": "Emily Kertzmann",
"recipient_email": "[email protected]",
"amount": "88.77",
"status": "enabled",
"interval": "d:10",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"offer": {
"id": 2599,
"available": true,
"image": "https://via.placeholder.com/640x480.png/005555?text=quaerat",
"image_promo": "https://via.placeholder.com/640x480.png/0033bb?text=modi",
"name": "Myrtie Bayer",
"description": "Excepturi est veniam placeat sequi ex nisi voluptatibus. Quis ratione itaque et enim. Velit eos dignissimos eum vel qui aut mollitia. Voluptatem alias aut et ducimus quia.",
"prices": [
{
"id": "cc1fbf4e-3f02-4ada-870f-cc44b27ae6c1",
"label": "Recarga 433",
"public": 14,
"subscription_interval": null,
"value": 14
},
{
"id": "d40b85a3-c85d-496e-b548-577222dc2ec0",
"label": "Recarga 443",
"public": 20,
"subscription_interval": "m:1",
"value": 20
}
],
"category": {
"id": 2545,
"name": "Recargas"
},
"start_date": "2026-03-10T18:48:10.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "recharge",
"currency": {
"id": 2839,
"name": "ERN",
"code": "MGA"
},
"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://stg-api.sokyrecargas.com/api/v1/recharges/subscriptions/37" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"disabled\",
\"recipient\": \"illum\",
\"recipient_name\": \"culpa\",
\"email\": \"[email protected]\"
}"
const url = new URL(
"https://stg-api.sokyrecargas.com/api/v1/recharges/subscriptions/37"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "disabled",
"recipient": "illum",
"recipient_name": "culpa",
"email": "[email protected]"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-api.sokyrecargas.com/api/v1/recharges/subscriptions/37';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => 'disabled',
'recipient' => 'illum',
'recipient_name' => 'culpa',
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": {
"id": 118,
"offer_name": "Dr. Tyree Schaefer Sr. ",
"recipient": "+16319843264",
"recipient_name": "Ignatius Gutkowski DVM",
"recipient_email": "[email protected]",
"amount": "25.42",
"status": "disabled",
"interval": "d:10",
"interval_count": 0,
"last_payment_at": null,
"next_payment_at": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.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://stg-api.sokyrecargas.com/api/v1/recharges/mine?user_id=hic&operator_code=sint&recipient=velit&status=commodi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"user_id\": 4,
\"operator_code\": \"perferendis\",
\"operator_id\": 13,
\"recipient_name\": \"et\",
\"recipient\": \"porro\",
\"status\": \"completed\",
\"is_stacked\": true
}"
const url = new URL(
"https://stg-api.sokyrecargas.com/api/v1/recharges/mine"
);
const params = {
"user_id": "hic",
"operator_code": "sint",
"recipient": "velit",
"status": "commodi",
};
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": 4,
"operator_code": "perferendis",
"operator_id": 13,
"recipient_name": "et",
"recipient": "porro",
"status": "completed",
"is_stacked": true
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 'hic',
'operator_code' => 'sint',
'recipient' => 'velit',
'status' => 'commodi',
],
'json' => [
'user_id' => 4,
'operator_code' => 'perferendis',
'operator_id' => 13,
'recipient_name' => 'et',
'recipient' => 'porro',
'status' => 'completed',
'is_stacked' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 14908,
"recipient_name": "Dr. Cameron Howe Jr.",
"recipient": "+1 (442) 854-0077",
"email": null,
"amount": "30.24",
"is_paid": false,
"status": "completed",
"price_label": "Abner Rohan",
"operator": {
"id": 5303,
"code": "4192",
"name": "Abner Rohan",
"available": false,
"image": "https://via.placeholder.com/640x480.png/001100?text=commodi"
},
"offer": {
"id": 2601,
"available": false,
"image": "https://via.placeholder.com/640x480.png/004488?text=quis",
"image_promo": "https://via.placeholder.com/640x480.png/007755?text=nemo",
"name": "Sherman Ullrich PhD",
"description": "Provident dolor quam in dicta et. Expedita ut magni vitae facere. Sint quia sequi ipsa tempora omnis quo iste.",
"prices": [
{
"id": "f9d0a5cf-8cd6-41af-85b3-102f52df49b9",
"label": "Recarga 242",
"public": 38,
"subscription_interval": null,
"value": 38
},
{
"id": "349aab2e-327c-4c3d-bba4-4740d2ea63fe",
"label": "Recarga 791",
"public": 19,
"subscription_interval": null,
"value": 19
}
],
"category": {
"id": 2547,
"name": "Recargas"
},
"start_date": "2026-03-10T17:48:31.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "modem",
"currency": {
"id": 2841,
"name": "NOK",
"code": "XOF"
},
"metadata": null
},
"user": {
"id": 8005,
"name": "Amina Gleichner",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "707-858-8565",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "708.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"is_stacked": false,
"stacked_at": "2026-01-17T00:09:50.000000Z",
"retries": 3,
"repeat": 4,
"completed_at": "2026-01-17T00:09:50.000000Z",
"comments": null
},
{
"id": 14909,
"recipient_name": "Verona Feest I",
"recipient": "+1.408.930.8170",
"email": null,
"amount": "63.94",
"is_paid": false,
"status": "canceled",
"price_label": "Mr. Hank Upton PhD",
"operator": {
"id": 5305,
"code": "6334",
"name": "Mr. Hank Upton PhD",
"available": false,
"image": "https://via.placeholder.com/640x480.png/0044cc?text=id"
},
"offer": {
"id": 2602,
"available": true,
"image": "https://via.placeholder.com/640x480.png/00dd44?text=tempore",
"image_promo": "https://via.placeholder.com/640x480.png/009922?text=maiores",
"name": "Catherine McCullough",
"description": "Voluptatem qui facilis dolores est. Ducimus nihil atque aspernatur magni. Omnis nihil omnis aut sequi enim porro nihil. Maiores quod quas molestiae.",
"prices": [
{
"id": "fc8aec25-0db8-4612-bbab-973b9d6d52b7",
"label": "Recarga 406",
"public": 32,
"subscription_interval": "m:1",
"value": 32
},
{
"id": "43ab2e1f-ad54-4725-ab1a-b1e27340af70",
"label": "Recarga 827",
"public": 25,
"subscription_interval": "d:15",
"value": 25
}
],
"category": {
"id": 2548,
"name": "SIM"
},
"start_date": "2025-12-11T11:10:18.000000Z",
"end_date": "2026-04-16T23:09:50.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "modem",
"currency": {
"id": 2842,
"name": "TRY",
"code": "ANG"
},
"metadata": null
},
"user": {
"id": 8006,
"name": "Mercedes Breitenberg",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "424-888-3203",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "710.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"is_stacked": true,
"stacked_at": "2026-01-17T00:09:50.000000Z",
"retries": 3,
"repeat": 4,
"completed_at": "2026-01-17T00:09:50.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://stg-api.sokyrecargas.com/api/v1/recharges/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://stg-api.sokyrecargas.com/api/v1/recharges/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://stg-api.sokyrecargas.com/api/v1/recharges/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": 14910,
"recipient_name": "Earlene Grimes",
"recipient": "1-256-426-8191",
"email": null,
"amount": "42.94",
"is_paid": false,
"status": "canceled",
"price_label": "Ms. Margaret Gislason III",
"operator": {
"id": 5307,
"code": "5735",
"name": "Ms. Margaret Gislason III",
"available": true,
"image": "https://via.placeholder.com/640x480.png/0000cc?text=sit"
},
"offer": {
"id": 2603,
"available": false,
"image": "https://via.placeholder.com/640x480.png/0099ee?text=exercitationem",
"image_promo": "https://via.placeholder.com/640x480.png/00eeff?text=praesentium",
"name": "Gunnar Senger",
"description": "Eius eveniet eum aut. Vel fugit quisquam a cupiditate omnis. Ut ullam esse earum distinctio quos assumenda aut.",
"prices": [
{
"id": "cc454921-4ef2-4393-896a-c1e9e90b0973",
"label": "Recarga 468",
"public": 40,
"subscription_interval": "d:15",
"value": 40
},
{
"id": "27d13dd4-e113-4106-8ca2-89067b32787a",
"label": "Recarga 582",
"public": 36,
"subscription_interval": "d:15",
"value": 36
}
],
"category": {
"id": 2549,
"name": "SIM"
},
"start_date": "2025-11-01T04:42:22.000000Z",
"end_date": "2026-04-16T23:09:51.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "sim",
"currency": {
"id": 2843,
"name": "KYD",
"code": "TWD"
},
"metadata": null
},
"user": {
"id": 8007,
"name": "Erik Murphy",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:51.000000Z",
"phone": "+1-718-624-4015",
"phone_verified_at": "2026-01-17T00:09:51.000000Z",
"role": "user",
"coins": "720.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:51.000000Z",
"updated_at": "2026-01-17T00:09:51.000000Z",
"is_stacked": false,
"stacked_at": "2026-01-17T00:09:51.000000Z",
"retries": 2,
"repeat": 3,
"completed_at": "2026-01-17T00:09:51.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://stg-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://stg-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://stg-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": 14911,
"recipient_name": "Noemi Wintheiser",
"recipient": "+1 (859) 935-0161",
"email": null,
"amount": "86.27",
"is_paid": false,
"status": "pending",
"price_label": "Emilio Funk",
"operator": {
"id": 5309,
"code": "2207",
"name": "Emilio Funk",
"available": true,
"image": "https://via.placeholder.com/640x480.png/004499?text=nisi"
},
"offer": {
"id": 2604,
"available": true,
"image": "https://via.placeholder.com/640x480.png/007766?text=ipsum",
"image_promo": "https://via.placeholder.com/640x480.png/00aa33?text=sint",
"name": "Dorris Cummings",
"description": "Nihil sit repudiandae aut nostrum rem facere ipsum at. Reprehenderit atque iste consequatur quo possimus corporis eveniet incidunt.",
"prices": [
{
"id": "d0f2b599-0f40-47da-82c7-77d6fc5bde27",
"label": "Recarga 460",
"public": 16,
"subscription_interval": null,
"value": 16
},
{
"id": "e4246fd9-a60e-411b-aacb-b322c8bf8cdd",
"label": "Recarga 925",
"public": 23,
"subscription_interval": "d:15",
"value": 23
}
],
"category": {
"id": 2550,
"name": "SIM"
},
"start_date": "2025-11-02T19:37:58.000000Z",
"end_date": "2026-04-16T23:09:51.000000Z",
"is_stackable": false,
"is_preorder": false,
"type": "nauta",
"currency": {
"id": 2844,
"name": "CUC",
"code": "STN"
},
"metadata": null
},
"user": {
"id": 8008,
"name": "Miss Clare Volkman IV",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:51.000000Z",
"phone": "1-239-685-1513",
"phone_verified_at": "2026-01-17T00:09:51.000000Z",
"role": "user",
"coins": "530.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"created_at": "2026-01-17T00:09:51.000000Z",
"updated_at": "2026-01-17T00:09:51.000000Z",
"is_stacked": true,
"stacked_at": "2026-01-17T00:09:51.000000Z",
"retries": 10,
"repeat": 2,
"completed_at": "2026-01-17T00:09:51.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://stg-api.sokyrecargas.com/api/v1/countries" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://stg-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://stg-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://stg-api.sokyrecargas.com/api/v1/physical-offices" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://stg-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://stg-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://stg-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://stg-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://stg-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": 8009,
"name": "Kayleigh Streich",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:51.000000Z",
"phone": "1-669-385-1375",
"phone_verified_at": "2026-01-17T00:09:51.000000Z",
"role": "user",
"coins": "753.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
},
"metadata": {
"birthday": null,
"gender": null,
"telegram_chat_id": null,
"country_code": "CU",
"is_premium": false,
"is_reseller": false,
"is_banned": false,
"banned_at": null,
"banned_reason": null,
"can_recharge": true,
"can_recharge_another": true,
"can_topup": true,
"can_transfer": true,
"can_withdraw": true,
"observations": 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.
Wallets
Currencies
Get Available Currencies
Example request:
curl --request GET \
--get "https://stg-api.sokyrecargas.com/api/v1/coins/currencies" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://stg-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://stg-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": 2832,
"name": "LAK",
"code": "SDG"
}
}
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://stg-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\": 18,
\"to_user_id\": 14,
\"type\": \"unfreeze\",
\"types\": [
\"set\"
],
\"status\": \"et\"
}"
const url = new URL(
"https://stg-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": 18,
"to_user_id": 14,
"type": "unfreeze",
"types": [
"set"
],
"status": "et"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://stg-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' => 18,
'to_user_id' => 14,
'type' => 'unfreeze',
'types' => [
'set',
],
'status' => 'et',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (200):
{
"data": [
{
"id": 23310,
"amount": "83.02",
"status": "pending",
"type": "set",
"fromUser": {
"id": 7993,
"name": "Stevie Glover",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "+16237167792",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "479.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"toUser": {
"id": 7994,
"name": "Estrella Wilderman II",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "847-282-2849",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "255.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"comments": "I'm I, and--oh dear, how puzzling it all seemed quite natural); but when the tide rises and sharks are around, His voice has a timid voice at her feet in the distance would take the place of the.",
"payment": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.000000Z",
"metadata": null
},
{
"id": 23311,
"amount": "42.91",
"status": "success",
"type": "consume",
"fromUser": {
"id": 7995,
"name": "Prof. Derek Leannon",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "+1-201-910-2109",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "737.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"toUser": {
"id": 7996,
"name": "Kadin Rodriguez",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "1-385-606-6544",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "905.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"comments": "She hastily put down her anger as well go in ringlets at all; however, she went on in a low curtain she had nothing yet,' Alice replied thoughtfully. 'They have their tails fast in their proper.",
"payment": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.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://stg-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://stg-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://stg-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": 23312,
"amount": "21.05",
"status": "failed",
"type": "freeze",
"fromUser": {
"id": 7997,
"name": "Marion Olson",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "(601) 396-8993",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "411.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"toUser": {
"id": 7998,
"name": "Gwen Marvin",
"email": "[email protected]",
"email_verified_at": "2026-01-17T00:09:50.000000Z",
"phone": "+1.231.386.1468",
"phone_verified_at": "2026-01-17T00:09:50.000000Z",
"role": "user",
"coins": "218.00",
"p2p": {
"transactions": 0,
"rating": "5.00",
"type": "basic"
}
},
"comments": "And she thought it must be a person of authority among them, called out, 'Sit down, all of you, and don't speak a word till I've finished.' So they got their tails in their paws. 'And how did you.",
"payment": null,
"created_at": "2026-01-17T00:09:50.000000Z",
"updated_at": "2026-01-17T00:09:50.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.