Le protocole partenaire est conçu pour fournir des numéros de téléphone et des SMS reçus via une API directement au serveur Grizzly SMS.
Toutes les requêtes incluent le paramètre — KEY. Cette clé est fournie par le support et est disponible dans l'espace personnel.
Les requêtes de quantité GET_SERVICES, les requêtes de numéros GET_NUMBER et les requêtes de fin d'activation FINISH_ACTIVATION sont envoyées directement depuis notre serveur vers le serveur du partenaire.
Format d'URL : https://GrizzlySMS où GrizzlySMS peut être partner.ru:port/GrizzlySMS.php or partner.ru/GrizzlySMS.php
Le serveur Grizzly SMS envoie une requête pour connaître la disponibilité des numéros de téléphone à l’aide de la méthode GET_SERVICES environ toutes les 10 à 20 secondes.
Si vous fournissez un nombre > 0 dans votre réponse, vous recevrez une requête d’émission de numéro via la méthode GET_NUMBER.
Après avoir reçu la requête GET_NUMBER vous devez fournir un numéro de téléphone qui répond à tous les critères et transférer tous les SMS entrants vers nous en utilisant la méthode PUSH_SMS. Cela est nécessaire pour que nous puissions effectuer un filtrage clair et objectif, puis transmettre les SMS pertinents au bon service pour nos clients
Une fois toutes les tâches nécessaires liées aux numéros de téléphone accomplies, vous recevrez un statut 3 via la méthode FINISH_ACTIVATION. Ce statut indique que le numéro de téléphone a été enregistré avec succès, et vous serez récompensé pour cela.
Exigences:
Types de champs:
Cette requête nous fournit des informations sur la quantité de numéros de téléphone disponibles à la vente pour les services.
La requête POST est transmise depuis le serveur Grizzly SMS vers le serveur du partenaire.
! Veuillez noter : Si votre modem GSM est limité en nombre de modules actifs simultanément, vous devez fournir un nombre égal au nombre de modules actifs.
| Field | Type | Required | Description |
| action | String |
|
GET_SERVICES |
| key | String |
|
Clé du protocole |
| Field | Type | Required | Desciption |
| status | String |
|
Statut de la réponse (voir Table des statuts) |
| countryList | Tableau de CountryList |
|
Liste des pays |
| Field | Type | Required | Description |
| country | Number |
|
Code du pays (voir Table des données) |
| operatorMap* | Tableau associatif |
|
Clé - opérateur (voir Table des données), valeur - tableau associatif de services |
* Vous ne devez pas envoyer de tableaux de données vides dans l' operatorMap
** Tableau associatif des services : Clé - nom abrégé du service (voir Table des données), valeur - quantité de numéros de téléphone disponibles pour le service (type: int)
{
"action": "GET_SERVICES",
"key": "qwerty123"
}
{
"countryList":
[
{
"country": 12,
"operatorMap":
{
"any":
{
"tg": 3,
"wa": 10
}
}
},
{
"country": 187,
"operatorMap":
{
"any":
{
"tg": 0,
"wa": 32
}
}
}
],
"status": "SUCCESS"
}
Cette requête nous fournit un numéro de téléphone que nous transmettons ensuite au client.
La requête POST est transmise depuis le serveur Grizzly SMS vers le serveur du partenaire.
Si le tableau exceptionPhoneSet contient une liste de préfixes, par exemple 44742 et 44740, vous ne devez pas fournir de numéro commençant par l'un de ces préfixes. Le nombre de chiffres n'est pas limité par la taille du préfixe.
| Field | Type | Required | Desctiption |
| action | String |
|
GET_NUMBER |
| key | String |
|
Clé du protocole |
| country | Number |
|
Code du pays (voir Table des données) |
| service | String |
|
Nom abrégé du service (voir Table des données) |
| operator | String |
|
Opérateur (voir Table des données) |
| sum | Cur |
|
Montant que vous recevrez pour un service enregistré avec succès |
|
exceptionPhoneSet |
Array of String |
|
Liste de préfixes INTERDITS à fournir lors de la demande d’un numéro de téléphone |
| Field | Type | Required | Description |
| status | String |
|
Statut de la réponse (voir Table des statuts) |
| number | Ulong |
|
Numéro de téléphone avec indicatif pays |
| activationId | Ulong |
|
ID d’activation dans le système du partenaire |
| flashcall | Boolean | TRUE si prise en charge de PUSH_CALL | |
| voice | Boolean | TRUE si prise en charge de PUSH_CALL_RECORD |
{
"action": "GET_NUMBER",
"key": "qwerty123",
"country": 12,
"operator": "any",
"service": "tg",
"sum": 20.00,
}
{
"action": "GET_NUMBER",
"key": "qwerty123",
"country": 12,
"operator": "any",
"service": "tg",
"sum": 10,
"exceptionPhoneSet": [
"1234",
"12345"
]
}
{
"status": "SUCCESS",
"number": 19157891133,
"activationId": 571346,
"flashcall": true,
"voice": false
}
{
"status": "NO_NUMBERS"
}
Cette requête POST est envoyée depuis le serveur du partenaire vers le serveur Grizzly SMS à l'adresse: https://api.grizzlysms.com/agent/api/sms
Si vous recevez une réponse avec le statut "SUCCESS", marquez le SMS comme étant livré avec succès dans votre base de données et ne l'envoyez pas à nouveau. Si un statut autre que "SUCCESS" est retourné, répétez la requête avec un délai de 10 secondes jusqu'à ce que vous receviez un statut "SUCCESS".
| Field | Type | Required | Description |
| action | String |
|
PUSH_SMS |
| key | String |
|
Clé du protocole |
| smsId | Ulong |
|
ID du SMS dans le système du partenaire |
| phone | Ulong |
|
Numéro de téléphone (incluant l'indicatif pays) auquel le SMS a été envoyé |
| phoneFrom | String |
|
Nom de l’expéditeur (peut être alphabétique ou numérique) qui a envoyé le SMS |
| Text | String |
|
Texte du SMS |
| Field | Type | Required | Description |
|
status |
String |
|
Statut de la réponse (voir Table des statuts) |
{
"action": "PUSH_SMS",
"key": "qwerty123",
"smsID": 1
"phone": 447472190082
"phoneFrom": "Microsoft",
"text": "Microsoft access code: 5015"
}
{
"status": "SUCCESS"
}
Cette requête est transmise depuis le serveur Grizzly SMS vers le serveur du partenaire pour finaliser l'activation.
Requête POST initiée depuis le serveur Grizzly SMS vers le serveur du partenaire.
La gestion de l'activation est entièrement contrôlée par Grizzly SMS. En raison de facteurs indépendants de notre volonté, il se peut que nous ne recevions pas de votre part une réponse concernant un changement de statut réussi. Par conséquent, si Grizzly SMS envoie une nouvelle requête de finalisation d'activation, vous devez vérifier l'existence de l'ID d'activation de votre côté. Si l'activation existe, répondez avec un statut SUCCESS.
| Field | Type | Required | Desciption |
| action | String |
|
FINISH_ACTIVATION |
| key | String |
|
Clé du protocole |
| activationId | Ulong |
|
ID d’activation obtenu lors de la deuxième requête |
| status | Ulong |
|
Voir Table des statuts |
| Answer fields | |||
| Field | Type | Required | Desctiption |
|
status |
String |
|
Voir Table des statuts |
{
"action": "FINISH_ACTIVATION",
"key": "qwerty123",
"smsId": 100,
"status": 3
}
{
"status": "SUCCESS"
}
Cette requête POST est envoyée depuis le serveur du partenaire vers le serveur Grizzly SMS à l'adresse: https://api.grizzlysms.com/agent/api/sms
Si vous recevez une réponse avec le statut "SUCCESS", marquez le SMS comme étant livré avec succès dans votre base de données et ne l'envoyez pas à nouveau. Si un statut autre que "SUCCESS" est retourné, répétez la requête avec un délai de 10 secondes jusqu'à ce que vous receviez un statut "SUCCESS".
Content-Type: multipart/form-data
| Field | Type | Required | Description |
| action | String |
|
PUSH_CALL_RECORD |
| key | String |
|
Clé du protocole |
| callId | Ulong |
|
ID de l’appel dans le système du partenaire |
| phone | Ulong |
|
Numéro de téléphone (incluant l’indicatif pays) |
| phoneFrom | String |
|
Numéro de l’appelant |
| text | String | required if 'file' is empty | Texte de l’enregistrement |
| file | Binary | reuired if 'text' is empty | Fichier audio (wav, amr, mp3, ogg) |
| Field | Type | Required | Description |
|
status |
String |
|
(Voir Table des statuts) |
{
"action": "PUSH_CALL_RECORD",
"key": "qwerty123",
"recordID": 1
"phone": 447472190082
"phoneFrom": "443355667788",
"text": "Microsoft access code: 5015"
}
{
"status": "SUCCESS"
}
Cette requête POST est envoyée depuis le serveur du partenaire vers le serveur Grizzly SMS à l'adresse: https://api.grizzlysms.com/agent/api/sms
Si vous recevez une réponse avec le statut "SUCCESS", marquez le SMS comme étant livré avec succès dans votre base de données et ne l'envoyez pas à nouveau. Si un statut autre que "SUCCESS" est retourné, répétez la requête avec un délai de 10 secondes jusqu'à ce que vous receviez un statut "SUCCESS".
| Field | Type | Required | Description |
| action | String |
|
PUSH_CALL |
| key | String |
|
Clé du protocole |
| callId | Ulong |
|
ID de l’appel dans le système du partenaire |
| phone | Ulong |
|
Numéro de téléphone (incluant l’indicatif pays) |
| phoneFrom | String |
|
Numéro de l’appelant |
| Field | Type | Required | Description |
|
status |
String |
|
(Voir Table des statuts) |
{
"action": "PUSH_CALL",
"key": "qwerty123",
"callID": 1
"phone": 447472190082,
"phoneFrom": "447472190099"
}
{
"status": "SUCCESS"
}
| Status | Description |
| SUCCESS | La requête a été exécutée avec succès. |
| ERROR | Erreur lors de l’exécution de la requête. Le champ ERROR doit contenir une description. |
| NO_NUMBERS | Aucun numéro n’est disponible. Cette réponse est retournée uniquement pour une demande de numéro. |
| Activation Status | |
| Status | Desctiption |
|
1 |
L’émission d’un numéro pour ce service est interdite. |
| 3 | L’activation a été vendue avec succès. Vous avez reçu une récompense. |
| 4 | L’activation a été annulée*. |
| 5 | L’activation a été retournée. Le client a été remboursé. Il est possible que ce numéro ait déjà été enregistré auparavant, et que l’authentification à deux facteurs soit activée sur le numéro. |
**Le mécanisme d’annulation fonctionne comme suit : Si un numéro de téléphone a été annulé 5 fois, vous ne devez plus émettre ce même numéro. Il est possible que le numéro ne soit pas adapté au client ou qu’il ait déjà été enregistré pour le service spécifique.
{
"status": "SUCCESS",
//information
}
{
"status": "ERROR",
"error": "Description of the error"
}
Émission simultanée de numéros. Vous devez gérer correctement les requêtes simultanées et ne pas émettre de numéros en double. Par exemple, si vous disposez de 100 numéros pour Telegram Indonésie, et que Grizzly SMS effectue simultanément 100 requêtes pour Telegram Royaume-Uni, le serveur partenaire doit fournir 100 numéros uniques. Si un numéro est émis plusieurs fois, le test échoue.
Finalisation correcte de l'activation. Le changement de statut d'activation est entièrement contrôlé par Grizzly SMS. Le serveur partenaire ne doit pas finaliser les activations de manière autonome.
Vérification de la livraison des SMS. Une fois que vous recevez un SMS, vous devez immédiatement le transférer au serveur Grizzly SMS. Si vous recevez un statut SUCCESS, vous ne devez pas renvoyer le même SMS. Cependant, si vous recevez un autre statut, vous devez réessayer la requête toutes les 10 à 20 secondes. Si un SMS est renvoyé après avoir reçu un statut SUCCESS, le test échoue.
Vérification des types de champs. Vérifiez attentivement les types de champs spécifiés dans cette documentation. En cas de non-respect de cette condition, le test échoue.
Code pays dans le numéro de téléphone. L'émission des numéros de téléphone doit être au format numérique et inclure le code du pays.
Vérification du délai d'émission des numéros. Vous devez émettre des numéros avec un délai de moins de 3 secondes. Si cela prend plus de 3 secondes, le test échoue.
Vérification de la quantité de numéros. Si vous indiquez 1000 numéros dans une requête pour la quantité de numéros disponibles, mais qu’en réalité seuls 100 sont émis simultanément, alors le test échoue.
Vérification de la gestion des exceptions. Si vous gérez incorrectement les exceptions lors de l’émission d’un numéro, le test échoue.
| Lists | Links |
| List of countries | La liste complète des pays avec leurs noms et IDs est disponible à ce lien |
| List of operators | Pour l’instant, la répartition par opérateurs est en cours de développement, vous devez donc transmettre la valeur « any ». Une fois cette fonctionnalité implémentée, nous vous en informerons via le chat technique du support. |
| List of services | La liste complète des services avec leurs noms et IDs est disponible à ce lien |
Cette API est conçue pour automatiser le travail avec les tarifs de votre côté (prix des services).
L'API est disponible à cette adresse: https://apiagent.grizzlysms.com.
Pour l'authentification dans les requêtes, vous devez envoyer votre clé API dans l'en-tête HTTP apikey.
Toutes les données sont transmises au format JSON.
Pour les requêtes GET, il est nécessaire d'envoyer l'en-tête HTTP Accept: application/json, et pour les requêtes POST, les en-têtes - Accept: application/json et Content-Type: application/json doivent être utilisés.
Les valeurs disponibles pour le paramètre country se trouvent dans la liste des pays, dans la colonne ID
Les valeurs disponibles pour le paramètre service se trouvent dans la liste des services, dans la colonne ID.
Retrait des fonds. Le retrait des fonds gagnés s'effectue via des requêtes. Un partenaire peut créer une demande de retrait dans la section Retrait. Le retrait d'un montant à partir de 100 USDT est disponible pour une seule transaction. Les demandes sont traitées quotidiennement de 8h00 à 20h00 (UTC), avec un délai de traitement allant de 20 à 180 minutes. Si vous êtes éligible à un bonus (conformément aux conditions publiées sur le site), assurez-vous de l'indiquer dans les commentaires de la demande.
Compensations pour 2FA et "Code incorrect". La plateforme Grizzly SMS, en tant qu'intermédiaire, compense intégralement les clients pour les numéros Telegram avec authentification à deux facteurs (2FA) ou des codes erronés. Grizzly SMS reçoit automatiquement les informations concernant les cas de 2FA depuis les logiciels Telegram Expert et TG-GIANT. Important : Les fonds pour les numéros avec 2FA, code erroné (réponse "wrong code"), ainsi que pour les comptes Telegram ne sont pas débités. Vous pouvez consulter les informations relatives aux cas de 2FA ou de wrong_code dans l’Historique des activations.