• 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

Realizar un pago al envío

Contexto

El pago al envío es una nueva funcionalidad que se rige según la DSP2 (segunda Directiva sobre servicios de pago). El vendedor puede realizar varios envíos para un mismo pedido en un plazo máximo de 180 días.

Casos de uso

El pago al envío funciona por etapas:

1. Transacción inicial

Lors de la prise de la commande, créez une transaction initiale avec le Web Service Charge/CreatePayment.

  • campoamountcon el monto total del pedido.
  • campocurrencycon la divisa del pago según la norma ISO 4217 alpha-3.
  • campouseCasecon el valorSHIPMENT_MULTIPLE_AUTHORISATION.

La plataforma de pago crea una transacción de verificación con una validez de 180 días. El comprador se autentifica por el monto total del pedido, sin embargo, su tarjeta no se debita de inmediato.

2. Transacción de envío

Pour chaque déclenchement d'expédition, créez une transaction d'expédition avec le Web Service Charge/CreateShipmentTransaction associée à la transaction initiale.

  • campouuid: referencia única de la transacción inicial.
  • campoamount: monto total de los artículos expedidos.

La plataforma crea una transacción de débito. por el monto de los artículos expedidos.

Se debita al comprador solamente al capturar la transacción de envío.

Esquema

Cinemática de pago

