Partner API Documentation Grizzly SMS

Description of the protocol's operation

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

GET_SERVICES

GET_NUMBER

PUSH_SMS

FINISH_ACTIVATION

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:

  • Format des requêtes/réponses : JSON
  • Encodage : UTF-8
  • Utilisez toujours un en-tête user-agent dans les requêtes au serveur Grizzly SMS.

 

Types de champs:

  • int : valeur entière comprise entre -2 147 483 648 et 2 147 483 647.
  • Uint : valeur entière non signée comprise entre 0 et 2 147 483 647.
  • long : valeur entière comprise entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807.
  • Ulong : valeur entière longue non signée comprise entre 0 et 9 223 372 036 854 775 807.
  • cur : valeur réelle contenant jusqu’à 2 décimales, par exemple, 177.77.
  • boolean : valeurs littérales true ou false.
  • string : valeur texte de longueur illimitée.
  • array of string : tableau de chaînes de caractères.
1. GET_SERVICES number request method

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.

Champs de la requête
Field Type Required Description
action String
 
GET_SERVICES
key String
 
Clé du protocole
Champs de la réponse:
Field Type Required Desciption
status String
 
Statut de la réponse (voir Table des statuts)
countryList Tableau de CountryList
 
Liste des pays
 
CountryList
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)

Exemple de requête:
{
  "action": "GET_SERVICES",
  "key": "qwerty123"
}
Exemple de réponse:
{
  "countryList":
    [
      {
        "country": 12,
        "operatorMap":
          {
            "any":
              {
                "tg": 3,
                "wa": 10
              }
          }
      },
      {
        "country": 187,
        "operatorMap":
          {
            "any":
              {
                "tg": 0,
                "wa": 32
              }
          }
      }
    ],
  "status": "SUCCESS"
}
2. GET_NUMBER request method

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.

Champs de la requête:
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
Champs de la réponse
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
 
Exemple de requête:
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": 12,
  "operator": "any",
  "service": "tg",
  "sum": 20.00,
}
Exemple de requête avec exceptionPhoneSet
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": 12,
  "operator": "any",
  "service": "tg",
  "sum": 10,
  "exceptionPhoneSet": [
    "1234",
    "12345"
  ]
}
Exemple de réponse:
{
  "status": "SUCCESS",
  "number": 19157891133,
  "activationId": 571346,
  "flashcall": true,
  "voice": false
}
Exemple de réponse en cas d'absence de numéros:
{
  "status": "NO_NUMBERS"
}
3. Delivery of SMS to the Grizzly SMS server using the PUSH_SMS method

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".

Champs de la requête
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)
Exemple de requête:
{
  "action": "PUSH_SMS",
  "key": "qwerty123",
  "smsID": 1
  "phone": 447472190082
  "phoneFrom": "Microsoft",
  "text": "Microsoft access code: 5015"
}
Exemple de réponse:
{
  "status": "SUCCESS"
}
4. Activation completion request method FINISH_ACTIVATION

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.

Request fields
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
Exemple de requête:
{
  "action": "FINISH_ACTIVATION",
  "key": "qwerty123",
  "smsId": 100,
  "status": 3
}
Exemple de réponse:
{
  "status": "SUCCESS"
}
🆕 5. Request method PUSH_CALL_RECORD

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
Champs de la requête
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)
Réponse
Field Type Required Description

status

String
 
(Voir Table des statuts)
Exemple de requête
{
  "action": "PUSH_CALL_RECORD",
  "key": "qwerty123",
  "recordID": 1
  "phone": 447472190082
  "phoneFrom": "443355667788",
  "text": "Microsoft access code: 5015"
}
Exemple de réponse:
{
  "status": "SUCCESS"
}
🆕 6. Request method PUSH_CALL

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".

Champs de la requête
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
Réponse
Field Type Required Description

status

String
 
(Voir Table des statuts)
Exemple de requête
{
  "action": "PUSH_CALL",
  "key": "qwerty123",
  "callID": 1
  "phone": 447472190082,
  "phoneFrom": "447472190099"
}
Exemple de réponse:
{
  "status": "SUCCESS"
}
Status Table
Состав полей ЗАПРОСА
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.

Réponse réussie à la requête:
{
  "status": "SUCCESS",
  //information
}
Réponse en cas d'erreur:
{
  "status": "ERROR",
 "error": "Description of the error"
}
Testing the protocol

É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.

Data Table
Table des données:
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
API for price change

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.

Terms and fines

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.