# Création d'un sous compte

## URL

<mark style="color:green;">`POST`</mark> `https://api.mailpartner.fr/v1/subaccount/create`

#### **Paramètres obligatoires**

<table data-full-width="false"><thead><tr><th width="180">Nom</th><th>Valeur</th></tr></thead><tbody><tr><td><code>apiKey</code></td><td><a href="https://my.mailpartner.fr/dashboard/api">Votre clé API</a></td></tr><tr><td><code>type</code></td><td><p>Type de sous-compte : ce choix est définitif, il ne sera plus possible de le modifier</p><ul><li>simple:<br>– Le sous compte ne recevra aucun email ni SMS.<br>– Aucun numéros de téléphone demandé.<br>– L’achat n’est pas permis.</li><li>advanced :<br>– Un email valide est demandé.<br>– Le processus d’inscription est identique à celui d’un compte standard.<br>– Un numéro de téléphone mobile sera demandé à l’inscription.</li></ul></td></tr><tr><td><code>parameters</code></td><td><div data-gb-custom-block data-tag="tabs"><div data-gb-custom-block data-tag="tab" data-title="Sous-compte simple"><ul><li><code>email</code> (optionnel) : Si ce champ est vide, un email sera généré automatiquement (ex: 98755587@smspartner.fr)</li><li><code>creditToAttribute</code> (optionnel) : Crédits en euro ajouté au sous-compte lors de la création. Ce crédit sera déduit du solde de votre compte principal.</li><li><code>title</code> (optionnel) : Nom du sous-compte</li><li><code>firstname</code> (optionnel) : Prénom du titulaire du sous-compte</li><li><code>lastname</code> (optionnel) : Nom du titulaire du sous-compte</li></ul></div><div data-gb-custom-block data-tag="tab" data-title="Sous-compte advanced"><ul><li><code>email</code> : Email valide du titulaire du compte</li><li><code>isBuyer</code> : <code>1</code> ou <code>0</code>, si isBuyer=1 alors le sous-compte pour acheter ses propres SMS</li><li><code>creditToAttribute</code> (optionnel) : Crédits en euro ajouté au sous-compte lors de la création. Ce crédit sera déduit du solde de votre compte principal.</li><li><code>title</code> (optionnel) : Nom du sous-compte</li><li><code>firstname</code> (optionnel) : Prénom du titulaire du sous-compte</li><li><code>lastname</code> (optionnel) : Nom du titulaire du sous-compte</li></ul></div></div></td></tr></tbody></table>

#### Requêtes

{% tabs %}
{% tab title="PHP" %}

```php
<?php
        // Prepare data for POST request
        $fields = array(
            'apiKey'=> 'YOUR API KEY',
            'type'=> 'advanced',
            'parameters'=>array(
                'email':'aaaa@bbb.ccc',
    	        'creditToAttribute':10,
    	        'isBuyer':0,
    	        'firstname':'prenom',
    	        'lastname':'nom'
            ));
 
 
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,'https://api.mailpartner.fr/v1/subaccount/create');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($fields));
 
        $result = curl_exec($curl);
        curl_close($curl);
 
        // Process your response here
        echo $result;
?>
```

{% endtab %}

{% tab title="VB.net" %}

```vbnet
Imports System.IO
Imports System.Net
 
Module Module1
 
  Sub Main()
 
    Dim base_url As String = "http://api.mailpartner.fr/v1/"
    Dim apiKey As String = "VOTRE_APIKEY"
 
    #send sms
    url = base_url & "subaccount/create"
    #note : utiliser une librairie JSON en production, par exemple :
    #https//www.nuget.org/packages/Newtonsoft.Json/
    Dim parameters As String = String.Format(
        "{{""apiKey"":""{0}"",""type"":""{1}"",""parameters"":""{2}""}}",
        apiKey,
        "advanced",
        {"email":"aaaa@bbb.ccc","creditToAttribute":10,"isBuyer":0,"firstname":"prenom","lastname":"nom"})
    Console.Write(parameters)
    apiRequest("POST", url, parameters)
 
  End Sub
 
  Function apiRequest(method As String, url As String, parameters As String) As String
 
    Dim request As HttpWebRequest
    request = WebRequest.Create(url)
    request.Method = method
    request.Timeout = 10000   # timeout in ms
    request.ContentType = "application/json; charset=utf-8"
    request.ContentLength = 0
 
    #set POST data
    If Not String.IsNullOrEmpty(parameters) Then
      request.ContentLength = parameters.Length
      Using reqStream As StreamWriter = New StreamWriter(request.GetRequestStream())
        reqStream.Write(parameters)
      End Using
    End If
 
    #get response
    Dim returnValue As String = Nothing
    Using response As HttpWebResponse = request.GetResponse()
      If response.StatusCode = HttpStatusCode.OK Then
        Using resStream = response.GetResponseStream()
          If resStream IsNot Nothing Then
            Using reader As New StreamReader(resStream)
              returnValue = reader.ReadToEnd()
            End Using
          End If
        End Using
      End If
    End Using
    apiRequest = returnValue
 
  End Function
 
End Module
```