Ejemplo

  • El comprador pide 3 productos (35 EUR, 25 EUR y 14,12 EUR), por un monto total de 72,12 EUR.

  • Si los 3 productos no están disponibles, el vendedor puede realizar un pago al envío con autorizaciones múltiples.

    El comprador se autentifica por el monto total de la compra (72,12 €) cuando se crea la transacción inicial, pero se le debita a cada envío.

    Vous vous servirez ensuite de la transaction initiale (le paiement effectué par l'acheteur) pour créer une nouvelle transaction à chaque déclenchement de l'expédition. Par exemple :

    • 3 jours après la commande, vous déclenchez l'expédition du produit N°1. Vous créez à ce moment une transaction d'expédition de 35 EUR. Et l'acheteur sera débité de 35 EUR.
    • 10 jours après la commande, vous déclenchez l'expédition du produit N°2. Vous créez une nouvelle transaction d'expédition de 25 EUR. Et l'acheteur sera encore débité de 25 EUR.
    • 20 jours après la commande, vous déclenchez l'expédition du produit N°3. Vous créez à ce moment une transaction d'expédition de 14.12 EUR. Et l'acheteur sera débité des 14.12 EUR restant.

    Si la transacción se realiza en la red CB, las tres transacciones se beneficiarán de una garantía de pago porque el envío se realizó dentro de los 30 días siguientes al pedido.

Solicitud

Ejemplo de una transacción inicial

Campos obligatorios:

  • Monto: 72,12 €
  • Cas d'utilisation : SHIPMENT_MULTIPLE_AUTHORISATION pour demander des autorisations multiples.

. Campos recomendados:

  • Référence de la commande : "myOrder-1234-initial".
  • E-mail de l'acheteur : "sample@example.com".
/es-ES/rest/V4.0/api/kb/authentication.html
https://api.lyra.com/api-payment/V4/Charge/CreatePayment
    {
        "amount": 7212,
        "currency": "EUR",
        "customer": {
          "email": "sample@example.com"
        },
        "orderId": "myOrder-1234-initial",
        "useCase": "SHIPMENT_MULTIPLE_AUTHORISATION"
      }
<!-- <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"];

?>

Para ver todos los campos y su descripción, consulte el playground: Charge/CreatePayment (menú a la izquierda).

Respuesta

Récupèrez le formToken pour afficher le formulaire de paiement (Plus d'infos : Etape 4 : Afficher le formulaire de paiement)

L'acheteur s'authentifie sur le montant total de la commande mais la carte ne sera pas débité immédiatement. La plateforme de paiement crée une transaction de vérification, avec une durée de validité de 180 jours.

Ejemplo de respuesta

   
      "kr-answer": {
          "shopId": "12345678",
          "orderCycle": "CLOSED",
          "orderStatus": "PAID",
            "orderDetails": {
              "orderTotalAmount": 7212,
              "orderEffectiveAmount": 7212,
              "orderCurrency": "EUR",
              "mode": "TEST",
              "orderId": "myOrder-1234-initial",
              "metadata": null,
              "_type": "V4/OrderDetails"
            },
            "transactions": [
            {
              "shopId": "12345678",
              "uuid": "f183418d08df49f3900bbd74ef837816",
              "amount": 12500,
              "currency": "EUR",
              "paymentMethodType": "CARD",
              "paymentMethodToken": null,
              "status": "PAID",
              "detailedStatus": "ACCEPTED",
              "operationType": "VERIFICATION",
                    "orderId": "myOrderId-1234",
                    
                    "_type": "V4/Charge/CreateQRCodeResponse"
                },    
              (...)   
    "_type": "V4/WebService/Response" 
}

}
  • Analice el resultado del pago. Más información: Etapa 5: Analizar el resultado del pago.

  • Conservez l'uuid de la transaction initiale. Dans l'exemple, [transactions][0].[uuid] a pour valeur f183418d08df49f3900bbd74ef837816. Cette donnée est obligatoire pour créer les transactions d'expédition.

Ejemplo de transacción de envío 1

Solicitud

Campos obligatorios:

  • Monto: 35,00€
  • Uuid : référence unique de la transaction initiale : f183418d08df49f3900bbd74ef837816

. Campos recomendados:

  • E-mail de l'acheteur : "sample@example.com"
/es-ES/rest/V4.0/api/kb/authentication.html
https://api.lyra.com/api-payment/V4/Charge/CreateShipmentTransaction
      {
        "amount": 3500,
        "customer": {
          "email": "sample@example.com"
        },
        "uuid": "f183418d08df49f3900bbd74ef837816"
      }

Para ver todos los campos y su descripción, consulte el playground: Charge/CreateShipmentTransaction (menú a la izquierda);.

Respuesta de la solicitud

   
      {
        "webService": "Charge/CreateShipmentTransaction",
        "version": "V4",
        "applicationVersion": "6.12.0",
        "status": "SUCCESS",
        "answer": {
          "shopId": "12345678",
          "uuid": "7b8179b7845e4576868d624039b754c5",
          "paymentMethodType": "CARD",
          "paymentMethodToken": null,
          "detailedStatus": "AUTHORISED",
          "status": "PAID",
          "amount": 3500,
          "currency": "EUR",
              (...)   
    "_type": "V4/WebService/Response" 
}

}

El valorPAIDdel campo.statussignifica que la transacción ha sido aceptada.
Más información :referencia de estado

Ejemplo de transacción de envío 2

Solicitud

Campos obligatorios:

  • Monto: 25,00 €
  • Uuid : référence unique de la transaction initiale : f183418d08df49f3900bbd74ef837816

. Campos recomendados:

  • E-mail de l'acheteur : "sample@example.com"
/es-ES/rest/V4.0/api/kb/authentication.html
https://api.lyra.com/api-payment/V4/Charge/CreateShipmentTransaction
      {
        "amount": 2500,
        "customer": {
          "email": "sample@example.com"
        },
        "uuid": "f183418d08df49f3900bbd74ef837816"
      }

Para ver todos los campos y su descripción, consulte el playground: Charge/CreateShipmentTransaction (menú a la izquierda);.

Respuesta de la solicitud

   
      {
        "webService": "Charge/CreateShipmentTransaction",
        "version": "V4",
        "applicationVersion": "6.12.0",
        "status": "SUCCESS",
        "answer": {
          "shopId": "12345678",
          "uuid": "7b8179b7845e4576868d624039b754c5",
          "paymentMethodType": "CARD",
          "paymentMethodToken": null,
          "detailedStatus": "AUTHORISED",
          "status": "PAID",
          "amount": 2500,
          "currency": "EUR",
              (...)   
    "_type": "V4/WebService/Response" 
}

}

El valorPAIDdel campo.statussignifica que la transacción ha sido aceptada.
Más información :referencia de estado

Ejemplo de transacción de envío 3

Solicitud

Campos obligatorios:

  • Monto: 14,12 €
  • Uuid : référence unique de la transaction initiale : f183418d08df49f3900bbd74ef837816

. Campos recomendados:

  • E-mail de l'acheteur : "sample@example.com"
/es-ES/rest/V4.0/api/kb/authentication.html
https://api.lyra.com/api-payment/V4/Charge/CreateShipmentTransaction
      {
        "amount": 1412,
        "customer": {
          "email": "sample@example.com"
        },
        "uuid": "f183418d08df49f3900bbd74ef837816"
      }

Para ver todos los campos y su descripción, consulte el playground: Charge/CreateShipmentTransaction (menú a la izquierda);.

Respuesta de la solicitud

   
      {
        "webService": "Charge/CreateShipmentTransaction",
        "version": "V4",
        "applicationVersion": "6.12.0",
        "status": "SUCCESS",
        "answer": {
          "shopId": "12345678",
          "uuid": "7b8179b7845e4576868d624039b754c5",
          "paymentMethodType": "CARD",
          "paymentMethodToken": null,
          "detailedStatus": "AUTHORISED",
          "status": "PAID",
          "amount": 1412,
          "currency": "EUR",
              (...)   
    "_type": "V4/WebService/Response" 
}

}

El valorPAIDdel campo.statussignifica que la transacción ha sido aceptada.
Más información :referencia de estado

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.
PSP_519 Moneda desconocida.
PSP_606 Moneda no admitida por la afiliación.

Analizar el resultado del pago

1. Pour la transaction initiale

Implemente la URL de notificación de finalización de pago (también conocida como IPN) para analizar el resultado y conservar el uuid de la transacción original.

  • Ingrese solamente la URL de notificación en la sección API REST (TEST o PRODUCTION): Procedimiento.
  • Analice la IPN: Procedimiento.
2. Pour les transactions d'expédition

El Servicio Web devuelve un objeto de tipo Transacción de débito.

Jobs
Legal
GDPR
25.18-1.11