Mise à jour d'une commande réglée en plusieurs fois

Il est possible de modifier les transactions après le paiement et tant que les transactions en question sont en attente (c'est-à-dire qu'elles doivent se trouver à l'état PENDING).

Seules deux valeurs sont modifiables :
  • le montant de la transaction (attribut amount) ;
  • la date de capture de la transaction (attribut expected_capture_date).

Notes :
  • Tout comme avec une commande mono-transactionnelle, il n'est pas possible d'accroître le montant d'une transaction au-delà de son montant initial, tel qu'enregistré dans l'attribut en lecture seule initial_amount.
  • Les items doivent être obligatoirement transmis dans la requête PUT (?expand=items).
  • Il est possible de supprimer une (ou plusieurs) transaction(s) (cf. ci-dessous), mais il n'est actuellement pas possible d'en ajouter.

Procédure :

La modification d'une ou de plusieurs transactions passe par la même commande de mise à jour d'une commande (PUT ORDER), mais avec deux différences :
  1. Il faut ajouter la liste complète des transactions de la commande dans le corps de la requête PUT ORDER dans une liste de transactions, comprenant chacune les attributs trans_uuid, expected_capture_date et amount éventuellement modifiés.

    Par exemple :

    {
    	"marketplace": "2434c0a2-9d46-4e96-9553-1536c898625b",
    	"reference": "MyMultitransactionOrder01",
    	"description": "Mise à jour de la commande.",
    	"currency": "EUR",
    	"url_return": "https://www.my-website.com/",	
    	"language": "en",
    	"items": [
    	  {
    	    "seller": "4d20a9d4-0526-4474-b452-e936dc25418d",
    	    "reference": "0000001",
    	    "description": "TV Ecran plat",
    	    "amount": 390000,
    	    "quantity": 1,
    	    "is_commission": false
    	  },
    	  {
    	    "seller": "72ccc2ff-b455-4653-847e-deb6fee99f8d",
    	    "reference": "0000002",
    	    "description": "Commission",
    	    "amount": 14755,
    	    "quantity": 1,
    	    "is_commission": true
    	  }
    	],
    	"transactions": [
    	  {
    	    "trans_uuid": "c383739d12a6489badc3bb6847db84cc",
    	    "payment_scheme": "CB",
    	    "amount": 14755,
    	    "expected_capture_date": "201909185743"
    	  },
    	  {
    	    "trans_uuid": "d0c4d34249d540af87ff8df3a2fa314a",
    	    "payment_scheme": "CB",
    	    "amount": 190000,
    	    "expected_capture_date": "201905175352"
    	  },
    	  {
    	    "trans_uuid": "8c5a6788b3334d368185b0a567dd7bcd",
    	    "payment_scheme": "CB",
    	    "amount": 200000,
    	    "expected_capture_date": "201904205352"
    	  }
    	],
    	"buyer": {
    	…
    	}
    }
  2. Il est impératif d'ajouter "transactions" dans l'attribut url « expand ».

    Vous devez donc envoyer une ressource PUT ORDER sur

    https://secure.lyra.com/marketplace/orders/{order_uuid}?expand=items,transactions.

    Si la valeur "transactions" n'est pas indiquée, aucune modification de transaction ne pourra être prise en compte.

Lors de la mise à jour, l'application vérifie la cohérence des montants entre les items et les transactions : en toute logique, le total des montants de l'item doit être identique au montant total des transactions. Et par conséquent, une réduction des montants sur les items doit mécaniquement s'accompagner d'une réduction des montants sur les transactions.

Cas particulier d'une suppression de transactions

Il se peut que la réduction des montants sur la partie items soit supérieure au montant d'une des transactions. Si au lieu de répartir la réduction sur l'ensemble des transactions, vous choisissez de supprimer une transaction, il suffit de l'omettre dans la liste des transactions envoyées en requête de modification. Elle est alors interprétée comme annulée, et son statut passe à CANCELLED.

Autres remarques :

  • L'application renvoie une erreur si la mise à jour ne comporte aucune modification (ni des transactions, ni des items, ni des valeurs de la commande).
  • La nouvelle valeur de expected_capture_date ne doit pas être antérieure à la date et heure de modification.