{% endtab %}

{% tab title="Python" %}

```python
# std
import logging
import json
from collections import OrderedDict
 
# 3p
import requests
 
API_KEY = "MY API KEY"
URL = "https://api.mailpartner.fr/v1"
 
class MailPartner():
    def create(self,creditToAdd,userId):
 
		data = {"apiKey":APIKEY,"type":"advanced","parameters": {"email":"aaaa@bbb.ccc","creditToAttribute":10,"isBuyer":0,"firstname":"prenom","lastname":"nom"}}
 
 
		url = URL + "/subaccount/create"
		r = requests.post(url, data=json.dumps(data), verify=False)
 
		r_json = r.json()
		if r_json.get("success") == True:
			print(r_json)
			status = True
		else:
			print(r_json)
			status = False
		return status
```

{% endtab %}

{% tab title="cURL" %}

```
curl -H  "Content-Type: application/json" -X POST -d '{"apiKey":"xxxxx","type":"advanced","parameters":{"email":"aaaa@bbb.ccc","creditToAttribute":10,"isBuyer":0,"firstname":"prenom","lastname":"nom"}}' https://api.mailpartner.fr/v1/subaccount/create
```

{% endtab %}
{% endtabs %}

#### **Réponse**

{% tabs %}
{% tab title="json" %}

```json
{
 "success":true,
 "code":200,
 "subaccount":
 {
    "email":"aaaa@bbb.ccc",
    "token":"token"
 },
 "sendConfirmMailTo":"aaaa@bbb.ccc",
 "parent_email":"emailparent@ddd.eee"
}
```

{% endtab %}

{% tab title="xml" %}

```xml
<?xml version="1.0" encoding="UTF-8"?>
<result>
  <entry>true</entry>
  <entry>200</entry>
  <entry>
    <entry><![CDATA[aaaa@bbb.ccc]]></entry>
    <entry><![CDATA[token]]></entry>
  </entry>
  <entry><![CDATA[aaaa@bbb.ccc]]></entry>
  <entry><![CDATA[emailparent@ddd.eee]]></entry>
</result>
```

{% endtab %}
{% endtabs %}

#### Erreurs

{% tabs %}
{% tab title="json" %}

```json
{
    "success": false,
    "code": 10,
    "message": "Clé API incorrecte"
}
```

{% endtab %}

{% tab title="xml" %}

```xml
<?xml version="1.0" encoding="UTF-8"?>
<result>
    <entry>false</entry>
    <entry>10</entry>
    <entry>
        <![CDATA[Clé API incorrecte]]>
    </entry>
</result>
```

{% endtab %}
{% endtabs %}

#### **Code erreurs**

<table><thead><tr><th width="234">Code de réponse</th><th>Réponse</th></tr></thead><tbody><tr><td>1</td><td>La Clé API est requise</td></tr><tr><td>2</td><td>Le numéro de téléphone est requis</td></tr><tr><td>3</td><td>isBuyer est requis</td></tr><tr><td>4</td><td>Le type est requis (simple ou advanced)</td></tr><tr><td>5</td><td>Le type de sous-compte n'existe pas (simple ou advanced)</td></tr><tr><td>6</td><td>L'email est requis</td></tr><tr><td>7</td><td>Un compte existe déjà avec cet email</td></tr><tr><td>8</td><td>creditToAttribute doit être supérieure à 0</td></tr><tr><td>9</td><td>La balance doit être supérieure à 0</td></tr><tr><td>200</td><td>Tout s'est bien passé !</td></tr></tbody></table>
