# Programmer un transfert

POST /api/transfers

  Obsolète depuis la version 0.5.0: Les propriétés `sourcePath` et `destPath` de la requête ont été remplacées par les propriétés `localFilepath` et `remoteFilepath`.

  Obsolète depuis la version 0.5.0: La propriété `startDate` de la requête a été remplacée par la propriété `start`.

  Programme un nouveau transfert avec les informations renseignées en format JSON dans le corps de la requête.

  Request Headers:

    - Authorization – Les identifiants de l’utilisateur

  Request JSON Object:

    - rule (string) – L’identifiant de la règle utilisée

    - isSend (bool) – Indique le transfert est un envoi (`true`) ou une réception (`false`).

    - client (string) – Le nom du client avec lequel effectuer le transfert. Peut être omit si la gateway ne possède qu’un seul client du protocole concerné, auquel cas, le client en question sera sélectionné automatiquement.

    - account (string) – Le nom du compte avec lequel le transfert sera demandé

    - partner (string) – Le nom du partenaire auquel le transfert sera demandé

    - sourcePath (string) – Déprécié. Le chemin du fichier source

    - destPath (string) – Déprécié. Le chemin de destination du fichier

    - file (string) – Le chemin du fichier à transférer

    - output (string) – Le chemin de destination du fichier

    - start (date) – La date de début du transfert (en format ISO 8601)

    - transferInfo (object) – Des informations de transfert personnalisées sous la forme d’une liste de pairs clé:valeur, c’est-à-dire sous forme d’un objet JSON.

    - numberOfTries (number) – Le nombre de fois que le transfert sera automatiquement retenté en cas d’échec.

    - firstRetryDelay (number) – Le délai (en secondes) entre la tentative de transfert initiale et la première reprise automatique.

    - retryIncrementFactor (number) – Le facteur par lequel le délai décris ci-dessus sera multiplié entre chaque nouvelle tentative. Par exemple, si le délai initial est de 30s et que le facteur est de 2, alors le délai entre chaque tentative sera respectivement de 30s, puis 60s, 120s, 240s, etc jusqu’à ce que le transfert réussisse ou bien que le nombre de tentatives soit épuisé.

  Status Codes:

    - 201 Created – Le transfert a été lancé avec succès

    - 400 Bad Request – Un ou plusieurs des paramètres du transfert sont invalides

    - 401 Unauthorized – Authentification d’utilisateur invalide

  Response Headers:

    - Location – Le chemin d’accès au nouveau transfert créé

  Exemple de requête

      POST https://my_waarp_gateway.net/api/transfers HTTP/1.1
      Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
      Content-Type: application/json
      Content-Length: 212

      {
        "rule": "règle_1",
        "isSend": true,
        "account": "toto",
        "partner": "waarp_sftp",
        "file": "chemin/du/fichier",
        "output": "destination/du/fichier",
        "start": "2019-01-01T02:00:00+02:00",
        "transferInfo": { "key1": "val1", "key2": 2, "key3": true }
      }

  Exemple de réponse

      HTTP/1.1 201 CREATED
      Location: https://my_waarp_gateway.net/api/transfers/123