• France
status page
Merchant Back Office
assistance
FAQContact support
Search
Categories
Tags
English
French
English
Homepage
Use cases
Create a payment
Create an installment payment
Create a multi-card (split) payment
Create a payment by Alias (Token)
Create a payment link
Create a recurring payment
Manage subscriptions
Manage your transactions (refund, cancel...)
Analyze your reports
API docs
Embedded Form
REST API
Hosted payment
Mobile payment
File exchange
Logos
Push mail
Snippets
Payment methods
Plugins
Guides
Merchant Back Office
Functional guides

Creating an SMS payment order

This feature requires a Lyra SMS account. For more information, see the FAQ.

Use cases

The merchant creates a payment order sent by SMS to the buyer.

Test

Test the Charge/CreatePaymentOrder Web Service via our playground: Charge/CreatePaymentOrder.

Request

Immediate payment

Sample query

Required fields:

  • Amount: €100,00.
  • Distribution channel: SMS.
  • Numéro de téléphone de l'acheteur : "+33611111111"

. Recommended fields:

  • Référence de la commande : "myOrderId-1234"
/doc/en-EN/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePaymentOrder
{
    "amount": 10000,
    "currency": "EUR",
    "orderId": "myOrderId-1234",
    "channelOptions": {
      "channelType": "SMS",
      "smsOptions": {
        "phoneNumber": "+33611111111"
      }
    },
}
/**
 * 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"];

?>

To view the fields and their description, go to the playground: Charge/CreatePaymentOrder (menu on the left).

Payment in installments

Prerequisites
  • subject to option and/or depending on your offer
Sample query

Required fields:

  • Amount: €100,00.
  • Numéro de téléphone de l'acheteur : "+33611111111".
  • Distribution channel: SMS.
  • Rule: Payment in 3 installments. The first amount is €50,00 with an interval of 7 days.

. Recommended fields:

  • Référence de la commande : "myOrderId-1234".
/doc/en-EN/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePaymentOrder
{
  "amount": 10000,
  "currency": "EUR",
  "orderId": "myOrderId-1234",
  "channelOptions": {
    "channelType": "SMS",
    "smsOptions": {
      "phoneNumber": "+33611111111"
    }
  },
  "transactionOptions": {
    "installmentOptions": {
      "firstAmount": 5000,
      "count": 3,
      "period": 7
    }
  },
}

Le premier paiement de 50,00 EUR est créé à J+0.

Le deuxième paiement de 25,00 EUR est créé à J+7.

Le troisième paiement de 25,00 EUR est créé à J+14.

.

The description and all of the fields are available (menu on the left): Charge/CreatePaymentOrder.

Pay in instalments with a personalized payment plan

Prerequisites
  • subject to the "Advanced installment payment" option
  • not taking into account the value of the Capture Delay field (time to bank)
Sample query Champs obligatoires :
  • Amount: €100,00.
  • Distribution channel: SMS.
  • Numéro de téléphone de l'acheteur : "+33611111111"
  • Rule: Payment in 3 installments.
  1. April 1, 2023 for EUR 50,00.
  2. May 1, 2023 for EUR 30,00.
  3. June 1, 2023 for EUR 20,00.

. Recommended fields:

  • Référence de la commande : "myOrderId-1234".
/doc/en-EN/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePaymentOrder
{
  "amount": 10000,
  "currency": "EUR",
  "orderId": "myOrderId-999999",
  "channelOptions": {
    "channelType": "SMS",
    "smsOptions": {
      "phoneNumber": "+33611111111"
    }
  },
  "transactionOptions": {
    "installmentOptions": {
      "schedules": [
        {
           "date": "2023-04-01T23:59:59+00:00",
           "amount": 5000
         },
         {
            "date": "2023-05-01T23:59:59+00:00",
            "amount": 3000
         },
         {
            "date": "2023-06-01T23:59:59+00:00",
            "amount": 2000
         }
       ]
    }
  },
  "paymentReceiptEmail": "sample@example.com",
  "expirationDate": "2023-04-20T20:13:26+02:00", 
  "dataCollectionForm": "false"
}

.

Response

Example of a response
{
    "webService": "Charge/CreatePaymentOrder",    
    "version": "V4",
    "applicationVersion": "5.5.0",
    "status": "SUCCESS",
    "answer": {
        "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f",
        "paymentURL": "https://secure.systempay.fr/t/328zq5so",
        "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": "SMS",
            "mailDetails": null,
            "smsDetails": {
                "phoneNumber": "+336111111111",
                "message": "Dear customer, this is a payment order of EUR 2,000.50 valid until 23/04/2020. To confirm, please click on the link below : https://secure.systempay.fr/t/xdt0bcmo",
                "_type": "V4/SMSDetails"
            },
            "whatsAppDetails": null,
            "ivrDetails": null,
            "_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": "Dear customer, this is a payment order of EUR 2,000.50 valid until 23/04/2020. To confirm, please click on the link below : https://secure.systempay.fr/t/xdt0bcmo",
        "_type": "V4/PaymentOrder"
    },
    "ticket": null,
    "serverDate": "2020-03-31T15:06:49+00:00",
    "applicationProvider": "NPS",
    "metadata": null,
    "_type": "V4/WebService/Response"
}


}

The payment order is sent to the Buyer by SMS.

Find the description and all the fields in our playground:PaymentOrder


Error handling

Error table
Code Description
INT_009 The format of the amount field is invalid or the field is not transmitted.
INT_010 The format of the currency field is invalid or the field is not transmitted.
INT_050 The strongAuthentication parameter is invalid.
INT_856 The locale parameter is invalid.
INT_858 The taxRate parameter is invalid.
INT_869 The taxAmount parameter is invalid.
INT_929 The installmentOptions.count parameter is invalid.
INT_930 The installmentOptions.period parameter is invalid.
INT_931 The installmentOptions.schedules[] parameter is invalid.
INT_932 The installmentOptions.schedules[date] parameter is invalid.
INT_933 The format of the installmentOptions.schedules[amount] field is invalid or the field is not transmitted.
PSP_519 Unknown currency.
PSP_606 Currency not supported by the MID.
PSP_1007 The expiry date of the payment order cannot be earlier than the current date or exceed 90 days.
PSP_1015 No data collection form for this shop.
PSP_1018 The data collection form cannot be used for the requested currency.

Analysis of payment results

To know the payment result, implement the instant payment notification (also known as IPN).

  1. In the REST API section (TEST or PRODUCTION), enter only the notification URL: Procedure.
  2. Analyze the IPN: Procedure.
© 2025 {'|'} All rights reserved to Systempaylegal
25.18-1.11