# Supprimer un envoi différé

## URL

<mark style="color:red;">`DELETE`</mark> `https://api.voicepartner.fr/v1/campaign/cancel`

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

<table data-full-width="false"><thead><tr><th width="232">Nom</th><th>Valeur</th></tr></thead><tbody><tr><td><code>apiKey</code></td><td><a href="https://my.voicepartner.fr/app/api">Votre clé API</a></td></tr><tr><td><code>campaignId</code></td><td>id de message</td></tr></tbody></table>

#### Requêtes

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

```php
<?php

// Activer l'affichage des erreurs pour le débogage
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// L'URL de l'API pour annuler la campagne
$apiKey = 'YOUR_API_KEY'; // Remplacez par votre clé API réelle
$campaignId = 'CAMPAIGN_ID'; // Remplacez par l'ID de campagne réel

// Construction de l'URL avec la clé API et l'ID de campagne
$url = "https://api.voicepartner.fr/v1/campaign/cancel/$apiKey/$campaignId";

// Initialisation de cURL
$curl = curl_init($url);

// Configuration des options de cURL pour une requête DELETE
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Cache-Control: no-cache'
));

// Exécution de la requête cURL et enregistrement de la réponse
$response = curl_exec($curl);

// Vérification s'il y a eu des erreurs pendant l'exécution de la requête
if (curl_errno($curl)) {
    echo 'Erreur cURL : ' . curl_error($curl);
} else {
    // Affichage de la réponse
    echo 'Réponse : ' . $response;
}

// Fermeture de la session cURL
curl_close($curl);
```

{% endtab %}

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

```vbnet
Imports System.Net.Http

Public Class SupprimeEnvoiDiffere
    Public Async Function CancelCampaignAsync() As Task
        Using client As New HttpClient()
            Dim apiKey As String = "YOUR_API_KEY"
            Dim campaignId As String = "CAMPAIGN_ID"
            Dim url As String = $"https://api.voicepartner.fr/v1/campaign/cancel/{apiKey}/{campaignId}"

            Try
                Dim response = Await client.DeleteAsync(url)
                Dim responseContent = Await response.Content.ReadAsStringAsync()

                If response.IsSuccessStatusCode Then
                    Console.WriteLine(responseContent)
                Else
                    Console.WriteLine($"Erreur: {response.StatusCode}")
                    Console.WriteLine($"Contenu : {responseContent}")
                End If
            Catch ex As Exception
                Console.WriteLine($"Exception: {ex.Message}")
            End Try
        End Using
    End Function
End Class
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# Activer l'affichage des erreurs pour le débogage
# En Python, les erreurs sont affichées par défaut lorsqu'elles se produisent.

# L'URL de l'API pour annuler la campagne
apiKey = 'YOUR_API_KEY'  # Remplacez par votre clé API réelle
campaignId = 'CAMPAIGN_ID'  # Remplacez par l'ID de campagne réel

# Construction de l'URL avec la clé API et l'ID de campagne
url = f"https://api.voicepartner.fr/v1/campaign/cancel/{apiKey}/{campaignId}"

# Configuration des en-têtes HTTP
headers = {
    'Cache-Control': 'no-cache'
}

# Exécution de la requête DELETE
response = requests.delete(url, headers=headers)

# Vérification s'il y a eu des erreurs pendant l'exécution de la requête
if response.status_code != 200:
    print(f'Erreur cURL : {response.status_code}')
else:
    # Affichage de la réponse
    print(f'Réponse : {response.text}')
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X DELETE 'https://api.voicepartner.fr/v1/campaign/cancel/YOUR_API_KEY/CAMPAIGN_ID'
```

{% endtab %}

{% tab title="Nodejs" %}

```javascript
const axios = require('axios');

// L'URL de l'API pour annuler la campagne
const apiKey = 'YOUR_API_KEY';
const campaignId = 'CAMPAIGN_ID';
const url = `https://api.voicepartner.fr/v1/campaign/cancel/${apiKey}/${campaignId}`;

axios.delete(url)
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('Erreur lors de la requête:', error);
    });
```

{% endtab %}

{% tab title="JAVA" %}

```java
package com.example.API;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class SupprimeEnvoiDiffere {
    public static void main(String[] args) {
        // L'URL de l'API pour annuler la campagne
        String apiKey = "YOUR_API_KEY";
        String campaignId = "CAMPAIGN_ID";
        String url = "https://api.voicepartner.fr/v1/campaign/cancel/" + apiKey + "/" + campaignId;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .DELETE() // This sets the request method to DELETE.
                .build();

        client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
                .thenApply(HttpResponse::body)
                .thenAccept(System.out::println)
                .exceptionally(e -> {
                    System.out.println("Erreur lors de la requête: " + e.getMessage());
                    return null;
                })
                .join(); // Wait for the async operation to complete
    }
}
```

{% endtab %}

{% tab title="GO" %}

```go
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	apiKey := "YOUR_API_KEY"
	campaignId := "CAMPAIGN_ID"
	url := fmt.Sprintf("https://api.voicepartner.fr/v1/campaign/cancel/%s/%s", apiKey, campaignId)

	req, err := http.NewRequest("DELETE", url, nil)
	if err != nil {
		fmt.Printf("Error: %s\n", err.Error())
		return
	}

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Printf("Error: %s\n", err.Error())
		return
	}
	defer resp.Body.Close()

	respBody, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Error: %s\n", err.Error())
		return
	}

	fmt.Printf("Response: %s\n", string(respBody))
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace API.ApiClients
{
    public class SupprimeEnvoiDiffere
    {
        public static async Task Main()
        {
            var apiKey = "YOUR_API_KEY";
            var campaignId = "CAMPAIGN_ID";
            var url = $"https://api.voicepartner.fr/v1/campaign/cancel/{apiKey}/{campaignId}";

            using (var client = new HttpClient())
            {
                try
                {
                    var response = await client.DeleteAsync(url);
                    var content = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Response: " + content);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                }
            }
        }
    }
}
```

{% endtab %}
{% endtabs %}

#### **Réponse**

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

```json
{
    "success": true,
    "campaignId": "D572M",
    "assignedCredit": "1.8",
    "currency": "EUR"
}
```

{% endtab %}
{% endtabs %}

#### Code erreurs

| Code de réponse | Réponse                 |
| --------------- | ----------------------- |
| 400             | Mauvaise requête        |
| 401             | Action non autorisé     |
| 404             | Ressource non autorisé  |
| 200             | Tout s’est bien passé ! |


---

# 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://www.docpartner.dev/api/voice-partner/supprimer-un-envoi-differe.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.
