• Francia
página de estado
demo
asistencia
FAQContacte el soporte tecnico
Buscar
Categoria
Tags
docs.
Francia
España
Europa (Inglés)
India
Página principal
Casos de uso
Crear un pago
Crear un pago en vencimientos
Crear un pago multitarjeta
Crear un pago por token
Crear un enlace de pago
Crear una suscripción
Gestione sus suscripciones
Gestione sus transacciones
Analizar los diarios
Docs API
Formulario incrustado
API REST
Formulario en redirección
Pago móvil
Intercambio de ficheros
Ejemplo de código
Medios de pago
Plugins
Guías
Back office Experto
Guías funcionales

Crear una solicitud de pago por e-mail

Casos de uso

El vendedor crea una solicitud de pago que envía al comprador por e-mail.

Testear

Testee el Web Service Charge/CreatePaymentOrder desde nuestro playground: Charge/CreatePaymentOrder.

Solicitud

Pago al contado

Ejemplo de solicitud

Campos obligatorios:

  • Monto: 100,00€.
  • Canal de difusión: MAIL.
  • E-mail de l'acheteur : "customer@example.com".

. Campos recomendados:

  • Référence de la commande : "myOrderId-1234".
/es-ES/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": "MAIL",
    "mailOptions": {
      "recipient": "customer@example.com"
    }
  }
}
<!-- <pre data-language="json" data-market="es-PE">&#010;{&#010;    &quot;amount&quot;: 200050,&#010;    &quot;currency&quot;: &quot;PEN&quot;,&#010;    &quot;orderId&quot;: &quot;myOrderId-999999&quot;,    &#010;    &quot;channelOptions&quot;: {&#010;      &quot;channelType&quot;: &quot;MAIL&quot;,&#010;      &quot;mailOptions&quot;: {&#010;        &quot;recipient&quot;: &quot;sample@example.com&quot;&#010;      }&#010;    },&#010;    &quot;paymentReceiptEmail&quot;: &quot;sample@example.com&quot;,&#010;    &quot;expirationDate&quot;: &quot;2020-04-20T20:13:26+02:00&quot;,&#010;    &quot;locale&quot;: &quot;es_PE&quot;,&#010;    &quot;dataCollectionForm&quot;: &quot;false&quot;&#010;}&#010;</pre>
{
    "amount": 200050,
    "currency": "ARS",
    "orderId": "myOrderId-999999",    
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "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": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00",
    "locale": "es_CO",
    "dataCollectionForm": "false"
}
{
    "amount": 200050,
    "currency": "BRL",
    "orderId": "myOrderId-999999",   
    "channelOptions": {
      "channelType": "MAIL",
      "mailOptions": {
        "recipient": "sample@example.com"
      }
    },
    "paymentReceiptEmail": "sample@example.com",
    "expirationDate": "2020-04-20T20:13:26+02:00",
    "locale": "pt_BR",
    "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"];

?>

Consulte todos los campos y su descripción en nuestro playground: Charge/CreatePaymentOrder (menú a la izquierda).

Pago en vencimientos

Prerrequisito
  • sujeto a opción y/o en función de su oferta
  • indisponible para pagos SEPA
Ejemplo de solicitud

Campos obligatorios:

  • Monto: 100,00€.

  • E-mail de l'acheteur : "customer@example.com".

  • Regla: Pago en 3 cuotas. El primer monto es de 50,00 EUR con un intervalo de 7 días.

. Campos recomendados:

  • Référence de la commande : "myOrderId-1234".
/es-ES/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": "MAIL",
    "mailOptions": {
      "recipient": "customer@example.com"
    }
  },
  "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.

La suma total de los montos debe ser igual al valor del campo amount. La fecha de la última cuota no puede ser superior a 12 meses a partir de la fecha de envío del formulario. La fecha de la última cuota es superior a la fecha de validez de la tarjeta , no se registra ninguna cuota y se notifica el problema al comprador.".

Todos los campos están descritos (menú a la izquierda): Charge/CreatePaymentOrder.

Pago a plazos con un calendario personalizado

Prerrequisito
  • sujeto a la opción "Pago anticipado en varios plazos".
  • Se obvia el valor del campo Capture Delay(plazo de captura).
  • indisponible para pagos SEPA
Ejemplo de solicitud Champs obligatoires :
  • Monto: 100,00€.
  • Canal de difusión: MAIL.
  • E-mail de l'acheteur : "customer@example.com".
  • Regla: Pago en 3 cuotas.
  1. El primer pago se efectúa el 1 de abril por un monto de 50,00 EUR.
  2. El segundo pago se efectúa el 1 de mayo por un monto de 30,00 EUR.
  3. El tercer pago se efectúa el 1 de junio por un monto de 20,00 EUR.

. Campos recomendados:

  • Référence de la commande : "myOrderId-1234".
/es-ES/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": "MAIL",
        "mailOptions": {
          "recipient": "customer@example.com"
        }
      },
  "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
         }
       ]
    }
  }
}

La suma total de los montos debe ser igual al valor del campo amount. La fecha de la última cuota no puede ser superior a 12 meses a partir de la fecha de envío del formulario. La fecha de la última cuota es superior a la fecha de validez de la tarjeta , no se registra ninguna cuota y se notifica el problema al comprador.".

Todos los campos están descritos (menú a la izquierda): Charge/CreatePaymentOrder.

Respuesta

Ejemplo de respuesta
{
    "webService": "Charge/CreatePaymentOrder",    
    "version": "V4",
    "applicationVersion": "5.5.0",
    "status": "SUCCESS",
    "answer": {
        "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f",
        "paymentURL": "https://secure.lyra.com/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": "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.lyra.com/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": "customer@example.com",
                "bcc": null,
                "_type": "V4/MailDetails"
            },
            "smsDetails": null,
            "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": "<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.lyra.com/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-03-31T15:06:49+00:00",
    "applicationProvider": "LYRA",
    "metadata": null,
    "_type": "V4/WebService/Response"
}


}

La solicitud de pago se envía al comprador por e-mail.

Encuentre todos los campos y su descripción en nuestro playground:PaymentOrder


Manejo de errores

Tabla de errores
Código Descripción
INT_009 El formato del campo amount no es válido o el campo no se ha transmitido.
INT_010 El formato del campo currency no es válido o el campo no se ha transmitido.
INT_050 El parámetro strongAuthentication es inválido.
INT_856 El parámetro locale es inválido.
INT_858 El parámetro taxRate es inválido.
INT_869 El parámetro taxAmount es inválido.
INT_929 El parámetro installmentOptions.period es inválido.
INT_930 El parámetro installmentOptions.period es inválido.
INT_931 El parámetro installmentOptions.schedules[] es inválido.
INT_932 Parámetro installmentOptions.schedules[date] inválido.
INT_933 El formato del campo installmentOptions.schedules[amount] es inválido o el campo no se transmite.
PSP_519 Moneda desconocida.
PSP_606 Moneda no admitida por la afiliación.
PSP_1007 La fecha de vencimiento de la solicitud de pago no puede ser anterior a la fecha actual ni exceder los 90 días.
PSP_1015 No hay ningún formulario de recolección de datos para esta tienda.
PSP_1018 No se puede utilizar el formulario de recolección de datos para la moneda solicitada.

Analizar el resultado del pago

Para conocer el resultado del pago, implemente la URL de notificación al final el pago (IPN).

  1. Ingrese solamente la URL de notificación en la sección API REST (TEST o PRODUCTION): Procedimiento.
  2. Analice la IPN: Procedimiento.
Jobs
Legal
GDPR
25.18-1.11