> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Envoyer une Recharge Internet

> Achetez et envoyez une carte de recharge internet ADSL ou 4G LTE

## Vue d'ensemble

Achetez des cartes de recharge internet pour les services ADSL ou 4G LTE avec livraison numérique instantanée.

<Note>
  Veuillez toujours [valider les numéros de téléphone](/fr/api-reference/internet/validate-number) avant la soumission pour réduire les erreurs.
</Note>

## Corps de la requête

<ParamField body="type" type="string" required>
  Type de service : `ADSL` ou `4G`
</ParamField>

<ParamField body="number" type="string" required>
  Numéro de téléphone - **ADSL :** `0[0-9]{8}` (ex. `036362608`) - **4G :** `213[0-9]{9}` (ex. `213472731602`)
</ParamField>

<ParamField body="value" type="number" required>
  Valeur nominale de la carte depuis `/internet/products` (ex. 500, 1000, 2000)
</ParamField>

<ParamField body="ref" type="string">
  Votre référence de commande unique (optionnel, générée automatiquement si non fournie)
</ParamField>

## Exemples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.oneclickdz.com/v3/internet/send \
    -X POST \
    -H "Content-Type: application/json" \
    -H "X-Access-Token: YOUR_API_KEY" \
    -d '{
      "type": "ADSL",
      "number": "036362608",
      "value": 1000,
      "ref": "internet-order-001"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.oneclickdz.com/v3/internet/send", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-Access-Token": "YOUR_API_KEY",
    },
    body: JSON.stringify({
      type: "ADSL",
      number: "036362608",
      value: 1000,
      ref: "internet-order-001",
    }),
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  response = requests.post(
      'https://api.oneclickdz.com/v3/internet/send',
      headers={
          'Content-Type': 'application/json',
          'X-Access-Token': 'YOUR_API_KEY'
      },
      json={
          'type': 'ADSL',
          'number': '036362608',
          'value': 1000,
          'ref': 'internet-order-001'
      }
  )
  ```

  ```php PHP theme={null}
  <?php
  $data = [
      'type' => 'ADSL',
      'number' => '036362608',
      'value' => 1000,
      'ref' => 'internet-order-001'
  ];

  $ch = curl_init('https://api.oneclickdz.com/v3/internet/send');
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      'Content-Type: application/json',
      'X-Access-Token: YOUR_API_KEY'
  ]);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
  $response = json_decode(curl_exec($ch), true);
  ?>
  ```
</CodeGroup>

### Réponse de succès

```json theme={null}
{
  "success": true,
  "data": {
    "topupId": "690161a3e9e88196b4eb6545",
    "topupRef": "API-+213665983439-test-internet-1761698210633"
  },
  "meta": {
    "timestamp": "2025-10-29T00:36:52.065Z"
  }
}
```

## Cycle de vie du statut

<Steps>
  <Step title="HANDLING">Traitement en cours avec l'opérateur (3 à 45 secondes en général)</Step>

  <Step title="États finaux">
    * **FULFILLED :** Carte livrée ✅ - **REFUNDED :** Échec et remboursement ❌ - **QUEUED :** Programmé pour plus tard (12 à 48h) ⏰
  </Step>
</Steps>

[Suivre le statut →](/fr/api-reference/internet/check-by-ref)

## Réponses d'erreur

<AccordionGroup>
  <Accordion title="ERR_VALIDATION">Paramètres de requête invalides</Accordion>

  <Accordion title="ERR_PHONE">
    Format de numéro de téléphone invalide ou incompatibilité de type
  </Accordion>

  <Accordion title="ERR_STOCK">Valeur de carte hors stock</Accordion>
  <Accordion title="INSUFFICIENT_BALANCE">Solde insuffisant</Accordion>
  <Accordion title="DUPLICATED_REF">Référence déjà utilisée</Accordion>
</AccordionGroup>

## Bonnes pratiques

<CardGroup cols={2}>
  <Card title="Valider en premier" icon="check">
    Utilisez `/check-number` avant de soumettre
  </Card>

  <Card title="Vérifier le stock" icon="box">
    Vérifiez la disponibilité du produit
  </Card>

  <Card title="Références uniques" icon="fingerprint">
    Fournissez un `ref` unique pour le suivi
  </Card>

  <Card title="Interroger le statut" icon="arrows-rotate">
    Vérifiez le statut après la soumission
  </Card>
</CardGroup>

## Liens utiles

<CardGroup cols={3}>
  <Card title="Valider le numéro" href="/fr/api-reference/internet/validate-number">
    Vérifier la validité du numéro
  </Card>

  <Card title="Vérifier le statut" href="/fr/api-reference/internet/check-by-ref">
    Suivre la commande
  </Card>

  <Card title="Lister les produits" href="/fr/api-reference/internet/list-products">
    Cartes disponibles
  </Card>
</CardGroup>
