# API SMS

L' API est appelée par l'url "*<mark style="color:red;">**<https://macsmspro.com/api/sms\\_v2>**</mark>*  " stocké dans la variable  *$url*&#x20;

```
 <?php

$url = "https://macsmspro.com/api/sms_v2";
$fields = array(
    
    "name" => urlencode("AUTH"), // name of your message
    "telephone" => urlencode("004478562xxxx"), // recipient phone
    "message" => urlencode("Hello world"), // body of message
    "token" => urlencode("$2yxxxxxxxxxxxxxxxxxxxxxx"), // api token 
);

$fields_string = "";
foreach($fields as $key=>$value) { $fields_string .= $key."=".$value."&"; }


rtrim($fields_string, "&");

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


$result = curl_exec($ch);

curl_close($ch);



$result = json_decode($result);

print_r($result);



?>
```

Remplacez les valeurs des champ "name", "telephone", "message" et token dans le tableau ***$fields*** par les informations spécifiques à votre cas d'utilisation.

&#x20;Le résultat de la requête est stocké dans la variable ***$response***. Vous pouvez ensuite décoder les données JSON en utilisant ***json\_decode()*** pour obtenir les informations issues de la réponse API.

Pour faciliter le débogage et la compréhension des données renvoyées par l'API, nous utilisons ***var\_dump($response)*** pour afficher les résultats dans un format lisible.

#### Réponse de l'API :  Avec le code <mark style="color:green;">200</mark> (<mark style="color:green;">success</mark>)

```
 {"success":
   {
     "delivered_status":"SUCCESSFUL",
     "sent_from":"AUTH",
     "sent_to":"004478562xxxx",
     "msg_body":"Hello world",
     "credits_used":0.48,
     "remaining_credits":431.68,
     "sender_ip":"36.121.214.155",
     "sender_user_agent":"Mozilla\/6.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/607.306 (KHTML, like Gecko) Chrome\/205.2.0.0 Safari\/607.30",
     "timestamp":"2023-08-19 15:35:30",
     "sender_url":"example.com/sms/form",
     "sender_used_browser":"Google Chrome",
     "sender_country":"FR",
     "sender_region":"Île-de-France",
     "sender_city":"Paris",
     "sender_location":"48.8567,2.3497",
     "sender_internet_provider":"AS9009 M247 Europe SRL"
     
    }
 }
```

**INTERPRETATION DES RESULTATS**

```
delivered_status // status du message envoyé
Cela indique que le destinataire a reçu le message
```

```
sent_from // le nom ID sender emis par l'émetteur
```

```
sent_to  // le destinataire du message
```

```
msg_body // le corps du message
```

```
credits_used //  le crédit utilisé
```

```
"remaining_credits // le crédit restant 
```

```
sender_ip // adresse IP de l'émetteur du message
```

```
sender_user_agent // le user agent de l'émetteur du message
```

```
timestamp // l'heure à laquelle le message a été envoyé, heure Royaume-Uni
```

```
sender_url // la plateforme sur laquelle la requête a été lancée.
Le système le recupère de façon automatique.
```

```
sender_used_browser // le navigateur d'accès utilisé par l'émetteur
```

```
sender_country // Le pays dans lequel l'émetteur a envoyé son message
```

```
sender_region // La région dans laquelle le message a été envoyé
```

```
"sender_city // La ville de l'émetteur
```

```
sender_location // coordonnées GPS de de l'émetteur 
```

```
sender_internet_provider //   Le fournisseur d'accès internet de l'émetteur.
```

***AUTRES REPONSES  RETOURNEES***&#x20;

```php
NAME_IS_REQUIRED
```

Le  nom émetteur ou ID Sender requis. erreur code : *<mark style="color:red;">**422**</mark>*

```php
ONLY_TEN_LETTERS_IS_REQUIRED_FOR_NAME
```

Le nom utilisé et validé ne doit contenir que 10 lettres. Code Erreur: *<mark style="color:red;">**422**</mark>*

```php
THE_RECIPENT_PHONE_NUMBER_IS_REQUIRED
```

Le numéro de téléphone destinataire est requis. Code erreur *<mark style="color:red;">**422**</mark>*

```php
THE_MESSAGE_BODY_IS_REQUIRED
```

Le corps du message est vide. Code erreur *<mark style="color:red;">**422**</mark>*

```php
TOKEN_REQUIRED
```

Ce message vous signale que vous essayez de soumettre le formulaire avec le champ <mark style="color:red;">token</mark> <mark style="color:orange;">vide</mark>

Cette erreur est retournée avec le  status *<mark style="color:red;">**422**</mark>*

```php
INVALID_ACCOUNT ou ACCOUNT_SUSPENDED
```

Cette erreur es associé au statut code *<mark style="color:red;">**403**</mark>*

Votre compte n'est pas encore validé(compte invalide) ou votre compte a été suspendu(compte suspendu)

```php
ACCOUNT_NOT_CREDITED
```

Vous obtenez cet erreur lorsque votre balance est de 0.

Statut code erreur : *<mark style="color:red;">**403**</mark>*

```php
INSUFFICIENT_CREDIT
```

Votre crédit est insuffisant .  Code erreur :  *<mark style="color:red;">**403**</mark>*

&#x20;

```php
TOKEN_INVALID
```

Votre token est incorrect. Code erreur: *<mark style="color:red;">**401**</mark>*

```php
METHOD_NOT_ALLOWED
```

Accès non autorisé. Code erreur : *<mark style="color:red;">**405**</mark>*

```php
RECIPIENT_PHONE_IS_UNABLE_TO_RECEIVE_SMS_ID_SENDER
```

Envoi effectué  mais la ligne de votre destinataire n'est pas active.

```php
SMS_NOT_SENT
```

SMS non envoyé. Code erreur : *<mark style="color:red;">**422**</mark>*

```php
ERROR_CARRIER
```

Erreur réseau. Code erreur: *<mark style="color:red;">**500**</mark>*

```php
MEDIA_LINK_OR_LINK_NOT_AUTHORIZED_PLEASE_TRY_MMS_API
```

cette erreur indique que l'API SMS n'autorise pas des liens médias.

Dans ce cas veuillez utiliser l' API MMS


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://macsmspro.gitbook.io/apis-macsmspro/integration-php/api-sms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
