• France
état des services
démonstrations
assistance
FAQContacter le support
Video tutorials
Rechercher
Catégories
Tags
France
France
Espagne
Europe (Anglais)
Inde
Accueil
Cas d'usage
Créer un paiement
Créer un paiement en plusieurs fois
Proposer un paiement complémentaire
Créer un paiement par alias (token)
Créer un lien de paiement
Créer un abonnement
Gérer vos abonnements
Gérer vos transactions (rembourser,...)
Analyser vos journaux
Docs API
Formulaire embarqué
API REST
Formulaire en redirection
SDK Mobile
Échange de fichiers
Mandats SEPA par API REST
Exemples de code
Moyens de paiement
Modules de paiement
Marketplace
Guides
Back Office Marchand
Back Office Expert
Guides fonctionnels

Créer un ordre de paiement SVI

Cas d'utilisation

Le marchand crée un ordre de paiement SVI. L'acheteur paie en transmettant une référence au SVI (champ ivrPaymentOrderId).

Requête

Paiement SVI

Exemple de requête

Champs obligatoires :

  • Montant : 100,00 €.
  • Canal de diffusion : IVR.
  • Référence de la commande : "myOrderId-1234".
/preview/fr/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.lyra.com/api-payment/V4/Charge/CreatePaymentOrder
{
    "amount": 10000,
    "currency": "EUR",
    "orderId": "myOrderId-1234",
    "channelOptions": {
      "channelType": "IVR"
    }
}
{
    "amount": 200050,
    "currency": "EUR",
    "orderId": "myOrderId-999999",
    "channelOptions": {
      "channelType": "IVR"
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00"
}
{
    "amount": 200050,
    "currency": "ARS",
    "orderId": "myOrderId-999999",
    "channelOptions": {
      "channelType": "IVR"
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00"
}
{
    "amount": 200050,
    "currency": "COP",
    "orderId": "myOrderId-999999",
    "channelOptions": {
      "channelType": "IVR"
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00"
}
{
    "amount": 200050,
    "currency": "EUR",
    "orderId": "myOrderId-999999",
    "channelOptions": {
      "channelType": "IVR"
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00"
}
/**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array("amount" => 250, 
"currency" => "EUR", 
"orderId" => uniqid("MyOrderId"),
"customer" => array(
  "email" => "sample@example.com"
));
$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] );
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>
/**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array("amount" => 250, 
"currency" => "EUR", 
"orderId" => uniqid("MyOrderId"),
"customer" => array(
  "email" => "sample@example.com"
));
$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] );
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>

La description et l'intégralité des champs sont disponibles (menu à gauche) : Charge/CreatePaymentOrder.

Réponse

Exemple de réponse
  {
      "webService": "Charge/CreatePaymentOrder",    
      "version": "V4",
      "applicationVersion": "5.5.0",
      "status": "SUCCESS",
      "answer": {
          "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f",
          "paymentURL": null,
          "paymentOrderStatus": "RUNNING",
          "creationDate": "2020-03-31T15:06:49+00:00",
          "updateDate": null,
          "amount": 10000,
          "currency": "EUR",
          "locale": "en_GB",
          "strongAuthentication": "AUTO",
          "orderId": "myOrderId-1234",
          "channelDetails": {
              "channelType": "IVR",
              "mailDetails": null,
              "smsDetails":  null,
              "whatsAppDetails": null,
              "ivrDetails": {
                    "ivrPaymentOrderId": "0123",
                    "_type": "V4/IVRDetails"
                }
              "_type": "V4/ChannelDetails"
          },
          "paymentReceiptEmail": "sample@example.com",
          "taxRate": null,
          "taxAmount": null,
          "expirationDate": "2020-04-20T18:13:26+00:00",
          "transactionDetails": {
              "cardDetails": {
                  "manualValidation": "NO",
                  "captureDelay": 0,
                  "_type": "V4/CardDetails"
              },
              "_type": "V4/PaymentOrderTransactionDetails"
          },
          "dataCollectionForm": false,
          "merchantComment": null,
          "message": null,
          "_type": "V4/PaymentOrder"
      },
      "ticket": null,
      "serverDate": "2020-03-31T15:06:49+00:00",
      "applicationProvider": "LYRA",
      "metadata": null,
      "_type": "V4/WebService/Response"
  }
  
  
  }

L'ordre de paiement est créé et payable via le SVI.

L'acheteur doit transmettre cette référence au SVI, champ ivrPaymentOrderId ( dans cet exemple : 0123) pour payer.

Retrouvez la description et l'intégralité des autres champs dans notre playground : PaymentOrder


Gestion des erreurs

Tableau des erreurs
| Code | Description | |--------|----------------------| | **INT_009** | Le format du champ **amount** est invalide ou le champ n'est pas transmis.| | **INT_010** | Le format du champ **currency** est invalide ou le champ n'est pas transmis.| | **INT_858** | Le paramètre **taxRate** est invalide.| | **INT_869** | Le paramètre **taxAmount** est invalide.| | **PSP_519** | Devise inconnue.| | **PSP_606** | Devise non supportée par le contrat.| | **PSP_1007** | La date d'expiration de l'ordre de paiement ne peut etre antérieure à la date courante ni excédée 90 jours.| {: .lita-excluded-col1 }

Analyse du résultat du paiement

Pour connaître le résultat du paiement, implémentez l’URL de notification à la fin du paiement (également appelée IPN).

L'utilisation du champ ipnTargetUrl est déconseillée.

  1. Renseignez uniquement l'URL de notification dans la section API REST (TEST ou PRODUCTION) : Procédure.
  2. Analysez l'IPN : Procédure.
Nous recrutons
Mentions légales
Charte de Protection des Données Personnelles
25.18-1.11