• 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

Create a payment order by URL

Use cases

The merchant creates a payment order by URL. The payment URL is sent by the merchant.

Test

Test the Charge/CreatePaymentOrder web service via our playground.

Request

Immediate payment

Example of request

Required fields:

  • Amount: €100,00.

. Recommended fields:

  • Référence de la commande : "myOrderId-1234".
  • Distribution channel: URL.
/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": "URL"      
    }
}
{
    "amount": 200050,
    "currency": "PEN",
    "orderId": "myOrderId-999999",    
    "channelOptions": {
      "channelType": "URL"      
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00",
    "locale": "es_PE",
    "dataCollectionForm": "false"
}
{
    "amount": 200050,
    "currency": "ARS",
    "orderId": "myOrderId-999999",    
    "channelOptions": {
      "channelType": "URL"      
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00",
    "locale": "es_AR",
    "dataCollectionForm": "false"
}
{
    "amount": 200050,
    "currency": "COP",
    "orderId": "myOrderId-999999",   
    "channelOptions": {
      "channelType": "URL"      
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00",
    "locale": "es_CO",
    "dataCollectionForm": "false"
}
/**
 * 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.
  • 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".
  • Distribution channel: URL.
/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": "URL"      
        },
        "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

Required fields:

  • Amount: €100,00.
  • 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".
  • Distribution channel: URL.
/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": "URL"      
      },
      "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
             }
           ]
        }
      }
    }

.

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


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": 200050,
        "currency": "EUR",
        "locale": "en_GB",
        "strongAuthentication": "AUTO",
        "orderId": "myOrderId-1234",
        "channelDetails": {
            "channelType": "URL",
            "mailDetails": null,
            "smsDetails":  null,
            "whatsAppDetails": 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": "I pay EUR 2,000.50 via secure payment before 23/04/2020 (if the link does not work, copy the URL : 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 merchant must send the payment link to the buyer. The payment link corresponds to thepaymentURLfield of the objectAnswer.

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_928 The format of the installmentOptions.firstAmount field is invalid or the field is not transmitted.
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