• France
état des services
Back Office Marchand
assistance
FAQContacter le support
Video tutorials
Rechercher
Catégories
Tags
Français
Français
Anglais
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
Intégration mobile
Échange de fichiers
Exemples de code
Logos
Push mail
Moyens de paiement
Modules de paiement
Guides
Back Office Marchand
Guides fonctionnels

Modifier un ordre de paiement

Cas d'utilisation

Le marchand souhaite modifier le contenu d'un ordre de paiement (montant, message, etc..).

Le Web Service Charge/PaymentOrder/Update permet de modifier uniquement les ordres de paiement créés avec le Web Service Charge/CreatePaymentOrder.

Seuls les ordres de paiement en cours (statut RUNNING) peuvent faire l'objet d'une modification.

Le canal de diffusion ne peut pas être modifié.

Tester

Testez le Web Service Charge/PaymentOrder/Update depuis notre playground.

Requête

Champs obligatoires

Montant avec la devise.

Référence de l'ordre de paiement : paymentOrderId.

Canal de diffusion (sauf pour le lien URL) :

  • Par e-mail :
channelOptions.mailOptions Objet json définissant les paramètres de l'ordre de paiement.
channelOptions.mailOptions.recipient Adresse e-mail de l'acheteur.
  • Par SMS :
channelOptions.smsOptions Objet json définissant les paramètres de l'ordre de paiement.
channelOptions.smsOptions.phoneNumber Numéro de téléphone mobile de l'acheteur.
Exemple de requête

Modifiez les données suivantes :

  • Montant : 200,00 €.
  • Référence de la commande : "myOrderId-999999".
  • Canal de diffusion : MAIL.
/doc/fr-FR/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/PaymentOrder/Update
{
    "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85",
    "amount": 20000,
    "currency": "EUR",
    "orderId": "myOrderId-999999",
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "customer@example.com"
      }
    }
}
{
    "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85",
    "amount": 200050,
    "currency": "PEN",
    "orderId": "myOrderId-999999",    
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-05-20T20:13:26+02:00",
    "locale": "es_PE",
    "dataCollectionForm": "true"
}
{
    "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85",
    "amount": 200050,
    "currency": "ARS",
    "orderId": "myOrderId-999999",    
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-05-20T20:13:26+02:00",
    "locale": "es_AR",
    "dataCollectionForm": "true"
}
{
    "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85",
    "amount": 200050,
    "currency": "COP",
    "orderId": "myOrderId-999999",   
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-05-20T20:13:26+02:00",
    "locale": "es_CO",
    "dataCollectionForm": "true"
}
/**
 * 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"];

?>

Réponse

Exemple de Réponse
{
    "webService": "Charge/PaymentOrder/Update",    
    "version": "V4",
    "applicationVersion": "5.5.0",
    "status": "SUCCESS",
    "answer": {
        "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85",
        "paymentURL": "https://secure.systempay.fr/t/328zq5so",
        "paymentOrderStatus": "RUNNING",
        "creationDate": "2020-03-31T15:06:49+00:00",
        "updateDate": "2020-04-29T12:55:50+00:00",
        "amount": 20000,
        "currency": "EUR",
        "locale": "en_GB",
        "strongAuthentication": "AUTO",
        "orderId": "myOrderId-999999",
        "channelDetails": {
            "channelType": "MAIL",
            "mailDetails": {
                "subject": "Your payment order",
                "body": "<b>Message sent by DEMO STORE</b> <p>Dear customer,</p> <p>This e-mail is a payment order of EUR 2,000.50 valid until 01/04/2020. To confirm, please click on the link below : </p> <p>https://secure.systempay.fr/t/w5izg024</p> <p>In case of problems, or if this message is not correctly displayed, please contact support@demostore.com.</p>",
                "template": null,
                "recipient": "sample@example.com",
                "bcc": null,
                "_type": "V4/MailDetails"
            },
            "smsDetails": null,
            "whatsAppDetails": null,
            "_type": "V4/ChannelDetails"
        },
        "paymentReceiptEmail": "sample@example.com",
        "taxRate": null,
        "taxAmount": null,
        "expirationDate": "2020-05-20T18:13:26+00:00",
        "transactionDetails": {
            "cardDetails": {
                "manualValidation": "NO",
                "captureDelay": 0,
                "_type": "V4/CardDetails"
            },
            "_type": "V4/PaymentOrderTransactionDetails"
        },
        "dataCollectionForm": true,
        "merchantComment": null,
        "message": "<b>Message sent by DEMO STORE</b> <p>Dear customer,</p> <p>This e-mail is a payment order of EUR 2,000.50 valid until 01/04/2020. To confirm, please click on the link below : </p> <p>https://secure.systempay.fr/t/w5izg024</p> <p>In case of problems, or if this message is not correctly displayed, please contact support@demostore.com.</p>",
        "_type": "V4/PaymentOrder"
    },
    "ticket": null,
    "serverDate": "2020-04-29T12:55:50+00:00",
    "applicationProvider": "NPS",
    "metadata": null,
    "_type": "V4/WebService/Response"
}


}

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_050** | Le paramètre strongAuthentication est invalide. | | **INT_836** | L'objet **smsOptions** est manquant. | | **INT_837** | Le paramètre channelOptions.whatsAppOptions.phoneNumber est manquant. | | **INT_838** | Le paramètre channelOptions.smsOptions.phoneNumber est manquant. | | **INT_839** | L'objet whatsAppOptions est manquant. | | **INT_841** | L'objet mailOptions est manquant. | | **INT_850** | Le paramètre channelOptions.mailOptions.recipient est manquant. | | **INT_856** | Le paramètre locale est invalide. | | **INT_858** | Le paramètre taxRate est invalide. | | **INT_869** | Le paramètre taxAmount est invalide. | | **INT_902** | Le format du champ paymentOrderId est invalide ou le champ n'est pas transmis. | | **PSP_519** | Devise inconnue. | | **PSP_606** | Devise Oui supportée par le contrat. | | **PSP_1000** | L'ordre de paiement n'existe pas. | | **PSP_1001** | Impossible de joindre la passerelle WhatsApp. | | **PSP_1002** | Le numéro de téléphone du destinataire n’est pas associé à un compte WhatsApp. | | **PSP_1003** | Configuration WhatsApp absente. | | **PSP_1004** | Modèle WhatsApp Oui disponible pour la locale demandée. | | **PSP_1005** | Modification impossible sur un ordre de paiement payé. | | **PSP_1006** | Modification impossible sur un ordre de paiement expiré. | | **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. | | **PSP_1011** | Le mode (TEST ou PRODUCTION) de l'ordre de paiement ne correspond pas à celui de la requête. | | **PSP_1015** | Aucun formulaire de collecte de données pour cette boutique. | | **PSP_1017** | Le canal de diffusion ne peut pas être modifié. | | **PSP_1018** | Le formulaire de collecte de données ne peut être utilisé pour la devise demandée. | | **PSP_1022** | Le template spécifié dans la requête n'existe pas pour la locale demandée. | {: .lita-excluded-col1 }
© 2025 Tous droits réservés à SystempayMentions légales
25.18-1.11