# API Recharge Data Bundles

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

````
```php
<?php

$base_url = "https://mactopup.com/api/data_topup";

$fields = array(

   "operatorId" => "496",   // L'identifiant de l'opérateur
    "amount" => "5137,79",     // à remplacer par le montant de recharge
    "phone" => "+66xxxxxxxx", // à remplacer par le numero de téléphone
    "isocode" => "TH", // à remplacer par l'iso code de votre pays
    "token" => "MACTOPUP_xxxxxxxxxxxxxxxxx", // à remplacer par votre token
    
);

$curl_options = array(
    CURLOPT_URL => $base_url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query( $fields ),
    CURLOPT_HTTP_VERSION => 1.0,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false
);

$curl = curl_init();
curl_setopt_array( $curl, $curl_options );
$result = curl_exec( $curl );

curl_close( $curl );
$response = json_decode($result);

echo "<pre>";
var_dump($response);
echo "</pre>";

?>
```
````

`$base_url` : Cette variable contient l'URL de l'API à laquelle les requêtes POST seront envoyées pour effectuer la recharge forfait internet.

`$fields` : Il s'agit d'un tableau associatif qui contient les paramètres nécessaires pour effectuer la recharge. Vous devez remplacer les valeurs de ces paramètres par les valeurs spécifiques issus de la réponse de l'API détecteur d'opérateur éligible forfait internet à l'international.

La réponse de l'API lorsque la requête est bien exécutée:

Status code :  *<mark style="color:green;">**SUCCESSFUL**</mark>**&#x20; ****&#x20;****(**<mark style="color:green;">**200**</mark>**)***

```
{"success":

{

"status_transaction":"SUCCESSFUL",

"MACTOPUP_TransactionId":895621425874457,

"Recipient_OperatorTransactionId":"92979291547800:OrderConfirmed",

"Operator_Name":"DTAC Thailand",

"Recipient_PhoneNumber":+66xxxxxxxx,

"Country_Code":"TH",

"plan_data_bundles": "15 GB Max Speed",

"date_expiration": "8 days",

"Amount":5137.79,

"currency":"XOF",

"Date_Of_Transaction":"2023-11-20 04:13:39"

}

}
```

+***QUELQUES ERREURS***

```php
TOKEN_IS_REQUIRED
```

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

Votre champ token est vide&#x20;

```php
INVALID_ACCOUNT ou SUSPENDED_ACCOUNT
```

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

Votre compte est inactif ou invalide, absence d'activité pendant une longue période.

```php
PHONE_NUMBER_REQUIRED
```

Status code: *<mark style="color:red;">**400**</mark>*

Le champ numéro de téléphone est vide

```php
COUNTRY_CODE_REQUIRED
```

Status code: *<mark style="color:red;">**400**</mark>*

Le champ iso code est requis

```php
OPERATOR_ID_REQUIRED
```

Status code: *<mark style="color:red;">**400**</mark>*

Le champ  identifiant operateur  est requis&#x20;

```php
AMOUNT_REQUIRED
```

Status code: *<mark style="color:red;">**400**</mark>*

Le montant de recharge est requis&#x20;

```php
INSUFFICIENT_FUNDS
```

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

Votre solde est insuffisant pour effectuer cette opération

```php
TOKEN_INVALID
```

Votre token est incorrect.

```php
INVALID_RECIPIENT_PHONE
```

Status code: *<mark style="color:red;">**422**</mark>*

Le numéro de téléphone de votre destinataire est invalide.

```php
INVALID_INPUT_PROVIDED
```

Status code: *<mark style="color:red;">**422**</mark>*

Les valeurs des champs fournies sont mal formatées.

```php
INVALID_PHONE_NUMBER
```

Status code: *<mark style="color:red;">**422**</mark>*

Le numéro de téléphone fourni est incorrect.

```php
PHONE_RECENTLY_RECHARGED
```

Status code: *<mark style="color:red;">**422**</mark>*

Ce numéro de l'operateur refuse les recharges prépayées

```php
TOPUP_TRANSACTION_FAILED
```

Status code: *<mark style="color:red;">**422**</mark>*

La transaction de recharge crédit mobile a échoué.

```php
TRANSACTION_CANNOT_BE_PROCESSED_AT_THE_MOMENT
```

Votre transaction ne peut pas aboutir actuellement pour des raisons propres à l'opérateur.

```php
INVALID_AMOUNT_FOR_OPERATOR
```

Status code: *<mark style="color:red;">**422**</mark>*

Cette erreur s'affiche souvent lorsque l'opérateur dispose des montants de recharges fixes et que vous entrez autre valeur de recharges  que celles définies par l'opérateur.&#x20;

Cela peut également être la cause d'une tentative de recharge inférieure à celle définie par cet opérateur.

```php
INVALID_AMOUNT
```

Status code: *<mark style="color:red;">**422**</mark>*

Le montant entré est invalide.

```php
COUNTRY_NOT_SUPPORTED
```

Status code: *<mark style="color:red;">**422**</mark>*

Nous ne prenons pas en charge l'opérateur de ce pays.

```php
INACTIVE
```

Status code: *<mark style="color:red;">**422**</mark>*

Cet opérateur n'est pas actuellement actif

```php
OPERATOR_NOT_IN_SERVICE
```

Status code: *<mark style="color:red;">**422**</mark>*

Cet opérateur réseau n'est plus en service.

```php
OPERATOR_UNAVAILABLE_OR_CURRENTLY
```

Status code: *<mark style="color:red;">**422**</mark>*

Cet opérateur est momentanément indisponible.

```php
INSUFFICIENT_BALANCE
```

Status code: *<mark style="color:red;">**422**</mark>*

Votre solde est insuffisant.

```php
ERROR_MAINTENANCE
```

Status code: *<mark style="color:red;">**422**</mark>*

Une erreur interne au serveur ou une maintenance

```php
INTERNAL_ERROR_UNABLE_TO_MAKE_TOPUP
```

Status code: *<mark style="color:red;">**500**</mark>*

Une erreur interne du serveur, Opération de recharge a échouée

```php
METHOD_NOT_ALLOWED
```

Cette erreur survient lorsque vous essayez d'accéder à l'API directement via  le lien: *<mark style="color:red;">**<https://mactopup.com/api/data\\_topup>**</mark>*  sans soumettre une requête ***POST***
